1 / 19

SOFTWARE ARCHITECTURE: BASIC CONCEPT

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:

Download Presentation

SOFTWARE ARCHITECTURE: BASIC CONCEPT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOFTWARE ARCHITECTURE: BASIC CONCEPT By Xiangzhe Li Thanh Nguyen

  2. OUTLINE • Introduction • Terminology • Architecture • Component • Connector • Configuration • Architectural Style • Architectural Pattern • Model • Processes • Stakeholders • Conclusion

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

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

  5. Architecture (Continue) • Design decisions are involved in every aspect during the construction of the system: • Structure • Behavior • Interaction • Nonfunctional • Implementation

  6. Cwm -  data processing software for the semantic web

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

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

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

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

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

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

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

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

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

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

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

  18. Key Terms • Architecture • Design decisions • Principal • Prescriptive architecture • Descriptivearchitecture • Architectural drift • Architectural erosion • Component • Connector

More Related