What is Modeling Practice in Software Engineering ?

Models are useful for better understanding of actual entity to be built or design. Models are represented at different levels of abstraction first depict software from customer’s view point and later represent software at more technical level. The models are created to gain better understanding of actual entity to be built. When the entity is a physical thing, we can build a model that is identical in form of shape but smaller in scale. However, when the entity is software, our model must take a different form. It must be capable of representing the information that software transforms, the architecture and functions that enable the transformation to occur, the features that user’s desire, and the behavior of the system as the transformation is taking place.

There are two classes of models are created:-

1. Analysis model
2. Design model

1. Analysis model :

Analysis models represent the customer requirements by depicting the software in three different domains: the information domain, the functional domain, and the behavioral domain. A large number of analysis modeling methods have been developed. Each analysis methods has unique point of view. However, all analysis methods are related by a set of operational principles. these Analysis model principles are given below :

1. The information domain of a problem must be represented and understood :- The information domain compasses the data that flow into the system and the data stores that collect and organize persistent data objects.
2. The functions that the software performs must be defined :- Software functions provide direct benefit to visible end-user. Some functions transform data that flow into the system; in other cases, functions effect some level of control over internal software processing or external system elements.

3. The behavior of the software must be represented :- The behavior of computer software is driven by its interaction with the external environment. Input provided by end-users, control data provided by an external system, or monitoring data collected over a network all cause the software to behave in a specific way.

4. The clear hierarchy among information function and behavior must be shown :- information, function and behavior of system must be represented by using proper hierarchy which leads to easy design.

5. The analysis task should move from essential information toward implementation detail :- Analysis modeling begins by describing the problem from the end-user’s perspective. The “essence” of a problem is described without any consideration of how a solution will be implemented.

6. Design model :

The Design models represent characteristics of the software that help practitioners to construct it effectively. The design model created for software provides a variety of different views of system. There is no shortage of methods for deriving various elements of a software design. Some methods are data-driven, allowing the data structure to dictate the program architecture and the resultant processing component. Others are pattern-driven, using information about the problem domain (the analysis model) to develop architectural styles and processing patterns- a set of design principles that can be applied regardless of the method that is used. The Design model principles are given below :

1. Design should be traceable from analysis model :- Using elements if analysis model is constructed.

2. Always consider the architecture of the system to be built :- Software architecture is the skeleton of the system to be built. It affects interfaces, data structures, program control flow behavior, the manner in which testing can be conducted and the maintainability of resultant system.

3. Data should be important rather than design of functions :- Data design shows relationship between different data object shown by entity relationship between different data object shown by entity relationship diagram so data modeling is important.

4. Internal as well as External Interface must be designed :- For proper flow of data among system or external environment to system it is important to have all internal and external interface proper design is required.

5. User interface design should be tuned the needs of the end-user :- However, in every case, it should be stress free and easy to use. The user interface is the visible manifestation of the software. A poor interface design often leads to the perception that the software is “bad”.

6. Components should be functionally independent :- Functional independence is a measure of the “single- mindedness” of a software component. The functionally that is delivered by a component should be cohesive- that is, it should focus on one and only on function or sub-function.

7. Components required loosely coupled to the external environment :- The Component should be loosely coupled to one another and to external environment in the modeling system.

8. Design module should be easy to understand :- As simple modules are easy to test, debug and modify so design should be simple.

9. The design should be developed iteratively :- With each iteration, the designer should strive for greater simplicity. Like most of the creative activities, design occurs iteratively. The first iteration works to refine the design and correct errors, but later iterations should strive to make the design as simple as is possible.

Next Topic :-

No comments:

Post a Comment