Software Design and Architecture
Software Design and Architecture
SESD-2222
Fall 2024
Maria Kiran
[email protected]
Office: Building A, Faculty Hall F202
OFFICE HOURS: Tuesday : 02:00 PM- 04:00 PM
Friday: 11:00 AM- 01:00 PM
Software Design
Software Design
What is Design?
Why Design is so important?
Levels of Design
The Design Process
What is Design?
Design is the creation of a plan or convention/agreement for the
construction an object or the system.
What is Design?
Another definition for design is a roadmap or a strategic
approach for someone to achieve a unique expectation. It
defines the specifications, plans, parameters, costs, activities,
processes and how and what to do within legal, political, social,
environmental, safety and economic constraints in achieving
that objective.
Software Design
11
What is
Architecture?
12
* Reference [5]
Architecture (Cont...)
13
Why Architecture is important?
• Architecture “constitutes a relatively small, intellectually graspable model of how the
system is structured and how its components work together” -- L. Bass
14
* Reference [6]
Software Architecture
Software Architecture (Eoin Woods)
“Software architecture is the set of design decisions which, if made incorrectly, may
cause you project to be cancelled.’
15
Software Design Vs
Architecture
16
What is Software Architecture?
17
* Reference [7]
Software Design Vs
Architecture
• Grady Booch says: "All architecture is design but not all
design is architecture".
18
20
Activity
The problem specification is as follows: there are six equal matches; connect
each match to form four equilateral triangles.
22
23 Why study Software Engineering Design ?
The reasons for studying software engineering design can be described using a :
1. Product development perspective
2. Project management perspective.
25 Product Development Perspective
designs form the foundation for all other software construction
activities create models that represent the structure and behavior of
the software system
modularization, cohesiveness, and coupling, are all born in the design
phase
For complex tasks, abstractions and encapsulation are used in software
design as means to provide a systematic approach for problem solving
software designs are reusable
26