- The software is different from other products in terms of its special characteristic that it does not wear out.
1. Software does not wear out
- In the initial phase (burn-in phase), the failure rate is high.
- When we start testing the product, we detect faults.
- These faults are corrected which results into a drop in the failure rate.
- The second phase where the failure rate is more or less constant is called useful life of any product.
- After the completion of the useful life phase, the failure rate again increases due to the effects of environmental conditions
- Various parts begin to wear-out phase.
- This phase is called wear We do not have the wear-out phase in software.
- As the testing progresses, many failures are experienced and the required corrective actions are preformed to remove faults
- Software may become obsolete( outdated) due to following reasons technologies, change in expectations, poor response time, deterioration in the structure of the source code, complexity issues, etc.
2. Flexibility of software
According to stakeholder flexibility means
- Making changes
- Add new features or functionalities
- Modify source code
- Managing complexity
- Any changes possible at any time without much difficulty.
- Modify software is easy but mange the effect of change is difficult.
- Add new feature making difficulty to developer
- All changes must be made after proper other parts of source code.
3. Reusability of software
- The reusable component are very common and popular in practice and also reduce the cost of manufacturing although maintaining the quality standard.
- Each customer have unique requirement and expectations.
- Software reusability means integrate all well tested component in new software under development.
- Advantage: software development and testing cost are reduced.
- Use the concept of object-oriented analysis and design to make it an independent piece of software which can easily be plugged into other software.
- To make an effective, reliable, efficient software for the customers.
- To produce libraries of standard software components this can easily be integrated in order to produce a good quality product in time and within budget.
- Microsoft Foundation Classes (MFC), Commercially off-the-shelf (COTS) component
This method is also known as Object Oriented Analysis.
Here an analysis model is developed consisting of five steps:
1. Identification of classes and objects.
2. Identification of structures.
3. Definition of subjects.
4. Definition of attributes.
5. Definition of services.
- Identification of classes and objects includes investigation of the application domain and system environment.
- Each objects behavior is documented. is_a and whole part relationships are identified as structures. Each structure is classified as a subject.
- The attributes for each object are defined and kept at the appropriate level in the inheritance hierarchy.
- Services are identified by identifying operations on a class. It also includes identification of interfaces amongst the objects through messages. Each message may contain parameters for communication.
- Grady Booch approach is known as object oriented design.
- The main aim is to establish a base for the implementation of object oriented systems.
- This methodology consists of identification of interfaces at various levels.
- The main concern of this method is the iterative process and creativity of the designer in order to develop OOD.
- It follows incremental and iterative life cycle.
- It combines analysis, designan implementation and provides a sound object oriented software engineering process for analysts, designers and developers.
- The Booch methodology can be broadly divided into two processes: macro process and micro process. It is a high-level process followed by development team throughout the life cycle.
1. Macro proces
- In the first phase, the requirements are established using context diagrams and prototypes. The outcomes of this phase are core requirements of the system.The analysis process involves requirement capturing and understanding.
- It involves what of the system. This phase consists of construction of use cases, identification and prioritization of risks.
The design phase focuses on the construction of architecture of the system and involves the following
- Identifying horizontal layers
- Mapping classes to subsystems
- Release planning
- Attaching risks identified in the analysis phase to releases.
- The evolutionary phase involves implementation of the system and each release adds to the functionality of the system.
- The maintenance phase consists of post-deployments activities.
2. Micro proces
It is a lower level process.
Following recursive steps are followed in OOD micro process:
- The first step involves finding class and objects at different levels of abstraction. The next identifies the semantics by finding the meaning of the classes and objects in terms of attributes and operations. It also involves determining the use of an object by another object.
- Identification of relationship involves the process of determining the interaction amongst the classes and objects.
- The relationships identified include inheritance, uses and instance of.
- The last involves specification of interface amongst classes and objects and their implementation. It identifies data type of attributes and signature of operations.
- Here no formal notations for constructing visual diagrams are given.