Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Information System Audit : © South-Asian Management Technologies Foundation Chapter 4: Information System Audit Requirements.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Intraship Integration Control Instructor: TV Prabakar.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Instructor: Tasneem Darwish
Understanding Quality Attributes. Functionality and Quality Attributes  Functionality and quality attributes are orthogonal.  Functionality can be achieved.
The Architecture Design Process
1 Steve Chenoweth Tuesday, 10/18/11 Week 7, Day 2 Right – One view of the layers of ingredients to an enterprise security program. From
1 Exercise a short summary of you so your professor can get to know you better: Name, company, job/role/title, most interesting SE area, any architecting.
- 1 - Component Based Development R&D SDM Theo Schouten.
Chapter 11 Operating Systems
Copyright ©2009 Opher Etzion Event Processing Course Engineering and implementation considerations (related to chapter 10)
1 Software Testing and Quality Assurance Lecture 40 – Software Quality Assurance.
Software Architecture in Practice
Silberschatz, Galvin and Gagne  Operating System Concepts Common System Components Process Management Main Memory Management File Management.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Software Quality Assurance For Software Engineering && Architecture and Design.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
What do operating systems do? manage processes manage memory and computer resources provide security features execute user programs make solving user.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture in Practice (3rd Ed) Introduction
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Chapter 13 Processing Controls. Operating System Integrity Operating system -- the set of programs implemented in software/hardware that permits sharing.
CHAPTER 2 OPERATING SYSTEM OVERVIEW 1. Operating System Operating System Definition A program that controls the execution of application programs and.
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
CSE 303 – Software Design and Architecture
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IT Requirements Management Balancing Needs and Expectations.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Software Architecture in Practice Quality attributes.
1 University of Palestine Information Security Principles ITGD 2202 Ms. Eman Alajrami 2 nd Semester
1 ITGD 2202 Supervision:- Assistant Professor Dr. Sana’a Wafa Al-Sayegh Dr. Sana’a Wafa Al-SayeghStudent: Anwaar Ahmed Abu-AlQumboz.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Operating System Principles And Multitasking
Distributed System Services Fall 2008 Siva Josyula
1 Software Architecture in Practice Quality attributes (The amputated version)
Cloud Computing and Architecture Architectural Tactics (Tonight’s guest star: Availability)
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture Quality Attributes. Good or Bad? Measurable criterions required...
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (1)
Operating System (Reference : OS[Silberschatz] + Norton 6e book slides)
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
1.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 1: Introduction What Operating Systems Do √ Computer-System Organization.
Computer System Structures
Chapter 6: Interoperability
Software Architecture in Practice
Software Architecture
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Chapter 19: Architecture, Implementation, and Testing
Software Architecture Quality Attributes
Operating System Structure
Introduction to Operating System (OS)
Software Architecture in Practice
Unit 1: Introduction to Operating System
Lecture 12z ATAM Case Study Nightingale System
Chapter 2: Operating-System Structures
Software Architecture
Chapter 5 Architectural Design.
Chapter 2: Operating-System Structures
Software Engineering and Architecture
Segments Introduction: slides minutes
Software Architecture
Presentation transcript:

Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz

2 Summary About Software Architecture Quality Attribute Characterizations  Performance  Availability  Modifiability  Characterizations Inspire Questions Using Quality Attributes Characterizations in ATAM  Attribute-Based Architectural Styles

3 About software architecture

4 What is software architecture ? It is the manifestation of the earliest design decisions It is a reusable, transferable abstraction of a system

5 Why software architecture is important Is a vehicle for communication among stakeholders  Architectural View  Functional View  Concurrency View  Code View  Development view  Physical View

6 Why evaluate an architecture ? The sooner, the better Avoid disasters

7 Who’s involved Evaluation team Stakeholders

8 Understanding Quality Attributes Quality Attributes - Prerequisite of an evaluation Common incomplete quality atribute requirements and architecture documentation

9 Architecture Evaluation  Focus on Quality Attributes Evaluate the architecural design decisions to determine if they address the quality attribute scenarios Understanding Quality Attributes

10 Quality attribute parts Availability Modifiability Performance Security Testability Usability Designing the Architecture :: Chapter 7 ARTIFACT STIMULUSRESPONSE MEASURE SOURCE OF STIMULUS ENVIRONMENT

11 Functionality and Quality Attributes Must be considered throughout: design, implementation and deployment  Usability, Modifiability, Performance Architecture itself is unable to achieve quality if attention is not paid to the details With complex systems, quality attributes can never be achieved in isolation Software architecture in Practice Chapter 4 – Understanding Quality Attributes

12 Quality attribute characterizations

13 Quality Attribute Characterizations Different in its stimuli  Performance – Arrival of events  Availability – Fault occuring Different in its responses  Modifiability – persons-day required to make a requested change  Security – how many intruders will break into the systems and what resources they will be able to access

14 Performance Ability of a system to allocate its computational resources to requests for service in a manner that will satisfy timing requirements Resource types  Uni/multi processors, memory, devices Resource arbitration  On-line/Off-line Scheduling, Synchronization Resource Allocation  Load Balancing Resource consumption  Execution Time, Memory Size, Network Bandwith

15 Availability Concerned with system failure and its consequence Failure concerns  How is detected  How frequently may occur  Consequences  How long is out of operation  How to prevent Software architecture in Practice Chapter 4 – Understanding Quality Attributes

16 Sample Availability-related questions Stimuli  How are hadware and software failures identified ?  Can active as well passive failures be identified ? Architectural decisions  If redundancy is used in the architecture … what type of redundancy (analytic, replication, functional) ? How many replicas of each critical component and connection are used ? Responses  Are there levels of service available ?  How quickly ca a backup be made/restored ?

17 Modifiability Ability of a system to be changed after is implemented

18 Modifiability Cost of change  What to change Hardware, OS, Performance, number of users  When and Who Compile, build, setup, execution  Specify, design, implement, test, deploy Time and money, measured Software architecture in Practice Chapter 4 – Understanding Quality Attributes

19 Security System's ability to resist to unauthorized usage while still providing its service to legitimate users Attack – Attempt to breach security  Access data, modify data, deny service Characteristics  Nonrepudiation You did (Transaction)  Confidentiality Protected data (income tax)  Integrity Cannot change data  Assurance You are who purport to be (credit card)  Availability Free of DOS  Auditing Keep track of activities Software architecture in Practice Chapter 4 – Understanding Quality Attributes

20 Usability How easy it is for the user to accomplish a desired task and the kind of support the system provides  Learning system features  Using system efficiently  Minimizing the impact of errors  Adapting the system to user needs  Increasing confidence and satisfaction “Usability is not architectural” Software architecture in Practice Chapter 4 – Understanding Quality Attributes

21 Using Quality Attributes Characterizations in ATAM

22 Modifiability Characterization Stimuli Chage Request Function Platform Quality Attribute Operating Environment Architectural Decisions Indirection Encapsulation Separations Responses Addition Modification Deletion Characterization inspires questions

23 Characterization inspires questions A beginner can make use of existing questions It requires more expertise in a quality attribute to devise new questions from the characterizations It requires still more expertise to understand how to respond to the questions

Template for Analysis of an Architectural Approach Scenario #: A12Scenario: Detect and recover from HW failure of main switch AttributesAvailability EnvironmentNormal Operations StimulusOne of the CPUs fails Response availability of the swith Architectural Decisions SensitivityTradeoffRiskNonrisk Backup CPUS2R8 No backup data channel S3T3R9 HeartbeatS5N12 Reasoning Ensures no common mode failure by using different hardware and operating systems (see Risk R8) Worst case rollover is accomplished in 4 seconds as computing state takes that long at worst Guaranteed to detect failure with 2 seconds based on rates of heartbeat and watchdog Primary CPU (OS1) Backup CPU w/ watchdog (OS2) Primary CPU (OS1) Architecural diagram

25 Quality Scenarios Source of stimulus  Some entity: Human, computer Stimulus  Condition that need to be considered when it arrives at a system Environment  Stimulus occurs within certain conditions Artifact  What is stimulated. The whole system or some pieces of it Response  Activity undertaken after the arrival of the stimulus Response measure  Response should be measurable, so that the requirement can be tested. Software architecture in Practice Chapter 4 – Understanding Quality Attributes

26 ABAS – Attribute-Based Architectural Styles Related architectural and analysis techniques in a package  Problem description  Stimuli/responses  Architectural style  Analysis Another source of inspiration and reference when criating the attribute specific questions

27 Business Qualities System Qualities x Business Qualities Cost, schedule, market, marketing  Time to market Commercial off-the-shelf (COTS)  Cost and benefit Exceed budget  Projected lifetime of the system Portability/usability  Targeted market  Rollout schedule Base functionality w/ features later  Integration with legacy system Software architecture in Practice Chapter 4 – Understanding Quality Attributes

28 References [Clements, 2001] P. Clements, R. Kazman, M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley, 2001, pp [Bass, 2003] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison-Wesley, 2003, pp Images: Stock.XCHNG