Download Software Development and more Lab Reports Software Development Methodologies in PDF only on Docsity!
Unit- 1
Introduction to Software Design and Architecture
Overview
1.1 Overview of software design and architecture 1.2 Design levels: Architectural vs. detailed design 1.3 Design principles (modularity, abstraction, separation of concerns) 1.4 The role of the software architect 1.5 Key design goals: Performance, scalability, maintainability 1.6 Relationship between software design and software architecture 1.7 Object Oriented Software Development: Unified Software Development Process.
Vitruvius - De architectura
- Marcus Vitruvius Pollio (born c. 80-70 BC, died after c. 15 BC)
- author of De Architectura , known today as The Ten Books on
Architecture
- carefully described existing practices, not only in the design and
construction of buildings, but also in what are today thought of as
engineering disciplines
- Vitruvius is famous for asserting that a structure must exhibit the
three qualities of firmitas, utilitas, venustas - that is, it must be strong
or durable, useful, and beautiful.
Roman house plan after Vitruvius
More Architectures
Taj Mahal
Build a Palace?
Build a Palace?
?
Software Development
- Lists
- Arrays
- Class
- Object
- Procedures
- Functions
- Algorithms
- Etc.
Large-Scale, Complex software Systems…
- Large(Distributed) system
- Many people working on the
same problem
- Overly Complex
- Millions of Code…
- Should be delivered on time and
within budget!
Adding More Programmers… ??
Mythical Man-Month
- Fred Brooks, The Mythical Man-Month( 1975 )
- “Adding manpower to a late software project makes it later.”
- Conceptual Integrity
- To make a user-friendly system, the system must have conceptual integrity, which can only be achieved by separating architecture from implementation.
- A single chief architect... decides what goes in the system and what stays out.
- "Having a system architect is the most important single step toward conceptual integrity...after teaching a software engineering laboratory more than 20 times, I came to insist that student teams as small as four people choose a manager, and a separate architect."
The Architect…
Structure Matters - Dijkstra 1968
- Dijkstra, 1968
- "...Correct arrangement of the structure of software systems before simple programming..."
- Layered Structure
- Programs are grouped into layers
- Programs in one layer can only communicate with programs in adjoining layers
- With easier development and maintenance Focused on Structure of Programming Edsger W. Djikstra 1930 - 2002 A.D.