Weekly Notes/Thoughts: Static Modeling in Software Engineering
What is Software Static Modeling?
Software Static modeling is that we model how the system of the problem domain is organized, in another word, the structure of the system, which will usually “less likely to change”, according to Gomaa(2011). In addition, he mentions that “a static model defines the classes in the system, the attributes of the classes, the relationships between classes, and the operations of each class”.
What is the purpose of Static Modeling?
Models are built to facilitate understanding of the problem so as to build a solution for it. Static Modeling, compared to the traditional approach where we analyze the problem procedurally(from when an event happens to when an event ends), offers another perspective to view the system that we need to model — structural. Static modeling, together with Dynamic modeling, which Sommerville(2015) says “shows the organization of the system when it is executing”, encourages to see the problem as a whole that is a combination of a few components and their interactions with each other. This type of Object-Oriented(OO) analysis matches our real-life experience and thus easier to understand the problem and look for a solution. From a technological view, Dutt and Subramanian(2015) talked about the advantages of a OO(Object-oriented analysis) model over a procedural model:
“In procedural model, the system behavior or capability is fragmented into multiple methods or functions, with which the data is divided into separate structures. The functions access these data and manipulate those. In order to provide access to multiple functions, many times the data are kept in global structures, making them vulnerable to outside disturbances. But in an OO model, the data (attributes) and the behavior (methods) are contained in a single object. This is the most powerful feature of the object, as the data are accessed and manipulated by the selected methods within the object, where in the data are protected from the global view. As discussed in the previous chapter, this is called data hiding (encapsulation).”
What UML artifacts do we use to create static models of our intended system?
- Class diagram
- Software system context diagram
- System context diagram
- Entity class diagram
- UML Stereotypes
Gomaa, H. (2011). Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. New York, NY: Cambridge University Press.
Sommerville, I. (2015). Software Engineering. Tenth Edition. England: Pearson Education.
Dutt, S., & Subramanian, C. (2015). Software Engineering. India: Pearson Education.