Software Engineering and Agile Development Methodologies

Get Complete Project Material File(s) Now! »

Cloud Technology

Cloud computing has over the last decade become a buzzword in the computing circles escalating the promises of a new paradigm shift in the manner in which computing services are provisioned to individual and organisational users (Chui 2010; Pallis 2010; Buyya et al 2009).
Cloud computing use currently involves users using services on different levels of its architecture (Marinescu 2012; Mell & Grance 2011). Users get access to services that include storage, access to application software, processing and application development by using various devices such as smart phones, laptops, personal computers only to name a few (Leavitt 2009). In addition to these applications, there are other benefits, e.g. cost savings and increased capacity to information technology departments that uses cloud technology (Marston et al 2011; Buyya et al 2009).
Important to note is that some of the software engineering companies especially those that operate on a large scale have opted to adopt cloud computing platforms for software development activities (Salesforce 2008; Yau, S & An 2011). While there have been an apparent significant benefits in the use of cloud computing, adoption of cloud technologies is still perceived with doubts by many would-be users due to inherent challenges such as those of security, privacy, lock-ins and uncertainties in the regulatory frameworks (Conway et al 2012; Venkatraman & Wadhwa 2012).
On the other hand it is also important to note that, there has also been substantial research in this area, with much of these studies, as discussed later in this chapter, focusing on addressing the inherent challenges of the technologies on offer.
The dawning age of cloud computing spans long before the advent of the internet where researchers had a vision of what was termed as computer utility. For instance, in 1961, Professor John McCarthy predicted that computing would in future be structured like any other public utility e.g. a telephone or electricity (Arutyunov 2012). The cloud computing ideology can also be traced back to Advanced Research Projects Agency Network (ARPANET) in 1969 when Joseph Carl Robnett Licklider visualized a network of data and programs interconnected for everyone to use globally (DARPA 1981). All these ideas had a theoretical concept of commoditizing computing services by providers who would make available services according to user requirements. This type of service requirement has led to the rise of cloud computing which in essence evolved from technologies such as grid and utility computing, Application Service Provision (ASP) and Software as a Service (SaaS) (Dudin & Smetanin 2012; Currie 2003).
Conceptually cloud computing creates an environment where a user application accesses computing resources through a type of service and not necessarily directly by talking to the specific central processing unit (CPU) for processing or hard drive for storage. A precise definition of cloud computing is difficult to generate due to the fact that different technology specialists and scholars emphasise different aspects in their definition as compared to those of most end-users. Thus there are a wide range of definitions of what cloud computing is.
Gartner (2013) defined cloud computing as a style of computing where massively scalable information technology (IT) related capabilities are provided “as a service” across the internet to multiple external customers. On the other hand Staten (2008) defined cloud computing as a pool of abstracted, highly scalable, and managed infrastructure capable of hosting endcustomer applications and billed by consumption whereas IBM (2008:7) considers “cloud computing a potentially cost-efficient model for provisioning processes, applications and services while making IT management simpler and increasing business responsiveness.” To further illustrate the difficulty of defining what cloud computing is, the world’s developer of international standards, the International Organization for Standardization (ISO) was by 2011 interestingly still grappling with crafting cloud computing definition paradigms (ISO 2011).

Cloud Deployment Models

There are four different ways in which cloud services can be deployed depending on the structure of an organization and the provisioning location. NIST (2011) described cloud computing deployment models as either private cloud, public cloud, community cloud or hybrid cloud.
According to Armbrust et al (2010) private cloud is the most secure and risk-averse cloud that has the whole cloud infrastructure belonging only to a single organization. Normally, private clouds are considered a step to the growth of a corporate data centre where the organization shares in-house infrastructure for cloud services. Mainly targets virtualization solutions for mission critical applications with demands for high security and low latency, and custom service levels. The main advantage is that the organisation has full control over its data, security aspects and performance. Ideally, the cloud user owns this infrastructure. This implies that such organisations should have the necessary capital outlay to host such infrastructures which in some cases results in poor economies of scale. Usually SMMEs in South Africa do not have such capability, making this option unfeasible for them.
Public cloud are in real sense the early manifestation of cloud computing. The cloud infrastructure is owned by a service provider who offers cloud services to the public on commercial basis. These services are available through a public network and the internet. In this case cloud services are usually sourced from very large resource pools that are shared by many other clients specializing in elastic workloads such as software development and testing application. They are synonymous to plants or factories that cater for services or utilities to clients on as demand with size of requirement arises. Structurally, they are distributed systems consisting of one or more data centres. Public clouds are normally considered an attractive option for SMMEs because they provide an economical plan for organizations to reduce IT costs and capital expenditure. SMMEs are capable of starting up or running a business with a rent an infrastructure option without an upfront capital investment in IT services.
However, since public clouds are meant to serve many users on the same infrastructure, a multitenancy characteristic is created. A number of issues such as security and QoS performance management are associated with this multitenancy effect (Ren et al 2012). Other concerns evident in the public cloud are issues of data ownership, lock-ins, interoperability, support maturation and connectivity (Sitaram & Manjunath 2012). Most popular public cloud providers are proprietary overlooking the challenges mentioned due to lack of cloud computing standardization. Examples of some well-known public clouds are the Amazon Web Services (AWS) comprising of the Elastic Compute Cloud (EC2) and the Simple Storage Service (S3) which form an IaaS cloud offering and the Google App Engine which offers PaaS to its clients.
Community cloud provides an infrastructure shared by more than one organization that has similar interests for serving a particular community. Interests can be of an industry or a business sector nature. According to NIST (2011), the infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g. mission, security requirements, and policy or compliance considerations). Community clouding can be managed by organizations or third parties and may exist on premise or off premise. It differs from public cloud in the sense that cloud services are provided for a certain need of end users rather a multitude of needs to different users as in the public cloud. It also differs from the private cloud due to the fact that cloud services are not provided and owned by one organization.
Architecturally, community clouds are usually implemented over various administrative domains. An example of a community cloud would be a scientific research community sharing a large distributed infrastructure. Another example would be a community of SMMEs sharing common infrastructure in application development. However, the problem is that community clouds require standardisation of software hosted and this may be a challenge when you have different organizations with different approaches to software development.

READ  The Concept of Trust

Chapter 1 : RESEARCH CONTEXT 
1.1 Background to the problem
1.2 The problem statement
1.3 Research Objectives
1.4 Significance of the study
1.5 Delimitations
1.6 Research design and methodology
1.7 Structure of the thesis
1.8 Conclusion
Chapter 2 : LITERATURE REVIEW
2.1 Introduction
2.2 Cloud Technology
2.3 Cloud Deployment Models
2.4 Cloud Technologies
2.5 Cloud Computing Adoption and Use
2.6 Software Engineering and Agile Development Methodologies
2.7 Agile methodologies and adoption of Cloud Computing in South Africa
2.8 Technology Adoption Theories
2.9 Other studies on theories of adoptions
2.10 Conclusion
Chapter 3 : RESEARCH METHODOLOGY
3.1 Introduction
3.2 Research philosophies and paradigms: Implications for the design of research methodology
3.3 Information System (IS) and research paradigms
3.4 Qualitative Research Paradigm
3.5 Theoretical framework
3.6 Grounded Theory: Definition(s) and application
3.7 The case study method
3.8 Scope of the case study
3.9 Sampling techniques
3.10 Data collection processes
3.11 Research ethics
3.12 Trustworthiness
3.13 Validity and reliability
3.14 Conclusion
Chapter 4 : SURVEY DATA ANALYSIS AND FINDINGS 
4.1 Introduction
4.2 Demographic information
4.3 Experience in agile methodologies and cloud computing
4.4 Experience in cloud computing for general purpose work
4.5 Perceived usefulness towards cloud migration
4.6 Perceived ease of use towards cloud migration
4.7 Conclusion
Chapter 5 : DATA ANALYSIS
5.1 Introduction
5.2 Data analysis frameworks and techniques
5.3 Data management
5.4 Open coding
5.5 Axial coding
5.6 Selective coding
5.7 Family code 1: Environment Context
5.8 Family code 2: Organisation
5.9 Family code 3: Technology
5.10 Conclusion
Chapter 6 : DISCUSSION OF FINDINGS
Chapter 7 : REFLECTIONS AND RECOMMENDATIONS
BIBLIOGRAPHY

GET THE COMPLETE PROJECT
Exploring the development of a framework for agile methodologies to promote the adoption and use of cloud computing services in South Africa

Related Posts