In Our previous article we spoke about 4+1 paradigm
that give the software architect deep and comprehensive view of the software system as all and the ability to break down the system into a series of views.
And we have discussed how every of it's view is implemented and benefits of each.
Today we will speak about another point of view for the Software System under construction by the system architect the view depends of the nature of software process it self this is called SDI paradigm of (Static - Dynamic – Implementation Paradigm).
As it's clear form paradigm name it's based on showing the dynamic and static and implementation (which is a subset of static) aspects of the software system under construction.
We will speak in this article following the outlines
1- Introduce each aspect and why it's important in the software architecture process.
2- Specify the UML diagrams which is used to introduce this aspect.
3- Finally we give a simple comparison between these aspects.
It shows the structural characteristics of the system, and gives the architect a deep view into the structure of being designed system. We can conclude its benefits into the following points.
* Shows System's Structure.
* Emphasizes the parts that make up the system
* Defines classes names, attributes, methods signatures and packages.
The static models consist of one or all of the following diagrams.
* Class diagram
* Object diagram.
* Use case diagram.
It shows the behavioral characteristics of the system and give the software architect a logical overview of how the different component of the system will interact and how the things will be driven to happen. We can summarize its benefits and uses in the following points
* Shows the system behavior in response to different events.
* Identify the needed object and how they interact among them using the event and functions.
* Help in designing logic and behavior of the system.
And the following UML diagrams are used to represent the dynamic view of the system.
* Sequence diagram.
* Communication diagram.
* State diagram.
* Activity diagram.
They are as stated previous a sub set of static models that give us a view for which is needed to be deployed as a part of the software system. And its benefits is
* Shows the different elements the system needs to be deployed.
* Organize the software components and other physical resources such as hardware and connection paths.
The UML diagram that represents the implementation models are
* Component diagrams.
* Deployment diagrams.
Static-Dynamic Models Final Notes
Which models is best for which situation?
* Static diagrams (especially class diagrams) give developers' detailed information about classes, data types, parameters and namespaces. And considered as the backbone of the UML system.
* Dynamic diagrams such as sequence and communication diagrams helps in defining Objects and how they are interact so don't skimp the dynamic models they are equally important by the static one.
* All software process management methodologies recommend developing these models in parallel at the same time.