You are on page 1of 77

Architectural Design

(Chapter 11 from the textbook)

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 1
Objectives
● To introduce architectural design and to
discuss its importance
● To explain the architectural design decisions
that have to be made
● To introduce three complementary
architectural styles covering organisation,
decomposition and control
● To discuss reference architectures are used
to communicate and compare architectures

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 2
Topics covered
● Architectural design decisions
● System organisation
● Decomposition styles
● Control styles
● Reference architectures

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 3
Analysis Model -> Design Model

Component -
sc enario- based f low- oriented L evel Design
elements elements
use-cases - text data flow diagrams
use-case diagrams control-flow diagrams
activity diagrams processing narratives
swim lane diagrams
Int erfac e Design
Analysis Model

Arc hit ec t ural Design


c lass- based behavioral
elements elements
class diagrams state diagrams
analysis packages sequence diagrams
CRC models Dat a/ Class Design
collaboration diagrams

Design Model

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 4
From Analysis to Design, The what and
the How
● We should imagine two domains: problem and
solution domains. The analysis model analyses
the problem in the problem domain, while the
design model analyses the solution in the
solution domain.
● I explain in the analysis model the problem that
the software will try to solve while in design, I
will explain how I am going to solve that
problem.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 5
Design and Quality
● the design must implement all of the explicit
requirements contained in the analysis model, and
it must accommodate all of the implicit
requirements desired by the customer.
● the design must be a readable, understandable
guide for those who generate code and for those
who test and subsequently support the software.
● the design should provide a complete picture of
the software, addressing the data, functional, and
behavioral domains from an implementation
perspective.
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 6
Software architecture
● The design process for identifying the sub-
systems making up a system and the framework
for sub-system control and communication is
called architectural design.
● The output of this design process is a
description of the software architecture.
● “The overall structure of the software and
the ways in which that structure provides
conceptual integrity for a system.” [SHA95a]

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 7
Architectural design
● An early stage of the system design process.
● Represents the link between specification
and design processes.
● Often carried out in parallel with some
specification activities.
● It involves identifying major system
components and their communications.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 8
Advantages of explicit architecture

● Stakeholder communication
• Architecture may be used as a focus of
discussion by system stakeholders.
● System analysis
• Means that analysis of whether the system can
meet its non-functional requirements is possible.
● Large-scale reuse
• The architecture may be reusable across a
range of systems.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 9
Architecture and system characteristics
● Performance
• Localise critical operations and minimise communications. Use
large rather than fine-grain components. High level
components.
● Security
• Use a layered architecture with critical assets in the inner
layers.
● Safety
• Localise safety-critical features in a small number of sub-
systems.
● Availability
• Include redundant components and mechanisms for fault
tolerance.
● Maintainability
• Use fine-grain, replaceable components.
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 10
Fundamental
● Concepts
abstraction—data, procedure, control – Ignore some details.
● architecture—the overall structure of the software
● patterns—”conveys the essence” of a proven design solution
(i.e. templates whether for design or for anything else).
● modularity—compartmentalization of data and function. i.e.
into modules.
● Hiding- controlled interfaces- Only expose what should be
exposed.
● Functional independence—single-minded function and low
coupling or relations between the components.
● refinement—elaboration of detail for all abstractions
● Refactoring—a reorganization technique that simplifies the
design. i.e. refining the design into more understandable
format.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 11
Data
Abstraction
implemented as a data structure
door
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism

Those are the main aspects or the things we need to know about
the door, although the door has many more details (that maybe we
don’t need to know at this time).
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 12
Procedural
Abstraction
open

details of enter
algorithm

implemented with a "knowledge" of the


object that is associated with enter

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 13
Patterns
To help improve reusability and extensibility. By following a pattern in writing 
things.
Design Pattern Template
Pattern name—describes the essence of the pattern in a short but expressive 
name 
Intent—describes the pattern and what it does
Also­known­as—lists any synonyms for the pattern
Motivation—provides an example of the problem 
Applicability—notes specific design situations in which the pattern is applicable
Structure—describes the classes that are required to implement the pattern
Participants—describes the responsibilities of the classes that are required to 
implement the pattern
Collaborations—describes how the participants collaborate to carry out their 
responsibilities
Consequences—describes the “design forces” that affect the pattern and the 
potential trade­offs that must be considered when the pattern is implemented
Related patterns—cross­references related design patterns

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 14
Modular
Design
easiertobuild,easiertochange,easiertofix...

Divide the product into reusable, and replaceable


modules (as much independent as it is possible).

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 15
Information Hiding

module • algorithm
controlled
interface • data structure

• details of external interface

• resource allocation policy

clients "secret"
A driver doesn’t
need to know how
the car works. He
a specific design decision needs to know how
to drive it only.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 16
Why Information Hiding?
● reduces the likelihood of “side effects”. Know only what
you need to know.
● limits the global impact of local design decisions.
Variables affect only their own locations.
● emphasizes communication through controlled
interfaces only. You should go out from a house through
a door only.
● discourages the use of global data. Locate variable on
the place they will be used only.
● leads to encapsulation—an attribute of high quality
design. Hiding unnecessary information.
● results in higher quality software

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 17
Functional
Independence Use a pen
COHESION - the degree to which a
module performs one and only one only for
function. writing on
papers.
COUPLING - the degree to which a
module is "connected" to other
modules in the system.

If modules are independent from each other, they can be


easily reused, replaced, upgraded, ..etc.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 18
Content coupling example

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 19
Refactoring
● Fowler [FOW99] defines refactoring in the following
manner:
• "Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code [design] yet improves its internal structure.”
● When software is refactored, the existing design is
examined for
• redundancy
• unused design elements
• inefficient or unnecessary algorithms
• poorly constructed or inappropriate data structures
• or any other design failure that can be corrected to yield a
better design.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 20
Architectural conflicts
● Using large-grain components (too many
details) improves performance but reduces
maintainability. We need to compromise
between performance and maintainability.
● Introducing redundant data improves availability
but makes security more difficult. Another
compromise.
● Localising safety-related features usually means
more communication so degraded performance.
Another one.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 21
System structuring – Detail Design
● Concerned with decomposing the system
into interacting sub-systems.
● The architectural design is normally
expressed as a block diagram presenting an
overview of the system structure.
● More specific models showing how sub-
systems share data, are distributed and
interface with each other may also be
developed.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 22
Packing robot control system
Component Diagram
Vision
system

Object Arm Gripper


identification controller controller
system

Packaging
selection
system

Packing Conveyor
system controller

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 23
Box and line diagrams
(i.e. Component Diagrams).
● Very abstract - they do not show the nature of
component relationships nor the externally
visible properties of the sub-systems.
● However, useful for communication with
stakeholders and for project planning.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 24
Architectural design decisions

● Architectural design is a creative process so


the process differs depending on the type of
system being developed.
● However, a number of common decisions
span all design processes.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 25
Architectural design decisions
● Is there a generic application architecture that can be
used? Reuse an existing design.
● How will the system be distributed?
● What architectural styles are appropriate?
● What approach will be used to structure the system?
● How will the system be decomposed into modules?
● What control strategy should be used?
● How will the architectural design be evaluated? Design
verification.
● How should the architecture be documented? Diagrams?
Documents? Etc.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 26
Architecture reuse
● Systems in the same domain often have similar
architectures that reflect domain concepts.
● Application product lines are built around a core
architecture with variants that satisfy particular
customer requirements.
● Application architectures are covered in Chapter
13 and product lines in Chapter 18.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 27
Architectural styles

● The architectural model of a system may


conform to a generic architectural model or
style.
● An awareness of these styles can simplify
the problem of defining system architectures.
● However, most large systems are
heterogeneous (a mix of more than one
style) and do not follow a single architectural
style.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 28
Examples of Architectural Styles /
Patterns
● There are many common ways of designing computer software modules
and their communications, among them:
● Blackboard
● Client-server
● Database-centric architecture
● Distributed computing
● Event Driven Architecture
● Implicit invocation
● Monolithic application
● Peer-to-peer
● Pipes and filters

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 29
● Plugin
● Representational State Transfer
● Structured (module-based but usually monolithic within modules)
● Software componentry (strictly module-based, usually
object-oriented programming within modules, slightly less monolithic)
● Service-oriented architecture
● Search-oriented architecture
● Space based architecture
● Shared nothing architecture
● Three-tier model

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 30
Architectural models
● Used to document an architectural design.
● Static structural model that shows the major system
components. Such as a class diagram.
● Dynamic process model that shows the process
structure of the system. Such activity or sequence
diagrams.
● Interface model that defines sub-system interfaces.
● Relationships model such as a data-flow model that
shows sub-system relationships.
● Distribution model that shows how sub-systems are
distributed across computers.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 31
Architectural Styles According to
Sommerville

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 32
Levels of decomposition

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 33
System organisation

● Reflects the basic strategy that is used to


structure a system.
● Three organizational styles are widely used:
• A shared data repository style; similar to a
database.
• A shared services and servers style;
• An abstract machine or layered style.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 34
The repository model
● Sub-systems must exchange data. This may be done in two
ways:
• Shared data is held in a central database or repository and
may be accessed by all sub-systems;
• Each sub-system maintains its own database and passes
data explicitly to other sub-systems.
● When large amounts of data are to be shared, the repository
model of sharing is most commonly used.
● Suited in cases where one part of the system produces data,
others consumes this data, Example University data structure,
command and control systems, Management information
systems, CAD systems, CASE tools

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 35
Example, CASE toolset architecture
All can provide the same – level – of service. Others utilizes the
service provided by each They just need a central location to save
all their information.
Design C ode
editor gener
ator

Design Project Program


translator repository editor

Design Report
analy ser gener
ator

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 36
Repository model characteristics
● Advantages
• Efficient way to share large amounts of data; no explicit data
transfer between subsystems.
• Sub-systems need not be concerned with how data is produced.
• Centralised management e.g. backup, security, etc.
• Sharing model is published as the repository schema.
● Disadvantages
• Sub-systems must agree on a repository data model. Inevitably a
compromise;
• Data evolution is difficult and expensive; large volume of data to
transfer to a new model.
• No scope for specific management policies; Centralized system
enforces same policies across all data from all subsystems.
• Difficult to distribute efficiently. Data redundancy, inconsistency.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 37
Repository Model Variants

● Passive data store:


• Sub systems must interact with the data store.
● Active data store (e.g. BlackBoard):
• Data store can contact and trigger actions in
subsystems when data becomes available.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 38
Client-server model
● Distributed system model which shows how data
and processing is distributed across a range of
components.
● Client server elements: Servers, Clients and
Network.
● Servers: Set of stand-alone servers which provide
specific services such as printing, data
management, etc.
● Clients: Set of clients which call on these services.
● Network which allows clients to access servers.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 39
Example, Film and picture library
Servers provide services and clients use those services.

Client 1 Client 2 Client 3 Client 4

Internet

Catalogue Video Picture


server server server Web server

Library Film clip Digitised Film and


catalogue files photographs photo info.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 40
Client-server characteristics
● Advantages
• Distribution of data is straightforward;
• Makes effective use of networked systems. May require
cheaper hardware;
• Easy to add new servers or upgrade existing servers.
● Disadvantages
• No shared data model so sub-systems use different data
organisation. Data interchange may be inefficient;
• Redundant management in each server;
• No central register of names and services – Client must know
in advance name and interface of services. It may be hard to
find out what servers and services are available.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 41
Abstract machine (or layered) model
● Used to model the interfacing of sub-systems.
● Organises the system hierarchy into a set of layers (or
abstract machines) each of which provide a set of
services.
● Each layer provides a set of services to layer above.
● Supports the incremental development of sub-systems in
different layers. When a layer interface changes, only the
adjacent layer is affected.
● However, often artificial to structure systems in this way.
● Each layer depends on the services provides by the layer
below.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 42
Version management system

Configuration management system layer

Object management system layer

Database system layer

Operating system layer

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 43
Layer model example, OSI model

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 44
Layer model advantages

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 45
Layered Model disadvantages

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 46
Modular decomposition styles

● Styles of decomposing sub-systems into


modules.
● No rigid distinction between system
organisation and modular decomposition.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 47
Sub-systems and modules
● A sub-system is a system in its own right whose
operation is independent of the services provided by
other sub-systems. Sub-systems are composed of
modules and have defined interfaces which are
used for communication with other sub-systems.
● A module is a system component that provides
services to other components but would not
normally be considered as a separate system. It is
not normally considered to be an independent
system. Modules are usually composed from other,
simpler system components.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 48
Modular decomposition
● Another structural level where sub-systems are
decomposed into modules.
● Two modular decomposition models covered
• An object model where the system is decomposed into
interacting object;
• A pipeline or data-flow model where the system is
decomposed into functional modules which transform inputs
to outputs.
● If possible, decisions about concurrency should be
delayed until modules are implemented.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 49
Object models
● Structure the system into a set of loosely coupled objects
with well-defined interfaces.
● Object-oriented decomposition is concerned with
identifying object classes, their attributes and operations.
● When implemented, objects are created from these
classes and some control model used to coordinate
object operations.
● In many programming projects, developers prefer to use
OO model as it is easy to learn and apply. Same classes
can be defined in requirements, design and used in
coding.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 50
Example, Invoice processing system

Customer Receipt
customer# invoice#
name date
address Invoice amount
credit period customer#
invoice#
date
amount
customer
Payment issue ()
invoice# sendReminder ()
acceptPayment ()
date
sendReceipt ()
amount
customer#

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 51
Company Class diagram

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 52
OBJECT-ORIENTED DECOMPOSITION

Object classes have names and a set of
associated attributes.
Operations if any are defined in the lower part

of the rectangle.

Dashed arrows indicate that an object uses the
attributes or services provided by another
object.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 53
Object-oriented decomposition
● Describes object classes, attributes and methods
● Loosely coupled objects with well defined
interfaces
● Advantages:
• Easy to understand, maintain, reuse
• Can be implemented straightforwardly from
architectural components
● Disadvantages:
● To use services, objects must explicitly reference
the name and interface of other objects.
● An interface change affect all users of that
interfaces.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 54
Function-oriented pipelining
● Functional transformations process their inputs to
produce outputs.
● May be referred to as a pipe and filter model (as in
UNIX shell).
● The term filter is used because a transformation
filters out the data it can process from its input data
stream.
● Variants of this approach are very common. When
transformations are sequential, this is a batch
sequential model which is extensively used in data
processing systems such as billing systems.
● Not really suitable for interactive systems.
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 55
Invoice processing system

Issue
Receipts
receipts

Read issued Identify


invoices payments
Find Issue
payments payment Reminders
due reminder

Invoices Payments

The same OO model is more abstract as it does not include


information about the sequence of operations.
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 56
Pipeline model advantages
● Supports transformation reuse. [Input-operation- output].
● Intuitive organization for stakeholder communication. As
many think of their work as inputs and outputs.
● Easy to add new transformations [ Evolution].
● Relatively simple to implement as either a concurrent or
sequential system.
● However,
● requires a common format for data transfer along the
pipeline to be recognized by all transformers and
● difficult to support event-based interaction. For example,
GUI events have complex events to be simplified by
through such model.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 57
Control styles
● Are concerned with the control flow between
sub-systems. Distinct from the system
decomposition model. Two generic formats:
● Centralised control
• One sub-system has overall responsibility for
control and starts and stops other sub-systems.
● Event-based control
• Each sub-system can respond to externally
generated events from other sub-systems or the
system’s environment.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 58
Control Examples

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 59
Centralised control
● A control sub-system takes responsibility for managing
the execution of other sub-systems.
● Call-return model
• Top-down subroutine model where control starts at the top of
a subroutine hierarchy and moves downwards. Applicable to
sequential systems only. (Embedded programming like C)
● Manager model (event-loop model)
• Applicable to concurrent systems. One system component
controls the stopping, starting and coordination of other
system processes. Can be implemented in sequential
systems as a case statement. Control decisions are usually
determined by the value of some system state variables
(internal event). (Usually implemented as case statements)

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 60
Call-return model

Main
program

Routine 1 Routine 2 Routine 3

Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 61
Real-time system control –
manager model

Sensor Actuator
processes processes

System
controller

Computation User Fault


processes interface handler

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 62
Event-driven systems
● Driven by externally generated events where the
timing of the event is outwith the control of the sub-
systems which process the event.
● Two principal event-driven models
• Broadcast models. An event is broadcast to all sub-
systems. Any sub-system which can handle the event
may do so;
• Interrupt-driven models. Used in real-time systems where
interrupts are detected by an interrupt handler and
passed to some other component for processing.
● Other event driven models include spreadsheets and
production systems.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 63
Broadcast model
● Effective in integrating sub-systems on different
computers in a network.
● Sub-systems register an interest in specific
events. When these occur, control is transferred
to the sub-system which can handle the event.
● Control policy is not embedded in the event and
message handler. Sub-systems decide on
events of interest to them.
● However, sub-systems don’t know if or when an
event will be handled. UDP protocol in
networking uses this model or algorithm.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 64
Broad cast model –
Selective broadcasting

Sub-system Sub-system Sub-system Sub-system


1 2 3 4

Event and messa


ge handler

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 65
Interrupt-driven systems
● Used in real-time systems where fast response
to an event is essential.
● There are known interrupt types with a handler
defined for each type.
● Each type is associated with a memory location
and a hardware switch causes transfer to its
handler.
● Allows fast response but complex to program
and difficult to validate. CPUs uses such model.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 66
Interrupt-driven control

Interrupts

Interrupt
vector

Handler Handler Handler Handler


1 2 3 4

Process Process Process Process


1 2 3 4

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 67
Reference Architectures
● Reference models are derived from a study of the application
domain rather than from existing systems.
● May be used as a basis for system implementation or to
compare different systems.
● It acts as a standard against which systems can be evaluated.
● OSI Open System Interconnection, model is a layered model
for communication systems.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 68
Reference architectures
● Architectural models may be specific to some
application domain.
● Two types of domain-specific model
• Generic models which are abstractions from a number of
real systems and which encapsulate the principal
characteristics of these systems. Covered in Chapter 13.
• Reference models which are more abstract, idealised
model. Provide a means of information about that class of
system and of comparing different architectures.
● Generic models are usually bottom-up models;
Reference models are top-down models.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 69
OSI reference model

7 Application Application

6 Presentation Presentation

5 Session Session

4 Transport Transport

3 Network Network Network

2 Data link Data link Data link

1 Physical Physical Physical

Communications medium

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 70
Case reference model examples
● Data repository services
• Storage and management of data items.
● Data integration services
• Managing groups of entities.
● Task management services
• Definition and enaction of process models.
● Messaging services
• Tool-tool and tool-environment communication.
● User interface services
• User interface development.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 71
The European Computer Manufacturer's
Association ECMA reference model

Data repository services


Data integration services

Tool
slots

Task management services


Message
User interface services services

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 72
Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 73
Key points
● The software architecture is the fundamental framework
for structuring the system.
● Architectural design decisions include decisions on the
application architecture, the distribution and the
architectural styles to be used.
● Different architectural models such as a structural
model, a control model and a decomposition model
may be developed.
● System organisational models include repository
models, client-server models and abstract machine
models.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 74
Key points
● Modular decomposition models include
object models and pipelining models.
● Control models include centralised control
and event-driven models.
● Reference architectures may be used to
communicate domain-specific architectures
and to assess and compare architectural
designs.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 75
Key points

● As businesses have much in common, their


application systems also tend to have a
common architecture that reflects the
application requirements.
● A generic architecture is configured and
adapted to create a system that meets specific
requirements.

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 76
Key points
● software architecture: Systems and subsystems
and their interactions.
● Architectural styles: Data repository, client server,
and layered.
● Steps in modeling:
• Define software architecture
• Subsystems
• Architectural style(s) used
• Define subsystems
• Component/packages

Edited from ©Ian Sommerville & others Software Engineering, chapter 5 Slide 77

You might also like