DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Quality Attributes.

Slides:



Advertisements
Similar presentations
DAIMIHenrik Bærbak Christensen1 Reliable Software and Architecture Course 2: Reliable Architecture.
Advertisements

Dr. Rogelio Dávila Pérez
Requirements Engineering Process
Apache Struts Technology
Quality Attributes Or, what’s wrong with this: Exterminator kit – place bug on block, strike with mallet.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Copyright 2003 National ICT Australia Limited 1 Mining Patterns to Support Software Architecture Evaluation 4 th Working IEEE/IFIP Conference on Software.
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
The Architecture Design Process
An Introduction to Software Architecture Pejman Salehi
Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
DAIMIHenrik Bærbak Christensen1 What is Software Quality?
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Open Cloud Sunil Kumar Balaganchi Thammaiah Internet and Web Systems 2, Spring 2012 Department of Computer Science University of Massachusetts Lowell.
Desired Quality Characteristics in Cloud Application Development Leah Riungu-Kalliosaari.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software Project Management Fifth Edition
Supplementary Specifications (Chapters 20,22 - Requirements Text) Question 1 by Steve & Chandan (Along with others in the past! - See notes, below)
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
An Introduction to Software Architecture
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Identify steps for understanding and solving the
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CS361 Software Engineering I
An Introduction to Software Architecture Software Engineering Lab.
1 Software Architecture in Practice Quality attributes.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
# 1 AMI Enterprise Task Force of the Utility AMI Working Group SRS Team Plan Discussion For further information, contact Joe Zhou Team Lead
1 Software Architecture in Practice Quality attributes (The amputated version)
CSE 303 – Software Design and Architecture
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Cloud Computing and Architecture Architectural Tactics (Tonight’s guest star: Availability)
Smart Home Technologies
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Requirements Engineering Requirements Management Lecture-25.
Software Architecture Quality Attributes. Good or Bad? Measurable criterions required...
Chapter 12: Other Quality Attributes
Chapter 7: Modifiability
Software Architecture in Practice
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Rekayasa Perangkat Lunak
Requirements Engineering Process
The Systems Engineering Context
McCall’s Quality Factors
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Software Architecture Quality Attributes
Software engineering.
Rekayasa Perangkat Lunak
Quality Attributes Or, what’s wrong with this:
Charakteristiky kvality
Software Architecture in Practice
Quality Attributes Or, what’s wrong with this:
An Introduction to Software Architecture
ISO/IEC Systems and software Quality Requirements and Evaluation
Software Engineering and Architecture
Quality Attributes Or, what’s wrong with this:
Presentation transcript:

DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Quality Attributes

DAIMI(c) Henrik Bærbak Christensen2 Flashback… During my computer science education I was taught that there are basically two object- oriented designs: A good object-oriented design and A bad object-oriented design But … Is this an absolute truth ???

DAIMI(c) Henrik Bærbak Christensen3 By the way – what does good mean? Question: Is this little C program an example of good or bad software? Any comments? int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z-- ;)q=3&(r=time(0) +r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79- 77?1:0:p 158?-79:0,q?!a[p+q*2 ]?a[p+=a[p+=q]=q]=q:0:0;for(;q ;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}

DAIMI(c) Henrik Bærbak Christensen4 (What did the C program do?)

DAIMI(c) Henrik Bærbak Christensen5 Quality Attributes The problem about ”good” or ”bad” is that they are subjective measures... We need to measure our software. This requires –that we define the aspects/qualities we measure –that we agree on some kind of scale

DAIMI(c) Henrik Bærbak Christensen6 ’Quality communities’ One aspects of qualities is that most of them have dedicated research communities associated: –performance freaks (algoritm people, database,...) –usability freaks –security freaks –cost freaks –reusability freaks (name some ) which has lead to lack of common vocabolary…

DAIMI(c) Henrik Bærbak Christensen7 Quality Attributes (Bass 1ed) Runtime discernable –performance –security –availability –functionality –usability Business related –time to market –cost –projected lifetime –targeted market –rollout schedule –use of legacy systems Non runtime discernable –modifiability –portability –reusability –integrability –testability –scalability Architectural –conceptual integrity –correctness –completeness –buildability

DAIMI(c) Henrik Bærbak Christensen8 Runtime QA Performance –response-time, transactions pr second, workload Security –measure ability to resist unauthorized usage Availability –measure fraction of time the system is available Functionality –measure for ability to do intended work Usability –learnability, memorability, error handling, satisfaction

DAIMI(c) Henrik Bærbak Christensen9 Non runtime QA Modifiability (also called maintainability) –measure cost of introducing change Portability (special case of modifiability) –measure ability to operate in different computing environments Reusability (special case of modifiability) –measure for components abilities to be used in new contexts

DAIMI(c) Henrik Bærbak Christensen10 Non runtime QA Integrability –measure components ability to work together (the lack of it is often called architectural mismatch) Testability –measure for the ability of systematic testing to discover defects Scalability –measure ability to handle increased workload

DAIMI(c) Henrik Bærbak Christensen11 Business related QA Time to market Cost –how costly is it to produce? maintain? deploy? Projected lifetime –is it a long-term or short-term investment? Targeted market –mass-market, product-line, single customer Rollout schedule –growing a core system? Use of legacy systems –integration demands

DAIMI(c) Henrik Bærbak Christensen12 Architecture QA Conceptual integrity –’do similar things in similar ways’ (Brooks) –as-built versus as-designed Correctness and Completeness –all requirements are meet Buildability –measure how easy (if at all) it is to build the system given staff, money, organization, skill set, etc.

DAIMI(c) Henrik Bærbak Christensen13 New Bass Classification System Quality Attributes –Availability –Modifiability –Performance –Security –Testability –Usability Business Qualities Architectural Qualities

DAIMI(c) Henrik Bærbak Christensen14 Exercise What – of all these qualities – are probably the ones that will influence software developers’ personal lives the most ??? What qualities have been focused at in courses you have been following? In your company?

DAIMI(c) Henrik Bærbak Christensen15 Qualities in context What is the context for a given quality? –is performance globally important? Modifiability? –a QA (usually) only makes sense in a given context: e.g. response-time is important during normal operation but slow initialisation may be OK. modifiability is important in components/subsystems that are estimated to be changed often.

DAIMI(c) Henrik Bærbak Christensen16 The need for measuring My software is highly flexible... My software is really reusable! Our high performance server will... These are simply claims But – how do we provide concrete measurements?

DAIMI(c) Henrik Bærbak Christensen17 Quality attribute scenarios * Source of stimulus. This is some entity (a human, a computer system, or any other actuator) that generated the stimulus. * Stimulus. The stimulus is a condition that needs to be considered when it arrives at a system. * Environment. The stimulus occurs within certain conditions. The system may be in an overload condition or may be running when the stimulus occurs, or some other condition may be true. * Artifact. Some artifact is stimulated. This may be the whole system or some pieces of it. * Response. The response is the activity undertaken after the arrival of the stimulus. * Response measure. When the response occurs, it should be measurable in some fashion so that the requirement can be tested.

DAIMI(c) Henrik Bærbak Christensen18 Example

DAIMI(c) Henrik Bærbak Christensen19 Exercise Outline a similar scenario for the modifiability quality: –Source –Stimulus –Environment –Response –Measure

DAIMI(c) Henrik Bærbak Christensen20 Why scenarios A key property of quality attribute scenarios is that it sets qualities in perspective: –qualities are not ’universally important’, but important with respect to certain scenarios: use situations, change requests, environmental changes, etc. –all qualities are important to assess and analyse –qualities must be grounded in the reality within which the system must exist…

DAIMI(c) Henrik Bærbak Christensen21 Discussion ”It is the mapping of a system’s functionality onto software structures that determines the architecture’s support for quality attributes”. That is, the same functionality can be made available for the end user using any of a number of different architectures ! Functionality and architecture are orthogonal (independent)

DAIMI(c) Henrik Bærbak Christensen22 Discussion Architecture qualities are often in conflict with each other –performance versus modifiability –cost versus reusability The role of the architect –to design a ”good” architecture that balance qualities in a suitable way

DAIMI(c) Henrik Bærbak Christensen23 Discussion The list of QA’s is a good checklist to consider when ”architecting” a software system: globally (typically modifiability, buildability, cost, security …) lokally (typically performance, usability, …) A key insight is that: –qualities appear anyway!!! –is the project going to control them or is uncoordinated, random, decisions made by individuals going to determine them?

DAIMI(c) Henrik Bærbak Christensen24 Design versus Architecture Software architecture is an abstraction of a system –so… when does architecture stop and design/implementation begin??? Architecture only considers information necessary for decision making and risk management – with respect to the most important quality attributes.

DAIMI(c) Henrik Bærbak Christensen25 Summary Architects must balance different quality attributes –Runtime discernable: performance, security, availability... –Non-runtime discernable: modifiability, testability,... –Business related: cost, time-to-market –Architectural: buildability,... Architecture must be the well-defined responsibility of a single person (or perhaps two!)