SlideServe
Menu
Préférences
© SlideServe · v2026

Software Architecture Design

omeador avatar
15 diapositives · 208 Views · Dec 19, 2019

Learn about software architectural styles, subsystem decomposition guidelines, and consolidated collaboration diagrams for designing concurrent, distributed, and real-time applications using UML.

Software Architecture Design - slide 1
01 / 15Software Architecture Design
1 / 17

Télécharger la présentation

Software Architecture 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 Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)

  2. Software Architecture Design • Software Architecture refers to the decomposition of a system into subsystems • This is necessary for large-scale and complex software systems.

  3. Software Architectural Styles • Software Architectural styles are recurring architectures used in a variety of applications. • Client/Server Architecture • Layers of Abstraction Architecture • Communicating Tasks Architecture • The styles may be blended as necessary. They are not mutually exclusive!

  4. Client/Server Architecture • Sever provides services • Client consumes services • Widely used in distributed applications.

  5. Layers of Abstraction Architecture • Each layer communicates only with the layers directly above and below itself. • Each layer solves only part of a given problem. • E.g. Operating Systems, Database Management systems, and Network Systems

  6. Communicating Tasks Architecture • Network of Concurrent tasks with separate threads of control. • With or without shared memory. • May or may not be on the same computational node. • Common in real-time systems.

  7. System Decomposition Issues and Guidelines • Subsystems should be externally lowly-coupled and internally highly-coupled. • This can help to determine which objects belong in which subsystem. • Separation of Concerns is the fundamental principle guiding decomposition. • Subsystems provide lower-resolution information hiding than objects. • If no obvious decompositions appear, consider the Use Cases.

  8. Subsystem Decomposition Issues and Guidelines (cont) • Things to consider during separation of concern decomposing: • Aggregate/Composite objects • Geographical locations • Clients and servers • User interface • External object interfaces • Scope of control • Entity objects

  9. Consolidated Collaboration Diagrams • To begin the system decomposition process, and to transition from analysis to design, construct a consolidated collaboration diagram. • The consolidated collaboration diagram synthesizes all the collaboration diagrams used to support the use cases • Message sequencing numbers are omitted to reduce clutter • If the diagram is still too cluttered, multiple messages can be aggregated into one name.

  10. Consolidate Collaboration Diagram (example)

  11. Subsystem Software Architecture • Subsystems may also be shown on subsystem collaboration diagrams. • This provides a high-level view of the collaborations within a system.

  12. Subsystems in Concurrent, Real-time, and Distributed Applications • Concurrent, real-time, and distributed applications frequently have the following types of subsystems: • Control • Coordinator • Data Collection • Data Analysis • Server • User Interface • I/O Subsystem • System Services

  13. Subsystems in Concurrent, Real-time, and Distributed Applications (examples)

  14. Design Analysis Static Modeling • A more detailed model is developed as part of solution design. • This static model may either refine the conceptual static model developed in the analysis modeling phase, or may be developed from the consolidated collaboration diagrams. • Further refinement considers the directional nature of class relationships.

  15. Summary • Software Architectural Styles may be blended • Client/Server • Layered • Communicating Tasks • Complex systems may be decomposed into subsystems with loose external coupling and high internal coupling. • Multiple criteria exist for subsystem decomposition.