• No results found

Cloud computing has evolved to become the enabling platform for the Post-PC era ap-plications. Not only cloud became the deployment environment due to its economies of scale but also it became the development environment [53]. By observing research publications related to software engineering for/in the cloud (e.g., the journal of soft-ware and systems special issue [19] and the IEEE Services Track [18]), we conclude that

research (e.g., [11,100]) has been focusing on adapting software engineering practises to fit for the types of applications built in the Post-PC era. This thesis , however, focuses on utilising the cloud for software development. More specifically, utilising the cloud for software process enactment.

We envision to leverage the benefits of MDE and cloud computing -as discussed in Section 1.3- for supporting both the software production and the management aspects of software processes. As we explained in Section 1.3.2, software processes models are naturally workflows. Consequently, we use workflow systems to manage the execution of software process models. Our initial experiment -as demonstrated in Section 1.3.3-has shown that existing WfMSs are not suitable for modelling and executing software processes in the cloud. To the best of our knowledge, this thesis is the first study on cloud-based software processes execution.

This thesis makes the following contributions:

• We propose a reference architecture for Software Development as a Service (SDaa-S) [15]. The SDaaS architecture enables modelling cloud-based executable soft-ware processes and enacting them in a hybrid cloud. Combining the model-driven approach with the cloud allows for fine-grained configurable execution which uses the cloud’s elasticity, availability and accessibility. In addition, SDaaS facilitates distributed development through shared and accessible process models and artefacts. The SDaaS architecture is described in detail in Chapter 2,

• We extend the OMG Software and Systems Process Engineering Meta-model (SPEM2.0) to allow modelling cloud-based executable processes. The extended version is called EXE-SPEM [13]. It allows modelling cloud-specific require-ments such as computing power and privacy levels. We also introduced an XML schema to map the graphical EXE-SPEM models into a machine consumable XML representation. EXE-SPEM is described in detail in Chapter 3,

• We propose the Proportional Adaptive Task Schedule algorithm to schedule soft-ware workflows execution. The algorithm aims at reducing the execution cost without significantly increasing the execution time (makespan). It uses the work-flow models to predict upcoming load on hourly bases and compares it with historical load for the past hour then dynamically scale computational resources

Chapter 1: Introduction

up or down as needed. We show through simulation that this algorithm saves between 19.74% and 45.78% of the execution cost when compared to three other adapted algorithms while providing the best resource utilisation amongst them and the second best execution time,

• As an initial evaluation, we instantiate the SDaaS reference architecture and im-plement a proof-of-concept which supports a subset of the SDaaS features. Ad-ditionally, we integrate three different tools in this proof-of-concept implementa-tion. This implementation proves the feasibility of the SDaaS architecture and is discussed in detail in Chapter 2,

• We evaluate our vision by using the implemented proof-of-concept to support ex-ecuting safety-critical systems processes [14]. We modell a safety-related process adopted from the aerospace domain standard; ARP4761 and use the proof-of-concept SDaaS implementation to execute it. The evaluation aims to show: the applicability of our vision for development processes, how using the cloud and process models can open new opportunities and how it can save cost and time.

We show that by using the process model and the provenance data collected by the SDaaS proof-of-concept we are able to automatically generate safety case argument fragments. We describe this case study in Chapter 5.

In the next chapter, we describe the SDaaS reference architecture.

2

Reference Architecture for Software Development as a Service (SDaaS)

Contents

2.1 Introduction . . . . 16 2.2 Terminology & Definitions . . . . 16 2.3 Requirements for SDaaS . . . . 17 2.3.1 Non-cloud-related requirements . . . 18 2.3.2 Cloud-related requirements . . . 20 2.4 Reference Architecture for SDaaS . . . . 21 2.4.1 WfMC compliance . . . 21 2.4.2 Process modelling (Design Time) . . . 24 2.4.3 The enactment service (Run-time) . . . 24 2.4.4 Workflow engines . . . 27 2.5 Specifications of the SDaaS Workflows . . . . 28 2.5.1 Activities types . . . 28 2.5.2 Interaction patterns . . . 29 2.5.3 Software workflows life-cycle . . . 29 2.5.4 Activities life-cycle . . . 30 2.5.5 Artefacts life-cycle . . . 31 2.6 Proof of Concept . . . . 31 2.6.1 Implementation & deployment . . . 32 2.6.2 Migrated tools . . . 33 2.7 Discussion . . . . 35 2.8 Summary . . . . 37

An earlier version of some parts of this chapter is published in: S Alajrami, A Romanovsky, B Gallina: Software Development in the Post-PC Era:Towards Software Development as a Service. In:

Proceedings of the 17th International Conference on Product-Focused Software Process Improvement (PROFES’16). Trondheim, Norway. November, 2016.

Chapter 2: Reference Architecture for Software Development as a Service (SDaaS)

2.1 Introduction

Software development approaches and tools evolve to meet the continuously rising demand for quality (e.g., reliability, safety and security) of software systems. A typical modern software development would require the use of multiple tools and platforms to support the different phases of the development life-cycle. Such tools are provided by different vendors and are often not interoperable. Furthermore, the management of the development process is not inherently integrated in these tools and is performed as a separate process. As explained in Chapter 1, we need alternative development methods which integrate the process management perspective and support using tools on the fly. An approach which utilises the benefits of the cloud (e.g., accessibility and elasticity) and model-driven engineering (e.g., different levels of abstraction) for software development processes.

In this chapter, we propose the Software Development as a Service (SDaaS) reference architecture. SDaaS supports modelling, enacting and managing software processes.

Rather than focusing on a particular process model (e.g., waterfall or spiral), SDaaS supports any software process model. In the next section, we define some terms and assumptions which are used throughout this thesis.