4.3 The Mobia Framework Evaluation
4.3.3 Mobia Framework Evaluation against Non-Functional Requirements
Product Requirements or Run-time Qualities
The front-end of the Mobia Framework in which the users mostly interact with is the
Mobia Modeler. In this section, we describe the product/run-time qualities for the Mobia Modeler.
• Usability. The usability of the Mobia Modeler21 was evaluated via a user study
in which the users were given tasks to perform. Both quantitative information (e.g. task times) and qualitative information (e.g. feedback from the participants) were collected. The details about the usability evaluation and results of the Mobia Mod- eler was described in detail in section 3.2.5.
• Efficiency. The efficiency of theMobia Modeler is relative to the system/device (i.e. computer) where it is running.
• Reliability. TheMobia Modeler is fault-tolerant and ignores any unexpected action
from the user.
• Portability. The current Mobia Modeler is implemented using the Adobe Flex
Framework, and can be run on any Flash-enabled web browser.
21 This does not include theMobia Proto-Goprototype which is not yet evaluated via user study. This
Organizational Requirements or Development-time Qualities
For the organizational/development-time requirements, we will discuss the Mobia Frame- work
• Implementation. The development of the Mobia Framework involved different
technologies, processes, and different people (i.e. developers) who carry out the development of the different parts. It is important to separate the development of the two major parts (theMobia Modeler and theMobia Processor) in order to easily divide the work among the developers, and also to allow making use of different technologies that is suitable for each part. What is important is that there is a common underlying model that the different people agrees on in order to allow the model to be translated later on to the target code.
For the development of the Mobia Modeler for example, it involved a more user- centered iterative design and development (see chapter 3 for details). The develop- ment technologies used were web-based (e.g. Flash for the initial prototypes [Örg09] and then later on Adobe Flex Framework for the current version [Taf09]). These technologies allowed the creation of a richer and more user-friendly looking interface which can be accessed anywhere. Also the people who created the Mobia Mod- eler were more familiar with the technologies, therefore were more comfortable in developing the prototypes.
For the Mobia Processor part of the framework, the Java Platform was used as the major programming platform. Since the design of the code generator relied on a template-based approach, theApache Velocity Engine which is a Java-based template engine was used.
• Localizability. The current languages supported by theMobia Modeler are German
and English. This requirement is not necessary for the Mobia Processor part of the framework since the models created and processed are independent of the localized language used during modeling.
• Modifiability or Extensibility. There are different levels in which the extensibility
or modifiability of theMobia Framework can be validated. This includes: (1) exten- sibility with respect to the EUD tools that can be added to the framework to be used by the end users (e.g. EUD tool such as the Mobia Modeler and Mobia Proto-Go), (2) extensibility with respect to the underlying model, (3) extensibility with respect to additional target mobile platforms for code generation, and (4) extensibility with respect to additional supported model components.
For the first two, it is easier to explain theMobia Framework’s extensibility through an example implementation as proof of concept. Let us take theMobia Proto-Go tool which was presented in section 3.2.6 as an example.
EUD Tools. The Mobia Proto-Go is a supplement mobile-based tool that allows users to create their own mobile applications. TheMobia Proto-Go differs from the Mobia Modeler in a way that it allows users to customize their own user- interface on the target mobile device itself.
This illustrates the Mobia Framework’s extensibility in terms of the tools that can be used together with the Mobia Processor part of the framework. The
Mobia Processor is totally independent of the modeling tool used, as long as the modeling tool follows the same format for exporting the model (i.e. same metamodel). This gives developers of the front-end tools (i.e. EUD tools) the freedom to create tools which may differ in designs and even the running platform as long as it follows how the model should be exported for processing. Models. Unlike in theMobia Modeler, theMobia Proto-Goallows users to customize their own UI. Because of this, the additional UI information has to be saved in the model in order for the processor to take the UI into account during processing of the model to code. In order to do this, additional layout data section is added to the screen section of the model without introducing any drastic changes to the model (presented in section 3.2.6 in figure 3.38), which illustrates the extensibility of the models in theMobia Framework.
Listing 4.1: A snippet of the code used to check if layout information should be taken from the model or the default code templates.
1 if ( screen . get ( Screen . Property . screenLayout ) != null ){
2 activity . setGeneralProperty ( AndroidActivityContainer . Property .
optionalLayout ,
3 screen . get ( Screen . Property . screenLayout ). get (0) . toString () ; // layout
data
4 );
5 }
In terms of generating code for the additional layout, only a few lines of code were incorporated to theModel Mutator (inside the class MobiaAndroidPsmIn- stanceLoader) such as shown in listing 4.1 in order to inform theApache Velocity Engine and Mobia Arbiter later on to use the new layout instead of the avail- able code templates. Additional code to theApache Velocity Engine andMobia Arbiter also had to be added to take into account the new layout files.
Target Platforms. As for extending the Mobia Processor for other target plat- forms, theMobia Framework can be extended by extending themobia.psm.Mobia PsmInstanceLoader for the new target platform (e.g. iOS, JavaME), creating specific containers depending on the structure of the target platform and pro- viding the source code templates for the new target platform. Examples of this are the classes inside the mobia.psm.android package which contains Android- specific classes (see appendix A.4 for descriptions of the classes and packages). New Components. In the current implementation of the Mobia Framework, ex-
be done by manually adding the definition to the XML Schema Document that contains the model definition, and also adding code to the Mobia Modeler to show the component in theMobia Modeler’s interface. A proposed approach on how to easily extend the capabilities of the framework will be discussed in the future work section 6.3.2.
• Evolvability. Since there is a clear separation between the Mobia Modeler and
Mobia Processor implementations, it is possible to make use of new technologies or platforms for future implementations as long as it follows the same underlying model as illustrated in the Mobia Proto-Go tool example.
• Composability. The basic idea of having configurable components in the design
of the model components in the Mobia Framework would satisfy the composability
property if there was an easier way of adding new components without having to modify the underlying code. A proposed approach in order to do this is discussed in the future work in section 6.3.2.
4.4 Summary
In this chapter, a detailed view into the Mobia Framework and its different parts was presented. An overview about MDSD and related approaches was first presented to give background to the paradigm in which theMobia Framework is based on.
The different use cases of theMobia Framework in which roles of possible stakeholders (e.g. developers, interface designers, model experts, non-technical end user, etc.) were presented. It was emphasized that in order for the different stakeholders to work together with the different parts of the framework, a common artifact which in this case is the model [PVH07] should act as the center of all development efforts.
For the different parts of the Mobia Framework such as theMobia Modeler andMobia Processor, details about the functional requirements (e.g. expected users, inputs, outputs, etc.), the design and implementation were presented in sections 4.2.3 and 4.2.4 respectively. For the Mobia Processor in particular, the transformation process that a model undergoes in order to generate code was discussed.
Finally, an evaluation of the Mobia Framework against non-functional requirements such as usability, extensibility, composability, etc. was presented.
The Mobia Models
This chapter will give a detailed look into the Mobia Frame- work models. This includes a discussion about the purpose and design decisions for the model components, the models’ concrete syntax (i.e. graphical representation inside theMobia Modeler and its XML form), the metamodel, and the semantics for code generation.
Contents
5.1 Model Discussion: An Overview . . 124 5.2 Application Requirements . . . 124
5.3 Structure Components: Adding
Screen Instances and Application Flow126 5.4 Basic Components: Adding Default
Applications . . . 131
5.5 Special Components: Adding
Domain-Specific Applications . . . . 134 5.6 Sensor Components: Adding Com-
plex Application Logic . . . 137 5.7 Summary . . . 145
5.1 Model Discussion: An Overview
This chapter will present details about the models in theMobia Framework. The scenario presented in section 4.2.2 will be used as an example to easily explain the models. The details about the models will be presented as follows (i.e. a guide for model discussion):
• Each discussion will start off with a description (i.e. purpose) of a model type and
the decisions influencing its design.
• Theconcrete syntax1of a model will then be presented, both its graphical form which
is visible in the Mobia Modeler and its XML form which is the one exported from the Mobia Modeler2 to be processed later on by the Mobia Processor.
• Themetamodel for the XML form of the component will then be discussed. Although
the metamodel is expressed in XML Schema Document (XSD), the UML model of the metamodel will be shown for easier reference. A view of the overall Mobia Metamodel can be found in appendix B.
• Finally, the semantics of the model will then be presented particularly the mapping
of the model elements to the generated code fragments. As proof of concept, code was generated for theAndroid Framework3. In order to understand the mapping between
some of the model elements to the Android code, some background information on parts of an Android application relevant to the discussion will be given beforehand.