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.




Software engineer and a blockchain noob. Excited about the new world!!LinkedIn:https://www.linkedin.com/in/yingqi-chen/

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

SQL: Creating Tables

Pizza Time — Sprint 2: Working with other developers and Integration

Basic Python Commands

Creating Anki flashcards from koreanclass101 site

How to Install Openfire XMPP Server on Ubuntu

Method to make any deformer control bind joint

How to scale #TechTeams, with Stan Polu (Stripe)

Why Honest People Cheat

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Yingqi Chen

Yingqi Chen

Software engineer and a blockchain noob. Excited about the new world!!LinkedIn:https://www.linkedin.com/in/yingqi-chen/

More from Medium

Embracing Test-Driven Development

Test-Driven Development Cycle

Simple Team Management Practices

Understanding Software Cohesion & Coupling

Code hyper-specific solutions to problems