1 / 26

Computing and SE II Chapter 7: Software Architecture Design

Computing and SE II Chapter 7: Software Architecture Design. Er-Yu Ding Software Institute, NJU. Main Contents. Motivation of software architecture What is software architecture Architecture styles Architecture Design.

salazarr
Download Presentation

Computing and SE II Chapter 7: Software Architecture Design

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. Computing and SE IIChapter 7: Software Architecture Design Er-Yu Ding Software Institute, NJU

  2. Main Contents Motivation of software architecture What is software architecture Architecture styles Architecture Design

  3. 1. Motivation of software architecture——When applications getting complex… • For an application based on 5 objects • You can coding it directly and get a well product • For an application based on 50 objects • You should design it first and then building it • For an application based on 500 objects • Of course design is also needed • But can you assure that assigning the objects responsibilities well and integrating them into a satisfied product with the help of design work?

  4. 1. Motivation of software architecture—— Size( Complexity) really does matter!

  5. 1. Motivation of software architecture—— Forces of Satisfied Software Capacity Safety Availability Fault tolerance Performance Throughput Technology churn Resilience Functionality Cost Compatibility • When software getting complex • Nonfunctional forces are very difficult to achieve in traditional methods! • Because we can’t see the global just with intuition or analysis like before • We should control them before detail design

  6. 1. Motivation of software architecture—— The way we building software 软件构建单位 单位组织方法 • 合作 • 依赖 • 包含、继承 • 调用、使用 • 控制逻辑 • 序列 Where we used before • Mary Shaw, 1989: Larger Scale Systems Require Higher-Level Abstractions • --Organizing systems on the sub-system and module level • --The software architecture level of design

  7. 2. What is software architecture——Definition of SW Architecture “The SW architecture of a program or computing system is the structure or structures of the system, which comprise SW components, the externally visible properties of those components, and the relationships among them “

  8. 2. What is software architecture—— An Example

  9. 2. What is software architecture—— Another Example

  10. 2. What is software architecture—— Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design in meeting its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software.

  11. 2. What is software architecture—— Why is Architecture Important? Representations of software architecture arean enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together” [BAS03].

  12. 3. Architectural Styles • Each style describes a system category that encompasses: • a set of components (e.g., a database, computational modules) that perform a function required by a system, • a set of connectors that enable “communication, coordination and cooperation” among components, • constraints that define how components can be integrated to form the system, • semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures

  13. 3. Architectural Styles——Data-Centered Architecture

  14. 3. Architectural Styles—— Data Flow Architecture

  15. 3. Architectural Styles—— Call and Return Architecture

  16. 3. Architecture Styles —— Object-Oriented Style

  17. 3. Architectural Styles—— Layered Architecture

  18. 4. Architecture Design ——Architectural Patterns • Concurrency—applications must handle multiple tasks in a manner that simulates parallelism • operating system process managementpattern • task scheduler pattern • Persistence—Data persists if it survives past the execution of the process that created it. Two patterns are common: • a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture • an application levelpersistence pattern that builds persistence features into the application architecture • Distribution— the manner in which systems or components within systems communicate with one another in a distributed environment • Abroker acts as a ‘middle-man’ between the client component and a server component. • Middleware platform can hide the distribution problem

  19. 4. Architecture Design —— Organization and Refinement • Control • Procedure calls (local or remote) • Events • Messages and message buses • Client/server middleware • Delegate, Adapter • Data • Shared Data • Pipes • Messages and message buses

  20. 4. Architecture Design —— Architectural Design • The software must be placed into context • the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction • A set of architectural archetypes should be identified • Anarchetype is an abstraction (similar to a class) that represents one element of system behavior • The designer specifies the structure of the system by defining and refining software components that implement each archetype

  21. 4. Architecture Design —— Architectural Context

  22. 4. Architecture Design —— Archetypes

  23. 4. Architecture Design —— Component Structure

  24. 4. Architecture Design —— Refined Component Structure

  25. 4. Architecture Design —— Analyzing Architectural Design 1. Collect scenarios. 2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements: • module view • process view • data flow view 4. Evaluate quality attributes by considered each attribute in isolation. 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. 6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.

  26. The End • Next Lecture • Component Design

More Related