Object-oriented Information Systems

Object Oriented Analysis - Initial Steps towards Programming in Python

Unit 2

The second Unit provides the next step of object-oriented programming with Python. The course Class Function and Class Methods will explain the difference between function and methods. Furthermore, the Unit supplies a first approach to the Unified Modeling Language UML by attending a seminar on Software Design. UML - is a graphical modelling language for software systems' specification, documentation and visualization. It offers various diagram types for the analysis of structures, the determination of object interactions and the behavioural design of systems. In addition, a Python program is to be developed to achieve basic employee-related functionality and allow an employee to book a day of annual leave.

Outcomes

  • Summary of the learning outcomes

This unit aims to:

  • Design a use case diagram for a software development scenario
  • Explore the ways in which actors interact with software in terms of the functional requirements of a piece of software
  • Reflection

What exactly have I learnt and how?

After completing the course Class Method and Class function, I finally understood the difference between function and methods. The following object-oriented program about employee-related functionality helped me use my new knowledge. During programming, I faced many unexpected questions; however, I could acquire the new skills better because I had to solve these questions. Moreover, the seminar "Software Design" and the elaboration of the use case diagram have aroused my curiosity about the next Unit, which is about UML.
  • Notes

Notes from the elaboration of the unit, various meetings, and feedback from team members and tutors

Here are few insights from the "Class Functions and Class Methods" course:

Reply to a student on the collaborative discussion topic: "Factors Influencing Reusability"
Object-Oriented Programming and software development has been increasingly becoming more critical. Achieving good quality software development standards was always challenging, and it remains so (Padhy et al, 2018). With code reusability, the time taken developing software components can be substantially reduced. However, this takes effect only when the components have been done correctly and with good quality so that these components can be further used. Reusable properties have been identified in Table 1 within the article (Padhy et al, 2018). The following is the prioritised list:
  1. Requirement analysis (RA)
  2. Architecture driven approach (ADP)
  3. Used in the data project (UD)
  4. Service contracts (SC)
  5. Design patterns (DP)
  6. Documentation in project (DIP)
  7. Knowledge requirement (KR)
  8. An algorithm used in the program (AP)
  9. Modules in the program (MIP)
  10. Models in the project (MP)/li>
  11. Test cases/test design (TCTD)
Requirement Analysis is vital before starting a project; it provides a starting point and a vision of what the project should produce. Requirement Analysis would provide guidelines for the entirety of the project. Architecture driven approach provides the overall structure of a project; this would ultimately support having a proper structure for the project or usability of components within the project (Padhy et al, 2018). Used in Data projects, using previous information identified in earlier projects would help avoid issues that may have arisen, saving time and following correct structures.
Code reusability offers extensive reduced development time, enhancing work-pace and ultimately boosting productivity. Especially when components and proper structures were followed, the reusability of components will be easier and provide better results, while reducing cost and time (Papanucgauk et al, 2018). However when there is a lack of quality within the initial structure this presents a drawback since it will substantially affect code reusability or produce a decrease in performance in case there was code reusability.
References:
Padhy N, & Atapathy, S & Singh, R.P. (2018) Smart Computing and Informatics. State-of-the-Art Object-Oriented Metrics and Its Reusability: A Decade Review 77 (1179) 431-441.
M. Papamichail & T. Diamantopoulos & I. Chrysovergis & P. Samlidis & A. Symeonidis. (2018) IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE). User-perceived reusability estimation based on analysis of software repositories 10 (1109) 49-54.
- Post by Gianluca Cannone:
Another excellent analyse and explanation of the reusable factors from Padhy et al, 2018. Besides your first point about RA, I also agree with your statement at the end. With a lack of quality at the beginning of the software, especially at the initial structure, the software will lead to many consequence errors. Hence it is essential to have a robust and error-free structure. Reusable structure software components solve this problem.

Contact Me