View
218
Download
0
Category
Tags:
Preview:
Citation preview
1 / 26
CS 425/625 Software Engineering
Architectural Design
Based on Chapter 11 of the textbook [SE-8] Ian Sommerville,Software Engineering, 8th Ed., Addison-Wesley, 2006 and on theCh11 PowerPoint presentation available at the book’s web-site:
www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html
October 15, 2008
2 / 26
Outline
Introduction System Organization Modular Decomposition Control Styles Reference Architectures
3 / 26
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
4 / 26
.Introduction…
The overall system architecture influences the system’s: Performance Security Safety Availability Maintainability
5 / 26
..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 / 26
…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)
7 / 26
….Introduction
Types of architectural design models: Static structural models Dynamic process models Interface models Relationship models Distribution models
8 / 26
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
9 / 26
.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
10 / 26
..System Organization…
Example of a structural model depicted using a block diagram: a packing robot system [Fig. 11.1, SE-8]
Visionsystem
Objectidentification
system
Armcontroller
Grippercontroller
Packagingselectionsystem
Packingsystem
Conveyorcontroller
11 / 26
…System Organization..
Example of repository model for system architecture: a CASE toolset [Fig. 11.2, SE-8]
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
12 / 26
….System Organization.
Example of client-sever architecture: a movie and picture library [Fig. 11.3, SE-8]
Catalogueserver
Librarycatalogue
Videoserver
Film clipfiles
Pictureserver
Digitisedphotographs
Web server
Film andphoto info.
Client 1 Client 2 Client 3 Client 4
Internet
13 / 26
…..System Organization
An abstract machine model: a version management system [Fig. 11.4, SE-8]
Configuration management system layer
Database system layer
Operating system layer
Object management system layer
14 / 26
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
15 / 26
.Modular Decomposition.
Partial object model of an invoicing system [Fig. 11.5, SE-8]
issue ()sendReminder ()acceptPayment ()sendReceipt ()
invoice#dateamountcustomer
Invoice
invoice#dateamountcustomer#
Receipt
invoice#dateamountcustomer#
Payment
customer#nameaddresscredit period
Customer
16 / 26
..Modular Decomposition
DFD of an invoicing system [Fig. 11.6, SE-8]
Read issuedinvoices
Identifypayments
Issuereceipts
Findpayments
due
Receipts
Issuepaymentreminder
Reminders
Invoices Payments
17 / 26
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)
18 / 26
..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
19 / 26
..Control Styles...
The call-return control model [Fig. 11.7, SE-7]
Routine 1.2Routine 1.1 Routine 3.2Routine 3.1
Routine 2 Routine 3Routine 1
Mainprogram
20 / 26
…Control Styles..
Example of a centralized control model: an RTS
[Fig. 11.8, SE-7]
Systemcontroller
Userinterface
Faulthandler
Computationprocesses
Actuatorprocesses
Sensorprocesses
21 / 26
….Control Styles.
Control model with selective broadcasting [Fig. 11.9, SE-7]
Sub-system1
Event and message handler
Sub-system2
Sub-system3
Sub-system4
22 / 26
…..Control Styles
Example of interrupt-driven control model [Fig. 11.10, SE-7]
Handler1
Handler2
Handler3
Handler4
Process1
Process2
Process3
Process4
Interrupts
Interruptvector
23 / 26
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
24 / 26
..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)
25 / 26
..Reference Architectures.
Generic repository model of a language processing system [Fig. 13.13, SE-7]
Syntaxanalyser
Lexicalanalyser
Semanticanalyser
Abstractsyntax tree
Grammardefinition
Symboltable
Outputdefinition
Pretty-printer
Editor
Optimizer
Codegenerator
Repository
26 / 26
…Reference Architectures
Example of reference architecture: the OSI model [Fig. 11.11, SE-7]
Application
Presentation
Session
Transport
Network
Data link
Physical
7
6
5
4
3
2
1
Communica tions medium
Network
Data link
Physical
Application
Presentation
Session
Transport
Network
Data link
Physical
Recommended