0% found this document useful (0 votes)
20 views33 pages

Session 1 - Intro To Concepts - Complete

The document serves as an introduction to Software Design and Architecture, outlining key concepts such as the definition of software, the importance of design, and common issues in software development. It discusses the design phase in the Software Development Life Cycle (SDLC), differentiating between architectural and detailed design, and emphasizes the significance of quality models. The course is taught by Lec. Fawad Khan and includes various recommended and reference books.

Uploaded by

shanireal420
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views33 pages

Session 1 - Intro To Concepts - Complete

The document serves as an introduction to Software Design and Architecture, outlining key concepts such as the definition of software, the importance of design, and common issues in software development. It discusses the design phase in the Software Development Life Cycle (SDLC), differentiating between architectural and detailed design, and emphasizes the significance of quality models. The course is taught by Lec. Fawad Khan and includes various recommended and reference books.

Uploaded by

shanireal420
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Software Design and Architecture

An Introduction

Instructor: Lec. Fawad Khan


Email: [email protected]
Email: [email protected]
Course Code: SE-210
Recommended Books
Reference Books
Outline
• What is Software?
• Motivation for Software Design?
• Common Issues (Software Development)
• What is Design?
• Software Design
• Requirements Vs. Design
• Importance of Software Design
• Design phase in SDLC – architecture and detailed design
• Quality Models 4
What is Software?

5
What is Software?

• Software comprises of:


• Data
• Code/programme
• Documentation

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?

• The requirements are correct!


• A staircase next to the outer wall
• A door on the first floor
• An ATM outside the bank branch
• The bridge

• The design is flawed!


• The execution based on the design results in disaster.
12
Problems in software development

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

• Design is about HOW the system will perform its


functions.

16
Software Design

• A software design is a meaningful engineering


representation of some software product that is to be
built.

“The process of applying various techniques and


principles for the purpose of defining a device, a
process or a system in sufficient detail to permit
its physical realization” [TAY59]

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

Availability % Downtime per year


90% ("one nine") 36.5 days
95% 18.25 days
97% 10.96 days
98% 7.30 days
99% ("two nines") 3.65 days
99.5% 1.83 days
99.8% 17.52 hours
99.9% ("three nines") 8.76 hours
99.95% 4.38 hours
99.99% ("four nines") 52.56 minutes

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

• Detailed design (low-level design)


• the inner structure of the main modules
• detailed enough to be implemented in the programming language
24
25
Design vs. Architecture
• Architecture is concerned with the selection of architectural
elements, their interaction, and the constraints on those
elements and their interactions

• Design is concerned with the modularization and detailed


interfaces of the design elements, their algorithms and
procedures, and the data types needed to support the
architecture and to satisfy the requirements.

• Architecture…is specifically not about…details of


implementations (e.g., algorithms and data structures.)
26
Software Quality Models

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

• McCall divided software quality attributes into 3 groups

• Each group represents the quality with respect to one


aspect of the software system while the attributes in the
group contribute to that aspect.

• Each quality attribute is defined by a question so that the


quality of the software system can be assessed by
answering the question.
29
30
Relational models

• Perry’s model contains three types of relationship


between the quality attributes.
• The direct relationship
• The inverse relationship
• The neutral relationship

31
32
Summary

• Software
• Software Design / Common Issues
• Design phase activities in SDLC
• Architecture Vs. Design
• Design Levels
• Quality Models

33

You might also like