190 likes | 334 Views
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:
E N D
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 • 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 • Descriptivearchitecture • Architectural drift • Architectural erosion • Component • Connector