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 • Benefits of Evaluating Software Architecture
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
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]
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
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
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
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?
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
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?
Evaluating a SW Architecture :: Chapter 2 How can we be sure whether the architecture chosen for an software is the right one?
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
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...
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
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
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
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
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
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”
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
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
Evaluating a SW Architecture :: Chapter 2 The simple and eficient things are more welcome than the complex and huge challenges
References • CLEMENTS, P. Software Product Line. Springer-Verlag, 2005.