sa4 unit 1.2 design part nh
Post on 08-Apr-2018
219 Views
Preview:
TRANSCRIPT
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
1/32
WHAT IS SOFTWARE ARCHITECTURE?
02/08/201002/08/2010
SA/NH/CS'A'/2010SA/NH/CS'A'/2010 11
Chapter 2,Chapter 2,Authors: Len Bass, Paul, RickAuthors: Len Bass, Paul, Rick
Page Numbers: 19Page Numbers: 19--4545
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
2/32
System description of Acoustic Simulation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
22of 50of 50
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
3/32
What Software Architecture Is and
What It Isn't
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
33of 50of 50
What is the nature of the elements?
What is the significance of separation?
Do they run on separate processors?
Do they run at separate times?
Do the elements consist of processes, programs or both?
Are they objects, task, functions, processes, distributed programs,
What are the responsibilities of the elements?
What is it they do?
What is their function in the system?
What is the significance of the connections?
Do the connections mean that the elements communicate with each other , control each other , send datato each other , use each other, invoke each other, share some information hiding secret with each other,
What information flows across the mechanism? What is the significance of the layout?
Why is CP on a separate level?
Does it call the other three?
Are others not allowed to call?
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
4/32
Architecture: Definition
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
44of 50of 50
The Software Architectureis a structure orstructures of the system, which comprise
software elements, the externally visible
properties of those elements, and the
relationships between them
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
5/32
Architecture Definition
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
55of 50of 50
externally visible properties -
assumptions other elements can make of an
element, such as its provided services,
performance characteristics, fault handling,
shared resources usage
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
6/32
Architecture: Definition observation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
66of 50of 50
Architecture defines software elements
embody The architecture represents information about how the elements
relate to each other
An architecture is foremost an abstraction of a system thatsuppresses details of elements that do not affect how they use,are used by, relate to, or interact with other elements.
Architecture is concerned with the public side of this division
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
7/32
Architecture: Definition observation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
77of 50of 50
Systems can and do comprise more than one structure
All nontrivial projects are partitioned into implementation units;
these units are given specific responsibilities and arefrequently the basis of work assignments for programming
teams.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
8/32
Architecture: Definition observation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010 88 ofof5050
Every computing system with software has a software architecture
Every system can be shown to comprise elements and the relations among them.
Unfortunately, an architecture can exist independently of its description or
specification, which raises the importance of architecture documentation and
architecture reconstruction
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
9/32
Architecture: Definition observation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
99of 50of 50
the behavior of each element is part of the
architecture
behavior can be observed from the point of view of
another element.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
10/32
Architecture: Definition observation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1010of 50of 50
the definition is indifferent as to whether the
architecture for a system is a good one or a bad
one
meaning that it will allow or prevent the system
from meeting its behavioral, performance, and life-
cycle requirements.
We do not accept trial and error as the best way tochoose an architecture for a system
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
11/32
Other Points of View
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1111of 50of 50
Architecture is high-level design
Architecture is the overall structure of the system
Architecture is the structure of the components of aprogram or system, their interrelationships, and theprinciples and guidelines governing their design andevolution over time
Architecture is components and connectors
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
12/32
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1212of 50of 50
An architectural pattern is a description of element
and relation types together with a set of
constraints on how they may be used
Set of constraints on an architecture
Example-C/S architecture.
Architectural PatternsArchitectural Patterns
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
13/32
Reference Models
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1313of 50of 50
A reference model is a division of functionality
together with data flow between the pieces.
It is standard decomposition of a known problem into
parts that solves problem cooperatively
Ex: OSI reference model..
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
14/32
Reference Architectures
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1414of 50of 50
A reference architecture is a reference model
mapped onto software elements (that cooperatively
implement the functionality defined in the reference
model) and the data flows between them
----
Reference model divides the functionality.
A reference architecture is the mapping of thatfunctionality on to a system decomposition
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
15/32
Architecture: useful concepts
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1515of 50of 50
ReferenceReferencearchitecturearchitecture
SoftwareSoftwarearchitecturearchitecture
ArchitecturalArchitecturalpatternpattern
ReferenceReferencemodelmodel
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
16/32
Why is Software Architecture Important?
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1616of 50of 50
1. Communication among stakeholders
-used as a basis for mutual understanding,
negotiation, compromise, and communication.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
17/32
Why is Software Architecture Important?
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1717of 50of 50
2. Early design decisions
Architecture represents earliest set of decisions
about system, they are most difficult to get correct
and the hardest to change the earliest point at
which design decisions can be analyzed
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
18/32
Why is Software Architecture Important?
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1818of 50of 50
3. Transferable abstractions of a system
Architecture is a relatively small model for how a
system is structured and how its elements work together
and this is transferable across systems.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
19/32
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
1919of 50of 50
Each stakeholder of a software system is concerned
with different system characteristics that are
affected by the architecture.
Architecture provides a common language in which
different concerns can be expressed, negotiated,and resolved at a level that is intellectually
manageable even for large, complex systems
ARCHITECTUREIS THE VEHICLE FOR STAKEHOLDERARCHITECTUREIS THE VEHICLE FOR STAKEHOLDERCOMMUNICATIONCOMMUNICATION
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
20/32
ARCHITECTURE MANIFESTS THEEARLIEST SET OF DESIGN
DECISIONS
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2020of 50of 50
Software architecture represents a system's earliest
set of design decisions.
These early decisions are the most difficult to get
correct and the hardest to change later in the
development process, and they have the most far-reaching effects.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
21/32
ARCHITECTURE MANIFESTS THE EARLIEST SET OF
DESIGN DECISIONS contd
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2121of 50of 50
The Architecture Defines Constraints on Implementation
The Architecture Dictates Organizational Structure
The Architecture Inhibits or Enables a System's Quality Attributes
Performance, Modifiability, Security, Scalability, Reusability
Predicting System Qualities by Studying the Architecture
The Architecture Makes It Easier to Reason about and Manage Change
The ArchitectureHelps in Evolutionary Prototyping
The Architecture Enables More Accurate Cost and Schedule Estimates
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
22/32
ARCHITECTURE AS A TRANSFERABLE, RE-USABLE MODEL
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2222of 50of 50
The earlier in the life cycle re-use is applied, the
greater the benefit that can be achieved
When architectural decisions can be re-used across
multiple systems, all of the early decision
consequences we just described are alsotransferred.
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
23/32
ARCHITECTURE AS A TRANSFERABLE, RE-USABLE
MODEL contd..
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2323of 50of 50
Software Product Lines Share a Common
Architecture
Systems Can Be Built Using Large, Externally
Developed Elements
Less Is More: It Pays to Restrict the Vocabulary of
Design Alternatives
An Architecture Permits Template-BasedDevelopment
An Architecture Can Be the Basis for Training
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
24/32
Architectural Structures and Views
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2424of 50of 50
A structure is the set of elements structure-set ofelements.
view It is a representation of logical set ofarchitecture elements, as written by and read bysystem stakeholder.
It consist of representation of a set of elements andthe relations among them
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
25/32
Architectural StructuresArchitectural Structures
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2525of 50of 50
- module structuresbasic elements are modules, they are assigned areas of
functional responsibility, less emphasis on runtime issues
- component-and-connector structures
elements are run-time components (units of computation) and connectors
(communication vehicles)
- allocation structuresshows the relationship between the software elements and theelements in one or more external environments in which softwareis created and executed
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
26/32
Architectural Structures: Module
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2626of 50of 50
modulemodule
decompositiondecomposition usesuses classclass
layeredlayered
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
27/32
Architectural Structures: Component-and-Connector
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2727of 50of 50
componentcomponent--andand--connectorconnector
clientclient--serverserver
processprocess
shared datashared data
concurrencyconcurrency
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
28/32
Architectural Structures: Allocation
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2828of 50of 50
allocationallocation
Work assignmentWork assignment implementationimplementation
deploymentdeployment
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
29/32
Architectural Structures: Module
Softwarestructure
Relations Useful For Reason About
decomposition is a submodule, sharessecrets with
resource allocation, project structuringand planning, information hiding,
encapsulation, configuration control
Uses requires the correct presence of
extension or extraction of functionality
layered requires the correct presence of, uses theservices of, providesabstraction to
incremental development,implementing systems on top of
virtual machines
class is an instance of, sharesaccess methods of
in OO producing rapid almost-alikeimplementations from a commontemplate
SA/NH/CS'A'/2010SA/NH/CS'A'/2010
2929 ofof
505002/08/201002/08/2010
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
30/32
Architectural Structures: Component-Connector
Software
structure
Relations Useful For Reason About
client-server communicates with,
depends on
distributed operation,separation of concerns,
performance, loadbalancing
process runs concurrently with, may runconcurrently with, excludes, precedes
scheduling, performance
concurrency runs on the same logical thread locations where resource
contention exists, wherethreads may fork, join,be created or killed
shared data produces data, consumes data performance, dataintegrity, modifiability
SA/NH/CS'A'/2010SA/NH/CS'A'/2010
3030 ofof
505002/08/201002/08/2010
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
31/32
Architectural Structures: Allocation
Software structure Relations Useful For Reason About
deployment allocated to,migrated to performance, availability,security
implementation stored in configuration control,integration, test activities
work assignment assigned to project management,
best use of expertise,management ofcommonality
SA/NH/CS'A'/2010SA/NH/CS'A'/2010
3131 ofof
505002/08/201002/08/2010
-
8/7/2019 SA4 UNIT 1.2 Design Part NH
32/32
Architectural Structures: which one to choose
02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010
3232of 50of 50
Philippe Krutchten (1995): four plus one approach
1. Logical : Elements are key abstractions.
This is module structure.
2. Process : Addresses concurrency and distribution of functionalityIt is a component-and-connector structure.
3. Development : This shows the organization of software modules, libraries,
subsystems, and units of development.
- It is allocation structure.
4. Physical : This maps other elements onto processing and communication
nodes.
It is an allocation structure.
top related