advanced software design lecture 5 software architecture 5.pdf · what software architecture is and...

39
ADVANCED SOFTWARE DESIGN LECTURE 5 SOFTWARE ARCHITECTURE Dave Clarke

Upload: hoangdiep

Post on 31-Mar-2018

229 views

Category:

Documents


2 download

TRANSCRIPT

ADVANCED SOFTWARE DESIGN LECTURE 5

SOFTWARE ARCHITECTUREDave Clarke

OVERVIEW

What software architecture is and why it is interesting

Who are the stakeholders

What software qualities does software architecture concern

UML diagrams expressing aspects of software architecture

Architectural styles or software architectural design patterns

SOFTWARE ARCHITECTURE

What is the purpose of software architecture?

SOFTWARE ARCHITECTURE

A Software Architecture defines:

• the components of the software system

• how the components use each other’s functionality and data

• how control is managed between the components

The highest level of design – large-scale structure of solution

STAKEHOLDERS

Which stakeholders have an interest in a software development effort?

SOFTWARE QUALITIES

What are the various software qualities (= non-functional requirements) that software architecture is concerned with?

Which software qualities are of interest to which stakeholders?

Which software qualities are conflicting?

UML DIAGRAMS

COMPONENT DIAGRAMS

Component – a set of related operations that share a common purpose

Interface – the set of operations available to other sub-systems

Required interface

Provided interface

Plugging

PACKAGE DIAGRAMS

Useful for expressing the dependencies between major elements of a system.

PackagesHierarchy

Dependency

DEPLOYMENT DIAGRAMS

Express the physical deployment of software artefacts to hardware nodes – static view of run-time configuration

Use when application spans several machines.

Nodes correspond to

• devices (e.g., servers, mobile devices)

• specific execution environments (application servers, rule engines, operating system, virtual machines, database engines, web browser).

Nodes connected by communication paths (middleware, protocol)

Component

NodeDependency

DEPLOYMENT DIAGRAMS

GUIDELINES

1. Identify the scope of the model – single application, group of applications?

2. Consider fundamental technical constraints – existing systems, robustness, who/how users connect, middleware, hardware, software, ...

3. Identify distribution architecture – Fat client, thin client, 3-tier?

4. Identify nodes and their connections – What kinds of nodes do you have? How connected?

5. Distribute software to nodes – indicate also critical information for whoever implements or deploys system

SOFTWARE QUALITIES

What are ways of addressing various software qualities?

CONFLICTING QUALITIES

Which software qualities are conflicting?

Why?

How can these conflicts be resolved?

WORDFEUD

• What are the key architectural concerns for Wordfeud?

• How could these be addressed?

ARCHITECTURAL STYLES(= SA DESIGN PATTERNS)

ARCHITECTURAL STYLES

Object-oriented

Client server ; object broker; peer to peer

Pipe and filter

Event based – publish/subscriber

Layered – Three-tier, Four-tier

Repositories: blackboard, Model/View/Controller (MVC)

Process control

The diagrams that follow capture only high level of abstraction — still need to place components.

MODEL-VIEW-CONTROLLER

Properties

• One central model, many views (viewers)

• Each view has an associated controller

• The controller handles updates from the user of the view

• Changes to the model are propagated to all the views

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 16

Variant: Model-View-Controller

controller

controller

view

mod

el

view propagate propagate

update update

accessaccess

Properties One central model, many views (viewers)

Each view has an associated controller

The controller handles updates from the user of the view

Changes to the model are propagated to all the views

MODEL-VIEW-CONTROLLER (MVC)

• Model contains domain knowledge

• Views only display data

• Controllers only manage interaction sequences

Model does not depend on views or controllers

Subscribe/notify mechanism

EXAMPLE MODEL-VIEW-CONTROLLERUniversity of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 17

Model View Controller Example

MVC INTERACTIONUniversity of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 18

MVC Component Interaction

OBJECT-ORIENTED ARCHITECTURES

• Example

• Abstract data types (modules)

• Interesting properties

• data hiding (internal data representations are not visible to clients)

• can decompose problems into sets of interacting agents

• can be multi-threaded or single thread

• Disadvantages

• objects must know the identity of objects they wish to interact with

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6

Object Oriented Architectures

Examples: abstract data types

Interesting properties data hiding (internal data representations are not visible to clients)

can decompose problems into sets of interacting agents

can be multi-threaded or single thread

Disadvantages objects must know the identity of objects they wish to interact with

obje

ct

obje

ct

obje

ct

obje

ct

obje

ct

methodinvocation

methodinvocation

methodinvocation method

invocation

Source: Adapted from Shaw & Garlan 1996, p22-3.

VARIANT: CLIENT-SERVERUniversity of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7

Variant 1: Client Server

Interesting properties Is a special case of the previous pattern object oriented architecture

Clients do not need to know about one another

Disadvantages Client objects must know the identity of the server

client

client

client

methodinvocation

methodinvocation

methodinvocation

Serve

r

• Interesting properties

• Clients do not need to know about one another

• Breaks the system into manageable components

• Independent flow of control

• Server generally responsible for persistence and consistency of data

• Disadvantages

• Client objects must know the identity of the server

CLIENT-SERVER

Client/Server communication via remote procedure call or common object broker (e.g. CORBA, Java RMI, or HTTP)

Distributed systems. e.g,. web services, system with central DBMS

Variants

– thick clients have their own services

– thin ones get everything from servers

VARIANT: OBJECT BROKER

• Interesting Properties

• Adds a broker between the clients and servers

• Clients no longer need to know which server they are using

• Can have many brokers, many servers.

• Disadvantages

• Broker can become a bottleneck

• Degraded performance

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8

Variant 2: Object Brokers

serve

r

serve

r

broke

r

clientclie

nt

client

Interesting properties Adds a broker between the clients and servers

Clients no longer need to know which server they are using

Can have many brokers, many servers.

Disadvantages Broker can become a bottleneck

Degraded performance

BROKER ARCHITECTURE EXAMPLEUniversity of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9

Broker Architecture Example

VARIANT: PEER-TO-PEER

Server/Tracker/Directory

Peer

Peer

Peer

PeerPeer

• Interesting Properties

• Find peers via server or broadcast.

• Interact subsequently with peers.

• Reduces bottleneck. Robust to peer failure.

• Disadvantages

• Server can become a bottleneck

• Peers have only incomplete picture – synchronisation is (virtually) impossible

PIPE AND FILTER

• Examples

• Unix command shell

• compiler chain: lexical analysis → parsing → semantic analysis → code generation

• signal processing

• Interesting properties:

• filters don't need to know anything about what they are connected to

• filters can be implemented in parallel

• behaviour of the system is the composition of behaviour of the filters

• specialised analysis such as throughput and deadlock analysis is possible

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5

Pipe-and-filter

Examples: UNIX shell commands

Compilers: Lexical Analysis -> parsing -> semantic analysis -> code generation

Signal Processing

Interesting properties: filters don’t need to know anything about what they are connected to

filters can be implemented in parallel

behaviour of the system is the composition of behaviour of the filters specialized analysis such as throughput and deadlock analysis is possible

filter

filterfilter

filter

filter

filter

pipe

pipe

pipe

pipe

pipe

pipe

pipe pipe

pipe

Source: Adapted from Shaw & Garlan 1996, p21-2. See also van Vliet, 1999 Pp266-7 and p279

grep gustav < foo.txt | sort | cut –f2-3

EVENT-BASED (IMPLICIT INVOCATION)

• Examples

• debugging systems (listen for particular breakpoints)

• database management systems (for data integrity checking)

• graphical user interfaces

• Interesting properties

• announcers of events don’t need to know who will handle the event

• supports re-use, and evolution of systems (add new agents easily)

• Disadvantages

• Components have no control over ordering of computations

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10

Event based (implicit invocation)

Examples debugging systems (listen for particular breakpoints)

database management systems (for data integrity checking)

graphical user interfaces

Interesting properties announcers of events don’t need to know who will handle the event

Supports re-use, and evolution of systems (add new agents easily)

Disadvantages Components have no control over ordering of computations

broadcastmedium

agent

agent

agent

agent

announceevent

announceevent

listen forevent

listen foreventbroadcast

medium

Source: Adapted from Shaw & Garlan 1996, p23-4. See also van Vliet, 1999 Pp264-5 and p278

LAYERED SYSTEMS

• Examples

• Operating Systems

• communication protocols

• Interesting properties

• Support increasing levels of abstraction during design

• Support enhancement (add functionality) and re-use

• can define standard layer interfaces

• Disadvantages

• May not be able to identify (clean) layers

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11

kernal

Layered Systems

Examples Operating Systems

communication protocols

Interesting properties Support increasing levels of abstraction during design

Support enhancement (add functionality) and re-use

can define standard layer interfaces

Disadvantages May not be able to identify (clean) layers

kernal

utilities

application layer

users

Source: Adapted from Shaw & Garlan 1996, p25. See also van Vliet, 1999, p281.

LAYERS AND PARTITIONS

• Layering

• Hierarchical decomposition → tree of sub-systems

• “Horizontal division”

• Open vs closed layers

• Partitioning

• “Vertical division”: Each set handles a function

• Extreme form of decoupling: Semi-independent

EXAMPLE: 3-LAYER DATA ACCESSUniversity of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12

Variant: 3-layer data accessPresentation layer

Application Logic layer

Storage layerJava

AW

T

Appl’n

Views

Contol

obje

cts

Busine

sslogic

Que

ryEngine

File

Mgm

nt

DBM

S

OPEN VS CLOSED ARCHITECTURE

closed architecture• each layer only uses services of the layer

immediately below;• minimises dependencies between layers and

reduces the impact of a change.open architecture• a layer can use services from any lower layer.• More compact code, as the services of lower

layers can be accessed directly• Breaks the encapsulation of layers, so

increase dependencies between layers

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13

Open vs. Closed Layered Architecture

closed architecture each layer only uses services of the layer

immediately below;

Minimizes dependencies between layers andreduces the impact of a change.

open architecture a layer can use services from any lower

layer.

More compact code, as the services of lowerlayers can be accessed directly

Breaks the encapsulation of layers, soincrease dependencies between layers

Layer N

Layer N-1

Layer 2

Layer 1

Layer N

Layer N-1

Layer 2

Layer 1

HOW MANY LAYERS?2 layers:

application layerdatabase layere.g., simple client-server model

3 layers (three tier):separate out the business logic

helps make both user interface and database layers modifiable

4 layers (four tier):separate applications from the domain entities that they use

boundary classes in presentation layercontrol classes in application layerentity classes in domain layer

partitioned 4 layers:identify separated applications

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14

How many layers?

2-layers: application layer

database layer

e.g. simple client-server model

3-layers: separate out the business logic

helps to make both user interface anddatabase layers modifiable

4-layers: Separates applications from the

domain entities that they use:boundary classes in presentation layer

control classes in application layerentity classes in domain layer

Partitioned 4-layers identify separate applications

Application (client)

Database (server)

Presentation layer (user interface)

Business Logic

Database

Presentation layer (user interface)

Applications

Domain Entities

Database

UI1 UI2 UI3 UI4

App1 App2 App3 App4

Domain Entities

Database

REPOSITORIES• Examples

• databases

• blackboard expert systems

• programming environments

• Interesting properties

• can choose where the locus of control is (agents, blackboard, both)

• reduce the need to duplicate complex data

• Disadvantages

• blackboard becomes a bottleneck

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 15

Repositories

Examples databases

blackboard expert systems

programming environments

Interesting properties can choose where the locus of control is (agents, blackboard, both)

reduce the need to duplicate complex data

Disadvantages blackboard becomes a bottleneck

blackboard(shareddata)

agent

agent

agent

agent

agent

agent

Source: Adapted from Shaw & Garlan 1996, p26-7. See also van Vliet, 1999, p280

REPOSITORY

• Sub-systems access and modify a single data structure

• Complex, changing data

• Concurrency & data consistency

• Control by sub-systems or by repository (blackboard)

• Disadvantage: Possibly performance bottlenecks and reduced modifiability

• E.g. databases, IDE’s, tuple spaces

PROCESS CONTROL

• Examples

• aircraft/spacecraft flight control systems

• controllers for industrial production lines, power stations, etc.

• chemical engineering

• Interesting properties

• separates control policy from the controlled process

• handles real-time, reactive computations

• Disadvantages

• difficult to specify the timing characteristics and response to disturbances

University of Toronto Department of Computer Science

© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 19

Process Control

Examples aircraft/spacecraft flight control systems

controllers for industrial production lines, power stations, etc.

chemical engineering

Interesting properties separates control policy from the controlled process

handles real-time, reactive computations

Disadvantages Difficult to specify the timing characteristics and response to disturbances

processcontroller

input variables

controlledvariables

controlparameters

manipulatedvariables

sensors

actuators

Source: Adapted from Shaw & Garlan 1996, p27-31.

CONCLUDING REMARKS

CONCLUDING REMARKS

What software architecture is and why it is interesting

Who are the stakeholders

What software qualities does software architecture concern

UML diagrams expressing aspects of software architecture

Architectural styles or software architectural design patterns