System modeling
Vũ Thị Hồng Nhạn
(vthnhan@vnu.edu.vn)
Dept. Software Engineering, FIT, UET
Vietnam National Univ., Hanoi
Contents
Context models
Interaction models
Structural models
Behavioral models
Model-driven engineering
4/3/2025 System modeling Page 2
System modeling
System modeling is the process of developing abstract models of a system
Each model presents a different view or perspective of a system
These models are represented using some form of graphical notation, which
is now almost entirely based on UML (unified modeling language)
System modeling helps analyst understand the functionality of the system,
and the models are used to communicate with customers
4/3/2025 System modeling Page 3
Existing & planned system models
Models of existing systems are used during requirement engineering
They help clarify what the current system does and serve as a basis for
discussing its strengths and weakness
These discussions, then lead to the identification of requirements for the new
system
Models of new system are also used during requirement engineering to help
explain the proposed requirements to other system stakeholders
Engineers use these models to discuss design proposals and to document the
system for implementation
In a model-driven engineering process, it’s possible to generate a complete
or partial system implementation directly from the system model
4/3/2025 System modeling Page 4
System perspectives
An external perspective, where you model the context or environment of
the system
An interaction perspective, where you model the interactions between the
system and its environment, or between components within the system
A structured perspective, where you model the organization of the system
or the structure of the data processed by the system
A behavioral perspective, where you model the dynamic behavior of the
system and how to respond to events
4/3/2025 System modeling Page 5
UML diagram types
Use case diagrams, which show the interactions between a system and
its environment
Sequence diagrams, which show interactions between actors and the
system and between system components
Activity diagrams, which show the activities involved in a process or in
data processing
Class diagrams, which show the object classes in the system and the
associations between these classes
State diagrams, which show how the system reacts to internal and
external events
4/3/2025 System modeling Page 6
Use of graphical models
As a means of facilitating discussion about an existing or proposed system
incomplete or inaccurate models are acceptable, as their main purpose is to
support discussion
As a way of documenting an existing system
models should be accurate representation of the system, but they don’t need to
be complete
As a detailed system description that can be used to generate a system
implementation
Models must be both correct and complete
4/3/2025 System modeling Page 7
Context models
Context models are used to illustrate the operational context of a system
They show what lies outside the system boundaries
Social and organizational concerns may influence decisions about where to
position boundaries
Architectural models show the system and its relationships with other
systems
4/3/2025 System modeling Page 8
Context models
System boundaries
System boundaries are established to define what is inside and what is
outside the system
They indicate other systems that are used by, or depend on, the system
being developed
The position of the system boundary has a significant impact on the system
requirements
4/3/2025 System modeling Page 9
Context models
the context of the Mentcare system
4/3/2025 System modeling Page 10
Process perspective
Context models simply show other systems in the environment, not how the
system being developed is used within the environment
Process models reveal how the system being developed is used in broader
business process
UML activity diagrams may be used to define these business process models
4/3/2025 System modeling Page 11
Process model of involuntary detention
‘s
4/3/2025 System modeling Page 12
Interaction models
Modeling user interaction is important because it helps identify user
requirements
Modeling system-to-system interaction highlights potential communication
problems
Modeling component interaction helps determine whether the proposed
system structure is likely to deliver the required performance and
dependability
Use case diagrams and sequence diagrams may be used for interaction
modeling
4/3/2025 System modeling Page 13
Interaction models
Transfer-data use case
A use case in the Mentcare system
4/3/2025 System modeling Page 14
Interaction models
Tabular description of the ‘transfer data’ use case
Tranfer data
Actors Medical receptionist, patient records system (PRS)
Description A receptionist may transfer data from the Mentcare system to a general patient
record database maintained by a health authority
The information transferred may include either updated personal details (such
as address and phone number) or a summary of the patient’s diagnosis and
treatment
Data Patient’s personal information, treatment summary
Stimulus User command issued by medical receptionist
Comments The receptionist must have appropriate security permissions to access the
patient information and the PRS
4/3/2025 System modeling Page 15
Interaction models
Use cases in the Mentcare system involving the role ‘Medical Receptionist’
4/3/2025 System modeling Page 16
Sequence diagrams
Sequence diagrams are part of UML and are used to model the interaction
between actors and objects within a system
A sequence diagram shows the order of interactions that occur during a particular
use case
The objects and actors are listed along the top of the diagram, with dotted lines
drawn vertically beneath them
Interactions between objects are represented by annotated arrows
4/3/2025 System modeling Page 17
Sequence diagram for View patient information
4/3/2025 System modeling Page 18
Sequence diagram for Transfer Data
4/3/2025 System modeling Page 19
Structural models
Structural models of software display the organization of a system in terms of the
components that make up the system and their relationships
Structural models may be static, showing the structure of the system design, or
dynamic showing the organization of the system during execution
Structural models of a system are created during the discussion and design of the
system architecture
4/3/2025 System modeling Page 20
Class diagrams
class diagrams are used when developing an object-oriented system model
to show the classes in a system and the association between them
An object class can be thought of as a general definition of a specific kind
of system object
An association is a link between classes that indicates a relationship
between them
When developing models in the early stages of the software engineering
process, objects typically represent real-world entities, such as a patient,
prescription, doctor, etc.
4/3/2025 System modeling Page 21
UML classes and association
4/3/2025 System modeling Page 22
Classes & associations
4/3/2025 System modeling Page 23
The consultation class
4/3/2025 System modeling Page 24
Generalization
Generalization is a common technique we use to manage complexity
Instead of learning the detailed characteristics of every individual entity, we
group them into more general classes (e.g., animals, cars, houses) and
learn the characteristics of these classes
This allows us to infer that different members of a class share common
characteristics – e.g., squirrels and rats are both rodents
4/3/2025 System modeling Page 25
Generalization...
When modeling systems, it’s often useful to examine the classes in a
system to determine whether there is scope for generalization
If changes are proposed, you don’t need to review every class in the
system to see if the are affected – generalization helps localize the impact
In object-oriented languages such as Java, generalization is implemented
using the class inheritance mechanism built into the language
Lower-level classes, classed subclasses, inherit attributes and operations
from their superclasses
These subclasses can then add more specific attributes and operations
4/3/2025 System modeling Page 26
A generalization hierarchy
4/3/2025 System modeling Page 27
A generalization hierarchy with added detail
4/3/2025 System modeling Page 28
Behavioral models
Behavioral models represent the dynamic behavior of a system during
execution
They show what happens – or what is supposed to happen – when the
system responds to stimuli from its environment
These stimuli can be categorized into 2 types
Data: information arrives that must be processed by the system
Events: an occurrence triggers system processing. Events may include
associated data, though this is not always the case
4/3/2025 System modeling Page 29
Behavioral models
Data-driven modeling
Many business systems are data-driven
systems, meaning they are primarily
controlled by the data input to system
Data-driven models show the sequence of
actions involved in processing input data and
generating the corresponding output
These models are particularly useful during
requirements analysis, as they can illustrate
end-to-end processing within a system
4/3/2025 System modeling Page 30
Behavioral models
An activity model of the insulin pump’s operation
4/3/2025 System modeling Page 31
Behavioral models
Event-driven modeling
Real-time systems are often event-driven, with minimal data processing
E.g., a landline phone switching system responds to events such as
“receiver off hook” by generating a dial tone
Event-driven modeling shows how a system responds to both external and
internal events
It is based on the assumption that a system has a finite number of states,
and that events (stimuli) can cause transitions from state to another
4/3/2025 System modeling Page 32
State machine models
These models represent the behavior of a system in response to external
and internal events
They show the system’s responses to stimuli and are therefore often used
for modeling real-time systems
State machine models represent system states as nodes and events as
arcs (transitions) between these nodes
When an event occurs, the system transition from on state to another
Statecharts are an integral part of UML and are used to represent state
machine models
4/3/2025 System modeling Page 33
State diagram of a microwave oven
4/3/2025 System modeling Page 34
Microwave oven operation
4/3/2025 System modeling Page 35
States & stimuli for the microwave oven
State Description
Waiting The oven is waiting for input. The display shows the current time
Half power The oven power is set to 300 watts. The display shows ‘Half power’
Full power The over power is set to 600 watts. The display shows ‘Full power’
Set time The cooking time is set to the user’ input value. The display shows
the cooking time selected and is updated as the time is set
Disabled Oven operation is disabled for safety. Interior oven light is on. Display
shows ‘Not ready’
Enabled Oven operation is enabled. Interior light is off. Display shows ‘Ready
to cook’
Operation Oven in operation. Interior oven light is on. Display shows the timer
countdown. On completion of cooking, the buzzer is sounded for 5
seconds. Oven light is on. Display shows ‘cooking complete’ while
buzzer is sounding
4/3/2025 System modeling Page 36
States & stimuli for the microwave oven
Stimulus Description
Half power The user has pressed the half-power button
Full power The user has pressed the full-power button
Timer The user has pressed one of the timer buttons
Number The user has pressed a numeric key
Door open The oven door switches is not closed
Door closed The oven door switch is closed
Start The user has pressed the Start button
Cancel The user has pressed the Cancel button
4/3/2025 System modeling Page 37
Model-driven engineering
Model-driven engineering (MDE) is an approach to software development in
which models, rather than programs, are the principal output of the development
process
The programs that run on a hardware/software platforms are then automatically
generated from these models
Proponents of MDE argue that it raises the level of abstraction in software
engineering, allowing engineers to focus less on programming language details or
platform-specific concerns
4/3/2025 System modeling Page 38
Usage of model-driven engineering
Model-driven engineering is still at an early stage of development, and it remains
unclear whether it will have a significant impact on software engineering practices
Pros
Allows system to be considered at a high level of abstractions
Automatically generating code can reduce the cost of adapting systems to new
platforms
Cons
Models designed for abstraction may not be suitable for direct implementation
The cost savings from code generation may be offset by the expense of developing
translators for new platforms
4/3/2025 System modeling Page 39
Model-driven architecture
Model-driven architecture is a model-focused approach to software design
and implementation that uses a subset of UML models to describe a system
Models are created at different levels of abstraction
Starting from a high-level, platform-independent model, it is, in principle,
possible to generate a working program without manual intervention
4/3/2025 System modeling Page 40
Types of model
A computation independent model (CIM)
These model the important domain abstractions used in a system
CIMs are sometimes called domain models
A platform independent model (PIM)
These model the operation of the system without reference to its
implementation
The PIM is usually described using UML models that show the static system
structure and how it responds to external and internal events
Platform specific models (PSM)
These are transformations of the platform-independent model with a separate
PSM for each application platform
In principle, there may be layers of PSM, with each layer adding some platform-
specific detail
4/3/2025 System modeling Page 41
MDA transformations
4/3/2025 System modeling Page 42
Multiple platform-specific models
4/3/2025 System modeling Page 43
Agile methods and MDA
The developers of MDA claim that it is intended to support an iterative
approach to development so can be used within agile methods
The notion of extensive up-front modeling contradicts the fundamental
ideas in the agile manifesto
If transformations can be completely automated and a complete
program generated from a PIM,
then in principle, MDA could be used in an agile development process as no
separate coding would be required
4/3/2025 System modeling Page 44
Adoption of MDA
A range of factors has limited the adoption of MDE/MDA
Specialized tool support is required to covert models from one level to
another
There is limited tool availability and organizations may require tool
adaptation and customization to their environment
For the long-lifetime systems developed using MDA, companies are
reluctant to …
develop their own tools
or rely on small companies that may go out of business
4/3/2025 System modeling Page 45
Adoption of MDA...
Models are a good way of facilitating discussion about a software
design
However abstractions that are useful for discussions may not be the right
abstraction for implementation
For most complex systems, implementation is not the major problem –
requirement engineering, security and dependability, integration
with legacy systems and testing are all more significant
4/3/2025 System modeling Page 46
Adoption of MDA
The arguments for platform-independence are only valid for large, long-
lifetime systems
For software products and information systems, the savings from the use of
MDA are likely to be outweighed by the costs of its introduction and tooling
The widespread adoption of agile methods over the same period that
MDA was evolving has diverted attention away from model-driven
approaches
4/3/2025 System modeling Page 47
Key points
A model is an abstraction view of a system that ignores system details.
Complementary system models can be developed to show the system’s
context, interactions, structure and behavior
Context models show how a system that is being modeled is positioned in an
environment with other systems and processes
Use case diagrams and sequence diagrams are used to describe the
interactions between users and systems in the system being designed
Use cases describe interactions between a system and external actors
Sequence diagrams add more information to these by showing interactions
between system objects
Structural models show the organization and architecture of a system
Class diagrams are used to define the static structure of classes and their
associations
4/3/2025 System modeling Page 48
Key points
Behavior models are used to described the dynamic behavior of an
executing system
This behavior can be modeled from the perspective of the data processed by
the system, or by the events that stimulate responses from a system
Activity diagrams may be used to model the processing of data, where each
activity represents one process step
State diagrams are used to model a system’ behavior in response to
internal or external events
Model-driven engineering is an approach to software development in which
a system is represented as a set of models that can be automatically
transformed to executable code
4/3/2025 System modeling Page 49