1 / 26

CS 425/625 Software Engineering Architectural Design

CS 425/625 Software Engineering Architectural Design. Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley, 2000 and on the Ch10 PowerPoint presentation available at the book’s web-site:

rickeyc
Download Presentation

CS 425/625 Software Engineering Architectural Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 425/625 Software EngineeringArchitectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6th Ed., Addison-Wesley, 2000 and on the Ch10 PowerPoint presentation available at the book’s web-site: www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html October 08, 2003

  2. Outline • Introduction • System Structuring • Control Modeling • Modular Decomposition • Domain-specific Architectures

  3. Introduction…. • Architectural (high-level) design= the process of establishing the subsystems of a larger software system and defining a framework for subsystem control and communication • Software architecture= the output of the high-level design process • Defining and documenting the software architecture provides support for: • Stakeholder communication • System analysis • Large-scale software reuse

  4. .Introduction… • The overall system architecture influences the system’s: • Performance • Safety • Security • Availability • Distributability • Maintainability

  5. ..Introduction.. • Distinction between subsystem and module: • Subsystem = larger part of the system with quasi-independent operation; depends little on other subsystems’ services, contains other subsystems and modules as well as interfaces for communicating with other subsystems • Module = non-independent system component that provides services to other modules; usually makes use of other modules’ services and contains simpler components

  6. …Introduction. • Common high-level design activities: • System structuring: identification of sub-systems and their communication paths • Control modeling: determination of control connections between subsystems • Modular decomposition: identification of modules and module interconnection within each subsystem

  7. ….Introduction • Types of architectural design models: • Static structural models • Dynamic process models • Interface models • Relationship models

  8. System Structuring….. • System structuring is focused on identifying subsystems and their communication links • Communications between subsystems involve both data and control • Block diagrams can be used for describing the system’s structure • The system’s architecture can be shown using more specific structural models, e.g.: • Repository model • Client-server models • Abstract machine models

  9. .System Structuring…. • The repository model shows a system’s architecture centered around a shared database • The client-server model is a distributed, network model that describes how operations and data are distributed across several processing units. Some of these units are servers, other are clients • The abstract machine model (the layered model) depicts the system as a series of layers, each layer representing an abstract machine and having assigned a subsystem

  10. ..System Structuring… • Example of a structural model depicted using a block diagram: a packing robot system [Fig. 10.1, Somm00]

  11. …System Structuring.. • Example of repository model for system architecture: a CASE toolset [Fig. 10.2, Somm00]

  12. ….System Structuring. • Example of client-sever architecture: a movie and picture library [Fig. 10.3, Somm00]

  13. …..System Structuring • An abstract machine model: a version management system [Fig. 10.4, Somm00]

  14. Control Modeling….. • Control models emphasize control flow among subsystems • Two general approaches: • Centralized control: a single subsystem (central controller) has the control responsibility of the entire system; it may defer control to other subsystems but the control must be returned to the central controller • Call-return model (top-down subroutine model) • Manager model (applies to concurrent systems, in which several processes run in parallel)

  15. .Control Modeling…. • Two general approaches (continued): • Event-based control: each subsystem has control responsibilities; they respond to events generated by the environment and/or other subsystems • Broadcast models: an event is dispatched to all subsystems • Interrupt-driven models: make use of interrupt handlers; typical to RTS

  16. ..Control Modeling... • The call-return control model [Fig. 10.5, Somm00]

  17. …Control Modeling.. • Example of a centralized control model: an RTS [Fig. 10.6, Somm00]

  18. ….Control Modeling. • Control model with selective broadcasting [Fig. 10.7, SE-6]

  19. …..Control Modeling • Example of interrupt-driven control model [Fig. 10.8, Somm00]

  20. Modular Decomposition.. • Modular decomposition means dividing each subsystem in modules and identifying interconnections between modules • Models described previously can be applied here as well (a subsystem is, in fact, a system, and the distinction between a subsystem and a module is relative) • Models that may be used for decomposition: • Object-oriented model: a subsystem consists of several communicating objects • Data-flow model (pipeline model): functional modules are identified, together with data transfer paths

  21. .Modular Decomposition. • Partial object model of an invoicing system [Fig. 10.9, Somm00]

  22. ..Modular Decomposition • DFD of an invoicing system [Fig. 10.10, Somm00]

  23. Domain-specific Architectures… • A domain-specific architecture is characteristic to a particular application domain; it proposes a common architectural structure that can be used across applications within that particular domain • Note that, generally, in software architectural design various design models can (and usually need) be applied in combination

  24. .Domain-specific Architectures.. • Main categories: • Generic models: models extracted from real systems that provide a common architectural framework for new applications within the domain (e.g., compiler design) • Reference models: more abstract models that communicate commonly used domain and design concepts; derived from studying the application domain (e.g., the Open Systems Interconnection [OSI] reference model)

  25. ..Domain-specific Architectures. • Generic repository model of a language processing system [Fig. 10.12, Somm00]

  26. …Domain-specific Architectures • Example of reference architecture: the OSI model [Fig. 10.13, Somm00]

More Related