SOFTWARE ARCHITECTURE BASIC CONCEPT By Xiangzhe Li Thanh
SOFTWARE ARCHITECTURE: BASIC CONCEPT By Xiangzhe Li Thanh Nguyen
OUTLINE � � Introduction Terminology � Architecture � Component � Connector � Configuration � Architectural Style � Architectural Pattern � � Model Processes Stakeholders Conclusion
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.
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.
Architecture (Continue) � Design decisions are involved in every aspect during the construction of the system: � Structure Behavior Interaction Nonfunctional Implementation � �
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 �
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.
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. . . � � �
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. �
Other Definitions Perry and Wolf Architecture = {elements, form, rationale} � ANSI/IEEE standard 1471 -2000 Fundamental 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 Verhoef The software architecture of deployed software is determined by those aspects that are the hardest to change �
Component � � 1) 2) 3) Definition: 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 Has explicitly defined dependencies on its required execution context Note: components are usually application specific
Other definition Clemens Szyperski A 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. �
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 �
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
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.
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
Key Terms � � � � � Architecture Design decisions Principal Prescriptive architecture Descriptive architecture Architectural drift Architectural erosion Component Connector
- Slides: 19