We create models to gain a better understanding of the actual entity to be built. If the entity is a physical thing, we can build a model that is identical in form and shape but smaller in scale. However, when the entity is a software, a model is created that is capable of representing the information that software transforms, the architecture and functions that enable the transformation to occur, the features that the users desires, and the behavior of the system as the transformation is taking place.
Two classes of models are created :
1. Analysis models : they represent the customer requirements by depicting the software in three different domains : the information domain, the functional domain, and the behavioral domain. All analysis methods are related by a set of operational principles :
- The information domain of a problem must be represented and understood.
- The function that the software performs must be defined.
- The behavior of the software must be represented.
- The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered fashion.
- The analysis task should move from essential information toward implementation detail.
2. Design Models : These models represent characteristics of the software that help practitioners to construct it effectively : the architecture, the user interface, and the component-level detail. There is no shortage of methods for deriving the various elements of a software design. A set of design principles that can be applied regardless of the method that is used.
- Design should be traceable to the analysis model.
- Always consider the architecture of the system to be built.
- Design of data is as important as design of processing functions.
- Interfaces (both internal and external) must be designed with care.
- User interface design should be tuned to the needs of the end-user.
- Component-level design should be functionally independent.
- Components should be loosely coupled to one another and to the external environment.
- Design representations should be easily understandable.
- The design should be developed iteratively.

Recent Comments