Skip to main content

2013 | Buch

Software Engineering Frameworks for the Cloud Computing Paradigm

insite
SUCHEN

Über dieses Buch

This book presents the latest research on Software Engineering Frameworks for the Cloud Computing Paradigm, drawn from an international selection of researchers and practitioners. The book offers both a discussion of relevant software engineering approaches and practical guidance on enterprise-wide software deployment in the cloud environment, together with real-world case studies. Features: presents the state of the art in software engineering approaches for developing cloud-suitable applications; discusses the impact of the cloud computing paradigm on software engineering; offers guidance and best practices for students and practitioners; examines the stages of the software development lifecycle, with a focus on the requirements engineering and testing of cloud-based applications; reviews the efficiency and performance of cloud-based applications; explores feature-driven and cloud-aided software design; provides relevant theoretical frameworks, practical approaches and future research directions.

Inhaltsverzeichnis

Frontmatter

Impact of Cloud Paradigm on Software Engineering

Frontmatter
Chapter 1. Impact of Semantic Web and Cloud Computing Platform on Software Engineering
Abstract
Tim Berners-Lee’s vision of the Semantic Web or Web 3.0 is to transform the World Wide Web into an intelligent Web system of structured, linked data which can be queried and inferred as a whole by the computers themselves. This grand vision of the Web is materializing many innovative uses of the Web. New business models like interoperable applications hosted on the Web as services are getting implemented. These Web services are designed to be automatically discovered by software agents and exchange data among themselves. Another business model is the cloud computing platform, where hardware, software, tools, and applications will be leased out as services to tenants across the globe over the Internet. There are many advantages of this business model, like no capital expenditure, speed of application deployment, shorter time to market, lower cost of operation, and easier maintenance of resources, for the tenants. Because of these advantages, cloud computing may be the prevalent computing platform of the future. To realize all the advantages of these new business models of distributed, shared, and self-provisioning environment of Web services and cloud computing resources, the traditional way of software engineering has to change as well. This chapter analyzes how cloud computing, on the background of Semantic Web, is going to impact on the software engineering processes to develop quality software. The need for changes in the software development and deployment framework activities is also analyzed to facilitate adoption of cloud computing platform.
Radha Guha
Chapter 2. Envisioning the Cloud-Induced Transformations in the Software Engineering Discipline
Abstract
The software engineering field is on the move. The contributions of software solutions for IT-inspired business automation, acceleration, and augmentation are enormous. The business values are also rapidly growing with the constant and consistent maturity and stability of software technologies, processes, infrastructures, frameworks, architectural patterns, and tools. On the other hand, the uncertainty in the global economy has a direct bearing on the IT budgets of worldwide organizations. That is, they are expecting greater flexibility, responsiveness, and accountability from their IT division, which is being chronically touted as the cost center. This insists on shorter delivery cycles and on delivering low-cost yet high-quality solutions. Cloud computing prescribes a distinguished delivery model that helps IT organizations to provide quality solutions efficiently in a manner that suits to evolving business needs. In this chapter, we are to focus how software-development tasks can get greatly simplified and streamlined with cloud-centric development processes, practices, platforms, and patterns.
Pethuru Raj, Veeramuthu Venkatesh, Rengarajan Amirtharajan
Chapter 3. Limitations and Challenges in Cloud-Based Applications Development
Abstract
Organisations and enterprise firms, from banks to social Web, are considering developing and deploying applications on the cloud due to the benefits offered by them. These benefits include cost effectiveness, scalability and theoretically unlimited computing resources. Many predictions by experts have indicated that centralising the computation and storage by renting them from third-party provider is the way to the future. However, before jumping into conclusions, engineers and technology officers must assess and weigh the advantages of cloud applications over concerns, challenges and limitations of cloud-based applications. Decisions must also involve choosing the right service model and knowing the disadvantages and limitations pertaining to that particular service model. Although cloud applications have benefits a galore, organisations and developers have raised concerns over the security and reliability issues. The idea of handing important data over to another company certainly has security and confidentiality worries. The implication does not infer that cloud applications are insecure and flawed but conveys that they require more attention to cloud-related issues than the conventional on-premise approaches. The objective of this chapter is to introduce the reader to the challenges of cloud application development and to present ways in which these challenges can be overcome. The chapter also discusses the issues with respect to different service models and extends the challenges with reference to application developer’s perspective.
N. Pramod, Anil Kumar Muppalla, K. G. Srinivasa

Software Development Life Cycle for Cloud Platform

Frontmatter
Chapter 4. Impact of Cloud Services on Software Development Life Cycle
Abstract
Cloud computing provides a natural extension to service-oriented architecture (SOA) and the World Wide Web. It leads to a complete paradigm shift in a number of areas such as software development, deployment, IT usage, and software services industry. Among these areas, the impact on software development life cycle needs special attention as they form a pivotal part in the cloud assessment and migration. In this context, some key aspects include (a) implications of cloud-based (public cloud based) solution on the privacy requirements, (b) implications of cloud-based solution on testing services and project testing methodology, and (c) implications of cloud-based solution of configuration management. In this chapter, we propose to address the impacts, strategies, and best practices to minimize the negative effects of these implications. The chapter discusses variations to software development life cycle and related processes with respect to private cloud, public cloud, and hybrid cloud models. These variations are analyzed based on the usage pattern of each cloud-based solution, especially with respect to requirement analysis, architecture and design, software construction, testing, and rollout. Relevant processes such as project management, configuration management, and release management are also discussed. The chapter concludes with a summary of various cloud usage patterns and their impact on each of the software development life cycle stages. These usage patterns and the impacts are generalized and can form the backbone of an enterprise cloud application development methodology.
Radha Krishna, R. Jayakrishnan
Chapter 5. Cloud-Based Development Using Classic Life Cycle Model
Abstract
Information technology (IT) today has evolved into a rapidly changing and dynamic science. Timelines have shrunk drastically for technology from being termed cutting edge to becoming obsolete. In such a fast-changing and dynamic world needing customised solutions, cloud computing offers a viable alternative. Cloud can overcome the redundancy factor and evolve over time to suit user needs. It is characterised by a wide array of deployment models and services that are very promising. While the concept of cloud computing has been around for some time now, industry adoption has been rather slow. Due to the sheer possibilities on offer, one remains optimistic of wider acceptance of this technology in future. This chapter takes us through the steps needed to validate the choice of public cloud via risk-based feasibility analysis. The chosen option can be built into needed IT systems based on cloud variants of the classic life cycle model. This chapter discusses the phases and activities of this development. The Wrapper model discussed here will enable better understanding of system control determinants for services opted on the cloud. A case study is discussed to help provide a better insight and understanding of the life cycle model.
Suchitra Ravi Balasubramanyam
Chapter 6. Business Requirements Engineering for Developing Cloud Computing Services
Abstract
Cloud computing is an emerging paradigm that is becoming rapidly popular with business organisations. The software-as-a-service (SaaS) delivery approach is increasing in demand for yet more cloud-based services. However, this new trend needs to be more systematic with respect to software engineering (design and development) and its related processes. In this case, a valid question is: How do we change our existing user-based requirements capturing methodologies to a suitable service-based business requirements engineering? In this chapter, we present an approach to cloud requirements engineering that is based on business-oriented analysis as this is the key to a successful cloud service. This chapter explores the new requirements engineering process and relevant techniques for capturing cloud-based services. The process and techniques have been explained using a large-scale case study based on Amazon Cloud EC2.
Muthu Ramachandran
Chapter 7. Testing Perspectives for Cloud-Based Applications
Abstract
Cloud computing is often used to describe a model for ubiquitous, convenient, and on-demand network access to shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud computing heralds the trend of service provider companies in comparison to traditional software licensing era. As the Cloud-based services are increasing and businesses catered through software services require reassurances, so there is a need to test those services and applications before offering them to the customers. Cloud-based testing offers reduction in the unit cost of computing with test effectiveness, on-demand flexibility, freedom from holding assets, enhanced collaboration, greater levels of efficiency, and, most significantly, reduced time-to-market for key business applications. This chapter largely quantifies on testing related to Cloud computing, elaborates fundamentals of testing and differentiates between traditional software testing techniques and software testing in Cloud environment. It also emphasizes on analysis of the existing Cloud-based testing models and their limitations and Cloud-based application frameworks. The chapter concludes with the discussion on need of automated test case generation techniques, potential research directions, and technologies for testing approaches in Cloud environments.
Inderveer Chana, Priyanka Chawla
Chapter 8. Testing in the Cloud: Strategies, Risks and Benefits
Abstract
Testing in the cloud, commonly referred to as cloud testing, has revolutionised the approach adopted in traditional software testing. In the literal terms, it refers to testing Web applications in the “cloud” – leveraging a service provider’s ready-made testing resources. The customer boycotts the hassle and expense of procurement, setup and maintenance of test environment setup on premise. Previously, accustomed solely with non-functional testing such as performance and load testing, recent advancements have made it possible to write test scripts and modify and automate test suites – all in the cloud environment. This chapter provides an in-depth overview of contemporary cloud testing, the types and its best practices. The benefits and risks are fully discussed with recommended methods to abate these risks. A methodological approach to govern an organisation migrating to cloud testing is also presented. A unique model, which shows the complex and dynamic interrelationship among active factors and their effect on the major project success factors in a cloud testing environment, is designed and presented. These project success factors include productivity, quality and cost. This model will help management to make strategic decisions on the adoption of cloud testing and the impact of their policy adoption on the productivity, quality and cost of software development projects.
Olumide Akerele, Muthu Ramachandran, Mark Dixon

Software Design Strategies for Cloud Adoption

Frontmatter
Chapter 9. Feature-Driven Design of SaaS Architectures
Abstract
An important service delivery category of cloud computing is the Software-as-a-Service (SaaS) domain in which software applications are made available through the cloud environment. In general, when describing SaaS, no specific application architecture is prescribed but rather the general components and structure is defined. However, it appears that SaaS architectures vary widely according to the application category and the number of tenants. To define a proper SaaS architecture, it is important to have both a proper understanding of the domain and the architecture design. In this chapter, we provide a domain-driven design approach for designing SaaS architectures. We provide a family feature model of the SaaS domain that models both the common and variant parts of SaaS architectures. For deriving the application architecture based on selected features from the family feature model, we also provide a systematic approach and the corresponding tool support. Our approach and the framework tool aim to support the SaaS architect in generating a proper SaaS architecture.
Bedir Tekinerdogan, Karahan Öztürk
Chapter 10. Impact of Cloud Adoption on Agile Software Development
Abstract
Cloud computing provides a wide range of core infrastructure services such as compute and storage, along with building blocks which can be consumed from both on-premise environments and the Internet to develop cloud-based applications. It offers Platform as a Service capability which allows applications to be built, hosted and run from within managed data centres using programmable APIs or interoperable services exposed by the platform. The objective of this chapter is to study the effects of cloud adoption on software development projects that use agile methodologies. Agile methodologies involve iterative and incremental approaches to software development. The ubiquitous nature of cloud computing makes it an enabler of agile software development. This chapter highlights various aspects of cloud provision that can catalyse agile software development. The chapter provides directions for agile teams that are keen on exploiting the potential of cloud to alleviate the challenges currently faced by them. A case study of an agile development team which adopted cloud is discussed to articulate the real-time benefits and challenges in adopting the cloud environment.
Sowmya Karunakaran
Chapter 11. Technical Strategies and Architectural Patterns for Migrating Legacy Systems to the Cloud
Abstract
With the advent of Internet, information has crossed the realms of books and gone digital, requiring data to be easily accessible and delivered anywhere speedily. There are myriads of formats in which data is currently available, such as videos, images, documents and Web pages. Accordingly, handling datasets in various formats has made the task of designing scalable and reliable application really challenging. Building the applications of tomorrow would need architects and developers to construct applications that can meet the needs that would demand handling high volumes of data and deliver substantial throughput. In today’s enterprises, there are legacy applications which may have been developed several years or even decades ago. At the time, the business may have been in its infancy, and so applications may have been designed to satisfactorily handle workloads prevalent in those times with some average growth factors built in. However, owing to the new emerging trends in the technology space, such as mobile and big data, the workloads at which businesses operate today have grown manifold. Also, the monolithic legacy systems serving those workloads have failed to keep pace, often struggling to deliver the SLAs (Service-Level Agreement). Although cloud is not a panacea for all kind of new demands, we believe that with some appropriate architectural restructuring, existing applications may go a long way in serving the demands of new growing businesses. Applications redesigned on the lines of parallel computing patterns such as master/worker or MapReduce and implemented on cloud platforms can be leveraged to add new life or re-energise legacy applications that can scale much better. In this chapter, we discuss an approach to transform legacy applications, designed to handle high-volume requests, by using re-engineering techniques and modern design patterns so as to effectively realise the benefits of cloud environment.
Sidharth Subhash Ghag, Rahul Bandopadhyaya
Chapter 12. Cloud-Aided Software Engineering: Evolving Viable Software Systems Through a Web of Views
Abstract
Cloud computing is currently generating tremendous excitement in the IT industry. However, most cloud initiatives to date have focused on the delivery of computing services to end users, rather than on improving the engineering and governance of software systems. The cloud has the potential to revolutionize the way software is developed and governed and to consign much of the artificial complexity involved in software engineering today to history. It not only holds the key to reducing the tensions between agile and “heavyweight” methods of developing software, it also addresses the problem of software license management and piracy – software in the cloud cannot be copied! The cloud also promises to unlock the potential of large, heterogeneous distributed development teams by supporting social interaction, group dynamics, and key project management principles in software engineering. In this chapter, we outline the motivation for a cloud-driven approach to software engineering which we refer to as Cloud-Aided Software Engineering (CASE 2.0) and introduce some key innovations needed to turn it into reality. We also identify some of the main challenges that still need to be addressed and some of the most promising strategies for overcoming them.
Colin Atkinson, Dirk Draheim
Chapter 13. Development of Cloud Applications in Hybrid Clouds with Support for Multi-scheduling
Abstract
Development of cloud applications must consider many aspects inherent in the distributed nature of clouds, mainly those related to elasticity, high access level to computational resources, multi-tenant behavior, transparency, pay-per-use model, and resource scalability. In addition, portability is a key feature that must be present in any development framework to allow extensions and simplify resource sharing by standardized interfaces. Open source approaches can be used, but the model must be composed of independent parts to optimize the availability of active components in the infrastructure. Hybrid cloud models are interesting because widely acceptable solutions can be developed without “reinventing the wheel.” Private clouds are more suitable for keeping restricted data or supporting services of small enterprises or institutions. However, their infrastructure must offer alternatives to provide services outside their own domain. In this context, a private cloud can use frameworks of public clouds and aggregate services to support the development of new applications. This generally occurs in PaaS models, where the platform offers pre-configured tools to interact with services of other domains. Security issues must also be considered at all stages of development, as most of the communication takes place among services located in different domains, linked by Internet connections. Solutions such as OpenID guarantee that public cloud services are used for the purpose of authentication, but additional security features in the source domain must be assured. In this chapter, a development framework is presented to guide the development of widely acceptable cloud applications, following standardized open source solutions. This framework, originally developed for a robotic environment, can be extended to support other cloud environments. The study presents aspects related to multi-scheduling of virtual machines and suggests how virtualized applications can be developed with different methodologies, such as dynamic IP, Web service with SOAP communication, MapReduce approach, and OCCI-based infrastructure.
Lucio Agostinho Rocha

Performance of Cloud Based Software Applications

Frontmatter
Chapter 14. Efficient Practices and Frameworks for Cloud-Based Application Development
Abstract
As cloud computing continues to burgeon throughout the technology sphere, it becomes essential to understand the significance of this emerging technology. By its nature, it offers an organization a great deal of agility and cost savings. Cloud technologies are being applied and leveraged in different applications fueling growth in the number of Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) vendors. The business delivery models of cloud computing have raised interests across the IT industry as the resources are offered as utilities and on demand. From a developer perspective, it is important to grasp the nuances of cloud-based application development to improve the development process. This chapter discusses best practices in relation to some of the celebrated cloud features. Furthermore, most common and well-known features of cloud frameworks are presented to aid the developer’s choice. Lastly, comparative cloud-based architectural discussion on developing and deploying a Web application using industry popular frameworks is presented. Although, cloud computing as a service/development paradigm addresses several well-known issues like scalability and availability, there are several concerns with respect to security and privacy of data which has opened doors for research opportunities. Some plausible research directions are also identified.
Anil Kumar Muppalla, N. Pramod, K. G. Srinivasa
Chapter 15. A Methodology for Identifying the Relationships Between Performance Factors for Cloud Computing Applications
Abstract
Cloud Computing is an emerging technology for processing and storing large amounts of data. One of its most important challenges is to deliver good performance to its end users. Sometimes, anomalies affect a part of the Cloud infrastructure, resulting in degradation in Cloud performance. These anomalies can be identified by performance concepts of Cloud Computing based on software engineering quality models. This work presents these Cloud Computing concepts that are directly related to the measurement of performance from a quantitative viewpoint. One of the challenges in defining such concepts has been to determine what type of relationship exists between the various base measurements that define the performance concepts in a Cloud environment. For example, what is the extent of the relationship between CPU processing time and amount of information to process by a Cloud Computing application? This work uses the Taguchi method for the design of experiments to present a methodology for identifying the relationships between the various configuration parameters (base measures) that affect the quality of Cloud Computing applications’ performance. This chapter is based on a proposed performance measurement framework for Cloud Computing systems, which integrates software quality concepts from ISO 25010 and other international standards.
Luis Eduardo Bautista Villalpando, Alain April, Alain Abran
Backmatter
Metadaten
Titel
Software Engineering Frameworks for the Cloud Computing Paradigm
herausgegeben von
Zaigham Mahmood
Saqib Saeed
Copyright-Jahr
2013
Verlag
Springer London
Electronic ISBN
978-1-4471-5031-2
Print ISBN
978-1-4471-5030-5
DOI
https://doi.org/10.1007/978-1-4471-5031-2