05 SWEng - System Modeling Part I
05 SWEng - System Modeling Part I
modelling &
Design
Software Engineering
Platform Information: Most software interfaces with other software systems. These
include the operating system, database, middleware, and other application systems.
These make up the ‘software platform’, the environment in which the software will
execute. Information about this platform is an essential input to the design process, as
designers must decide how best to integrate it with the software’s environment.
Data Description: If the system is to process existing data, then the description of that
data may be included in the platform specification; otherwise, the data description must
be an input to the design process so that the system data organization to be defined.
Software Engineering - H.A.
Design Process Activities
4
You may develop models of both the existing system and the system to
be developed:
1. 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.
2. 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. In a model-driven engineering process, it is
possible to generate a complete or partial system implementation from the
system model.
Software Engineering - H.A.
System Perspectives
11
You may develop different models to represent the system from different
perspectives.
For example:
1. An external perspective, where you model the context or environment of
the system.
2. An interaction perspective where you model the interactions between a
system and its environment or between the components of a system.
3. A structural perspective, where you model the organization of a system or
the structure of the data that is processed by the system.
4. A behavioural perspective, where you model the dynamic behaviour of the
system and how it responds to events.
Software Engineering - H.A.
12
Context models normally show that the environment includes several other
automated systems. However, they do not show the types of relationships
between the systems in the environment and the system that is being specified.
External systems might produce data for or consume data from the system.
They might share data with the system, or they might be connected directly,
through a network or not connected at all.
They might be physically co-located or located in separate buildings.
All of these relations may affect the requirements and design of the system being
defined and must be taken into account.
Therefore, simple context models are used along with other models, such as
business process models. These describe human and automated processes in
which particular software systems are used.
Software Engineering - H.A.
The Context of the MHC-PMS
15
UML stands for Unified Modeling Language. The Unified modelling Language is a set of more than 9
different diagram types that may be used to model software systems. It emerged from work in the
1990s on object-oriented modelling where similar object-oriented notations were integrated to
create the UML. A major revision (UML 2) was finalized in 2004. The UML is universally accepted as
the standard approach for developing models of software systems. Variants have been proposed
for more general system modelling.
Business Use Case diagram
Use Case diagram
Activity diagram
Class diagram
Sequence diagram
Collaboration diagram
Statechart diagram
Component diagram
Deployment diagram
These model diagrams illustrate different aspects of the system
Focus on what the system should do, not how the system will
So, when you have the final list of use cases, how do you know if you've found them all?
- Have you considered how each end user will be using the system?
- What information will each end user be providing for the system?
- What information will each end user be receiving from the system?
- Have you considered maintenance issues? Someone will need to start the system and
shut it down.
- Have you identified all of the external systems with which the system will need to
interact?
- What information will each external system be providing to the system and receiving
Software Engineering - H.A.
from the system?
25
A sequence diagram
It includes:
*A brief description: Each use case should include a short description that explains
what the use case will do
Preconditions: list any conditions that have to be met before the use case can start
at all. For example, the precondition for one use case may be that another use
case has run
*Flow of events
Post conditions: are conditions that must always be true after the use case has
finished executing. Like preconditions, post conditions can be used to add
information about the order in which the use cases are run
Includes relationship allows one use case to use the functionality provided by
another use case
This relationship can be used in one of two cases:
First, if two or more use cases have a large piece of functionality that is
identical
The second case where an includes relationship is helpful is a situation in which a
single use case has an unusually large amount of functionality
An includes relationship suggests that one use case always uses the functionality
provided by another
<<includes>>
IMP: The arrow is drawn from the use case that is optionally run ("Check Credit") to
the use case that is being extended ("Change Reservation")
Software Engineering - H.A.
Abstract Use Case
35
<<includes>>
For example, you may have two types of customers. If the type A
customers will be initiating some use cases that type B customers will not, it's
probably worth including the actor generalizations. If both types of
customers use the same use cases, it's probably not necessary to show an
actor generalization
The objects and actors involved are listed along the top of the
diagram, with a dotted line drawn vertically from these.
Interactions between objects are indicated by annotated arrows.
The rectangle on the dotted lines indicates the lifeline of the object
concerned (i.e., the time that object instance is involved in the
computation).
You read the sequence of interactions from top to bottom. The
annotations on the arrows indicate the calls to the objects, their
parameters, and the return values.