Abstract
Software services offer the opportunity to use a component-based approach for the design of applications. However, this needs a deeper understanding of how to develop service-based applications in a systematic manner, and of the set of properties that need to be included in the ‘design model’. We have used a realistic application to explore systematically how service-based designs can be created and described. We first identified the key properties of an SOA (service oriented architecture) and then undertook a single-case case study to explore its use in the development of a design for a large-scale application in energy engineering, modelling this with existing notations wherever possible. We evaluated the resulting design model using two walkthroughs with both domain and application experts. We were able to successfully develop a design model around the ten properties identified, and to describe it by adapting existing design notations. A component-based approach to designing such systems does appear to be feasible. However, it needs the assistance of a more integrated set of notations for describing the resulting design model.
Highlights
The software service paradigm—sometimes termed Software as a Service [1] when taking an implementation perspective, or Service Oriented Architecture (SOA) [2], when being viewed from a design perspective—offers scope for the rapid development of new applications and systems by providing a model for reusing implementation elements
We have been able to make a good assessment of the key characteristics of SOA that are likely to need to be modelled as a part of the design process
This study was conducted by employing a multi-method approach: first conducting a mapping study to find out what characteristics are associated with SOA; translating these to the attributes of the case study taken from energy engineering; constructing a design by employing existing notations; and evaluating them through expert review
Summary
The software service paradigm—sometimes termed Software as a Service [1] when taking an implementation perspective, or Service Oriented Architecture (SOA) [2], when being viewed from a design perspective—offers scope for the rapid development of new applications and systems by providing a model for reusing (distributed) implementation elements. Services can be viewed as a form of component-based system, using a very constrained but powerful form of interaction between the components, and with some components being provided by external agencies. Guidelines for good practice in the design of such systems is not readily available. Research into software services has largely focused upon implementation issues. We are increasingly well provided with tools and frameworks, as well as having a growing knowledge about how to employ such concepts as negotiation (to select a specific service) and composition (to integrate the services) [3, 4].
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have