what is software architecture? | website for students | vtu notes | question papers | news |...

35
What is Software Architecture? www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Chapter 2, Authors: Len Bass, Paul, Authors: Len Bass, Paul, Rick Rick Page Numbers: 19-45 Page Numbers: 19-45

Upload: lynn-norman

Post on 31-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

What is Software Architecture?

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Chapter 2,Chapter 2,Authors: Len Bass, Paul, RickAuthors: Len Bass, Paul, RickPage Numbers: 19-45Page Numbers: 19-45

Page 2: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

System description of Acoustic Simulation

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 3: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

What Software Architecture Is and What It Isn't

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 data to 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?

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 4: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition

The Software Architecture is a structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships between them

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 5: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture Definition

externally visible properties -assumptions other elements can make of an element, such as its provided services, performance characteristics, fault handling, shared resources usage

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 6: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition – observation

Architecture defines software elements

The architecture represents information about how the elements relate to each other.

An architecture is foremost an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 7: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition – observation

Systems can and do comprise more than one structure

All nontrivial projects are partitioned into implementation units; these units are given specific responsibilities and are frequently the basis of work assignments for programming teams.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 8: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition – observation

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

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 9: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition – observation

the behavior of each element is part of the architecture

behavior can be observed from the point of view of another element.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 10: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: Definition – observation

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 to choose an architecture for a system

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 11: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Other Points of View

Architecture is high-level design

Architecture is the overall structure of the system

Architecture is the structure of the components of a program or system, their interrelationships, and the principles and guidelines governing their design and evolution over time

Architecture is components and connectorswww.bookspar.com | Website

for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 12: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

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 architectureExample-C/S architecture.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Architectural PatternsArchitectural Patterns

Page 13: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Reference Models

• 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..

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 14: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Reference Architectures

• 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 that

functionality on to a system decomposition.www.bookspar.com | Website

for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 15: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architecture: useful concepts

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

ReferenceReferencearchitecturearchitecture

SoftwareSoftwarearchitecturearchitecture

ArchitecturalArchitecturalpatternpattern

ReferenceReferencemodelmodel

Page 16: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Why is Software Architecture Important?

1.Communication among stakeholders-SA represents a common abstraction of a system.

-used as a basis for mutual understanding, negotiation, compromise, and communication by the stakeholders.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 17: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Why is Software Architecture Important?

2. Early design decisions

Architecture represents earliest set of decisions about system, they are most difficult to get correct and the hardest to change.

It is the earliest point at which design decisions can be analyzed.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 18: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Why is Software Architecture Important?

3. Transferable abstractions of a systemArchitecture is a relatively small model for how

a system is structured and how its elements work together and this is transferable across systems.

It can be applied to other systems exhibiting similar functional requirements.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 19: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Each stakeholder of a software system (customer, user, project, manager, coder, tester) is concerned with different system characteristics that are affected by the architecture.

User is concerned that system is reliable & available.Customer is concerned about schedule & budget.Manager: teams should work independently.Architect: worried about strategies to achieve goals.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

ARCHITECTURE IS THE VEHICLE FOR STAKEHOLDER ARCHITECTURE IS THE VEHICLE FOR STAKEHOLDER COMMUNICATION COMMUNICATION

Page 20: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

• 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

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 21: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures and Views

A structure is the set of elements.

view – It is a representation of set of architecture elements, as written by and read by system stakeholder.It consist of representation of a set of elements and the relations among them

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 22: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural StructuresArchitectural Structures

- module structures basic elements are modules.

they are assigned areas of functional responsibility.Module allow us answer What is the primary responsibility of module?

What other software does it use?

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 23: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

- component-and-connector structures

elements are run-time components (units of computation) and connectors (communication vehicles).What are the major components & how do they interact?How does data progress through the system?

- allocation structuresshows the relationship between the software elements and theelements in external environment in which software iscreated and executedWhat is the assignment of S/W elements to development team

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 24: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Module

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

modulemodule

decompositiondecomposition usesuses classclass

layeredlayered

Page 25: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Component-and-Connector

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

component-and-connectorcomponent-and-connector

client-serverclient-server

processprocess

shared datashared data

concurrencyconcurrency

Page 26: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Allocation

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

allocationallocation

Work assignmentWork assignment implementationimplementation

deploymentdeployment

Page 27: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Module Decomposition: Units are modules related to each other by “is a sub module of” relation. Shows how larger modules are decomposed into smaller modules

recursively till the smaller modules are easily understood. Modules have associated products (code, test plans). Provides modifiability, by ensuring that changes to small modules. Used for project structuring also for integration & test plans.

Uses : Structure are modules or procedures. Relation is “ uses”. One unit uses another if the correctness of the first requires the presence

of a correct version of second. www.bookspar.com | Website

for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 28: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

• Layered:• If the Uses relation is carefully controlled the a system of layer comes in

picture.• If there are n layers. Then the nth layer will use only service from layer n-

1.• Layers are often designed as abstractions & hide implementation specifics

below from the layers above.

• Class:• module units are called classes• Relation is “inherts- from”• Collection of similar behavior.• This allows us to reason about reuse and additional functionality.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 29: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Component-and-Connector

• Process or communicating processes:• Deals with dynamic aspects of a running system.• Units here are processes or threads which communicate, synchronize with

each other.• The relation is “attachment” how components and connecters are linked

together.

• Concurrency: • Allows the architects to determine the opportunities for parallelism.• Units are components and connecters are logical threads• Logical thread is a sequence of computation, that can be allocated to a

separate physical thread in design process.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 30: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

• Shared data or repository:• The structure comprises components and connecters that create, store

and access data • It shows how data is produced and consumed by run time software

element.• It is used for good performance and data integrity.

• Client and server:• Built as a group of cooperating clients and servers.• Components are clients and servers & Connecters are protocols and

messages• Used for load balancing( supporting run time performance) and physical

distribution.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 31: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Allocation

• Deployment:• Shows how software is assigned to hardware processing and

communication elements.• The elements are software, hardware, and communication pathways.• Relations are “allocated to” (shows which physical units are assigns to

software elements), and “migrates to” (if allocation is dynamic)• Helps to understand the performance ,availability, security.

• Implementation:• shows how software elements are mapped to file structures in the

systems development, integration.• This is critical for management of development activities.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 32: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

• Work assignment:• This structure assigns responsibility for implementing and integrating the

modules to appropriate development teams.• This structure which is the part of the architecture makes it clear about

the decisions “who does the work”.• The architect will know the expertise required on each team.

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 33: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: ModuleSoftware structure

Relations Useful For Reason About

Decomposition

is a sub module, shares secrets with

resource allocation, project structuring and planning, information hiding, encapsulation, configuration control

Uses requires the correct presence of

extension or extraction of functionality

layered requires the correct presence of, uses the rvices of, provides abstraction to

incremental development, implementing systems on top of “virtual machines”

Class is an instance of, shares access methods of

in OO – producing rapid almost-alike implementations from a common templatewww.bookspar.com | Website

for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 34: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Architectural Structures: Component-Connector

Software structure

Relations Useful For Reason About

client-server communicates with, depends on

distributed operation, separation of concerns, performance, load balancing

process runs concurrently with, may run concurrently with, excludes, precedes

scheduling, performance

concurrency runs on the same logical thread locations where resource contention exists, where threads may fork, join, be created or killed

shared data produces data, consumes data performance, data integrity, modifiability

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS

Page 35: What is Software Architecture?  | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

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 of commonality

www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS |

RESULTS