1 / 25

Software Architecture

Software Architecture. RiSE’s Seminars Clements’s book :: Chapters 1 and 2 Frederico Durão. Summary. What is Software Architecture (Chapter 1) Importance Architecture Views Evaluating a Software Architecture (Chapter 2) Reasons Software Architecture Methods

lyris
Télécharger la présentation

Software Architecture

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 RiSE’s Seminars Clements’s book :: Chapters 1 and 2 Frederico Durão

  2. Summary • What is Software Architecture (Chapter 1) • Importance • Architecture Views • Evaluating a Software Architecture (Chapter 2) • Reasons • Software Architecture Methods • Benefits of Evaluating Software Architecture

  3. What is a Software Architecture?

  4. What is a SW Architecture ? :: Chapter 1 From 1990 the term Software Architecture has gained widespread acceptance when this field attracted attention from both industry and the research community 1990s 1960s

  5. What is a SW Architecture ? :: Chapter 1 Importance • It is a vehicle for communication among stakeholders • It is the manifestation of the earliest design decisions • It is the reusable, transferable abstraction of a system The software architecture of a program is the structure of the system, which comprise software components (the externally visible properties of those components) and the relationships among them. [Bass 98]

  6. What is a SW Architecture ? :: Chapter 1 1.1 Architecture as vehicle for communication among stakeholders • 1.1.1 Architecture and Its Effects on Stakeholders • User wants a system usable and reliable • Costumer wants a system implemented on scheduled and to budget • Developers have to answer those through coding • 1.1.2 Architectural Views

  7. What is a SW Architecture ? :: Chapter 1 Architecture Views • Functional View • System functions • Data flow • Concurrency View • Set of process and threads • Performance, availability and deployment • Code View • Classes, packages, modules, libraries • UML – ex: Class Diagram • Development View • Files and Directories • CVS • Physical View • Hardware Resources • Ex: LAN Network Map, sensors, circuits, storage devices

  8. What is a SW Architecture ? :: Chapter 1 1.1 Architecture as vehicle for communication among stakeholders • 1.1.3 Architecture Description Languages • ADL • Success in: • Deadlock, detection, consistency, real-time • Failure in: • None of these languages has been widely adopted • UML – Success Case

  9. What is a SW Architecture ? :: Chapter 1 1.2 Architecture as the Manifestation of the Earliest Design Decisions • Decisions affects quality attributes: • Performance • Security • Modifiability • Reliability • Decisions affects the organization • Teams, Information flows • Organization process, Training • Commercial Decisions • Microsoft or Java Components?

  10. What is a SW Architecture ? :: Chapter 1 1.2 Architecture as the Manifestation of the Earliest Design Decisions • 1.2.1 Architectural Styles • The earliest of the early design decisions • A set of components types • A set of connector types/interaction mechanisms • A topological layout of these components • A set of constraints on topologies and behavior • An informal description of the costs and benefits of the style

  11. What is a SW Architecture ? :: Chapter 1 1.3 Architecture as a Reusable, Transferable Abstraction of a System • Architecture is a reusable model that can become the basis for an entire family of systems… • Software Product Line • Architectural Challenges in SPL: • Which of these are the core assets? • How add new functionalities in the core assets?

  12. Evaluating a Software Architecture

  13. Evaluating a SW Architecture :: Chapter 2 How can we be sure whether the architecture chosen for an software is the right one?

  14. Evaluating a SW Architecture :: Chapter 2 Software Architecture Methods • ATAM: Architecture Tradeoff Analysis Method • SAAM: Software Architecture Analysis Method • ARID: Active Reviews for Intermediate Designs

  15. Evaluating a SW Architecture :: Chapter 2 Why Evaluate an Architecture? • The earlier an error is found, the cheaper is the cost to fix it; • Symptoms of unsuitable architecture: • No performance goals met; • No Security goals met; • Customer impatient; • Right functionality not available; • Difficulty in changes; • Schedules and budgets blown out of water; • Architecture evaluation is a cheap way to avoid disasters...

  16. Evaluating a SW Architecture :: Chapter 2 When Can Architecture Be Evaluated? • The earlier an error is found, the cheaper is the cost to fix it • Symptoms of unsuitable architecture: • No performance goals met • No Security goals met • Customer impatient • Right functionality not available • Difficulty in changes • Schedules and budgets blown out of water • Architecture evaluation is a cheaper way to avoid disaster

  17. Evaluating a SW Architecture :: Chapter 2 Who's Involved? • Evaluation Team • People who will perform the analysis • Stakeholders • Not all of the stakeholders will be member of the development team • The Decision Maker – ex: architect and project management • The clients are interested in the output of the evaluation

  18. Evaluating a SW Architecture :: Chapter 2 What Result Does an Architecture Evaluation Produce? • Report • Answers to • Is this the architecture suitable to the needs? or • Which of two or more competing architectures is the most suitable on for the system at hand? • A suitable Architecture is reached if... • The system result meets its quality goals • The system can be built within of the budget and deadline estimated

  19. Evaluating a SW Architecture :: Chapter 2 For what Qualities Can We Evaluate an Architecture? • Performance - latency time • Reliability – system operating over the time • Availability – system is up and running • Security – resistance to attacks • Modifiability - changes • Portability – run under different environments • Functionality – do the work that is expected • Variability - reuse • Subsetability – deliver a part of product • Conceptual integrity

  20. Evaluating a SW Architecture :: Chapter 2 For what Qualities Can We Evaluate an Architecture? Architectural Evaluation will tell us that the architecture has been found suitable with respect to one set of goals and problematic with another set of goals The decision in which steps give is responsibility of the manager

  21. Evaluating a SW Architecture :: Chapter 2 Why Are Quality Attributes Too Vague for Analysis? “The system shall exhibit acceptable performance” ...and... “The system will perform the search in maximum 5 seconds” What about the scenario? “The system will perform the search in maximum 5 seconds in a Linux Platform with Oracle Database where the server is a Pentium IV HT 2.0Ghz and 1Gb RAM”

  22. Evaluating a SW Architecture :: Chapter 2 What are the Outputs of an Architecture Evaluation? • Outputs from the ATAM, SAAM, and ARID • Prioritized Statement of Quality Attribute Requirements • Mapping of Approaches to Quality Attributes • Risks and Nonrisks • Outputs only from the ATAM • Catalog of Architectural Approaches Used • Approach-and- Quality-Attribute-Specific Analysis Question

  23. Evaluating a SW Architecture :: Chapter 2 What are the Benefits and Costs of Performing an Architecture Evaluation? • Put Stakeholders in the Same Room • The first meeting of stakeholders • Forces an Articulation of Specific Quality Data • Results in the Prioritization of Conflicting Goal • Forces a Clear Explication of the Architecture • Improves the Quality of Architectural Documentation • Uncovers Opportunities for Cross-Project Reuse • It spots components that can be reused • Results in Improved Architecture Practices Communication is the base of the success

  24. Evaluating a SW Architecture :: Chapter 2 The simple and eficient things are more welcome than the complex and huge challenges

  25. References • CLEMENTS, P. Software Product Line. Springer-Verlag, 2005.

More Related