Quality Attributes. Mikael Svahnberg 1. April 6, School of Computing Blekinge Institute of Technology. 1/28.

Similar documents
CLOUD COMPUTING. A public cloud sells services to anyone on the Internet. The cloud infrastructure is made available to

Introduction To Cloud Computing

DISTRIBUTED SYSTEMS [COMP9243] Lecture 8a: Cloud Computing WHAT IS CLOUD COMPUTING? 2. Slide 3. Slide 1. Why is it called Cloud?

CHEM-E Process Automation and Information Systems: Applications

Cloud Computing. Technologies and Types

Distributed Systems. 31. The Cloud: Infrastructure as a Service Paul Krzyzanowski. Rutgers University. Fall 2013

Introduction to Cloud Computing

Module Day Topic. 1 Definition of Cloud Computing and its Basics

Cloud Computing Briefing Presentation. DANU

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

Cloud Computing. What is cloud computing. CS 537 Fall 2017

Lecture 09: VMs and VCS head in the clouds

Cloud Computing Private Cloud

Course Overview. ECE 1779 Introduction to Cloud Computing. Marking. Class Mechanics. Eyal de Lara

Introduction to software architecture Revision : 732

Cloud Computing Technologies and Types

Orchestrating the Cloud Infrastructure using Cisco Intelligent Automation for Cloud

Programowanie w chmurze na platformie Java EE Wykład 1 - dr inż. Piotr Zając

Cloud Computing Lecture 4

Accelerate Your Cloud Journey

Architekturen für die Cloud

CLOUD COMPUTING ABSTRACT

Introduction to Cloud Computing and Virtual Resource Management. Jian Tang Syracuse University

Pulse Secure Application Delivery

Architectural Implications of Cloud Computing

CLOUD COMPUTING PRIMER FOR EXECUTIVES

Cloud Computing introduction

Cloud Computing: The Next Wave. Matt Jonson Connected Architectures Lead Cisco Systems US and Canada Partner Organization

Cloud Programming. Programming Environment Oct 29, 2015 Osamu Tatebe

Introduction to data centers

what is cloud computing?

ECE Enterprise Storage Architecture. Fall ~* CLOUD *~. Tyler Bletsch Duke University

IT Enterprise Services. Capita Private Cloud. Cloud potential unleashed

Demystifying the Cloud With a Look at Hybrid Hosting and OpenStack

Motivation There are applications for which it is critical to establish certain availability, consistency, performance etc.

QLIKVIEW SCALABILITY BENCHMARK WHITE PAPER

1 The intersection of IAM and the cloud

Large-Scale Web Applications

Magellan Project. Jeff Broughton NERSC Systems Department Head October 7, 2009

Managing your Cloud with Confidence

SEEM3450 Engineering Innovation and Entrepreneurship

Data Centers and Cloud Computing. Slides courtesy of Tim Wood

Data Centers and Cloud Computing

Examining Public Cloud Platforms

What is a Lean Cloud Platform? May 2011 Paul Fremantle CTO and Co-Founder,

2-4 April 2019 Taets Art and Event Park, Amsterdam CLICK TO KNOW MORE

Data Centers and Cloud Computing. Data Centers

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

Citrix CloudBridge Product Overview

A Study on Load Balancing in Cloud Computing * Parveen Kumar,* Er.Mandeep Kaur Guru kashi University, Talwandi Sabo

Hosted Azure for your business. Build virtual servers, deploy with flexibility, and reduce your hardware costs with a managed cloud solution.

Journey to the Cloud At Derby City Council. Nick O Reilly Director of Digital Services

The Applications We See The Most

Multitiered Architectures & Cloud Services. Benoît Garbinato

Cloud Computing 4/17/2016. Outline. Cloud Computing. Centralized versus Distributed Computing Some people argue that Cloud Computing. Cloud Computing.

Flash in a Hybrid Cloud World. How Cloud Shift will affect flash in the Data Center Steve Knipple: Cloud Shift Advisors

Cloud Computing and Service-Oriented Architectures

Setup Lab. A quick guide to infrastructure tools for EPL371

Moving to the Cloud. Developing Apps in. the New World of Cloud Computing. Dinkar Sitaram. Geetha Manjunath. David R. Deily ELSEVIER.

DEEP DIVE INTO CLOUD COMPUTING

Mobile Cloud Computing

FIVE REASONS YOU SHOULD RUN CONTAINERS ON BARE METAL, NOT VMS

Cloud Computing. Ennan Zhai. Computer Science at Yale University

In this unit we are going to look at cloud computing. Cloud computing, also known as 'on-demand computing', is a kind of Internet-based computing,

Simulation of Cloud Computing Environments with CloudSim

CORPORATE PERFORMANCE IMPROVEMENT DOES CLOUD MEAN THE PRIVATE DATA CENTER IS DEAD?

UVA HPC & BIG DATA COURSE. Cloud Computing. Adam Belloum

CS 6393 Lecture 10. Cloud Computing. Prof. Ravi Sandhu Executive Director and Endowed Chair. April 12,

Acknowledgements. Beyond DBMSs. Presentation Outline

Cisco Unified Data Center Strategy

Cloud-Security: Show-Stopper or Enabling Technology?

COMPTIA CLO-001 EXAM QUESTIONS & ANSWERS

The Intersection of Cloud & Solid State Storage

Cloud Computing and Service-Oriented Architectures

Cloud Computing. DB Special Topics Lecture (10/5/2012) Kyle Hale Maciej Swiech

IaaS. IaaS. Virtual Server

Traditional Classification of Requirements

Cloud Infrastructure and Operations Chapter 2B/8 Page Main concept from which Cloud Computing developed

Connecting to the Cloud

Lecture 7: Data Center Networks

Large Scale Computing Infrastructures

Software Architectures. Lecture 6 (part 1)

Four Steps to Unleashing The Full Potential of Your Database

IaaS. IaaS. Virtual Server

Expert Reference Series of White Papers. Understanding Data Centers and Cloud Computing

EBOOK: VMware Cloud on AWS: Optimized for the Next-Generation Hybrid Cloud

The Role of WAN Optimization in Cloud Infrastructures. Josh Tseng, Riverbed

Identifying Workloads for the Cloud

What is. Thomas and Lori Duncan

What you need to know about disaster recovery in the

#techsummitch

IaaS. IaaS. Virtual Server

International Journal of Advance Engineering and Research Development. A Private Cloud On Open Source Paradigm

Oracle IaaS, a modern felhő infrastruktúra

Scaling DreamFactory

File systems, databases, cloud storage

Introduction to Xamarin Cross Platform Mobile App Development

A Holistic View of Telco Clouds

CHAPTER 2 BASICS OF CLOUD COMPUTING

Data Centres: The Infrastructure That Underpins The Cloud. May 2017

Transcription:

1/28 Quality Attributes Mikael Svahnberg 1 1 Mikael.Svahnberg?bth.se School of Computing Blekinge Institute of Technology April 6, 2017

2/28 Quality What is quality?

3/28 Requirement vs Attribute A quality attribute is always present A quality requirement puts a constraint on an attribute A quality requirement describes a service level of the system (or, more likely, a functional requirement).

4/28 Architecture and Quality Attributes Functionality is easy to implement. Quality requirements may sometimes have impact on the implementation More often, it impacts the software structure (=the software architecture).... And yet, the architecture can only describe a potential for achieving a particular quality level.

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

5/28 Examples Usability Button layout etc. Certain functions (e.g. undo, data re-use). Modifiability How is functionality divided?... In relation to likely change scenarios. Performance communication between components division of functionality between components allocation of shared resources choice of algorithms

6/28 Levels of Quality Attributes Business Qualities Time-to-Market, Cost and Benefit, Projected Lifetime, Targeted market, Rollout schedule, Legacy system integration Also: Product portfolio, Requirements from Society, etc. 1 System Quality Attributes Availability, Modifiability, Performance, Security, Testability, Usability ISO 9126: Functionality, Reliability, Usability, Efficiency, Maintainability, Portability Architecture Qualities Conceptual Integrity, Correctness and Completeness, Buildability 1 T. Gorschek and A. M. Davis. Requirements engineering: In search of the dependent variables. Information and Software Technology, 50(1-2):67-75, 2008.

7/28 Achieving Quality Attributes (I) In order to achieve a a certain level for a quality attribute we need a controlled process to lead us towards an architecture decision. Quality Attribute Scenarios is one building block for this: Source: Users Stimulus: Initiate Transactions Environment: Under normal operations Response: Transactions are processed Response Measure: With an average latency of two seconds

8/28 Example of Quality Attribute Scenario: Performance Source: Users Aspect Source Stimulus Artifact Environment Response Response Measure Stimulus: Initiate Transactions Environment: Under normal operations Response: Transactions are processed Response Measure: With an average latency of two seconds Value Users Initiate transactions: 1000 per minute System Normal mode (c.f. overload mode) Transactions are Processed Latency of 2s (deadline, throughput, jitter, miss rate, data loss, etc)

9/28 Achieving Quality Attributes (II) The next step is to find a solution to a Quality Attribute Scenario. To this, we have tactics. A tactic can be (but is not limited to) a design pattern, an architecture pattern, or an architectural strategy.

10/28 Other Concerns One may be led to believe that if only the quality requirements are taken care of, the rest will follow. Obviously, this is not the case. Hofmeister et al. 2 lists three sources of concerns 3 : Organisational factors: Management (cf. business qualities above) Staff skills, interests, strenghts, weaknesses Process and development environment Development schedule Development Budget Technological factors Product factors 2 C. Hofmeister, R. Nord, and D. Soni. Applied Software Architecture. Addison-Wesley, Reading MA, 2000. 3 Please note the overlap to the categories from Bass et al.

10/28 Other Concerns One may be led to believe that if only the quality requirements are taken care of, the rest will follow. Obviously, this is not the case. Hofmeister et al. 2 lists three sources of concerns 3 : Organisational factors: Technological factors General-purpose hardware Domain-specific hardware Software technology Architecture technolog Standards Product factors 2 C. Hofmeister, R. Nord, and D. Soni. Applied Software Architecture. Addison-Wesley, Reading MA, 2000. 3 Please note the overlap to the categories from Bass et al.

10/28 Other Concerns One may be led to believe that if only the quality requirements are taken care of, the rest will follow. Obviously, this is not the case. Hofmeister et al. 2 lists three sources of concerns 3 : Organisational factors: Technological factors Product factors Functional Features User Interface Performance Dependability Failure detection, reporting, recovery Service Product cost 2 C. Hofmeister, R. Nord, and D. Soni. Applied Software Architecture. Addison-Wesley, Reading MA, 2000. 3 Please note the overlap to the categories from Bass et al.

11/28 Software Solutions In a course (or any hypothetical system that is never going to be built), it is often easy to solve issues simply by allowing more or better hardware. In industry, the hardware constraints are real and hard. For example (using low estimates): Require 1GB more internal memory in the computer = 17 Euro. Ship 1000 units/year = 17 000 Euro. Expected lifespan of system: 10 years = 170 000 Euro. Ensure availability of the right memory modules for the hardware platform for the coming 10 years: lots more. Contrast this with one well payed swedish developer working full-time for one year to reduce the memory consumption in software: 75000 Euro (including tax and social fees).

12/28 Architectures for different purposes Regular desktop applications Embedded applications Enterprise applications Applications for Android / IOS Cloud applications Service-Oriented Architectures (SOA) Software Ecosystems...

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

13/28 What can differ? Instantiation into different viewpoints? - Trivial, the views will differ between each application anyway. Factors, Issues and Strategies? - Also trivial, for the same reason. The importance of certain factors (e.g. the importance of certain quality requirements). Typical choices of strategies for a particular domain. Typical choices of architecture styles for a particular domain (may be subordinate to the aforementioned)

14/28 Embedded Applications I This is a large and diverse field, and there are many quality requirements that may be in focus for different applications. However, there are some overall constraints that hold true for most applications in this domain: Hardware cost - Keep memory footprint low - Keep CPU usage low - Optimise for wear and tear Hardware availability for entire product life expectancy - Keep memory and CPU usage low. - Cull system regularly to remove stuff that is no longer needed. - Low-cost growth mechanisms.

15/28 Embedded Applications II Testability - Testable software the usual stuff - Testable hardware system test software, test harness, etc. - Report error states (e.g. through flashing diodes). Reliability - Error detection - Error recovery - Report error states visibly (e.g. on-line, flashing diodes)

16/28 Embedded Applications III Energy consumption - Low-effort computing - Reduce display time and display size (if any) - Powersave modes - Lazy evaluations deferred processing Network communications - Standard communications platform - Robust transfers (e.g. in outdoor environments) - Operate by dead reckoning

17/28 Enterprise Applications I Enterprise architectures only has very little to do with software architecture and yet it has everything to do with the software architecture. Organisational, Technological, and Product factors can be considered subsets, or limited views, of the enterprise architecture.

18/28 Enterprise Applications II: List of Concerns Persistent Data 4 Large amounts of data Large scale concurrent access Many data views (user interface screens) Need to integrate with other enterprise applications Multiple interpretations of data (conceptual dissonance) Complex business logic rules (business illogic ) Various types of enterrpise systems {B,C}2{B,C} B,C {s,m,l,xl,xxl} 2003. 4 M. J. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, Boston MA,

19/28 Enterprise Applications IV: Typical Architecture Styles Function-centric (Transaction script) Domain concept-centric (Domain model) Data representation-centric (Table module)... I could go on, but the book (Fowler 2003) is rather thick and full of patterns that dig deeper and deeper into the application.

20/28 Android/IOS Applications Somewhere between embedded and desktop applications. Any number of quality concerns may be relevant for any application. The platform itself imposes some concerns. Hardware: Restrict battery usage Small screen Unorthodox input methods (e.g. thumb) Not the fastest CPU, restricted RAM. Variety of hardware available on a particular phone model. Software: Interruptible applications (e.g. for phone calls) Interoperable applications Reuse wherever possible, yet enable customisation. Intuitive user experience that supports how users operate their handheld device (e.g., avoid deep meny hierarchies). Varity of services available on a particular phone.

21/28 A/IOS Applications: Example of Energy Needs Jon Summers, University of Leeds studied energy consumtion of Gangnam Style Downloaded 1.8 10 9 times 4.13 minutes, 17MB Energy consumption for streaming it: 0.0002 kwh per minute. 312 GWh! That s more than 10 million Africans have for their whole nation (e.g. the whole country of Burundi) in a year!

21/28 A/IOS Applications: Example of Energy Needs Jon Summers, University of Leeds studied energy consumtion of Gangnam Style Downloaded 1.8 10 9 times 4.13 minutes, 17MB Energy consumption for streaming it: 0.0002 kwh per minute. 312 GWh! That s more than 10 million Africans have for their whole nation (e.g. the whole country of Burundi) in a year!

21/28 A/IOS Applications: Example of Energy Needs Jon Summers, University of Leeds studied energy consumtion of Gangnam Style Downloaded 1.8 10 9 times 4.13 minutes, 17MB Energy consumption for streaming it: 0.0002 kwh per minute. 312 GWh! That s more than 10 million Africans have for their whole nation (e.g. the whole country of Burundi) in a year!

22/28 A/IOS Applications: Addressing Concerns Battery usage - Event-driven applications (BroadcastReceivers and IntentFilters) Interruptible applications, flat user interfaces - Loosely connected applications - Event-driven applications - Application as a set of screens, each screen a separate process - Separate Activities (interaction-based) from Services (runs in the background) - Persistent storage as a system service interoperable applications, reuse wherever possible, variety of services available, yet customisable - Late binding - Loosely connected applications - Event-driven applications - Common communication platform: Intent and IntentFilters. - Separate Activities and Services from ContentProviders.

23/28 Cloud Applications The concept of a cloud application is simple: It is essentially a client-server solution, where rather than maintaining the server yourself, you rent virtual servers from a cloud vendor. One definition 5 of a cloud service - The service is accessible via a web browser or web services API - Zero capital expenditure is necessary to get started - You pay only for what you use as you use it. Another definition 6 - Pooled Resources, Virtualisation, Elasticity, Automation, Metered Billing 5 G. Reese, Cloud Application Architectures, O Reilly, 2009. 6 Rosenberg et al., The Cloud at your Service, Manning Publications co., 2011.

24/28 Levels of Cloud Services Software as a Service (SaaS) - e.g. Google Docs, Yahoo!, SalesForce.com, Valtira, etc. Platform as a Service (PaaS) - e.g. Google App Engine, Microsoft Azure, etc. Infrastructure as a Service (IaaS) - e.g. Amazon Elastic Compute Cloud (EC2), Microsoft Azure, RackSpace, etc....

25/28 Factors that push you towards the cloud Transference Move your on-site solution as-is to the cloud for e.g. economic reasons. - Challenges: Setting up a similar environment in the cloud as you have locally. Internet Scale Scaling up to handle more users. - Challenges: Database design may become a bottleneck. Burst Compute Large swings in capacity requirements. - Challenges: Strategy for load balancing, database access. Elastic Storage Scaling up to handle (much) more data. - Challenges: need also to consider where the data is processed.

26/28 Challenge: Internet Scale Issue: Your database s working sets are too large Too many writes Solution: Partition the data (Sharding)

27/28 Challenge: Cloudbursting Issue: Solution: Occasional peaks of traffic that pushes infrastructure over its capacity Use on-demand capacity (Cloud) for the peaks Load-balancer that divides work between in-house servers and cloud servers Render static data views

28/28 Summary Each application has its own set of unique challenges, but the class of applications may also have typical challenges and quality concerns These shape the solutions. Sometimes only a little, sometimes by dictating a certain architecture style. In this lecture a select few application classes have been introduced: Embedded, Mobile, Cloud, and Ecosystems. Embedded and Mobile application constraints are due to technical limitations. Cloud application constraints come from the users.