Software Architecture

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

ATAM Architecture Tradeoff Analysis Method
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Evaluating a Software Architecture By Desalegn Bekele.
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
- 1 - Component Based Development R&D SDM Theo Schouten.
Software Architecture in Practice
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software architecture evaluation
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
Documenting Software Architectures
Evaluating Architectures: ATAM
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
An Introduction to Software Architecture
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
Testing Workflow In the Unified Process and Agile/Scrum processes.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
John D. McGregor Class 4 – Initial decomposition
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
SWE 513: Software Engineering
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
John D. McGregor Architecture Evaluation
The ATAM method. The ATAM method (1/2) Architecture Tradeoff Analysis Method Requirements for complex software systems Modifiability Performance Security.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
LOGO Supervisor: Mr.Huỳnh Anh Dũng Students: Nguyễn Công Tuyến Nguyễn Cảnh Phương Phạm Thị Hằng Bùi Thị Huệ Trần Đức Bình Nguyễn.
Software Engineering Management
Chapter 4 – Requirements Engineering
Documenting SW Architecture
The Development Process of Web Applications
The Systems Engineering Context
Chapter 25: Architecture and Product Lines
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to Databases Transparencies
Chapter 6 – Architectural Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
Vanilson Burégio The Battlefield Control System – The First Case Study in Applying the ATAM Chapter 4 of: Clements, Paul et al., Evaluating.
Software Processes Process should be
What is an Architecture?
The ATAM – A Method for Architecture Evaluation
Chapter 5 Architectural Design.
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Presentation transcript:

Software Architecture RiSE’s Seminars Clements’s book :: Chapters 1 and 2 Frederico Durão April 28, 2019

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 April 28, 2019

What is a Software Architecture? April 28, 2019

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 April 28, 2019

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] April 28, 2019

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 April 28, 2019

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 April 28, 2019

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 April 28, 2019

1.2 Architecture as the Manifestation of the Earliest Design Decisions 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? April 28, 2019

1.2 Architecture as the Manifestation of the Earliest Design Decisions 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 April 28, 2019

1.3 Architecture as a Reusable, Transferable Abstraction of a System 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? April 28, 2019

Evaluating a Software Architecture April 28, 2019

Evaluating a SW Architecture :: Chapter 2 How can we be sure whether the architecture chosen for an software is the right one? April 28, 2019

Software Architecture Methods 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 April 28, 2019

Why Evaluate an Architecture? 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... April 28, 2019

When Can Architecture Be Evaluated? 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 April 28, 2019

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 April 28, 2019

What Result Does an Architecture Evaluation Produce? 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 April 28, 2019

For what Qualities Can We Evaluate an Architecture? 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 April 28, 2019

For what Qualities Can We Evaluate an Architecture? 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 April 28, 2019

Why Are Quality Attributes Too Vague for Analysis? 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” April 28, 2019

What are the Outputs of an Architecture Evaluation? 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 April 28, 2019

Communication is the base of the success 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 April 28, 2019

Evaluating a SW Architecture :: Chapter 2 The simple and eficient things are more welcome than the complex and huge challenges April 28, 2019

References CLEMENTS, P. Software Product Line. Springer-Verlag, 2005. April 28, 2019