Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

Software Engineering Week 11 12

The document discusses various aspects of software engineering, focusing on system modeling, including context, interaction, structural, and behavioral models. It emphasizes the importance of graphical models for facilitating discussions, documenting systems, and guiding implementation, while also detailing the use of UML diagrams for modeling processes and interactions. Additionally, it covers model-driven engineering, highlighting its benefits and drawbacks in raising abstraction levels and automating programming.

Uploaded by

chimranishakti
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Software Engineering Week 11 12

The document discusses various aspects of software engineering, focusing on system modeling, including context, interaction, structural, and behavioral models. It emphasizes the importance of graphical models for facilitating discussions, documenting systems, and guiding implementation, while also detailing the use of UML diagrams for modeling processes and interactions. Additionally, it covers model-driven engineering, highlighting its benefits and drawbacks in raising abstraction levels and automating programming.

Uploaded by

chimranishakti
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Engineering

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 - position in the environment


Behavior - Activity diagram shows workflow

Interaction - users (including other systems) and your system


 Use cases - who touches what
 Sequence diagrams - messages sent back and forth in a sequence.

Structural - organization and architecture of a system.


 Class diagrams - define the static structure of classes in a system and their association to other classes
Topics covered

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

Model the new system - discuss new system requirements

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.

documenting an existing system


 accurate representation of the system but need not be complete.

basis for system implementation


 Models have to be both correct and complete.
Context models

Context models
 Show what lies outside the system boundaries.
 Does not show process or how the systems interact

 Must first determine system boundaries


 Systems that need your system and those your system needs
 Profoundly effects system requirements
 Political judgment

• The boundary will often effect workflows in different departments


The context of the MHC-PMS
UML Activity Diagrams - behavior
• Can be used to define high level business process or workflows
• Shows how the system will be used at a high level
• Order of activity made of many actions
• Different from flowcharts - Support parallel behavior
• Shows essential sequencing

• 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

• Originally developed for requirements phase


• Shows system boundary
• Shows interactions with the outside world
• Model discrete task - Set of scenarios with one goal
• Actors (roles) may be people or other systems.
• Diagram or Text
• Start with the main success case
• Write the other scenarios into the case as extensions
• Can include other already defined use cases
• Pre-condition / Guarantee at end / Trigger to start event
• Keep steps simple and show who is involved in each step
Transfer-data use case

A use case in the MHC-PMS


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 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.

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.
Use cases in the MHC-PMS involving the role ‘Medical
Receptionist’
Sequence diagrams - Interaction

• Sequence during a single scenario or use case


• See behavior of several objects in one use case
• Illustrate calls between participants and who is in charge of each step
• Do not illustrate algorithms, loops, and conditions well

• The objects and actors (participants) at the top


• Dotted line drawn vertically (lifeline) from each participant
• Rectangle over dotted line for activation of object
• Interactions between objects -> annotated arrows
• Data passing can be listed on arrows. Can put a participant name on an arrow
• No need to determine how data is gathered, just that it is needed
• Use a return arrow if you feel it will be helpful
• Read Top to bottom; starting top left
• Alt box - can handle conditions; conditions in [ ]
Sequence diagram for View patient information
Sequence diagram for Transfer Data
Class diagrams - Structural

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

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.
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.

Use a diamond at the containing side

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

● States—values of an object’s attributes at a point in time


● Events—the cause of the change in values of the object’s attributes
● Transitions—movement of an object from one state to another
● May include a guard condition to flag that a condition is true and allow the transition
State Machine Syntax
Sample State Machine

You might also like