220 likes | 357 Views
Leah Riungu-Kalliosaari. Desired Quality Characteristics in Cloud Application Development. Contents. Introduction Research process Findings Conclusion Standardization of Cloud Computing. Introduction. Software quality: functional and non-functional requirements
E N D
Leah Riungu-Kalliosaari Desired Quality Characteristics in Cloud Application Development
Contents • Introduction • Research process • Findings • Conclusion • Standardization of Cloud Computing
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? • Qualitativecase 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.
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: TuomasNurmela • Secretary: ElinaHuttunen (contact at firstname.lastname@sfs.fi, 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