Session 1 - Intro To Concepts - Complete
Session 1 - Intro To Concepts - Complete
An Introduction
5
What is Software?
6
Motivation
7
• A staircase that leads right
into a wall!!!
8
• A door that would drop you 10 feet down!
9
• An impossible to use
ATM machine
10
11
• What do you think is wrong in these real life scenarios?
• Common issues
• The final software does not fulfil the needs of the
customer
• Hard to extend and improve: if you want to add a
functionality later its mission impossible
• Bad documentation
• Bad quality: frequent errors, hard to use, ...
• More time and costs than expected
13
14
Software Design
15
What is Design?
• Design is the first step in the development phase for
any engineered product or system.
16
Software Design
17
Increasing Software Complexity
28%
Successful
49% Challenged
23% Cancelled
18
Software Design - Simplified
Requirements specification was about the WHAT the system will
do
Design is about the HOW the system will perform its functions
• provides the overall decomposition of the system
• allows to split the work among a team of developers
• also lays down the groundwork for achieving non-functional
requirements (performance, maintainability, reusability, etc.)
• takes target technology into account (e.g., kind of middleware,
database design, etc.)
19
Availability Vs. Downtime
20
Types of Non-functional Requirements
21
Software Development Activities
• Requirements Elicitation
• Requirements Analysis (e.g., Structured Analysis, OO Analysis)
– analyzing requirements and working towards a conceptual
model without taking the target implementation technology into
account
• Design
• coming up with solution models taking the target implementation
technology into account
• Implementation
• Testing
22
The Software Design Process
Requirements
spe cification
De sign a cti
vities
Archite ctur
al Interface Component Data Algorithm
Abstrac t
des ign des ign des ign structur
e des ign
spe cification
des ign
Software Data
System Interface Component Algorithm
spe cification structur e
archite ctur
e spe cifica
tion spe cification spe cifica
tion
spe cification
De sign pr
oducts
23
Levels of Software Design
• Architectural design (high-level design)
• architecture - the overall structure, main modules and their
connections
• addresses the main non-functional requirements (e.g., reliability,
performance)
• hard to change
27
SOFTWARE QUALITY
MODELS
• Quality is the excellence of the product or service.
• From a user’s point of view, quality is ‘fitness for purpose’.
• The value-based view of quality is concerned with the ability to provide
what the customer requires at a price that they can afford.
• From the manufacturing point of view, the quality of a product is the
conformance to specification.
• the product view sees the quality of a product as tied to inherent
characteristics of the product.
28
Hierarchical models
31
32
Summary
• Software
• Software Design / Common Issues
• Design phase activities in SDLC
• Architecture Vs. Design
• Design Levels
• Quality Models
33