Download presentation
Presentation is loading. Please wait.
Published byDarleen Parrish Modified over 9 years ago
1
Architectural Design Identifying system components and their interfaces
2
Reading 10.0 Overview of Architectural Design 10.1 Some classic architectural models 10.3 Sub system (module) design 14.3 Design patterns
3
Types of Design System –hardware, software, humans, other systems Architectural –Identifying what system components do and their interfaces Detailed –How the components do it User Interface Database
4
Basis for Decisions Application knowledge Skill and intuition … Goals … Software design knowledge … Methodology
5
Skill and Intuition use of abstraction and information hiding stepwise refinement highly cohesive units low coupling between units generalize
6
Potential Goals I Performance –localize critical operations within small number of sub-systems and minimize communication Security –perhaps a layered approach with increasing security at each layer
7
Potential Goals II Availability –include redundant components –state based approach with rollback ability Maintainability –fine grain, self contained components that can be easily changed –avoid shared data structures
8
Software design knowledge: Classic structural approaches – the Repository Model see Fig 10.2 shared data held in central database advantages –efficient data storage –good separation of concerns disadvantages –data model might not match each subsystem –evolution may be difficult
9
Software design knowledge: Classic structural approaches – the Client-Server Model see Fig 10.3 stand alone clients and servers a network for communication advantages –effective use of many processors –easy to upgrade parts disadvantage –repetitive functionality needed across system
10
Software design knowledge: Classic structural approaches – the Abstract Machine Model see Figure 10.4 sub-systems in layers advantages –supports incremental development –minimizes effects of changes –good portability disadvantages –difficult –performance can be a problem
11
Basis for Decisions Application knowledge Skill and intuition … Goals … Software design knowledge … Methodology
12
Sub-system Design Sommerville calls this modular design Fuzzy boundary –sub-system is a system in its own right –module is a system component that provides services to other modules Examples –Object Models –Data Flow models (pipelines)
13
Other Parts of the Book Concerned with Design 10.2: Does for control what we did for structure 10.4: Domain specific architectures 11: Distributed system architectures 12: Object-oriented design 13: Real-time software design 14: Design with reuse –design patterns
14
Design Patterns Rely on object characteristics such as inheritance and polymorphism Essential characteristics –a meaningful name –description of general problem solved –template solution description –advantages and disadvantages The Observer pattern
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.