SE 3140
SYSTEM DESIGN AND
MODELING
Prepared by: Dams Gabriel Fall 2021
ICT University
CHAPTER 1:
Introduction to
Software Modeling
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 2
Topics Overview
• Understanding basic modeling terms
– Software Design Methods
• Software Process
– Software Model
– Software Architecture
– Software Design
• Why Modeling is Necessary?
• The Need for Model
• Impact of Software Fault
– Software design issues
• Overview of object-oriented analysis
and design with UML
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 3
Understanding Basic Terms
• Components that makes up a software
design method
Software Design Methods
Software Model
Software
Software Process
Architecture
Software Design
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 4
Understanding Basic Terms Contd..
• What is a software model?
– Abstractions that allows representation of various
layers of complex information regarding our
software.
– It can be anything that uses abstraction to capture
pieces of a software.
– The models are used to create the software
architecture.
• Modeling tool to be used
– Microsoft PowerPoint
– Microsoft Visio
– Unified Modeling Language
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 5
Understanding Basic Terms Contd..
• Why UML?
– It is more than just a diagram (unlike
PowerPoint engineering or using Visio)
– Structured Models have the graphical
elements and a well-defined semantics to go
with it.
– It combines the visuals and some sort of
specifications at the backend
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 6
Understanding Basic Terms Contd..
• What is Software Architecture?
– It is the overall structure of software system
in terms of components and connections.
– Basically, it captures the components and the
connections of the software
– The components and connections helps to
enforce design decisions that are made at the
lower level
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 7
Understanding Basic Terms Contd..
• What is Software Design?
– Activities involved in conceptualizing, framing,
implementing, commissioning, and ultimately
modifying complex systems
– Activities following requirements
specification and before programming.
– Describes the overall architecture and
blueprint of software to be constructed.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 8
Understanding Basic Terms Contd..
• What is Software Design
– One of the main components of software design
is the software requirements analysis (SRA).
• SRA is a part of the software development process
that lists specifications used in software engineering
– Two forms of Software Design
1. Process
– sequence of steps that enables the designer to describe
all aspects of the software for building
2. Model
– blueprint of software to be constructed (usually what is
given to developers to write the code)
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 9
Understanding Basic Terms Contd..
• What is a Software Process?
– How do you know when to create/design
software?
– Activities for designing, implementing, and
testing a software system
– It is a lifecycle approach to development.
– It tells us the flow of activities in the software
development. Is it waterfall, iterative etc.?
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 10
Understanding Basic Terms Contd..
• What is a Software Process?
– representation of the order of activities of
the process and the sequence in which they are
performed.
– To provide guidance for controlling and
coordinating the tasks to achieve the end
product and objectives as effectively as
possible.
– It helps us to organize our project
– lifecycle process controls the flow of activities
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 11
Understanding Basic Terms Contd..
• What is a Software Design Method?
– This is usually documented in a software
document plan (SDP) before starting a
software development project.
– The combination of the lifecycle process
model with design/modeling guidelines for
clear guidance on which artifacts should be
produced.
– Also provides heuristics for how to develop
and evaluate artifact
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 12
Why is Modeling Necessary?
• Why don’t we consider some basic
requirements and then go straight to
programming?
• Programming in the small is no longer
feasible for most application.
• Software size is increasing exponentially
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 13
Why is Modeling Necessary?
• Example from Windows OS
Year Operating System SLOC
(OS) (Million)
1993 Windows NT 3.1 >4
1994 Windows NT 3.5 >7
1996 Windows NT 4.0 >11
2000 Windows 2000 >29
2001 Windows XP >45
2003 Windows Server 2003 50
Current Windows Multi-million
• The example makes abstraction essential
so as to contain the complexity
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 14
Why is Modeling Necessary?
• Most problems with software systems
occur when different pieces have to
interact.
• Still a poorly understood problem
• Problems are often discovered late with
great cost.
• Often leads to performance issues too
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 15
The Need for Models
• A model is an abstraction, representing
varying layers and views of complex
information.
– Standard practice in nearly every engineering
discipline.
• Model helps us
– Organize
– Communicate
– Reason
– Analyze our system.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 16
The Need for Models
• We use models to develop large scale
systems, organize them into manageable
pieces and to communicate what we are
building to our customers.
• With the models, we will reason and
analyze the systems we are building
before we begin writing a line of code.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 17
The Need for Models
• We could analyze how the system will
work by simulating the execution before
writing the code.
• We can see the performance
characteristics to get out of the system.
• It is easier and cheaper to fix errors in
software design level models than to fix
things when coding
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 18
Impact of Software Fault
• Key:
• Where faults are introduced
• Where faults are found
• Estimated cost factor for fault removal
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 19
Impact of Software Fault
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 20
Impact of Software Fault
• Basically the model is the primary
software engineering artifact at this
point.
• Model-based software engineering
approaches provide a consistent, unified
model supporting analysis from the
earliest stages of the software
engineering lifecycle.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 21
Unified Modeling Language (UML)
• UML is the standard modeling language for
object-oriented software designs.
• (Just as Java or C++ is the programming
language used for implementing your
software in programming, so is UML used
for building a software design and
implemented in a programming language
that is object-oriented.
• That implies that UML is considered to be
an object-oriented modeling language.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 22
Unified Modeling Language (UML)
• UML is essentially the de-facto
standard for software model in the
world.
• It is controlled by the object
management group (OMG)
– Version 1.x – deprecated – lax semantics
– Version 2.x – most UML tools support this
version – stronger semantics
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 23
Unified Modeling Language (UML)
• Provides three basic types of models:
1. Use Case Models (Requirement oriented
models)
2. Static Models (complementary set of design
models)
3. Dynamic Models
• The three models represents different
viewpoints of the model
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 24
Unified Modeling Language (UML)
• Use Case Models
– Captures the requirements of a system.
– Captures outside view of a system.
– Identify the external and internal factors
influencing the system.
– Show the interaction among the requirements.
– It is the overall big picture of the
requirements and what the system has to do.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 25
Unified Modeling Language (UML)
• Static Models
– It tells us what information we have in the
system and what a sub-system needs to know
about another sub-system.
– Captures basic structure and static elements
such as:
• what type of classes do we have in the system
• what information do we have in the classes
• what do the classes need to know about each other
etc.
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 26
Unified Modeling Language (UML)
• Dynamic Models
– It tells us how things work in response to
generating events coming into the system.
– Captures behavioral elements (how the system
works). It will use the classes defined in the
static models to create instances of those
classes called object.
– It will show how the objects will communicate
back and forth to satisfy the use cases
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 27
Q&A
SE 3140 - System Design and Modelling Prepared by Dams G. L. Chapter 1: Slide 28