by xiangzhe li thanh nguyen. introduction terminology architecture component connector ...

19
SOFTWARE ARCHITECTURE: BASIC CONCEPT By Xiangzhe Li Thanh Nguyen

Upload: gervase-cross

Post on 31-Dec-2015

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

SOFTWARE ARCHITECTURE:

BASIC CONCEPT

By Xiangzhe Li

Thanh Nguyen

Page 2: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

OUTLINE Introduction Terminology

Architecture Component Connector Configuration Architectural Style Architectural Pattern

Model Processes Stakeholders Conclusion

Page 3: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

INTRODUCTION

Main idea of this chapter:

Define the key terms & ideas from the field of software architecture.

Provide a uniform basis for their discussion in the remainder of the book.

Page 4: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Architecture

Definition:A software system’s architecture is the

set of principal design decisions made about the system.

The architecture is the blueprint for the construction and evolution of the system.

Page 5: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Architecture (Continue)

Design decisions are involved in every aspect during the construction of the system:

Structure Behavior Interaction Nonfunctional Implementation

Page 6: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Cwm -  data processing software for the semantic web

Page 7: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Principal Definition: Principal implies a degree of importance

that grants a design decision architectural status.

Not all design decisions impact a system’s architecture.

Ex: Algorithm and data structure

Page 8: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Prescriptive vs. Descriptive

Prescriptive architecture represents how the system is intended characteristics and functionalities that are prior to the construction.

Descriptive architecture represents how the system is actually realized after the implementation.

Page 9: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Prescriptive vs. Descriptive (Continue)

Prescriptive architecture is modified during the development of the system due to several factors:

Accommodate actual requirements Code optimization Inadequate techniques and tool support

This leads to ...

Page 10: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Architectural Degradation Architectural drift:Introduction of principal design decisions into a system’s descriptive architecture that - Was not included by the prescriptive

architecture.- Do not violate any of the prescriptive

architecture’s design decisions. Architectural erosion:Introduction of architectural design decisions into a system’s descriptive architecture that violate its prescriptive architecture.

Page 11: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural
Page 12: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Other Definitions

Perry and WolfArchitecture = {elements, form, rationale}

ANSI/IEEE standard 1471-2000Fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution

Chris VerhoefThe software architecture of deployed software is determined by those aspects that are the hardest to change

Page 13: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Component

Definition: An architectural entity that 1) Encapsulates a subset of the system’s

functionality and/or data2) Restricts access to that subset via an

explicitly defined interface3) Has explicitly defined dependencies on its

required execution context

Note: components are usually application specific

Page 14: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Other definition

Clemens SzyperskiA software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

Page 15: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Connector

Definition:A software connector is an architectural element tasked with effecting and regulating interactions among components.Examples of connectors: Procedure call connectors Shared memory connectors Distribution connectors

Page 16: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Procedure call connectors

Simplest and widely used type Directly implemented in programming

languages Enable synchronous exchange of data

and control between components Caller to callee relationship

Page 17: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Shared memory connectors

Allow multiple software components to interact by reading from and writing to the shared facilities.

All writers and readers does not depend on each other to perform its tasks.

Page 18: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Distribution connectors

Encapsulate network library application programming interfaces (API)

Enable components in a distributed system to interact

Joined with multiple basic connector to separate the interacting components from the system distribution details

Page 19: By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural

Key Terms

Architecture Design decisions Principal Prescriptive architecture Descriptive architecture Architectural drift Architectural erosion Component Connector