Exploring service-oriented development methodologies in theory and practice
|has title::Exploring service-oriented development methodologies in theory and practice|
|Master:||project within::Software Engineering|
|Student name:||student name::Peter van der Meer|
|Second reader:||has second reader::Qing Gu|
Over the past decade we observed the emergence of service-orientation, which is a relatively new software engineering paradigm that utilizes services as the basic construct to develop flexible and dynamic software systems. Engineering service-oriented software systems rely on a Service-Oriented Architecture (SOA), which is a software architecture style that supports the communication of a collection of services to perform tasks. These service-oriented systems or applications are developed during a so-called service-oriented development process. The main difference between a traditional software development process and a service-oriented development process or simply service engineering, is the shift of emphasis of developing respectively software to developing services. As a result, during service engineering one is confronted with new challenges in addition to those that were faced in traditional software development, such as how to govern and manage extern services, how to cope with dependencies of stakeholders etc. As a consequence, traditional software development methodologies, which are used to guide traditional software development projects, are not applicable during service-oriented development projects or simply SOA projects. In this thesis we identified 6 service aspects that are relevant for the service-oriented development process. These service aspects should be covered by so-called SOA-methodologies to guide and support SOA-projects. Furthermore in this thesis are 5 SOA-methodologies examined and assessed on the coverage of the identified service aspects. As a co-product of this thesis, the methodologies are compared with each other to determine the degree of lifecycle coverage and the objectives of each SOA-methodology. This results in an overview of current SOA-methodologies, complemented with a summary of dissimilarities and commonalities between these methodologies. The thesis also includes a case study, which is used to determine how SOA-projects are supported within Logica. The case study starts by selecting an SOA-project, which is defined as a project during which a service-oriented system or application is developed. The software development methodology that is used during this SOA-project is assessed on the coverage of the aforementioned service aspects. The results are subsequently used to conclude to what extent Logica's current software development methodology support the service aspects. Based on those conclusions, suggestions are given how to improve the methodology such that the methodology better supports SOA-projects in the future.