S24 SDA Lecture 2
S24 SDA Lecture 2
SESD-2222
SPRING 2024
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 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
12
What is Architecture?
13
* Reference [5]
Architecture (Cont...)
14
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
15
* 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.’
16
Software Design Vs Architecture
17
What is Software Architecture?
18
* Reference [7]
Software Design Vs Architecture
• Grady Booch says: "All architecture is design but not all
design is architecture".
19
Software Design Vs Architecture
While
i. Ariane 501
Two digits were used to show the date, e.g. 98 instead of 1998,
the year 2000 could only be represented as ’00′, which might
confuse computers into thinking it meant the year 1900
27 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.
28 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
29
Project Management Perspective
Changing requirements, tight schedules, cost constraints, high expectations for software quality etc.
Software design helps to accommodate changes to the requirements or system updates, therefore
minimizing impact on schedule, cost, and quality.
Requirements Volatility
Process
Technology
Ethical and Professional Practices
Managing Design Influences
Stakeholders
Development Organization’s Structure
31 Roles Of The Software Designer
References
1. http://java.dzone.com/articles/challenges-requirements
2. http://eduhunch.com/why-design-is-the-most-important- factor-for-future-
products/
3. http://www.informationweek.com/mobile/mobile-devices/10- best-and-worst-
cellphones-of-all-time/d/d- id/1109416?page_number=6
4. http://en.wikipedia.org/wiki/Sustainable_design
5. http://en.wikipedia.org/wiki/IEEE_1471
6. Software architecture in practice by Len Bass, Clements, Rick
Kazman Paul
7. http://www.prowareness.com/blog/software-architecture/
8. Chapter 1: “software engineering design, theory and practice by Carlos -E-Otero
”
32