260 likes | 286 Views
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:
E N D
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
Outline • Introduction • System Structuring • Control Modeling • Modular Decomposition • Domain-specific Architectures
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
.Introduction… • The overall system architecture influences the system’s: • Performance • Safety • Security • Availability • Distributability • Maintainability
..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
…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
….Introduction • Types of architectural design models: • Static structural models • Dynamic process models • Interface models • Relationship models
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
.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
..System Structuring… • Example of a structural model depicted using a block diagram: a packing robot system [Fig. 10.1, Somm00]
…System Structuring.. • Example of repository model for system architecture: a CASE toolset [Fig. 10.2, Somm00]
….System Structuring. • Example of client-sever architecture: a movie and picture library [Fig. 10.3, Somm00]
…..System Structuring • An abstract machine model: a version management system [Fig. 10.4, Somm00]
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)
.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
..Control Modeling... • The call-return control model [Fig. 10.5, Somm00]
…Control Modeling.. • Example of a centralized control model: an RTS [Fig. 10.6, Somm00]
….Control Modeling. • Control model with selective broadcasting [Fig. 10.7, SE-6]
…..Control Modeling • Example of interrupt-driven control model [Fig. 10.8, Somm00]
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
.Modular Decomposition. • Partial object model of an invoicing system [Fig. 10.9, Somm00]
..Modular Decomposition • DFD of an invoicing system [Fig. 10.10, Somm00]
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
.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)
..Domain-specific Architectures. • Generic repository model of a language processing system [Fig. 10.12, Somm00]
…Domain-specific Architectures • Example of reference architecture: the OSI model [Fig. 10.13, Somm00]