Keywords

1 Introduction

The model-driven part of the PaMGIS framework is designed in the style of the CAMELEON Reference Framework [1]. Particularly, the ontological domain and context-of-use models are used as proposed by the CRF. However, we decided to split the CRF platform model into a device model and a user interface (UI) toolkit model. While the former comprises all relevant characteristics of the respective end-user device, the latter holds information about the user interface elements that are available on the respective underlying software development platform. This avoids redundancies especially in cases where the same software basis supports significantly different devices, e.g. Android on smartphones and tablet computers. On the basis of the domain model a dialog model is prepared that, in turn, helps to derive an abstract user interface model which is subsequently transformed into a concrete and lastly into the final user interface model. The various UI model transformations are affected by the information which is deposited within the context-of-use model. An overview of the PaMGIS models and their interrelations is illustrated in (Fig. 1).

Fig. 1.
figure 1

Overview of the PaMGIS models and their interrelations

However, the construction of the required models is a time-consuming and error-prone task. Hence, our combined user interface development approach uses patterns as means to alleviate the complexity of the model-driven design and transformation process. The basic idea is to equip patterns with pre-assembled model fragments which can be used as building blocks for the construction of the domain and UI models. In addition, certain patterns could also provide valuable input for the various model transformation steps as highlighted in (Fig. 1).

For this purpose, we have developed the pattern specification language PPSL which allows us both, to particularize patterns in a formal and machine-readable way and to coevally incorporate any kind of information required to support the PaMGIS model-driven mechanisms. Beyond that, the design of PPSL was driven by two further major requirements. On the one hand, we aimed at the possibility to easily adopt already existing patterns from popular and well-accepted sources, such as the pattern collections of van Duyne [4], Tidwell [11], and van Welie [12]. On the other hand, we intended to raise the acceptability of PPSL by offering the highest level of compatibility to existing pattern description languages, i.e. the Pattern Language Markup Language (PLML) 1.1 [7], PLML 1.2 [3], and the Extended Pattern Language Markup Language (PLMLx) [1]. We also considered the Pattern and Component Markup Language (PCML) [9] and the Task Pattern Markup Language (TPML) [10]. However, these two languages are not elaborated within the paper at hand due to space restrictions. They can be translated to PPSL in an analogous manner.

We already have demonstrated in [5] that patterns from [4, 11, 12] can be mapped to PLML 1.1 in at least in a semi-automatic manner. Therefore, we now emphasize on the aforementioned pattern description languages and how respective pattern definitions can be translated into PPSL-based specifications.

2 Existing Pattern Description Languages

Within the context of the CHI 2003 Conference on Human Factors in Computing Systems a workshop was held named Perspectives on HCI Patterns: Concepts and Tools. One of the goals was the definition of a uniform description language for Human-Computer Interaction (HCI) patterns. Result was the XML-compliant Pattern Language Markup Language (PLML) version 1.1 which was intended to standardize pattern specifications and hence allow automatic pattern processing by means of standardized tools. PLML comprises several description elements resp. attributes, which are listed in Table 5 [7]. Brief descriptions can be found in Sect. 3.

PLML 1.2 is a further improved refinement of PLML 1.1 and was defined in 2006 within the context of the implementation of a pattern tool called Management of User Interface Patterns (MUIP). Major changes have been made in terms of the PLML 1.1 elements <forces>, <examples>, and <management>. Here, <forces> consists of a sub-element <force> which allows to specify particular influence factors separately and hence make them individually searchable and reusable. The same applies to the <example> element. In addition, individual examples are structured by means of the sub-elements <example-name>, <example-diagram>, <description>, and <known-uses>. The <management> element is enriched by the additional <change-log> sub-element which, in turn, is composed of <log-creation-date> and <log-content>. The entirety of amendments in PLML 1.2 compared to PLML 1.1 is illustrated in (Table 6) [3].

The primary goal of PLMLx is to describe patterns in a presentable, human- and machine-readable article-like format. Like PLML 1.2, PLMLx is based on PLML 1.1. PLMLx introduced three anew description elements, i.e. <acknowledgements>, <resulting-context>, and <organization>. Here, <acknowledgements> provides information on persons who were involved in the definition of the pattern and <resulting-context> contains a description of the context which is effective after the application of the pattern. This might include one or more new problems that need to be resolved. The <organization> element is intended to hold pattern-related metadata and comprises of three sub-elements, i.e. <category>, <collection> und <classification>. Additionally, the <management> element was supplemented by three further sub-elements, i.e. <copyright>, <license>, and <change-log>. The complete list of differences between PLMLx and PLML 1.1 can be found in (Table 7).

3 Introduction of the PaMGIS Pattern Specification Language

In order to appropriately support the modeling and UI generation process the patterns are described according to a particular markup language named PaMGIS Pattern Specification Language (PPSL). It incorporates the original expressiveness of PLML 1.1 and remedies some of PLML’s inherent weaknesses, notably in terms of pattern relation modeling and provision of details required for automated pattern processing [6]. In addition, PPSL is designed to allow straight forward mapping of patterns defined in existing description formats, i.e. PLML 1.1, PLML 1.2, PLMLx, PCML, and TPML. According to our terminology, the current version is called PPSL 3.0.

Generally, PPSL pattern specifications are structured by means of four top level description elements, i.e. <Head>, <Body>, <Relationship>, and <Deployment>.

Here, the <Head> element incorporates pattern metadata, including information on pattern identification, names, work status, synopsis, originators, change history, further sources and literature, and legal aspects. Amongst others, pattern metadata is exploited to retrieve particular patterns within a pattern repository. An overview of the description elements of <Head> are listed in (Table 1).

Table 1. PPSL description elements within the top level element <Head>

The PPSL top level element <Body> represents the description of the actual pattern and is divided into the two sub-elements <Theory> and <Practice>. The former holds theoretical background information, including descriptions of the problem to be solved, the application context, and the solution for the given problem. The latter provides practical examples and known uses as well as results of usability activities, e.g. user testing. Details of the <Body> element are provided in (Table 2).

Table 2. PPSL description elements within the top level element < Body>

Relations between patterns can be defined by the <Relationship> top level element of PPSL. Compared to PLML 1.1 the identification of related patterns is more precise. Hence, relations between particular pattern versions resp. revisions of patterns can be expressed. (Table 3) shows the structure of the <Relations> element.

Table 3. PPSL description elements within the top level element < Relationship>

Finally, the <Deployment> top level element is a further development of the PLML 1.1 element <Implementation> and incorporates, amongst others, the information required for automatic processing and model construction within the PaMGIS framework.

It is designed to hold fragments of PaMGIS’s fundamental models, including task model, concept model, dialog model, abstract UI (AUI) model, concrete UI (CUI) model, and final UI (FUI) model fragments. These model fragments are intended to be automatically integrated into the overall PaMGIS models as soon as the framework user selects and applies them. They can be regarded as building blocks for the PaMGIS models which have the potential to speed up the model design process, feature reuse of design work, and positively contribute to high usability and acceptable user experience of the final user interface. The structure of the PPSL top level element <Deployment> is depicted in (Table 4).

Table 4. PPSL description elements within the top level element < Deployment>

4 Mapping Existing Pattern Description Languages to PPSL

The mapping of PLML 1.1 description elements to PPSL is shown in Table 5. The left column contains the PLML 1.1 source elements while the right column specifies the respective PPSL target elements.

Table 5. Mapping of PLML 1.1 to PPSL

In a similar way, the correlation between PLML 1.2 and PPSL is illustrated in (Table 6). Due to space limits solely the differences between PLML 1.1 and PLML 1.2 are listed.

Table 6. Mapping of PLML 1.2 PPSL (differences of PLML 1.2 compared to PLML 1.1)

Finally, (Table 7) outlines the relation between PLMLx and PPSL. Like before, only the differences to PLML 1.1 are listed.

Table 7. Mapping of PLMLx to PPSL (differences of PLMLx compared to PLML 1.1)

Due to lack of space we do not elaborate on the relationship between PCML resp. TPML and PPSL. However, the mapping is feasible analogously in both cases.

5 Conclusion and Outlook

Within the present paper we introduced the topical version of the PaMGIS Pattern Specification Language (PPSL). On the one hand, it is designed to equip patterns with all information required to use them as building blocks for model construction in the context of the PaMGIS framework. On the other hand, PPSL strives for best possible compatibility to existing pattern description languages in order to enable the reutilization of already available patterns without major efforts. To this effect, we demonstrated how PLML 1.1, PLML 1.2, and PLMLx can be mapped to PPSL. Mapping of PCML and TPML is also possible, but not elaborated in the paper due to space limits.

To fulfill the aforementioned requirements PPSL consists of a multitude of description elements. In order to preserve manageability of the pattern specifications we semantically grouped them into the four top level elements <Head>, <Body>, <Relationship>, and <Deployment>. In addition, the patterns are created, managed, retrieved, and applied with the aid of a set of tools included in the PaMGIS framework.

Our upcoming activities will target on the augmentation of our pattern repository. For this, we will focus on both, the translation and enrichment of existing patterns and the development of new domain-specific patterns, e.g. for electronic vending and commerce. Further, we intend to intensify our research on how results of usability activities, e.g. user testing, can be exploited to improve the quality of our patterns and hence also of the user interfaces being generated by PaMGIS. As a consequence, this will entail more substance and structure of the PPSL description element <Body> <Practice> <UsabilityFeedback>.