SoftwareArchitecture - Department of Computer Science

advertisement
Software Architecture
Frank Tsui, Orland Karam, and Barbara Bernal, Essential of Software
Engineering, 3rd edition, Jones & Bartett Learning. Section 7.2.
Hans Van Vliet, Software Engineering, Principles and Practice, 3rd
edition, John Wiley & Sons, 2008. Chapter 11.
M. Shaw and D. Garlan, Software Architecture: Perspectives on an
Emerging Discipline, Prentice Hall, 1996.
CS 4311
Learning Objectives
To understand the concept of software
architectures along with its motivation
 To be able to characterize some important
software architecture styles

CS 4311
2
Outline
What’s software architecture?
 Elements of software architecture
 Architectural styles

CS 4311
3
Architecture in Civil Engineering
Design at the highest level
 Example: Bridge architectures

Arch
CS 4311
Beam
Suspension
Cable-stayed
4
Architecture in Civil Engineering
Design at the highest
level
Why do
civil
 Example: Bridge
architectures
engineers
talk about

bridge architectures?
Arch
CS 4311
Beam
Suspension
Cable-stayed
5
What Is Architecture?

“Arch” used as prefix or suffix



Definition in Civil Engineering




Meaning: Main, chief, principal, most important, highest,
fundamental, basic, extreme or most characteristic,
ruler, leader
Examples:
Archangel, archenemy, archduke, archbishop
Matriarch, patriarch, monarch
The art and science of designing and erecting buildings
Fundamental underlying design of buildings
Style and method of design and construction of buildings
Buildings and other structures
CS 4311
6
What Is Software Architecture?

Framework, mechanism, way, shape, form, means, organization,
arrangement

The Big Picture!
CS 4311
7
Software Architecture

The structure or structures of a software system




software components
externally visible properties of those components
the relationships between them
The set of principle design decisions made about a
software system






CS 4311
System structure
Functional behavior
Interaction
Nonfunctional properties
Implementation
System goals, stakeholders, non-technical considerations, etc.
8
Outline
What’s software architecture?
 Elements of software architecture
 Architectural styles

CS 4311
9
Elements of Software Architecture
Components
 Connectors
 Configuration topologies
 System models

CS 4311
10
Software Components


Elements that encapsulate processing and data in a
system’s architecture
An architectural entity that




encapsulates a subset of the system’s functionality and/or data,
restricts access to that subset via an explicitly defined interface,
and
had explicitly defined dependencies on its required execution
context.
Often represented as boxes in diagrams.
CS 4311
11
Connectors



Elements that are tasked with effecting and regulating
interactions among components.
Application independent.
Often represented as lines in diagrams.
component
connector
CS 4311
12
Configuration Topology
•
A set of specific associations between the components
and connectors of a software system’s architecture.
CS 4311
13
System Models



An artifact that captures some or all of the design
decisions that comprise a system’s architecture.
Architectural modeling is the reification and
documentation of those design decisions.
Different models:




structural vs. behavioral
static vs. dynamic
Scope
Q: Key constraints of layered model?
CS 4311
14
Outline
What’s software architecture?
 Elements of software architecture
 Architectural styles

CS 4311
15
Architectural Styles

A named collection of architectural design
decisions that:
 are
applicable in a given development context,
 constrain architectural design decisions that are
specific to a particular system with that context, and
 elicit beneficial qualities in each resulting system.

Not about: specific systems, components,
interaction mechanisms, or configurations.
CS 4311
16
An Architectural Style Example




Physically separate the software components used to request
services from the components that provide the services, to allow for
proper distribution and scaling up, both in the number of service
providers and service requesters.
Make the service providers unaware of the requesters’ identity to
allow the providers to service transparently many, possibly
changing requestors.
Insulate the requesters from one another to allow for their
independent addition, removal, and modification. Make the
requesters dependent only on the service providers.
Allow for multiple service providers to emerge dynamically to offload the existing providers should the demand for services increase
above a given threshold.
CS 4311
17
Example: Client-Server
CS 4311
18
More on Architectural Styles
Advantages

Each style emphasizes one or more of the quality attributes,
such as usability, availability, security, performance,
maintainability, flexibility, portability, etc.
Remarks:



CS 4311
Each style has its own advantages and drawbacks.
An application may require several architectural views.
Choosing the right views is a key factor in having a good design.
19
The Repertoire of Architecture Styles
Client-Server Architecture Style

Application context:




Clients request services from a server
Centralization of computation and data at the server
Separation of user interface tasks from computation and
data management and storage
Q: Any examples?
CS 4311
20
Style: Client-Server






Components: Clients and server
Connectors: Remote procedure call, network protocols
Data elements: Parameters and return values are sent by the
connectors
Topology: Two-level, with multi-clients
Qualities yielded: Centralization of computation and data at the
server, with the information made available to remote clients. A
single powerful server can service many clients.
Cautions: Network bandwidth.
CS 4311
21
Style: Three-Tier or N-Tier

Application context:
 Client-Server
architecture style
 Multi-level services are needed

Q: Examples?
CS 4311
22
Style: Layered

Application context:
 Ordered
layered services are necessary
 Insulate upper layer from lower layer

Q: Examples?
CS 4311
23
Layered (Cont.)






Components: Layers, offering a set of services to other layers,
typically comprising several programs or subprograms
Connectors: Procedure call
Data elements: Parameters and return values are sent by the
connectors
Topology: Linear, for strict virtual machine; a directed acyclic graph
in looser interpretations
Qualities yielded: Clear dependence structure; Software at upper
levels immune to changes of implementation within lower levels as
long as the service specification are invariant; Software at lower
levels fully independent of upper levels.
Cautions: Efficiency
CS 4311
24
Style: Repository

Application context:
 Collaborate
and communicate through a shared
repository


A.k.a. shared state, blackboard, whiteboard
Q: Examples?
CS 4311
25
Repository (Cont.)
Components: ?
 Connectors: ?
 Data elements: ?
 Topology: ?
 Qualities yielded: ?
 Cautions: ?

CS 4311
26
Style: Batch Sequential

Application context:
A
series of dedicated and independent components
that transforms data in a sequential manner.
 Each component needs to finish its task before the
next one can start.

Q: Examples?
CS 4311
27
Batch Sequential (Cont.)

Components: Independent programs responsible for a
particular task or transformation





Connectors: Procedure call
Data elements: Intermediate data produced or transformed
Topology: Linear or ordered
Qualities yielded: Solve complex task by dividing it into
several easier tasks; obtain modifiability/maintainability,
reusability, and flexibility
Cautions: Error handling; efficiency
CS 4311
28
Style: Pipes and Filters

Application context:
A
series of independent, sequential transformations
on ordered data
 Consists of filters transforming data and pipes
transferring data

Q: Examples?
% ps | grep bash | sort | more
CS 4311
29
More Architectural Styles






Client server
Three-tier
Layered
Repository
Batch sequential
Pipe and filter









CS 4311
Event driven
Interpreter
Peer-to-peer
Plug-in
Service-oriented
Publish-subscribe
Rule-based
Mobile code
…
30
In-Class and Assignment:



Study two architectural styles per team
Prepare a 10-minute presentation for the next class
You will present:








CS 4311
What is it?
What problem does it solve?
How does it solve the problem?
Who are the actors (i.e., main elements)?
How do they relate to each other?
What’re the strengths and drawbacks?
Example applications?
Include your sources (e.g., websites)
31
Download