Software Engineering Lecture 4: System Models
Software Engineering
Dr. Sayed AbdelGaber
Professor
Faculty of Computers and Information
Helwan University
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
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 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.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Existing and planned system models
➢ Models of the existing system
• used during requirements engineering.
• help to clarify what the existing system does and can be used
as a basis for discussing its strengths and weaknesses.
• lead to requirements for the new system.
➢ Models of the new system
• used during requirements engineering
• help to explain the proposed requirements to other system
stakeholders.
• Engineers use these models to discuss design proposals and
to document the system for implementation.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
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 structural perspective,
where you model the organization of a system or the structure of the
data that is processed by the system.
➢ A behavioral perspective,
where you model the dynamic behavior of the system and how it
responds to events.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
UML diagram types
➢ Class diagrams, which show the object classes in the system and the
associations between these classes.
➢ 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.
➢ Activity diagrams, which show the activities involved in a process or in
data processing .
➢ State diagrams, which show how the system reacts to internal and
external events.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Use of graphical models
➢ As a means of facilitating discussion about an
existing or proposed system
➢ As a way of documenting an existing system
➢ As a detailed system description that can be used to
generate a system implementation
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Types of System Models
➢ Context models
➢ Interaction models
➢ Structural models
➢ Behavioral models
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Context models
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.
➢ Context models simply show the other systems in the
environment, not how the system being developed is used in
that environment.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Process perspective
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.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Interaction models
➢ Modeling user interaction is important as it helps to
identify user requirements.
➢ Modeling system-to-system interaction highlights the
communication problems that may arise.
➢ Modeling component interaction helps us understand if a
proposed system structure is likely to deliver the required
system performance and dependability.
➢ Use case diagrams and sequence diagrams may be used for
interaction modelling.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
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.
➢ Actors in a use case may be people or other systems.
➢ Represented diagrammatically to provide an overview of
the use case and in a more detailed textual form.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Use cases represent the role of
‘Medical Receptionist’
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
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.
➢ Interactions between objects are indicated by annotated
arrows.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Sequence diagram for View patient information
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Structural models
➢ Structural models of software display the organization of a
system in terms of the components that make up that
system and their relationships.
➢ 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.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
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.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Software Engineering
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models
Dr. Sayed AbdelGaber