SlideServe
Menu
Préférences
© SlideServe · v2026

Software System Design

bertha avatar
23 diapositives · 567 Views · Sep 27, 2012

Software System Design. System Architecture Distributed Systems Object-Oriented Design Design with Reuse (component-based design) Designing User Interfaces. Software System Design. System Architecture System structuring Control models Modular decomposition Domain-specific architectures.

Software System Design - slide 1
01 / 23Software System Design
1 / 17

Télécharger la présentation

Software System Design
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Software System Design • System Architecture • Distributed Systems • Object-Oriented Design • Design with Reuse (component-based design) • Designing User Interfaces System Architectures

  2. Software System Design • System Architecture • System structuring • Control models • Modular decomposition • Domain-specific architectures System Architectures

  3. Software Architecture What is a Software Architecture? • High-level description of a complex software system • Includes both diagrams and text • Simplified diagrams often used for marketing (e.g. Apple’s OS X) System Architectures

  4. Software Architecture • All systems have an architecture, but what are the benefits of designing (and specifying) one? • Stakeholder communication • System analysis (reasoning about non-functional requirements) • Reuse • Project management (concurrent development) System Architectures

  5. Software Architecture What is a Software Architecture? Answers questions like: • What are the primary subsystems? • What is the division of labor? • How will the subsystems communicate? • What will the subsystems communicate? System Architectures

  6. Subsystems A subsystem is a system in its own right whose operation does not depend on services provided by other systems. Subsystems are composed of modules, and have defined interfaces used for communication with other subsystems. Sommerville, p. 217 . • Design/implementation often delegated to different engineering teams • Development can proceed in parallel • Separation of responsibility • Minimal inter-subsystem communication System Architectures

  7. Software Architecture • Subsystem breakdown guided by: • Performance • Security • Safety • Availability • Maintainability System Architectures

  8. Software Architecture • Subsystem breakdown guided by: • Performance • Minimize communication among subsystems • Security • Safety • Availability • Maintainability System Architectures

  9. Software Architecture • Subsystem breakdown guided by: • Performance • Security • Use layered architecture, with critical assets in inner layers • Safety • Availability • Maintainability System Architectures

  10. Software Architecture • Subsystem breakdown guided by: • Performance • Security • Safety • Isolate safety-critical components • Availability • Maintainability System Architectures

  11. Software Architecture • Subsystem breakdown guided by: • Performance • Security • Safety • Availability • Redundancy, replication of services • Maintainability System Architectures

  12. Software Architecture • Subsystem breakdown guided by: • Performance • Security • Safety • Availability • Maintainability • Subsystems’ modules with self-contained components System Architectures

  13. Structural Models • The Repository • The Client-Server Model • The Abstract Machine System Architectures

  14. The Repository Model • Shared data is stored in centralized location (the repository subsystem), and accessed by various (other) subsystems • Shared data is passed from one subsystem to the next (“pipeline” architecture) • E.g., compiler System Architectures

  15. CASE toolset architecture System Architectures

  16. The Repository Model • Characteristics • Sharing model is published as repository schema • Pros • Efficient way to share large amounts of data • Data integrity localized to repository module • Cons • Subsystems must agree (i.e., compromise) on a repository data model. • Schema evolution is difficult and expensive • Distribution can be a problem System Architectures

  17. Client-server architecture • Subsystems are viewed as independent processes. • Set of stand-alone servers which provide specific services such as printing, data management, etc. • Set of clients which call on these services. Servers can be clients of other servers. • Communication network System Architectures

  18. Film and picture library System Architectures

  19. Client-server characteristics • Pros • Makes effective use of networked systems. May require cheaper hardware • Easy to add new servers or upgrade existing servers • Availability (redundancy) may be straightforward • Cons • Data interchange can be hampered by different data layouts • Communication may be expensive • Data integrity functionality must be implemented for each server • The “naming” problems System Architectures

  20. Abstract machine model • Organises the system into a set of layers (or abstract machines) each of which provide a set of services • Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected • Can’t model all systems this way System Architectures

  21. Abstract machine model • Examples • Version Management System • Operating System (e.g., Linux) • Runtime Language Environments (e.g., Java) System Architectures

  22. Version management system System Architectures

  23. System Architectures