In the system analysis or object-oriented analysis phase of software development, the system requirements are determined, the classes are identified and the relationships among classes are identified.
The three analysis techniques that are used in conjunction with each other for object-oriented analysis are object modelling, dynamic modelling, and functional modelling.
Object modelling develops the static structure of the software system in terms of objects. It identifies the objects, the classes into which the objects can be grouped into and the relationships between the objects. It also identifies the main attributes and operations that characterize each class.
The process of object modelling can be visualized in the following steps −
After the static behavior of the system is analyzed, its behavior with respect to time and external changes needs to be examined. This is the purpose of dynamic modelling.
Dynamic Modelling can be defined as “a way of describing how an individual object responds to events, either internal events triggered by other objects, or external events triggered by the outside world”.
The process of dynamic modelling can be visualized in the following steps −
Functional Modelling is the final component of object-oriented analysis. The functional model shows the processes that are performed within an object and how the data changes as it moves between methods. It specifies the meaning of the operations of object modelling and the actions of dynamic modelling. The functional model corresponds to the data flow diagram of traditional structured analysis.
The process of functional modelling can be visualized in the following steps −
The Structured Analysis/Structured Design (SASD) approach is the traditional approach of software development based upon the waterfall model. The phases of development of a system using SASD are −
Now, we will look at the relative advantages and disadvantages of structured analysis approach and object-oriented analysis approach.
|Focuses on data rather than the procedures as in Structured Analysis.||Functionality is restricted within objects. This may pose a problem for systems which are intrinsically procedural or computational in nature.|
|The principles of encapsulation and data hiding help the developer to develop systems that cannot be tampered by other parts of the system.||It cannot identify which objects would generate an optimal system design.|
|The principles of encapsulation and data hiding help the developer to develop systems that cannot be tampered by other parts of the system.||The object-oriented models do not easily show the communications between the objects in the system.|
|It allows effective management of software complexity by the virtue of modularity.||All the interfaces between the objects cannot be represented in a single diagram.|
|It can be upgraded from small to large systems at a greater ease than in systems following structured analysis.|
|As it follows a top-down approach in contrast to bottom-up approach of object-oriented analysis, it can be more easily comprehended than OOA.||In traditional structured analysis models, one phase should be completed before the next phase. This poses a problem in design, particularly if errors crop up or requirements change.|
|It is based upon functionality. The overall purpose is identified and then functional decomposition is done for developing the software. The emphasis not only gives a better understanding of the system but also generates more complete systems.||The initial cost of constructing the system is high, since the whole system needs to be designed at once leaving very little option to add functionality later.|
|The specifications in it are written in simple English language, and hence can be more easily analyzed by non-technical personnel.||It does not support reusability of code. So, the time and cost of development is inherently high.|