A good design aims for:
Software Design
The purpose of design, quality guidelines and design principles, fundamental concepts (abstraction, architecture, modularity, information hiding, stepwise refinement, functional independence: cohesion and coupling), architectural patterns (MVC, layered, client–server, repository, pipe and filter) and user-interface design rules.
How to read this page
Every original slide is shown unchanged. Yellow marks on a slide point to a numbered note: hover or tap a mark to jump to its note, and hover a note to see its marks. Questions tagged Past exam appeared on a real paper; Prediction questions are likely angles, not confirmed. Pick an answer to each question: a wrong pick tells you why it is wrong, so you can try again.
All 50 slides
- 1 Slide 1
- 2 Design
- 3 Purpose of Design
- 4 Software Design
- 5 Software Engineering Design or From Analysis Model to Design Model
- 6 A possible step-by-step guide:
- 7 Design and Quality
- 8 Quality Guidelines
- 9 Quality Guidelines
- 10 Design Principles
- 11 Design Principles
- 12 Design Principles
- 13 Fundamental Concepts
- 14 Best practices
- 15 Architecture
- 16 Architecture
- 17 Modularity
- 18 Modularity
- 19 Sizing Modules: Two Views
- 20 Information Hiding
- 21 Stepwise Refinement
- 22 Stepwise Refinement
- 23 Functional Independence
- 24 Functional Independence
- 25 Architectural abstraction
- 26 Uses of Architectural Model
- 27 Non-functional system Requirements dictate Architectural Style
- 28 Slide 28
- 29 Architectural patterns
- 30 The Model-View-Controller (MVC) pattern
- 31 Model-View-Controller
- 32 Model-View-Controller
- 33 Layered architecture
- 34 A generic layered architecture
- 35 A generic layered architecture
- 36 Two Tier Client-Server Architecture
- 37 Data-Centered/Repository Architecture
- 38 Data-Centered/Repository Architecture
- 39 Data-Centered/Repository
- 40 Data Flow/Pipe &Filter Architecture
- 41 Data Flow/Pipe &Filter Architecture
- 42 Interface Design
- 43 Interface Design
- 44 Design Issues
- 45 Golden Rules
- 46 Interface Design
- 47 Interface Analysis
- 48 WebApp Interface Design
- 49 Effective WebApp Interfaces
- 50 References
Purpose of Design
Notes
Design translates requirements into a blueprint for construction; it is where quality is built in.
Design Principles
Notes
Principles: design should be traceable to requirements, not reinvent the wheel, minimize the gap with the problem, be uniform, accommodate change.
Fundamental Concepts
Notes
Fundamental concepts: abstraction, architecture, patterns, separation of concerns, modularity, information hiding, functional independence, refinement, refactoring.
Modularity
Notes
Modularity: divide into modules. Too few = hard to understand; too many = integration cost. Aim for the minimum-cost region.
Functional Independence
Notes
Functional independence: HIGH cohesion (a module does one thing) and LOW coupling (few dependencies between modules).
Memory trick High cohesion, low coupling.
Exam angle
Architectural patterns
Notes
Architectural pattern: a proven, reusable solution to a recurring architecture problem.
The Model-View-Controller (MVC) pattern
Notes
MVC: Model (data and logic), View (presentation), Controller (handles input, updates model). Lets one model have many views.
Exam angle
In MVC, the component that handles user input is the:
Layered architecture
Notes
Layered: each layer uses only the layer below (UI → business logic → data). Easy to replace layers; performance overhead.
Two Tier Client-Server Architecture
Notes
Client–server: services on servers, clients request them over a network.
Data Flow/Pipe &Filter Architecture
Notes
Pipe and filter: data flows through a sequence of transformations (compilers, batch processing).
Exam angle
A compiler (lexer → parser → code generator) best fits which pattern?
Golden Rules
Exam angle
Which is one of Mandel’s golden rules?