Unit3-System Modeling
Unit3-System Modeling
2
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 modelling helps the analyst to understand the functionality of the system and
models are used to communicate with customers.
3
Existing and planned system models
• Models of the existing system are used during requirements engineering. They help clarify
what the existing system does and can be used as a basis for discussing its strengths and
weaknesses. These then lead to requirements for the new system.
• Models of the new system are used during requirements 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.
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 a system and its
environment, or between the components of a system.
• A behavioral perspective, where you model the dynamic behavior of the system and
how it responds to events.
5
UML diagram types
• Activity diagrams, which show the activities involved in a process or in data processing
• 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.
• 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.
6
Use of graphical models
7
Context models
8
Context models
• Context models are used to illustrate the operational context of a system - they show
what lies outside the system boundaries.
• Social and organisational concerns may affect the decision on where to position system
boundaries.
• Architectural models show the system and its relationship with other systems.
9
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.
10
The context of the Mentcare system
11
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.
12
Process model of involuntary detention
13
Interaction models
14
Interaction models
• Use case diagrams and sequence diagrams may be used for interaction modeling.
15
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.
16
Transfer-data use case
17
Tabular description of the ‘Transfer data’ use-case
MHC-PMS: Transfer data
Actors Medical receptionist, patient records system (PRS)
Description A receptionist may transfer data from the Mentcase system to a
general patient record database that is maintained by a health
authority. The information transferred may either be updated
personal information (address, phone number, etc.) or a summary of
the patient’s diagnosis and treatment.
Data Patient’s personal information, treatment summary
Stimulus User command issued by medical receptionist
Response Confirmation that PRS has been updated
Comments The receptionist must have appropriate security permissions to
access the patient information and the PRS.
18
Use cases in the Mentcare system involving the role ‘Medical
Receptionist’
19
Sequence diagrams
• Sequence diagrams are part of the UML and are used to model the interactions
between the actors and the objects within a system.
• A sequence diagram shows the sequence of interactions that take place during a
particular use case or use case instance.
• The objects and actors involved are listed along the top of the diagram, with a dotted
line drawn vertically from these.
20
Sequence diagram for View patient information
21
Sequence
diagram for
Transfer Data
22
Structural models
23
Structural models
• 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.
24
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.
• An object class can be thought of as a general definition of one kind of system object.
• An association is a link between classes that indicates that there is some relationship
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.
25
UML classes and association
26
Classes and associations in the MHC-PMS
27
The Consultation class
28
Generalization
• 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.
29
Generalization
• In modeling systems, it is often useful to examine the classes in a system to see if there is scope for
generalization. If changes are proposed, then you do not have to look at all classes in the system to
see if they are affected by the change.
• In a generalization, the attributes and operations associated with higher-level classes are also
associated with the lower-level classes.
• The lower-level classes are subclasses inherit the attributes and operations from their
superclasses. These lower-level classes then add more specific attributes and operations.
30
A generalization hierarchy
31
A generalization hierarchy with added detail
32
Object class aggregation models
• An aggregation model shows how classes that are collections are composed of other
classes.
• Aggregation models are similar to the part-of relationship in semantic data models.
33
The aggregation association
34
Behavioral models
35
Behavioral models
• Events Some event happens that triggers system processing. Events may have associated
data, although this is not always the case.
36
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.
• Data-driven models show the sequence of actions involved in processing input data
and generating an associated output.
• They are particularly useful during the analysis of requirements as they can be used to
show end-to-end processing in a system.
37
An activity model of the insulin pump’s operation
38
Order processing
39
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.
• Event-driven modeling shows how a system responds to external and internal events.
• 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.
40
State machine models
• These model the behaviour 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.
41
State diagram of a microwave oven
42
Microwave oven operation
43
States and stimuli for the microwave oven (a)
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 oven power is set to 600 watts. The display shows ‘Full power’.
Set time The cooking time is set to the user’s 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 oven 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 five
seconds. Oven light is on. Display shows ‘Cooking complete’ while
buzzer is sounding. 44
States and stimuli for the microwave oven (b)
Stimulus Description
Half power The user has pressed the half-power button.
45
Model-driven engineering
46
Model-driven engineering
• 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.
47
Usage of model-driven engineering
• Pros
• Allows systems to be considered at higher levels of abstraction
• Generating code automatically means that it is cheaper to adapt systems to new platforms.
• Cons
• Models for abstraction and not necessarily right for implementation.
• Savings from generating code may be outweighed by the costs of developing translators for new
platforms.
48
Model Driven Architecture (MDA)
49
Types of model
51
Multiple platform-specific models
52
Agile methods and MDA
• The notion of extensive up-front modeling contradicts the fundamental ideas in the
agile manifesto and I suspect that few agile developers feel comfortable with model-
driven engineering.