Chapter 5 Revision
Chapter 5 Revision
Chapter 5
System modeling
• System modeling is the process of developing abstract models of a system,
with each model presenting a different view or perspective of that system.
• System modeling has now come to mean representing a system using some
kind of graphical notation, which is now almost always based on notations in
the Unified Modeling
Language (UML).
System perspectives
• An external perspective, where you model the context or environment of the
system.
2. Use case diagrams, which show the interactions between a system and its
environment.
3. Sequence diagrams, which show interactions between actors and the system
and between system components.
4. Class diagrams, which show the object classes in the system and the
associations between these classes.
5. State diagrams, which show how the system reacts to internal and external
events.
Context models
• Context models are used to illustrate the operational context of a system –
they show what lies outside the system’s boundaries.
• Architectural models show the system and its relationship with other systems.
System boundaries
• System boundaries are established to define what is inside and what is
outside the system.
They show other systems that are used or depend on the system being
developed.
• The position of the system boundary has a profound effect on the system
requirements.
Process perspective
• Context models simply show the other systems in the environment, not
how the system being developed is used in that environment.
• Process models reveal how the system being developed is used in broader
business processes.
UML activity diagrams may be used to define business process models.
Process model of involuntary detention
Interaction models
• Modeling user interaction is important as it helps to identify user
requirements.
• Use case diagrams and sequence diagrams may be used for interaction
modelling.
Use case Modeling
• Use cases were developed originally to support requirements elicitation
and now incorporated into the UML.
• Each use case represents a discrete task that involves external interaction
with a system.
• The objects and actors involved are listed along the top of the diagram, with a
dotted line drawn vertically from these.
• Structural models may be static models, which show the structure of the
system design, or dynamic models, which show the organization of the
system when it is executing.
You create structural models of a system when you are discussing and
designing the system architecture.
Class diagrams
• Class diagrams are used when developing an object-oriented system model to
show the classes in a system and the associations between these classes.
When you are developing models during the early stages of the software
engineering process, objects represent something in the real world, such as a
patient, a prescription, doctor, etc.
Generalization
• Generalization is an everyday technique that we use to manage complexity.
• Rather than learn the detailed characteristics of every entity that we
experience, we place these entities in more general classes (animals, cars,
houses, etc.) and learn the characteristics of these classes.
• This allows us to infer that different members of these classes have some
common characteristics e.g. squirrels and rats are rodents.
• The lower-level classes are subclasses inherit the attributes and operations
from their super-classes. These lower-level classes then add more specific
attributes and operations.
A generalization hierarchy
Object class aggregation models
• An aggregation model shows how classes that are collections are composed
of other classes.
Behavioral models
• Behavioral models are models of the dynamic behavior of a system as it is
executing. They show what happens or what is supposed to happen when a
system responds to a stimulus from its environment.
Data-driven modeling
• Many business systems are data-processing systems that are primarily driven
by data. They are controlled by the data input to the system, with relatively
little external event processing.
• They are particularly useful during the analysis of requirements as they can be
used to show end-to-end processing in a system.
Event-driven modeling
• Real-time systems are often event-driven, with minimal data processing. For
example, a landline phone switching system responds to events such as
‘receiver off hook’ by generating a dial tone.
• It is based on the assumption that a system has a finite number of states and
that events (stimuli) may cause a transition from one state to another.
State machine models
• These model the behavior of the system in response to external and internal
events.
• They show the system’s responses to stimuli so are often used for modelling
real-time systems.
• State machine models show system states as nodes and events as arcs
between these nodes. When an event occurs, the system moves from one
state to another.
• Statecharts are an integral part of the UML and are used to represent state
machine models.
Model-driven engineering
• Model-driven engineering (MDE) is an approach to software development
where models rather than programs are the principal outputs of the
development process.
• Proponents of MDE argue that this raises the level of abstraction in software
engineering so that engineers no longer have to be concerned with
programming language details or the specifics of execution platforms.
• Pros
1. Allows systems to be considered at higher levels of abstraction.
2. Generating code automatically means that it is cheaper to adapt
systems to new platforms.
• Cons
1. Models for abstraction and not necessarily right for implementation.
2. Savings from generating code may be outweighed by the costs of
developing translators for new platforms.
Model driven architecture
• Model-driven architecture (MDA) was the precursor of more general model-
driven engineering.
Types of Model
1. A computation independent model (CIM)
o These model the important domain abstractions used in a system. CIMs
are sometimes called domain models.
Executable UML
• The fundamental notion behind model-driven engineering is that completely
automated transformation of models to code should be possible.
• This is possible using a subset of UML 2, called Executable UML or xUML.
2. Class models in which classes are defined, along with their attributes
and operations.
The dynamic behavior of the system may be specified declaratively using the object
constraint language (OCL), or may be expressed using UML’s action language.
Questions
1. https://quizlet.com/39533366/software-engineering-9th-ed-by-
sommerville-chapter-5-flash-cards/
2. https://quizlet.com/207492690/software-engineering-9th-ed-by-
sommerville-chapter-5-flash-cards/
3. https://quizlet.com/ch/325589360/software-engineering-sommerville-9th-
flash-cards/