Software Engineering Week 11 12
Software Engineering Week 11 12
System Modeling
Key points
Model definition - abstract view of a system that ignores system details. Types: system’s context,
interactions, structure and behaviour.
Context models
Interaction models
Structural models
Behavioral models
Model-driven engineering
Existing and planned system models
Model the existing system - clarify minimum needs and current process
In a model-driven engineering process, use MDA (model driven architecture) to create
code from the models.
System perspectives
• External
• context and environment (context model)
• Interaction
• Between system and its external environment (use case)
• Between the components of a system. (sequence diagram)
• Structural
• organization of a system (class diagram)
• structure of the data
• Behavioral
• Response to events (state diagram, activity diagram)
Use of graphical models
facilitating discussion
Incomplete and incorrect models are OK as their role is to support discussion.
Context models
Show what lies outside the system boundaries.
Does not show process or how the systems interact
• Components
• Actions box - (can be a basis for another activity diagram)
• Process line
• Fork line - one in and several out - multiple actions can start
• Join line - close parallel actions - every action done by this line
• Condition diamonds - decisions
• Branch diamond - start conditional
• Merge diamond - join back to the flow
• Partition lines
• Illustrate which system does what
Process model of involuntary detention
Use case modeling - Interaction
Description A receptionist may transfer data from the MHC-PMS 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.
Comments The receptionist must have appropriate security permissions to access the
patient information and the PRS.
Use cases in the MHC-PMS involving the role ‘Medical
Receptionist’
Sequence diagrams - Interaction
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.
UML classes and association
Classes and associations in the MHC-PMS
The Consultation class
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.
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 object-oriented languages, such as Java, generalization is implemented using the class inheritance
mechanisms built into the language.
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 super classes.
These lower-level classes then add more specific attributes and operations.
A generalization hierarchy
A generalization hierarchy with added detail
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 / has –a relationship in semantic data models.
Fill the diamond if the part cannot exist without the whole
The aggregation association
Usage of model-driven engineering
MDE
Raise level of abstraction in program specification
Increase automation in programming
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.
Components of State Machines