Upload
george-reynolds
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
Introduction
Software quality: functional and non-functional requirements
Software quality is an elusive target (Blaine and Cleland-Huang, 2008)
Achieving quality in software requires balancing between many factors e.g. budget, time, communication, outsourcing,
Introduction
Cloud computing: on-demand access to computing resources.
Three service layers: software-as-a-service (SaaS), platform-as-a-service (PaaS), infrastructure-as-a-service (IaaS) (Mell and Grance, 2011)
Cost reduction, increase scalability, improve efficiency
Cloud-based environments for developing and hosting applications
Cloud applications are applications built, deployed and hosted in cloud environments (Hobfield, et. al, 2012)
Introduction
Cloud application development
Pre-defined architectural structures, resources, interfaces, service access and discovery mechanisms.
Emphasis on certain requirements e.g. need for strict conformance, high interoperability
Introduction
Aim: evaluate important product quality characteristics as perceived by organizations developing cloud applications
ISO/IEC 25010 Product quality model: functional suitability,
reliability, performance efficiency, usability, security, compatibility, maintainability, portability
Quality in use model: effectiveness, efficiency, satisfaction, freedom from risk and context coverage
Research Process
Research questions What quality characteristics do developers consider to
be important for cloud-based applications? What activities support developers in achieving these
quality characteristics?
Qualitative case study Grounded Theory for analysis
Five organizations: 1 Large, 1 Medium and 3 Micro
Categories
Five categories
Life-cycle model and tools: describes the software development life-cycle model and the tools used to produce the software. Waterfall, incremental, agile
Software application: the type of software that the organization is developing.
Case A Case B Case C Case D Case E
Software application
Cloud based test management service (SaaS)
Web-based system for managing IT resources
Amazon web services-based value adding service for Infrastructure as a Service (IaaS)
Cloud-based application for an international social website integrated with the world’s most popular networks (SaaS)
Web-based applications
Categories
Important quality characteristics: most desirable aspects of quality These varied, but usability was common among all the
cases
Practices for handling requirements: mechanisms for handling requirements. Origin: From the developers themselves (Case B, C &
D) and from the customer (Case A & E) Some problems
Case D Functional system at first User preferences might affect the built-in
functionality.
Categories
Customer involvement: effect of the customer during the development life cycle. Case A & E: High levels of flexibility to accommodate
different customer needs Case B & C: Customer not involved in developing the
first product. Considered customer feedback to improve the applications
Case D: Developing first version, customer not involved, (yet)
Observations
Observation 1: The most important quality characteristics vary among the organizations, but usability was important in all the organizations Case A: Reliability, availability (quality of service) Case B: Usability, security when hosting in the cloud
Security as well data integrity and confidentiality Conformance to and interoperability with cloud platforms “Because I'm using the [cloud] APIs … if the security could be breached, then
that would first of all break the whole service, and second of all compromise my relationship with the platform [provider]. And that's the key quality issue that I'm worried about before I release the product” – Owner Case C
Usability All organizations stated usability to be important.
Observations
Observation 2: Agile development methods are preferred when developing cloud-based applications.
Changes in the cloud platforms and user preferences affect the software applications
Agile methods help in reacting to changes, and keeping up with evolving quality expectations
Focus on most important features first Surprising: Customers more tolerant to errors. (Case C)
Observations
Observation 3: Customer input is valued at different stages of the development.
This depends on where the requirements come from. From customer (Case A & E): customer is involved from
the start Customers not able to clearly state their needs
From the developers (Case B & C), steady interaction with the customer after releasing the software
Case D expects some changes after releasing the application
Observations
Observation 4: The developers choose development tools according to their knowledge, skills and familiarity with the tools.
Additional tools are chosen based on learnability, usability and appropriateness for the intended use.
Case B: Improve the development process test management tool Case C: Cloud APIs conforming to platform-specific security
requirements Case E: Drupal appropriate for building web-based applications
Conclusions
Desired quality varied among the organizations Depends on the application Usability was important in all cases Good first impression
Three activities employed to support the development Selecting a suitable life-cycle model Engaging the customer Applying the most suitable tools
Cloud application development is a complex process. Interaction amongst stakeholders Requires aligning the development activities with the targeted quality
Standardization of Cloud Computing
Distributed application platforms and services ISO/IEC JTC1 / SC 38
WG 1 Web services WG 2 Service Oriented Architecture (SOA) WG 3 Cloud computing Study group on cloud computing http://www.iso.org/iso/jtc1_sc38_home
Finnish Standards Association SFS Mirror committee SR310 Chair: Tuomas Nurmela Secretary: Elina Huttunen (contact at [email protected], if interested) Currently 25 members, most active 5-6 persons
Cloud Computing Reference Architecture
The aim of the CCRA is to:
Illustrate and understand cloud services in the context of an overall conceptual methodology
Provide a technical reference to enable the international community to understand, discuss, categorize and compare cloud services
Facilitate the analysis of candidate standards in areas such as security, interoperability, portability and service management and support analysis of reference architecture