Software Architecture in Practice

Slides:



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

DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Quality Attributes.
DAIMIHenrik Bærbak Christensen1 Testability Tactics How to make software testable...
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.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
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
Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz.
DAIMIHenrik Bærbak Christensen1 What is Software Quality?
Chapter 4 Database Management Systems. Chapter 4Slide 2 What is a Database Management System (DBMS)?  Database An organized collection of related data.
Open Cloud Sunil Kumar Balaganchi Thammaiah Internet and Web Systems 2, Spring 2012 Department of Computer Science University of Massachusetts Lowell.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
The Design Discipline.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Quality Attributes Often know as “–ilities” …
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Quality Attribute -continued. What is Availability? Availability refers to a property of software that it is there and ready to carry out its task when.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
1 Software Architecture in Practice Quality attributes.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
1 Software Architecture in Practice Quality attributes (The amputated version)
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
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.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Software Architecture Quality Attributes. Good or Bad? Measurable criterions required...
Maintaining and Updating Windows Server 2008 Lesson 8.
Chapter 12: Other Quality Attributes
Introduction To DBMS.
Chapter 7: Modifiability
Chapter 4: Understanding Quality Attributes
Quality Attribute Modeling and Analysis
Software Quality Control and Quality Assurance: Introduction
Chapter 6: Interoperability
Scalability: Load Balancing
Software Architecture in Practice
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Architecture Quality Attributes
Part 3 Design What does design mean in different fields?
Lecture 6. Information systems
Security Engineering.
Chapter 25: Architecture and Product Lines
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Design Process for Architecture
Design and Maintenance of Web Applications in J2EE
Lecture 7 – Quality Attributes
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Quality Attributes Or, what’s wrong with this:
Software Architecture in Practice
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Systems Analysis and Design in a Changing World, 6th Edition
Quality Attributes Or, what’s wrong with this:
An Introduction to Software Architecture
Design Process for Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
SOFTWARE DEVELOPMENT LIFE CYCLE
Chapter 6: Architectural Design
Design Process for Architecture
Software Engineering and Architecture
Quality Attributes Or, what’s wrong with this:
From Use Cases to Implementation
Presentation transcript:

Software Architecture in Practice Quality Attributes And Quality Attribute Scenarios

Good or bad architecture? Question: Is this little C program an example of good or bad software? Exercise 1: Argue that this is a good program! Exercise 2: Argue that this is a bad program ! 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<1659?79:0:p>158?-79:0,q?!a[p+q*2 ]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}

(What did the C program do?)

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: a metric

No such thing as good or bad We are engineers and scientists, not priests  Quality Framework Quality Attribute Performance Usability Metric Measurement Choose alternatives Maintainability

Contribution of Bass et al. Proposes uniform measurement template Quality Attribute Scenarios Keypoint: Same template for radically different qualities, like performance or security Achors quality in specific context No quality is globally achievable

Quality framework (Bass et al.) Quality attributes Availability Interoperability Modifiability Performance Security Testability Usability Interop. is new kid Other Quality attributes Variability Portability Dev Distributability Scalability Deployability Mobility Monitorability Safety Conceptual Integrity

A writing template 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. 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.

Example: Performance

Example: Modifiability

Keypoint The keypoint of the template is Some source generates some events (stimuli) that arrives at some artefact under some conditions (environment) and must be dealt with (response) in a satisfactory way (response measure = the architectural requirement)

Generators Chapter 5-11 lists generators for the contents of these QAS. General Scenarios Consider them a good first attempt Feel free to elaborate and refine As long as you stay true to the given quality attribute and the keypoint of the template 

Example: Availability Concerned with the probability that the system will be operational when needed

Example: Availability An internal crash occurs in the inventory database process during normal operation. The response is logging of the fault and recovery by returning to normal operation (inventory db up and running) within 5 seconds

Henrik Bærbak Christensen Tactics So – what do we do then? Definition: Tactic is a design decision that influences the achievement of a quality attribute response CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example Availability tactic Passive Redundancy (warm spare) We have 3 inventory databases in a cluster that keep each other synchronized One is primary and serves all requests If primary experience crash, the two other elect a new primary CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Tactics Tactics capture what architects do in practice Customer: It is vital that our point-of-sale is on-line all the time! It is business critical. Architect: Let us use passive redundancy on the database system to ensure high availability Tactics may influence more than one QA Redundancy increase code complexity Affect time-to-market and cost negatively Redundancy increase number of servers Affect security negatively CS@AU Henrik Bærbak Christensen

Tactics / Arch Patterns Architectural Patterns also achieve Qas ‘client-server’ = modifiability - reuse So what is the difference? Tactics are ‘first principles’ – focus on single aspect and QA ‘smaller’ CS@AU Henrik Bærbak Christensen

The QAS General Scenarios CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Availability Concerned with the probability that the system will be operational when needed CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Interoperability Concerned with the degree to which two or more systems can usefully exchange meaningful information via interfaces in a particular context CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Modifiability Concerned with the ease with which the system supports change CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Performance Concerned with ability to meet timing requirements CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Security Concerned with ability to protect data and information from unauthorized access while still providing access to people/systems that are authorized CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Testability Concerned with the ease with which the software can be made to demonstrate its faults CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Usability Concerned with how easy it is for the user to accomplish a desired task and the kind of user support the system provides CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Summary CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen QAS QAS capture architectural quality attribute requirements in a common format Some source generates some events (stimuli) that arrives at some artefact under some conditions (environment) and must be dealt with (response) in a satisfactory way (response measure = the architectural requirement) The reponse measure is central – measurable! CS@AU Henrik Bærbak Christensen