The Software development process is similar to other development processes and can be divided into smaller, interacting subprocesses. The software development process is a series of transformations:
Software can be evaluated using four quality measures:
Object-oriented software development approach helps to view problem are a collection of objects interacting with each other to accomplish specified tasks and activities. It is difficult to have a well-defined problem, users are uncertain about the needs. Object-oriented software development advocates incremental development process to develop high-quality software. In Incremental development process software is developed in increments; refining, improving increment by increment. Object-oriented system development includes following activities:
In the object-oriented analysis phase, the system requirements, classes and their relationships are identified. The actors of users of the system are determined, how they use the system. The concept of use case (name given by Ivar Jacobson for scenario) to describe the interaction between user and computer system is used to understand requirements of the users.
Use-case modeling, a method for expressing high-level processes and analyzing interaction between user and system is used during Object-oriented Analysis phase. The use-case model shows the users’ view of the software system and users’ need. Use-cases are developed iteratively; classes and their relationships are identified as use-case model becomes clearly understood and developed.
In the object-oriented design, classes identified during the analysis phase are design. Additional classes their relationships, interfaces are also identified and designed. The analysis and design phases overlap with each other. The object-oriented development is highly incremental in nature; analysis, design, then more analysis, refine, design process will continuously go on during the life cycle of the software development.
Prototype is a model. In the object-oriented analysis and design prototypes of some of the components of the system are created to get better understanding and picture of the system components. The developed prototypes are shown to the user for their comments on the usability and usefulness of those components. Prototypes give chance to define the use cases. Prototype helps to test and refine the user interfaces; the usability of those interfaces can be also increased. More details are added to the prototype as the prototype becomes consistent with the users requirements; prototype with added details are tested, evaluated and then refined during the develop process until the application components work properly.
It is not necessary to develop software from the scratch. Software can be developed by integrating in-house built and well-tested components available in the Internet or the market. Basic ideas in using component-based development are: application can be developed quickly and a large collection of interpretable software components can be made available to other developers. Software components are functional units of a program; these components can interact with another component;
In object-oriented development method, analysis and design is done iteratively; software is developed in incremental fashion. Each development component should be tested immediately. If testing is done late after full-blown software is developed and problems, issues were found then it will be difficult to address those issues and problems. Object-oriented analysis and design approach advocates incremental testing of the components.
Object-oriented system development makes reusable components. That is components developed, tested, evaluated for correctness, correspondence during the system development can be used in another software.