280 likes | 572 Views
CS 425/625 Software Engineering Architectural Design. Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint presentation available at the book’s web-site:
E N D
CS 425/625 Software EngineeringArchitectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8th Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint presentation available at the book’s web-site: www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html October 15, 2008
Outline • Introduction • System Organization • Modular Decomposition • Control Styles • Reference 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 data 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 • Security • Safety • Availability • 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 (system organization): identification of sub-systems and their communication paths • Modular decomposition: identification of modules and module interconnection within each subsystem • Control modeling: determination of control connections between subsystems (modules)
….Introduction • Types of architectural design models: • Static structural models • Dynamic process models • Interface models • Relationship models • Distribution models
System Organization….. • System organization (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 model • Layered model
.System Organization…. • 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 layered model(the abstract machine model) depicts the system as a series of layers, each layer representing an abstract machine and having assigned a subsystem
..System Organization… • Example of a structural model depicted using a block diagram: a packing robot system [Fig. 11.1, SE-8]
…System Organization.. • Example of repository model for system architecture: a CASE toolset [Fig. 11.2, SE-8]
….System Organization. • Example of client-sever architecture: a movie and picture library [Fig. 11.3, SE-8]
…..System Organization • An abstract machine model: a version management system [Fig. 11.4, SE-8]
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) • Styles that may be used for decomposition: • Object-oriented decomposition: a subsystem consists of several communicating objects • Function-oriented pipelining: functional modules are identified, together with data transfer paths
.Modular Decomposition. • Partial object model of an invoicing system [Fig. 11.5, SE-8]
..Modular Decomposition • DFD of an invoicing system [Fig. 11.6, SE-8]
Control Styles….. • 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 Styles…. • 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 Styles... • The call-return control model [Fig. 11.7, SE-7]
…Control Styles.. • Example of a centralized control model: an RTS [Fig. 11.8, SE-7]
….Control Styles. • Control model with selective broadcasting [Fig. 11.9, SE-7]
…..Control Styles • Example of interrupt-driven control model [Fig. 11.10, SE-7]
Reference 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 architectural design various design models can (and usually need) be applied in combination
.Reference 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)
..Reference Architectures. • Generic repository model of a language processing system [Fig. 13.13, SE-7]
…Reference Architectures • Example of reference architecture: the OSI model [Fig. 11.11, SE-7]