ALPH : a DSAL-based programming model for complexity management in pervasive healthcare applications - Munnelly, Jennifer (Trinity College (Dublin, Ireland). School of Computer Science & Statistics, 2010)
Healthcare information, for example patient records, must be available to appropriate professionals at all times. The application of pervasive technology to healthcare means that those professionals are using such technology while mobile, but still, healthcare information must remain available at all times and across multiple locations. “Pervasive healthcare” has emerged as the field that is concerned with the application of pervasive computing to healthcare, increasing productivity, reducing human error and increasing interoperability between various healthcare areas and facilities. However, the development of pervasive healthcare applications has proved to be significantly more complex than traditional healthcare applications. Two concerns are of particular interest to this thesis. Firstly, these applications must support the storage and exchange of healthcare information in a mobile, distributed environment. Secondly, adapting to such a changing environment requires the handling of contextual information, such as location information or device heterogeneity. Incorporating these concerns into the development process increases its complexity both for new applications and for existing applications to be upgraded with pervasive functionality. The focus of this thesis is to reduce the level of complexity in pervasive healthcare application code. The complexity is analysed against two dimensions; difficulties with modularity and inappropriate levels of abstraction. Poor modularity emerges because many pervasive healthcare concerns cut across the entire system. Such concerns are referred to as “cross-cutting” and are difficult to encapsulate using traditional programming models, leading to complicated, unmanageable code. Inappropriate levels of abstraction in the implementation of pervasive healthcare applications emerge when using general purpose languages (GPLs), whose constructs tend to be at a low-level of abstraction. This means that developers need significant domain knowledge to produce the required verbose, low-level code that is neither expressive nor semantically intuitive. Aspect-oriented programming (AOP) provides modularisation capabilities for crosscutting concerns and has successfully been applied to the modularisation of a selection of pervasive computing concerns. However, it has not been considered for the broad set of concerns required by pervasive healthcare applications. Domain-specific languages (DSLs) provide high-level, expressive constructs that encapsulate domain knowledge, reducing the requirement for domain knowledge, but its application in healthcare has been limited. One notable exception is MUMPS, a language that provides database functionality that was previously applied to healthcare information. However, it does not provide any constructs specific to healthcare, mobility or adaptation. In this thesis we combine these two software engineering techniques in a programming language called ALPH (Aspect Language for Pervasive Healthcare). The research question addressed was whether the collaboration of aspect-oriented programming and domain-specific languages significantly reduces complexity in pervasive healthcare application code. ALPH provides a set of constructs for thirteen abstractions derived from analysis of the pervasive healthcare domain. These abstractions model concerns that reoccur in pervasive healthcare applications and that have exhibited crosscutting characteristics. To modularise these concerns, they are implemented using an aspect-oriented language and assembled in a library of modular pervasive healthcare aspects. To achieve the benefits of a domain-specific language, the ALPH language syntax and semantics have been formally specified as a grammar and a compiler has been created from this grammar. ALPH programs are constructed from these high-level, expressive domain-specific constructs, parameterised according to application requirements. The programs are then parsed by the compiler and the generative compilation process triggers the use of code from the library of modular aspects. A configured aspect implementation is produced and woven into the base application at relevant points using the aspect language weaver. The result is a complete compiled and executable pervasive healthcare application. In the development process, developers are aware only of the base application and the high-level ALPH constructs reducing the requirement for domain knowledge. ALPH has been empirically evaluated through comparative studies between standard object-oriented and ALPH implementations of multiple applications. Applications were selected based on their inclusion of pervasive healthcare concerns and on their base language suitability. Metrics were used to measure variations in complexity. Common AOP code metrics were used to measure modularity. Common code metrics were used to measure abstraction and an appropriate metric was selected to measure DSL expressiveness. Results show reductions in elements of complexity. The ALPH model improves abstraction. However, although modularity is improved in the base application, dependencies introduced by AOP negatively impact modularity when viewed from a larger perspective.
Keywords: Computer Science, Ph.D.; Ph.D. Trinity College Dublin