A recent trend in the design of distributed applications is to systematically separate their platform-independent and platform-specific aspects, by describing them in separate models. The main benefits of this approach stem from the possibility to derive different platform-specific models (PSMs) from the same platform-independent model (PIM), and to partially automate the model transformation process and the realization of the distributed application on specific target (middleware) platforms. This may reduce initial development costs and improve software quality, but also forms the basis for facilitating evolution and migration of software solutions, hence contributing to the limitation of maintenance costs for distributed applications. A prominent development in this trend is the Model-Driven Architecture (MDA) approach. In the context of MDA, much effort has been invested in enabling technologies and techniques for model-driven design, which include metamodelling (MOF), language definition and extension mechanisms (e.g., UML and UML profiles), model transformation specification languages (MOF Query/View/Transformation), tool support and tool chain interoperability. In contrast, the methodological and architectural foundations of platform-independent design have received little attention. In particular, the state-of-the-art in model-driven design can be criticized on a number of points: – there is a lack of guidelines to select abstraction criteria and modelling concepts for platform-independent design; – there is little methodological support to distinguish between platformindependent and platform-specific concerns, which is detrimental to the beneficial exploitation of the separation between PIMs and PSMs; – the distinction between PIM-PSM is coarse and insufficient to cope with the diversity of application requirements and platform characteristics; – little attention is given to the role of platform characteristics throughout the development trajectory, possibly leading to models with unacceptable levels of platform-independence and applications with unacceptable quality attributes; – the behavioural aspects of designs are largely ignored, and; – design operations between PIMs and PSMs are not clearly defined, thus inhibiting their effective application in model transformation. This thesis aims at proposing a design approach for the development of distributed applications that addresses the problems mentioned above, focusing particularly on middleware-platform-independence. This approach consists of: – a design process, which results in application designs at different levels of abstraction and platform-independence; – the notion of an abstract platform, which defines the platform characteristics that are relevant for an application design at a certain level of platform-independence; – a set of design quality criteria for abstract platform definition; and, – a design framework, which aims at supporting a designer in defining abstract platforms and platform-independent designs. This design framework consists of two parts: a set of basic design concepts, which are used at different levels of platform-independence to describe both abstract platforms and the platform-independent designs that rely on them, and design operations, which can be used in transformations to bridge between different levels of platform-independence. The use of the design framework enables designers to make statements about the conformance of models at different levels of platform-independence. The design process is structured into a preparation and an execution phase. In the preparation phase, designers identify (and, when necessary, define) the required levels of models, their abstract platforms and the modelling language(s) to be used. In addition, a designer may also identify or define transformations between related levels of models. The results of the preparation phase are used in the execution phase, which entails the creation of models of an application using specific modelling languages and abstract platforms. The main aspects of the approach are illustrated with a case study involving the design of context-aware mobile services. We define three levels of models: a platform-independent service specification level, a platform-independent service design level and a platform-specific service design level. Particular attention is given to the representation and transformation of behavioural aspects of service designs.
|Award date||1 Jun 2006|
|Place of Publication||Enschede|
|Publication status||Published - 1 Jun 2006|