Information and Software Technology

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Information and Software Technology"

Transcription

1 Information and Software Technology 52 (2010) Contents lists available at ScienceDirect Information and Software Technology journal homepage: www. elsevier. com/ locate/ infsof Specification of personalization in web application design Irene Garrigós a, *, Jaime Gomez a, Geert-Jan Houben b,1 a Software and Computing Systems Department, Universidad de Alicante, Apartado de Correos 99, Alicante, Spain b Technische Universiteit, Delft Web Information Systems, PO Box 5031, 2600 GA Delft, The Netherlands a r t i c l e i n f o a b s t r a c t Article history: Received 1 June 2009 Received in revised form 28 February 2010 Accepted 12 April 2010 Available online 18 April 2010 Keywords: Personalization Web engineering Reusability Rule language Personalization of websites has become an important issue in Web modeling methods due to their big and heterogeneous audience. However, due to the existence of too many notations to represent the same design concepts in different methodologies, personalization specifications cannot be used out of the scope of a single tool or method. Moreover, in some cases, personalization is not defined as a separate aspect, being difficult to maintain and update. This paper tackles the aforementioned problems presenting a generic modeling technique to facilitate the specification of the personalization. Personalization specifications can be reused across different websites and different development environments. Ó 2010 Elsevier B.V. All rights reserved. 1. Introduction Web idiosyncrasy introduces new challenges for the design process that go further than the specification of the navigation map, including aspects such as continuous website evolution together with the existence of a heterogeneous audience that implies that the website design should cope with different users needs, goals, preferences, and capabilities. Adapting the information content and services for different user groups as well as for concrete users makes websites available to a broad audience and so, it has become a vital feature of modern Web applications. This adaptivity to individual users or user groups in a website is called personalization. There are many definitions of personalization [1 3], but there is not a universal definition. We define Web personalization as the process of changing the content and structure of a website to adapt it to the specific needs, goals, interests and preferences of each user taking advantage of the user s navigational behaviour and context. When designing personalized websites, ad-hoc design becomes unworkable. On one hand, many existing commercial approaches are based on rules and offer powerful specification means and tools for personalization (e.g. ILog JRules, LikeMinds, WebSphere, Rainbow, etc.) that make the use of personalization easier. However, in most cases, specifications are not portable, because they use not only different modeling techniques but also different implementation methods. Other problems of these approaches are the low abstraction level and the insufficient separation from the * Corresponding author. Tel.: ; fax: addresses: (I. Garrigós), (J. Gomez), (G.-J. Houben). 1 Tel.: ; fax: application s functional specification that cause reuse problems and make the maintenance and scalability of the resultant personalized applications difficult. On the other hand, website modeling methods [4 10] provide a conceptual and systematic approach to complex Web application design and implementation. These methodologies allow developing personalized websites where the personalization specifications are tightened to the underlying modelling methodology. As a consequence, and due to the existence of too many notations to represent the same design concepts in the different methods, personalization specifications cannot be used out of the scope of a single tool or method, and thus cannot be shared among different approaches. Moreover, in some cases, the personalization is embedded in their design models, causing some problems like the difficulty of maintenance. To tackle the aforementioned problems, we propose to deal with personalization as an orthogonal concern (i.e. as a separate aspect of the website), independent of the underlying technology allowing the definition of abstract personalization specifications which is a prerequisite for portability and reuse. Reuse in software engineering/programming is generally accepted and promoted to improve productiveness [11,12]. The proposed solution is based on a high level rule language called PRML (Personalization Rules Modeling Language) [13,14] that can be used by the designer to specify at design time the personalization to be performed at runtime. PRML is defined as an abstract personalization language, this is important for many reasons: it allows to specify personalization designs before the target platform is selected. This also avoids the noise that may be included in the platform-specific language enabling discussions of personalization designs by design teams, and allowing to take more clear decisions on personalization requirements. Moreover, it allows personalization designs to be /$ - see front matter Ó 2010 Elsevier B.V. All rights reserved. doi: /j.infsof

2 992 I. Garrigós et al. / Information and Software Technology 52 (2010) exchanged across websites and between website design authorities. Adopting an abstract language may make it easier to work on standards for domain models for personalization in a specific application domain. An abstract model could be used for encoding personalization models that users could take with them between different websites. PRML is not yet another language for specifying personalization. One of the goals of this language is avoiding the problems due to the existence of too many notations for personalization. A possible scenario where this is an advantage is the reuse of personalization strategies by means of defining personalization patterns (e.g. a proven solution for a recurrent personalization requirement) that could be reused among different Web applications or Web methodologies. To summarize, the benefits of the proposed approach are: unique notation, separation of concerns, which implies an easier maintenance and update, portability and reuse across different systems and methodologies. This paper has two main objectives: on one hand, the paper aims to describe our experience in creating an abstract modelling language and presenting it, explaining how it can be used within a Web modelling approach. For this purpose, the syntax and semantics of PRML is described and illustrated by means of examples, as well as a set of guidelines for the designer. On the other hand, we want to formally show that the reusability of personalization strategies is possible. For this purpose, we have defined a set of transformation rules from PRML to the specifics of two well known Web design methods: UWE [9] and Hera [7]. These transformations have been implemented in a prototype tool to show its feasibility. The objective is that the reader can clearly see the equivalence in expressiveness, modelling the personalization in PRML or in the UWE or Hera approaches, and that the same personalization rule expressed in PRML can be transformed into the specifics of UWE and Hera (and thus reused). To wrap up, this paper extends previous work by defining PRML in an exhaustive way, providing guidelines to the designer and formally defining the transformations from PRML to other approaches. Moreover, it is important to note that previous studies did not take into account the UWE methodology. We want to stress that this work has been done in the context of the MDWEnet project [16] which goal is to improve current practices and tools for the model-driven development of Web applications for better interoperability. The need of porting personalization specifications is a recognized problem for designers [17]: as an example we can mention the GRAPPLE project ( which concentrates on ways to share and exchange the adaptation among different systems. The remainder of the paper is as follows: related work regarding Web engineering methodologies is presented in Section 2. Section 3 explains how personalization is modelled in the context of a Web design method by means of a running example. Furthermore, the requirements for the use of PRML within a Web modelling approach are explained. Section 4 introduces the fundamentals of the PRML language. In Section 5, transformation rules 2 from PRML into the specifics of UWE and Hera methods are described. Furthermore, in this section, examples of transformations for both methodologies are put forward. Section 6 describes the prototype tool created for supporting our approach. Section 7 presents our conclusions and further work. Finally, in the Appendix A of the paper, the BNF 3 grammar of the PRML language is shown. 2. Related work Personalization is defined by means of conditions, filters or adaptation rules over the different design concepts. Due to the 2 These transformations are defined in an unidirectional way. 3 Backus Naur form. different notations for the modelling concepts the Web approaches use, as far as the authors are concerned, in the existing Web design methodologies found in the literature personalization specifications are tightened to the specifics of the underlying methodology. Moreover, in some cases, the personalization embedded in the design process, causing maintenance and reusability problems. For describing personalization, OOHDM [10,18] uses a proprietary notation with an underlying design framework. The OOHDM notation uses a small set of primitives for specifying personalized attributes and methods referring the OOHDM modelling concepts. To model relevant information about the user, OOHDM adapts the user class in the conceptual model. Attributes of the user class can subsequently be used in the navigation class model to adjust the information that is shown to the user. In WSDM [4,19], in the context of audience-driven design, a WSDM-specific rule language (Adaptation Specification Language, ASL) is provided to help the designer defining adaptive behaviour, focusing on the adaptation for a group of users by adapting the structure and the navigation possibilities in the website. ASL rules are defined to act on the WSDM design models. Note that personalization is not supported, i.e. adaptivity for a single user, but the aim is to provide adaptivity for all users; that is also called optimization. However, although personalization is not explicitly supported, it would only require some modification to include a user model in an exactly similar way as the existing website overlay model. Subsequently, allowing ASL to access this user model yields personalization support. In the context of this paper, ASL is thus as relevant as any other adaptation specification mechanism which is aimed at personalization. In UWA [8], in the context of ubiquitous computing, customization rules allow the designer to specify the adaptation to perform when a certain context is detected. These rules are specified within a UML annotation, using the stereotype <<CustomizationRule>>. The specification of such a rule comprises a unique name, a reference to one or more requirements, and an ECA triplet. The annotation is attached to those models elements being subject to customization. WebML [5] also uses a proprietary notation. Personalization is specified by means of ECA rules which refer to the WebML conceptual models, in which the event consists of a page request; the condition for rule activation consists of the evaluation of context parameters previously acquired and the action consists of adaptations of the hypertext front-end. In addition, WebML has been extended by enriching the different models for adaptivity support. At [20], the integration of WebML with a language for expressing ECA rules supported by an engine for rule execution known as Chimera- Exception Language has been described. Chimera-Web, a new version of Chimera-Exception addressing Web events and Web adaptivity actions, is used to specify sparse adaptivity rules, whose execution is completely detached from the execution of the application itself and whose effects are not necessarily bound to instances of modeling constructs. Such integration leads to a framework that keeps the advantages of conceptual modeling and automatic code generation. Authors claim that the resulting architecture enhances separation of concerns, and supports flexibility and evolvability. However, this integration has not been completed, as they are still working on implementing some modules the integration is based on, namely the Web Action Enactor and the Web Event Dispatcher [20]. To the best of our knowledge the Chimera-Web language allows separation of concerns, however for being able to use it within a modelling method a process of integration is needed, which is not needed if using PRML. This is due because the Chimera-Web language is thought of being generic but is built taking into account the WebML approach only. To define PRML however, we have investigated some of the most representative Web modelling methods [5 10]. We could use PRML in

3 I. Garrigós et al. / Information and Software Technology 52 (2010) the studied approaches, however we could also defining transformations rules (in the same way as done in this paper with Hera and UWE) to formally show it is possible. Problems arise when personalization strategies are specifically defined for concrete application environments: reusability among different approaches of the personalization strategies becomes almost impossible. As explained in Section 1, defining an abstract specification of personalization is a prerequisite for portability. The studied approaches do not fulfill this requirement, the personalization specifications they define are specifically created for the concrete approach. This has some disadvantages like the dependency of the personalization specifications on the target platform and that the personalization specifications cannot be exchanged among different systems. Moreover, for being able to specify a personalization specification that is portable between two approaches the set of adaptivity actions, the way of specifying conditions and the possible events to trigger personalization should be equivalent. In addition to this, the designer would have a high learning curve having to learn how to specify personalization in each proprietary solution. As motivated in Section 1, PRML s main goal is to solve these problems. PRML is a high-level language which is a Domain Specific Language (DSL) [21] so the rules defined with it are very intuitive and easy to learn. DSLs allow solutions to be expressed in the idiom and at the level of abstraction of the problem domain. Consequently, domain experts themselves can understand, validate, modify, and even develop DSL programs [22,23]. The designer using PRML to specify personalization strategies should be a domain expert (personalization expert). The learning curve of the designer is reduced due to two reasons. The first one is that we shield the designer from the programming code and the second one is that the designer can define personalization using PRML and then transformations into the specifics of each methodology can be performed. As aforementioned, the approaches selected to show the portability of PRML are UWE [9,24] and Hera [7,25]. Note that the presented approach is not limited to these methodologies, but we have used them in this paper as a proof of concept. As it will be explained in Section 3.4, to create PRML we have done a study for identifying a common denominator of a set of existing modelling languages and abstracting the core set of concepts. That is why PRML can also be applied to those studied methodologies. A reason for choosing these approaches is that are well-known by the authors of the paper. This is important to specify efficient transformations. Another reason for choosing those approaches is that they are different enough to show the generality of the approach presented. An overview of these approaches is presented next The UWE approach The UWE (UML-based Web Engineering) method [9,24] is a model-driven and object-oriented approach whose distinguishing feature is the fact that it complies with the Unified Modeling Language since UWE is defined in the form of a UML profile and an extension to the UML meta-model. UWE follows the principles of the Unified Software Development Process and supports the systematic development of Web applications focusing on the specification of adaptive (personalized) applications. An extension of ArgoUML known as ArgoUWE gives support to the approach. UWE provides a reference model for adaptive hypermedia systems called Munich reference model, based on the Dexter reference model. The purpose of this model is to identify the main features of adaptive hypermedia and personalized Web applications, as a prior step to the definition of appropriate modeling techniques. UWE stresses on personalization features, such as the definition of a user model and an adaptation model, or a set of adaptive navigation features, which depend on preferences, knowledge or tasks Fig. 1. Excerpt of the Hera metamodel (extended with SeRQL).

4 994 I. Garrigós et al. / Information and Software Technology 52 (2010) that the user must execute. The static user model is represented as a class diagram, expressing the view that the system has of the user. It includes the user s attributes, and their values, relevant to the adaptive application. These attributes can be domain dependent, in other words, they will have a value for each domain component or domain independent attributes. State transitions of the objects, that is an instantiation of the user model, can be expressed by rules of the adaptation model. The adaptation model consists of containers for user s behaviour, a set of rules and a set of functions to perform the adaptation functionality. A rule is modeled as a class rule that consists of one condition, one action and attributes. Rules are expressed as OCL expressions in the context of the executor method of the rule. The OCL metamodel for expressions can be consulted in [26]. Examples of instantiations of this metamodel will be shown at the end of Section The Hera approach The Hera methodology [7,25] is a model-driven approach for designing and developing Web Information Systems (WISs). From the gathering of requirements to the maintenance of the operational application, most information system design methodologies distinguish several phases in the design process. Hera s target is to facilitate the automatic execution of the design. Hera uses several models to capture the different design aspects. Due to the fact that these models are considered Web metadata descriptions that specify different aspects of a WIS, authors chose to use the Web metadata language, i.e. RDF(S) [27], to represent all models and their instances. Hera supports two types of adaptation: static based on the user s profile data, that is stored in the user/platform profile model (UP), which stores the static (i.e. fixed at design time) user preferences and platform capabilities. Dynamic based on the user/platform model (UM) information. In this model, the dynamic user s preferences and platform capabilities are captured. The user model changes during user browsing. At this layer, there is another model called adaptation model, to specify how adaptation is carried out by using the data coming from UP or UM. This is performed by using inclusion conditions attached to model elements. Conditions based on UP attributes define the so-called adaptability presentation is fixed before user browsing while conditions based on UM model define the so-called adaptivity presentation changes during user browsing of the system. These appearance conditions over the different model elements are expressed using an extension of the SeRQL [28] query language implemented by the HPG-Java engine. This engine is a Java servlet that, based on Hera models, generates pages on demand. In Fig. 1, an excerpt of the Hera metamodel for supporting adaptivity is shown. It is extended with the SeRQL syntax needed to specify the appearance conditions and queries on the different elements of the application model. Section 5 will refer to this metamodel to define the transformations between PRML and SeRQL and examples of instantiations of this metamodel will be shown at the end of Section 5.1. In the next section, we will explain how to add personalization using PRML to a Web design method. A case study will be presented and modeled in the context of UWE and Hera methodologies. 3. Personalization modeling in web design methods Typically, Web design methods define three main models when designing a Web application: a domain model, in which the structure of the domain data is defined, a navigation model, 4 in which the structure and behaviour of the navigation view over the domain data is defined, and finally the presentation model, in which the layout of the generated hypermedia presentation is defined. In general, to be able to model personalization at design time two new models are added to the above set of models: (1) A personalization model, in which personalization policies are specified. Together with the personalization of the content, navigation structure and presentation, the personalization model also defines updates of the user information specified in the user model (described next). (2) A user model, in which the structure of information needed for personalization is described. Typically, information captures beliefs and knowledge that the system has about the user and it is a foundation for personalization actions described in the personalization model. In the following sections, we will define the different models of the typical Web application design phases for the UWE and Hera approaches (except for the presentation model because personalization of the presentation is outside the scope of this work). For illustration purposes, the case study modeled in this paper is an online book store. In this system, the user browses through a list of books and can order selected books. Later, in Section 5, we will describe how personalization strategies can be applied to appropriate models of both methods using the same set of PRML rules Domain model The domain model (DM) specifies the structure of the Web application domain data. The upper part of Fig. 2 shows the UWE DM for the running example. In UWE, the DM is defined as a UML-compliant class diagram. Concepts are represented by classes with attributes and operations. There are associations between them representing concepts relationships. In our case study, all books can have an associated review. We store the name of a book, a summary of it, the price and the name of the author(s). Moreover, there is the possibility of buying the book (specified in the UWE DM by the Buy() method). The Hera DM for the same example is depicted in the upper part of Fig. 3. As aforementioned, in Hera, all models are expressed in RDFS [27]. Rounded rectangles represent concepts and rectangles represent literal attributes. Concepts also have concepts relationships represented by arrows between concepts. We store the same information as in the UWE DM. The Hera DM does not specify operations; the application logic (i.e. the Buy() method) is directly specified in the navigation model Navigation model The navigation model (NM) describes a navigation view on the data specified by the DM. A generic NM is composed of nodes and links. Nodes are restricted views of domain concepts or can contain static nodes including information independent of the domain. UWE NM is composed of navigational classes, which represent views 5 of the classes of the DM (the above-defined nodes) and their relationships (i.e. links). In the Hera NM (see Fig. 5) slice shapes represent navigation nodes. These nodes are based on DM or UM concepts that are called root concepts, represented by ovals attached to the slice shapes. Overlaying areas of slices and ovals contain attributes of the root concept. Attributes of related concepts are located in the slice areas not overlapping with the ovals. In Hera, arrows represent links that have attributes as anchors and slices as targets. There are also three types of links: navigational links, constant links 4 In Hera, this model is called application model. 5 Views contain partial information of the class

5 I. Garrigós et al. / Information and Software Technology 52 (2010) Fig. 2. DM-UM for UWE. Fig. 3. DM-UM for Hera. that do not carry information about slice instances but only navigate to different slices, and can serve as menu items, and links associated with submitting forms. For a more extensive description of UWE and Hera NM we refer the reader to [9,7], respectively. Figs. 4 and 5 show the NM for UWE and Hera respectively. We can see that both models have the same expressiveness. In both cases, the final website will have the home page where we can find a collection of links (i.e. menu) with the links Consult Books and Recommendations as a starting point. If the user navigates through the first link (Consult Books) he/she will find a list of all the books in a new page; in the UWE model it is represented by the navigation class Book and in the Hera model represented by thebook slice. This set of books is an indexed list, so the user can click on one of the books names to view the details of a chosen book (the BookDetails class in UWE and the BookDetails slice in Hera). When the user clicks on Recommendations, personalized book suggestions should appear (based on the information from the user model). The Recommendations page is represented in UWE by the Recommendations class, and as the Recommendations slice in Hera. To fulfill a personalization requirement and, in this case, show recommendations of books to the users based on their interest in authors, as explained, we need to add the user and personalization models to the set of models. They are described along the next sections User and personalization models Adding the user model To store the updatable information about the user needed for fulfilling the personalization requirements, the user model is defined. The user model data should be defined based on the personalization requirements that we want to support in a concrete application. Typically these data (i.e. personalization data) is in some way related to the domain data. It is composed by descriptions that are considered relevant about the knowledge and user s

6 996 I. Garrigós et al. / Information and Software Technology 52 (2010) Fig. 4. UWE navigation model. Fig. 5. Hera navigation model. aptitudes, providing information for the environment of the system for being adapted to the individual user. It can also contain domain independent traditional characteristics (like age and language) but also information related to the browsing behaviour of the user, as well as session information and information about the context in which the user is using the site. It also can contain user data referring to the domain (for example, information on the user s knowledge of topics occurring in the website). We can provide some guidelines for modelling the user and domain models: In the domain model we define data structures of the information referring to the domain (not user-specific). Depending on the personalization requirements, we build the personalization model with the classes needed to store the required information to base the personalization on. The information type we store in the user model can be user characteristics, preferences, user requirements, context of the user or user browsing behaviour. If some information is related to a concept of the domain model (e.g. user interest in one author) we add a relationship to it, since both models can be connected. If there are several roles for the user, possibly with overlap of some information, then we can create a generalization in the user model from one specific class (i.e. user role) to the User class. For more detailed information about the modelling of a personalized website we can refer the reader to [29]. As explained, the information to store in the user model depends on the personalization requirements defined to be fulfilled in the website. The personalization requirements specified for the running example are the following: 1. Users that have bought more than a minimum number of books will be offered a discount in all books prices. In this case, to fulfill this requirement (and offer the price discount to the user) the number of books bought should be stored in the UM.

7 I. Garrigós et al. / Information and Software Technology 52 (2010) Users will see recommendations of books of authors that they are interested in. This requirement states that users will be offered a set of recommended books, based on the user s interest. For fulfilling this requirement we need to acquire and update the user s interest in the different authors. 3. If the user does not have enough interest in any book s author to obtain personalized recommendations, the link called recommendations is not shown. For fulfilling this requirement we can check the interest in the different authors, stored in the UM to fulfill the previous personalization requirement. We can see the UM for the UWE and Hera methods in Fig. 2 (lower part) and Fig. 3 (lower part), respectively. While a UM is conceptually a separate model, it is used in a similar way as a DM and is typically associated with the DM. The UWE UM is defined as a UML-compliant class diagram and the Hera UM is defined using RDFS [27]. UML classes in UWE are equivalent to RDFS concepts in Hera. Associations defined between classes in UML are defined in RDFS as properties between concepts. A single attribute specified in a UML class is defined as a literal in RDFS. In the updatable data space defined by the UM, specified using both methods here, information describing the user s interests in authors is stored, according to the defined personalization requirement. In the UM, we also have the NodeVisiting class/concept. This class/concept stores the number of clicks on different links; in our example we store the clicks performed on the link Buy in the attribute buyclicks. Then, we will use this information to fulfill the first personalization requirement of the running example. Note that to store the number of clicks on any other link we would just have to add a new attribute to the NodeVisiting class/concept Adding the personalization model The personalization model (PM) we define it is based on event condition action rules. In this model, the personalization actions to be performed are specified. For satisfying a personalization requirement we often have to define how to update the knowledge about user (acquisition rule). This information is stored in the UM data space. Furthermore, we have to define the effects that this personalization causes to the presented content and navigation structure (personalization rules). These rules use the information specified by the UM to describe adaptation actions. Depending on the object of the adaptation, two kinds of personalization rules are considered: navigation personalization rules (to alter navigation), and content personalization rules (to add/remove/adapt content). These types of rules are such because in this work we consider the personalization of the content and the navigation of the website. As already mentioned, the personalization of the presentation is out of the scope of this work. As previously stated, the rules of the PM are defined using the PRML language. It is based on a MOF [30] metamodel (see Fig. 6) which defines the set of constructs of the language such as the different parts that form a PRML rule and the different events and the actions supported. The main element of the metamodel is the rule metaclass which represents the concept of rule containing the elements that define it. The elements defining a rule are those that represent its main structure and are explained in this paper. The basic structure of a rule defined with PRML is the following: When event do [Foreach expression] If condition then action endif [endforeach] endwhen A PRML rule is formed by an event and the body, which contains a condition (optional) and an action to be performed. The event part of the rule states when the rule should be triggered. Once triggered the rule, the condition is evaluated (if any) and if it is evaluated positively, then the action is performed. A Foreach expression can also be present in the rule when the action and the condition act on a set of instances. Fig. 6. Simplified PRML metamodel.

8 998 I. Garrigós et al. / Information and Software Technology 52 (2010) As it has been shown, UWE and Hera use different modeling languages to define a Web application. Despite the differences, the conceptual (domain and navigational) models of both methodologies have the same expressiveness as we can see in the previous examples. This is important in order to use the same personalization model, specified with PRML, in both approaches. To see if the expressiveness of the Web methodology is sufficient for the use of PRML and therefore if the portability and reuse of personalization strategies is possible, we define some requirements that need to be fulfilled, they are explained in the next section Requirements for the use of PRML To properly define a method-independent language, the first step is to identify a common denominator of a set of existing modeling languages and abstracting the core set of concepts. Different Web design methods supporting personalization were studied. The approaches considered for this study were WebML [5], OOHDM [10], UWE [9], Hera [7] and WSDM [4]. This set of approaches is representative enough to show the generality of PRML. All of them have personalization support except for WSDM, which currently supports adaptation for all the users of the website but could be easily extended to model personalization. After this study, some essential requirements to be able to accommodate PRML personalization specification were defined: R1: A domain model (DM) should be a part of a Web application specification. The data structure of the website should have a way of being specified. R1.1: The DM should be composed of concepts, attributes and concepts relationships. R2: A navigation model (NM) should be a part of a Web application specification. There should be a mechanism for accessing the data content of the navigation objects. R2.1: The NM should have nodes and links as main components. Nodes are restricted views of domain concepts but can also be static nodes with no concept associated. Each node can be associated to a concept from the DM or the UM. Nodes contain the attributes and operations that are going to be shown in the navigation. Requirements R1 and R2 ensure that the target of the personalization rules exists and its data content can be properly referenced by condition and action parts of the rules. Domain and navigation specification are typically present in Web modeling approaches. R3: A user model (UM) should be a part of an application specification. An alternative can be a specification of updatable (temporary) data space. There should be a mechanism for accessing the data content of user model objects. Requirement R3 ensures that the target of the acquisition (data updating) rules exists and can be properly referenced. All modern methods also support some personalization or at least allow association of user actions with data updates. R3.1: Analogous to the DM, the UM should also be composed of concepts, attributes and concepts relationships. R4: Within the NM and UM, it should be possible to use events to trigger personalization, and conditions to execute the specific personalization policy. Requirement R4 ensures that personalization can be triggered by events supported by the different methodologies. The personalization actions will be executed depending on the condition evaluation. R5: Besides the previous requirements, it should be possible to define actions over the elements of the models. Requirement R5 ensures that PRML actions have their counterparts in possible actions that can be specified using different methods. Once having abstracted the models and concepts over which PRML has to operate, some aspects have to be defined to develop a common rule language on top of these abstract concepts: Timing of the adaptation: when to personalize? The events supported in PRML to trigger the rules should be defined. Conditions. The manner to refer to the concepts of the different models as well as the comparison operators supported in PRML conditions need to be specified. Operations over concepts. Finally, the operations allowed in PRML over the different concepts need to be described. The development of the rule language regarding these issues will be presented in next section. In further sections we will explain how a PRML personalization specification can be mapped to UWE and Hera methods. 4. PRML fundamentals 4.1. Timing of the adaptation To specify when an adaptation (personalization) action should be performed, PRML allows specifying user browsing events. PRML includes browsing events relevant for a website including its browsing sessions. We argue that the majority of mature Web systems and design methods distinguish the following browsing events: link navigation, node loading, starting a browsing session, and ending a browsing session. Browsing events are implicitly associated with the user clicks and may trigger the activation of one or more rules. PRML considers the following user browsing events: Navigation event: caused by the activation of a link of the NM. LoadElement event: it is caused by the instantiation of a node of the NM. The difference between this event and the previous one is that the LoadElement event is triggered independently of the link that loads the node. This is useful when a set of links have the same target node and we want to personalize during the activation of any of those links. Start event: triggered with the start of the browsing session by a user. End event: triggered when the browsing session expires after certain inactivity of the user in the system, or when the user explicitly finishes the session. The way the events are captured depends on the implementation done. We have implemented a prototype tool for testing the PRML execution [14] in which the events gathering is not tightly integrated with the Web application. Next, the specification of these events in PRML rules is explained. In PRML, in the case of user browsing events which imply navigation of the user within the website (i.e. Navigation and LoadElement events) information about navigation is passed as a parameter. As aforementioned, nodes are restricted views over the DM or UM concepts. The parameter contains information about which instances of concepts of the DM/UM are to be shown in the activated node. The instances to be shown in the nodes are adapted to each user (i.e. personalized) by means of PRML rules. Two different types of parameters are possible: Simple parameter: This parameter refers to an instance of a concept of the DM/UM. The event passes a simple parameter when

9 I. Garrigós et al. / Information and Software Technology 52 (2010) in the target node an instance (always one) of a concept of the DM/UM is shown. Complex parameter: This parameter refers to a set of instances (one or more instances) of a concept of the DM/UM. Every time the user activates a link (activelink) a node is activated (activenode) and the associated event is launched, which may trigger one or more rules. The parameter is the instance or set of instances from the root concept of the DM/UM (activeconcept) to be shown in the activenode. The distinction into simple and complex parameters is carried out to improve the readability and maintenance of the rules for the designer. In other words, if a complex parameter is transferred then a loop will be needed to go over the set of instances. In the case of the running example, for specifying that an event should be triggered when the user clicks on the ViewDetails link in PRML, we express it as: When Navigation. ViewDetails(NM.Book book) do This event transfers a simple parameter (an instance of the book visited). An example of transferring a complex parameter is shown below: When Navigation. Recommendations(NM.Book* books) do When the user clicks on Recommendations, a set of books (zero or more) will appear (with no adaptation action applied). An appropriate PRML rule will adapt the set of books for a particular user (explained in Section 4.3.3). The browsing session events (i.e. Start and End events) do not transfer any parameter. Their PRML representation is very simple: When SessionStart do When SessionEnd do The BNF specification for the PRML events can be found in the Appendix A of this paper Conditions in PRML rules PRML offers a high degree of freedom in defining conditions, while it is still simple and minimal enough to be used in multiple methodologies. When specifying conditions two aspects have to be decided: (i) how to refer to the different elements of the models defined in the website; (ii) how to specify conditions over these elements. When specifying conditions, PRML rules can refer to different elements of the models defined for the website. As already explained, personalization is based on the user s data stored in the UM. This information can be updated and consulted (specifying conditions over those data to base the personalization on). For updating this information adequate actions are defined (see Section 4.3). Nevertheless, a mechanism to access the UM structures is needed. Besides, a PRML rule can also refer to information from the DM and from the NM for specifying some needed conditions to define adaptation actions. To indicate the access to data of a particular model the prefixes DM, UM or NM are added in PRML rules to the expressions referring to the particular information. In the case of accessing information defined in the UM, the source concept is always User, to identify the user that is actually browsing the website. To access a certain element of a model, PRML navigates over the model using path expressions (PE). The PEs are based on the path expressions defined in OCL [26]. As an example for a PE, consider that we want to access the interest degree of the user in the different authors stored in the UM (the UWE and Hera UM are shown in Figs. 2 and 3, respectively). For building the PE the following steps are to be taken: As already mentioned, the PE starts with a prefix indicating the model that is being navigated. E.g UM After that, it follows a dot and then the source concept which the expression departs from. E.g. UM.User For traversing the concepts, the target roles of the concepts relationships are added to the PE (with dots). E.g. UM.User.userToInterest It finishes with either a concept or an attribute of a concept. E.g. UM.User.userToInterest.degree When accessing information defined in the NM instead of concepts PEs refer to nodes, and instead of concepts relationships PEs refer to links. The BNF specification for a PE is described in Appendix A of this paper. The following operators and structures may appear in a PRML condition: Relational operators (>, <, >=, <=, =,!=) Arithmetic operators (+,, /, *) Logical operators (and/or) Negation (not) ForAll Conditions If ForAll (UM.User.usertoInterest) (UM.User.usertoInterest.degree=null or UM.User. usertointerest.degree < 100) then The ForAll condition is a special kind of condition: it is checked for all instances of the specified concept. This can be useful when we need to evaluate the condition for a set of instances but we want to perform the action only once (i.e. when the condition holds for all instances) Operations supported PRML contains a set of constructs to model the personalization of a website manipulating the UM and NM. These constructs represent personalization actions over the different elements of those models (note that the elements of the different models were explained in Section 3.4). As aforementioned, actions supported by PRML have been abstracted from a selection of well-known modeling approaches. The adaptation actions supported by the studied approaches include the user data manipulation. All approaches allow filtering the content to show and most of them (UWE, Hera and OOHDM) allow filtering the links as well. In Table 1, we can see which actions are supported by each of the studied methodologies. After this study we can conclude that PRML should contain the following set of operations over the UM and NM elements: Actions over attributes (UM and NM): 1. Updating an attribute value from the UM (setcontent): This action allows modifying/setting the value of an attribute of a concept of the UM. 2. Filtering attributes in the NM nodes (selectattribute): By means of this action a node can be restricted by hiding or showing some of the attributes of the DM/UM related concept. Actions over nodes (NM): 3. Filtering node instances (selectinstance): This action allows us to show only the selected instances of a DM/UM concept for a user depending on the personalization requirements that we are aimed to support.

10 1000 I. Garrigós et al. / Information and Software Technology 52 (2010) Table 1 Actions supported by the different methodologies. Action/methodology UWE Hera WebML OOHDM WSDM 1. Updating UM content Yes Yes Yes Yes No 2. Filtering content (concept Yes Yes No No Yes attributes) 3. Filtering content (concept Yes Yes Yes Yes Yes instances) 4. Link hiding Yes Yes No Yes Yes 5. Sorting content No No No No No 6. Sorting links Yes No No No No 7. Adding/deleting links No No/ Yes/Yes No Yes No 8. Adding/deleting concepts No No Yes/Yes No No 9. Dynamically grouping users No No No No No 10. Link annotation Yes No No No No Actions over links (NM): 4. Hiding links and their target nodes (hidelink): Analogous to filtering data content, PRML also supports filtering links. However, some adaptive operations not supported by most of the studied methodologies (and thus not supported by PRML) are also interesting for personalization actions. Some of these actions are defined in a more complete version of PRML limiting though the reusability (PRML Full). As we have already explained, in this paper we will focus on the common actions, elaborating them by means of the presented running example Updating a value (setcontent) This action changes the value of an UM attribute. Consider the scenario presented in the running example in Section 3 of an online book store. The acquisition of the information that needs to be stored in the UM is carried out by means of acquisition rules which perform the setcontent action. To fulfill the 1st requirement described in Section 3.3.1, the number of books bought by a user has to be stored in the UM. The following rule updates the number of books bought when the user clicks on the Buy link. When Navigation.Buy (NM.Book b) do setcontent (UM.User.userToNodeVisiting.buyClicks, UM.User.userToNodeVisiting.buyClicks + 1) endwhen This rule is triggered by a Navigation event when the user activates the link Buy. It updates the number of books bought when the user clicks on the Buy link (updating the attribute buyclicks of the NodeVisiting concept of the UM) using the PRML setcontent action. To cope with the 2nd requirement the user s interest in the authors of the books has to be gathered. In this example, the interest of the user is defined in the following way: the user is interested in an author when he consults a book of him/her. When Navigation.ViewDetails (NM.Book book) do Foreach a, b in (UM.User.userToInterest, book. booktoauthor) If(b.ID = a.interesttoauthor.id) then setcontent (a.degree,a.degree + 10) endif endforeach endwhen This rule is triggered by a Navigation event when the user activates the link ViewDetails. It updates the interest of the user in the author of the visited book (by updating the attribute Interest.degree of the UM). The foreach expression of the rule is needed to go over each of the instances of the Interest concept (referenced by the Path Expression UM.User.userToInterest) in the UM (see Figs. 2 and 3) in order to check the proper instance to update. The foreach expression also goes over the set of authors of the consulted book. If the instance of the author checked in the UM is the same as one of the authors of the book the user is consulting when clicking the View- Details link then we will update the interest degree in that author in the UM, using the PRML setcontent action Filtering attributes in the NM nodes (selectattribute) To illustrate the selectattribute action of PRML, we consider the 1 st personalization requirement: When the user clicks on the View- Details link to consult a specific book, if the number of books bought is greater than 10, we will show an attribute discount to the user (note that this attribute was not previously selected to be shown in the navigation model but is present in the domain model). When Navigation.ViewDetails(NM.Book book) do If UM.User.userToNodeVisiting.buyClicks > 10 then book.attributes.selectattribute(discount) endif endwhen In this rule from the set of attributes of a book, the attribute offer is selected. The rule is triggered by a Navigation event, result of clicking on the ViewDetails link. Events pass a parameter with the information of the node to be shown, in this case the concrete book of which we are going to see the details. If the number of clicks on the Buy link (stored in the user model with a rule explained in Section 4.3.1) is greater than 10, we will select the attribute discount from the book concept to be shown using the PRML selectattribute action Filtering node instances (selectinstance) Let s consider now the 2nd requirement of the case study in which recommended books based on the interest of the user are shown. The interest of the user needs to be stored in the UM with an acquisition rule taking into account the user s browsing behaviour (this rule has been explained in Section 4.3.1). The personalization rule that displays the book names if the user has an interest degree in the book author greater than 100 is as follows: When Navigation.Recommendations(NM.Book* books) do Foreach b,a in (books,um.user.usertointerest. interesttoauthor) do If (UM.User.userToInterest.degree > 100) and a.id = b.bookstoauthor.id) then books? selectinstance (b) endif endforeach endwhen The rule is triggered by a Navigation event, which is the result of clicking on the Recommendations link. As aforementioned, navigation events pass a parameter with the information of the node to be shown, in this case the set of all the books which is filtered to only show the recommended books. In this example aforeach expression is needed to go over all instances of the set of books passed as an event parameter, and the

11 I. Garrigós et al. / Information and Software Technology 52 (2010) loop also goes over all instances of the author concept. If the user has an interest degree greater than 100 related to the instance of the author we are checking, then the book instance checked is selected to be shown using the PRML selectinstance action Link hiding To illustrate the hidelink action of PRML, we consider the 3rd personalization requirement: if the user interest degree in the different authors is not initialized (this means that the user has not consulted the details of any book yet, maybe because it is the first time the user goes into the website) the Recommendations link is not shown. Note that there is only one Recommendations link in the website for each user. When SessionStart do If ForAll (UM.User.usertoInterest) (UM.User.usertoInterest.degree = null or UM. User.usertoInterest.degree < 100) then hidelink(nm.recommendations) endif endwhen The rule is triggered by a SessionStart event, when the user enters the website. In this case, our purpose is to check a condition over a set of instances of a concept, as well as to perform an action (hide the link) only if the condition is true for all the evaluated instances. For this purpose the Forall statement is added to the condition stating the collection over which the condition should be true. This condition checks if the interest degree of the user in the different authors has any value. If it has no value, it means that the Recommendations link should not be shown, so it is hidden by using the PRML hidelink action. For clarity reasons the rules specified in this paper have been simplified by omitting some rule features (e.g. rule name, priority, activation and expiration dates, etc.). When specifying a PRML rule we can state a set of rule features like the activation date on which the rule is first triggered, the expiration date on which the rule becomes inactive (and thus not anymore triggered), the name and the type of the rule and the priority over other rules. An example of such features specification is: Rule: suggestions type: Pers-Content priority: high activation: expiration: This rule is called suggestions, the type of the rule is Personalization-Content. It has an activation date ( ) on which the user is triggered for the first time, and an expiration date ( ) on which the rule becomes inactive and thus not triggered anymore. The order of execution for rules sharing the same triggering event is unspecified unless it is enforced using priority. This rule has a high priority which means that will be executed earlier than rules having medium and low priority. Next section explains how to specify the execution order of the different rules Execution order When a set of rules are triggered by the same event and they become active (i.e. their condition evaluation is true), all the active rules are collected in a queue (stack) and executed sequentially. Parallel execution would require a conflict resolution mechanism in case of several active rules performing conflicting actions. The execution of a rule may activate or deactivate other rules, so other active rules in the queue may become inactive before they are selected for execution. A different execution order of the rules in the queue can affect the final state (those rules will have execution order-dependence). For the same user the system should provide the same result, and thus the same final state, which is called confluence. To decide the execution order of the active rules a priority parameter is defined, however if the order-dependent set of rules is greater than 3 (there are only three priority values: high, medium, low) we need another mechanism for assuring the confluence. Usually the order of execution by the rule engine is unspecified and depends on the specific rule engine used, but some constraints are defined: Acquisition rules have always higher priority than personalization rules. When an acquisition rule and a personalization rule are triggered on the same event we want to update the information acquired before applying the personalization. In this way we assure the information used to base the personalization on is always updated. Personalization rules triggered by the same event affecting the same element should be defined taking into account that: Filtering attributes has higher priority than filtering instances. The order of execution of two rules with the same action type (over the same element) should be specified by means of the priority feature. Multiple acquisition rules sharing the same event should be avoided. The reason is that when unsynchronized data updates take place can lead to possible data inconsistency. These constraints are not automatically checked, they are considered as guidelines for the designer. Therefore it is the task of the designer to take them into account when defining a set of rules for fulfilling a personalization strategy. If these guidelines are not taken into account we cannot assure the confluence and the inexistence of conflicts among rules Methodology for the use of PRML In this section we explain the steps a designer should follow for the use of PRML. First of all, if a designer wants to use PRML for specifying personalization strategies in a website, he should check the requirements specified for the use of PRML (explained in Section 3.4). Then, if the Web methodology used in the website fulfils the specified requirements the designer has to follow the next steps: 1. Define the personalization requirements to support in the website. 2. Define the conceptual models of the website (domain, navigation, presentation). 3. Define a user model where the information needed to personalize is stored. 4. Define acquisition rules to gather and update the information stored in the user model. With similar personalization requirements we can reuse the acquisition rules defined for previous websites. 5. Define personalization rules to specify the personalization actions defined in the personalization requirements. If we have some personalization rule which define some strategy to cope with one or more of the defined personalization requirements, we can reuse it here. 6. Deploy and activate the rules. 7. Once at runtime, we can modify the personalization strategies if needed without regenerating the rest of the application. Fig. 7 shows an overview of the approach presented. The website is specified by a set of design models of a concrete Web methodology. The personalization model is specified by the personalization designer (or reused from a personalization repository) by using PRML. This specification can be directly used or transformed to the specifics of the target Web methodology after the

12 1002 I. Garrigós et al. / Information and Software Technology 52 (2010) Fig. 7. Approach overview. design of the system. The reader should note that in the first case, the target approach needs a rule engine which supports PRML. We have developed such an engine in order to test the PRML language [15]. 6 An overview of this implementation is explained in the last paragraph of Section 6. So far, we have presented the PRML language. From now on, we will present how the transformations from PRML into UWE and Hera approaches are possible. The aim of the transformations is that of showing the portability of the PRML approach, and thus the reusability of a PRML specification among different methodologies. 5. Transformations from PRML into the specifics of the UWE and Hera methods In this section, we will describe the transformations from PRML into the specifics of UWE and Hera methodologies For this purpose, we will use the MOF 2.0 Query/View/Transformation language (QVT) [31] which is a standard approach proposed by OMG. Furthermore, QVT is an essential part of the MDA (Model Driven Architecture) standard as a means of defining formal and automatic transformations between models. Defining transformations by specifying QVT relations has several advantages: (i) transformations are formally established, easy to understand, reuse and maintain, (ii) they do not have to be manually performed by an expert, which is a tedious and time-consuming task. On the contrary, using QVT allows defining transformations at the metamodel level, allowing the designer to use them in each project, and (iii) relations can be easily integrated into an MDA approach. QVT consists of two parts: declarative and imperative. The declarative part provides mechanisms to define relations that must hold between the model elements of a set of candidate models (source and target models). This declarative part can be split into two layers according to the level of abstraction: the relational layer that provides graphical and textual notation for a declarative specification of relations, and the core layer that provides a simpler, but verbose, way of defining relations. The imperative part defines 6 operational mappings that extend the declarative part with imperative implementations when it is difficult to provide a purely declarative specification of a relation. In this paper, we focus on the relational layer of QVT. This layer supports the specification of relationships that must hold between models by means of a relations language. A relation is defined by the following elements: Two or more domains: each domain is a set of elements related to a source or a target model. The kind of relation between domains must be specified: checkonly (C), i.e., it is only checked if the relation holds or not; and enforced (E), i.e., the target model can be modified to satisfy the relation. When clause: it specifies the conditions under which the relation needs to hold (i.e. precondition). Where clause: it specifies the conditions that must be satisfied by all model elements participating in the relation (i.e. postcondition). The following sections will explain the QVT relations defined for the transformation of a PRML specification to the specifics of UWE and Hera methodologies. Transformations are defined in a unidirectional way from PRML to concrete languages. These transformations are done to formally show the equivalence of the expressiveness in PRML and the target approaches. In this process, no information is lost because all the specifications that can be done with PRML can also be specified in the target languages. This is assured by the way PRML constructs are built QVT relations: transformations from PRML to UWE and Hera In the case of UWE, a PRML rule is transformed into an OCL expression that represents the same personalization rule for the UWE approach. Therefore, the output of a QVT transformation from PRML to UWE is an OCL expression based on the abstract syntax defined in the specification [26]. In the case of Hera, a PRML rule is transformed into a set of SeR- QL queries attached to an element of the Hera NM (a slice, link or

13 I. Garrigós et al. / Information and Software Technology 52 (2010) attribute) representing the same personalization rule for the Hera approach. These queries allow data manipulations and some of them are conditions determining the set of instances of concepts, links or attributes to be displayed. The mentioned queries are based on an extension to the SeRQL query language and thus contain path expressions and conditions. It is quite straightforward to obtain a model from PRML and OCL expressions and from PRML and SeRQL expressions, useful for applying the QVT transformations. Therefore, in this paper we focus on presenting PRML and UWE rules and Hera queries in textual notation, although the QVT relations have been defined over their corresponding metamodels (PRML, OCL and SeRQL). In Fig. 8, we can see the sequence of transformations that are needed for the different types of PRML rules. This set of relations is applied according to the structure of a PRML rule (see Section 3.3.2): firstly, the PRMLRule relation is applied to drive the whole transformation. In this way, this rule decides about which the following relation to be applied, according to the expression in the where clause, is. If the event is Navigation, then the PRMLNavigation relation is applied. The PRMLNavigation relation has to call the PRMLAction relation, since the main part of a PRML rule is the action to be performed. The PRMLAction relation deals with executing the right relation according to the kind of action. Then, if the action is SelectInstance, the PRMLSelectInstance relation is applied. This relation together with PRMLCondition and PRMLForEach relations are used for creating the corresponding UWE or Hera personalization model from the PRML model. As a proof of concept and due to space constraints we can only show in this paper a subset of these relations, which allow us to deal with a PRML rule triggered by a Navigation event and the SelectInstance action PRMLRule The first QVT relation states that a PRML rule is transformed into an UWE rule (Fig. 9a) and, in Hera NM, as a set of queries (Fig. 9b). The where clause checks the event type of the PRML rule, calling the appropriate QVT relation. Please, note that in this paper we only focus on the navigation event, so in the where clause only the PRMLNavigation relation is called. Fig. 8. Sequence of transformations PRMLNavigation The PRML Navigation QVT relation states that a PRML Navigation event is transformed into a user browsing event. In UWE Fig. 9. (a) UWE PRMLRule relation; (b) Hera PRMLRule relation. Fig. 10. (a) UWE PRMLNavigation relation; (b) Hera PRMLNavigation relation.

14 1004 I. Garrigós et al. / Information and Software Technology 52 (2010) (Fig. 10a) this transformation is straightforward. For Hera, it states that a PRML Navigation event is transformed into a Condition query applied over the node activated by the event and into a Session query (with a Result query attached) for storing the parameter of the PRML navigation event as a Hera session variable (Fig. 10b). The where clause contains a relation that extends the previous one (i.e. PRMLAction) and it is described below PRMLAction The PRMLAction relation states that a PRML action is transformed into an OCL expression that represents the UWE rule (Fig. 11a). In Hera, a PRML action is transformed into an appearance Condition(query) (Fig. 11b). This relation checks the kind of action in order to call the adequate relation in the where clause. Note that we only focus on the SelectInstance action PRML SelectInstance This relation checks that there is a set of elements in the PRML rule that represent a SelectInstance action according to the PRML metamodel (see Fig. 6). These elements are: a SelectInstance class together with the corresponding variable that represents a collection and the type of this variable. When transforming PRML into UWE, this relation enforces that the corresponding OCL expression has the following elements: an IteratorExp class, whose type is Select, a collection of elements,that represents the source of the IteratorExp of the same type of the Variable of the PRML SelectInstance (see Fig. 12a). When transforming PRML into the specifics of Hera, this relation enforces that the corresponding Hera appearance condition is a query of type Select where SelectClause acts over a collection of elements of the same type of the Variable of the PRML SelectInstance (see Fig. 12b). Once this relation holds, the PRMLForEach and the PRMLCondition relations must be performed, according to the where clause. In this way, each part of a PRML rule will be checked with its corresponding QVT rule, and the corresponding elements in the OCL expression or SeRQL query will be created PRMLForEach This relation checks that there is the following set of elements in the PRML rule: a ForEach element, with a variable which has a type and a PathExpression. This relation enforces that the OCL expression contains an IteratorExpression which has a variable (with its type). This variable is the iterator of the IteratorExpression (Fig. 13a). This relation enforces that the Hera Select query has a from clause with the same PathExpressions as in the PRML Foreach expression (Fig. 13b) PRMLCondition This relation checks the condition class together with its boolean expression (BoolExp) within the PRML rule. When transforming into the specifics of UWE, these elements enforce the body of the IteratorExpression, as an OCL expression that corresponds to the Boolean expression of the condition element in the PRML rule (Fig. 14a). In Hera transformations these elements enforce the where clause of the query select of the appearance condition as an expres- Fig. 11. (a) UWE PRMLAction relation; (b) Hera PRMLAction relation. Fig. 12. (a) UWE PRMLSetInstance relation; (b) Hera PRMLSetInstance relation.

15 I. Garrigós et al. / Information and Software Technology 52 (2010) Fig. 13. (a) UWE PRMLForEach relation; (b) Hera PRMLForEach relation. Fig. 14. (a) UWE PRMLCondition relation; (b) Hera PRMLCondition relation. sion that corresponds to the boolean expression of the condition element in the PRML rule (Fig. 14b). As an example, let us see how the transformation needed for the following PRML rule is performed. This rule was defined in Section to fulfill the 2nd personalization requirement described in the running example (i.e. offer recommendations). This rule selects the instances to be displayed of the books concept which are written by an author in who the user has an interest degree greater than 100. When Navigation.Recommendations(NM.Book* books) do Foreach b,a in (books,um.user.usertointerest. interesttoauthor) do If (UM.User.userToInterest.degree > 100) and a.id = b.bookstoauthor.id) then books? selectinstance (b) endif endforeach endwhen In UWE the corresponding rule is the following: Context: Rule::Executor(uid: ComponentUID,ui:UserID, ub:userbehaviour) Post: result = Collect (NM.Book)? Select (b:nm.book, a:um.user.usertointerest.interesttoauthor jb.booktoauthor.id = a.id and UM.User.userToInterest. degree > 100). In the postcondition of the rule, a Select OCL expression selects the instances of the book in which the user has an interest degree greater than 100. In this rule we can see how QVT relations described in this section are applied: PRMLRule: A PRML rule is transformed into an UWE rule. PRMLNavigation: A PRML navigation event is transformed into a user browsing event. This transformation cannot be seen in the textual representation because it directly affects the UWE adaptation metamodel. PRMLAction: A PRML action is transformed into an OCL expression that represents the UWE rule. PRML SelectInstance: Once checked that the elements representing the SelectInstance action exist in the PRML rule, the relation enforces that the corresponding OCL expression has the following elements: an IteratorExp class, whose type is Select, a collection of elements, that represents the source of the IteratorExp, of the same type of the Variable of the PRML SelectInstance. Post: result=collect(nm.book)? Select() PRMLForEach: The ForEach element (with a variable which has a type and a PathExp) of the PRML rule is transformed into an IteratorExp which has a variable (with its type). This variable is the iterator of the IteratorExp Post: result=collect (NM.Book)? Select(b:NM.- Book, a:um.user.usertointerest.interesttoauthorj) PRMLCondition: The body of the IteratorExp is defined as an OCL expression that corresponds to the boolean expression of the condition element in the PRML rule. Post: result=collect(nm.book)? Select(b:NM.Book, a:um.user.usertointerest.interesttoauthor jb.booktoauthor.id=a.id and UM.User.userTo Interest.degree > 100)

16 1006 I. Garrigós et al. / Information and Software Technology 52 (2010) In Hera the corresponding set of queries is the following: Session and Result Queries This set of queries fills the book session variable with the set of books of the domain model. <rdfs:class rdf:id="query_id1"> <rdfs:subclassof rdf:resource="&query"/> <slice:querystring> SELECT * FROM <cm:books> </slice:querystring> </rdfs:class> <rdfs:class rdf:id="queryresult_id1" slice:result- Name=books slice:useassessionvar="yes"> <rdfs:subclassof rdf:resource="&slice:queryresult"/> </rdfs:class> <rdf:property rdf:id="result-ref_id1"> <rdfs:subpropertyof rdf:resource="&slice#result-ref"/> <rdfs:domain rdf:resource="#query_id1"/> <rdfs:range rdf:resource="#queryresult_id1"/> </rdf:property> Condition Query This query is a condition over the recommendation slice. It checks the conditions specified in the 2nd requirement (i.e. the interest degree in a book s author has to be greater than 10). If the condition holds, the proper instances of the recommendation slice will be visible. <rdfs:class rdf:id: SliceCondition_ID1 > <rdfs:subclassof rdf:resource= nl/hera/ns/slice#slicecondition /> <slice:querystring> SELECT B FROM {B} <cm:bookstoauthor> (BTA} <um:id> {ID}, <um:usertointerest> {UI} <um:degree> {D}, <um:usertointerest> {UTI} <um: interesttoauthor> {ITA} <um:id> {ID2}, {session} <session:user> {U} WHERE D > 100 and ID= ID2 and B in Select * from session:books </slice:querystring> <rdfs:class> <rdf:property rdf:id="condition-ref_id1"> <rdfs:subpropertyof rdf:resource="&slice#condition-ref"/> <rdfs:domain rdf:resource="#slice.recommendation_id1"/> <rdfs:range rdf:resource="#slicecondition_id1"/ > </rdf:property> PRML SelectInstance: Once checked that the elements representing the SelectInstance action exist in the PRML rule, the relation enforces that the corresponding Condition query has a SelectClause in the appearance condition acting over a collection of elements of the same type of the variable of the PRML SelectInstance. SELECT B PRMLForEach: The ForEach element (with a variable which has a type and a PathExp) of the PRML rule is transformed into a from clause in the Condition query with the same PathExpressions as in the PRML foreach expression. FROM {B} <cm:bookstoauthor> (BTA} <um:id> {ID}, <um:usertointerest> {UI} <um:degree> {D}, <um:usertointerest> {UTI} <um:interesttoauthor> {ITA} <um:id> {ID2}, {session} <session:user> {U} PRMLCondition: The body of the IteratorExp is defined in the where clause of the query select of the appearance condition as an expression that corresponds to the boolean expression of the condition element in the PRML rule. WHERE D > 100 and ID= ID2 and B in Select * from session:books 6. Implementation The presented transformations have been implemented to show its feasibility. We have already successfully performed the transformations from PRML into the HPG engine (Hera specification) as well as into the UWE specification (OCL). We are currently working on the implementation of the transformations from PRML to different Web design methods. We have generated a PRML parser using the ANTLR (ANother Tool for Language Recognition, parser generator. Together with this, translators from PRML into Hera and UWE specifications have been implemented in Java. In Fig. 15 we can see a schema of how the PRML to Hera translator works and its relation with the ANTLR. In the file where the PRML grammar is defined we find all the tokens that the PRML language uses. The second file that is the input of the ANTLR contains the PRML syntax and its translation into the target methodology. When executing the ANTLR with those two files as an input, the output is a file with source code (in our case Java). Once the code is generated it has to be compiled only once, and it is ready for its execution. A screenshot of the Web interface of the prototype PRML Translator is shown in Fig. 16. In In Hera the corresponding set of queries is obtained by applying the QVT relations in the following way: PRMLRule: A PRML rule is transformed into a set of queries. PRMLNavigation: A PRML navigation event is transformed into a query condition over the recommendations slice. (SliceCondition_ID1) and into a session and result queries (Query_ID1 and QueryResult_ID1) storing the set of books received as an event parameter in the PRML rule as a session variable. PRMLAction: A PRML action is transformed into a condition query that has to be built depending on the action type. Fig. 15. PRML into Hera translator.

17 I. Garrigós et al. / Information and Software Technology 52 (2010) Fig. 16. Screenshot of the PRML translator. Fig. 17. Screenshot of the recommendations page. the upper part of this figure, the PRML rule or set of rules are introduced. Then the user chooses if the translation has to be made into Hera or into UWE and the translated rule is shown. The implementation of these transformations is also being tested by using the Web Transformation Engine (WebTE). This is a tool developed by the IWAD research group of the University of Alicante. It implements transformations between models using the UPT language [32]. UPT is a declarative transformation language which specifies the transformations using the standard UML and is based on QVT. Moreover, the PRML language has been tested by implementing a prototype tool [14,15] 7 which contains several modules like a Web 7 engine and a rule evaluator, allowing the execution of PRML rules in a running website. The generated Web Application has a three layered architecture: The first layer is the user interface, through which the user can generate http requests and receive http responses. The second layer contains the main modules of the Web Application for managing the personalization (i.e. Website Engine and PRML Evaluator). The Website Engine interacts with the user, gathering the requests and giving back the response. The conceptual models are modified for each particular user (i.e. each user will have a different set of models depending on the adaptation actions performed on them). The Website engine loads the models (from the application database) of the particular user when s/he starts a new session. These models are modified along the different sessions depending on the adaptation actions performed. This implies each user will see a different adaptive view of the Website every session s/he

18 1008 I. Garrigós et al. / Information and Software Technology 52 (2010) browses it. The Website engine captures the events the user performs with his browsing actions and sends them to the PRML Evaluator module. This module is responsible of evaluating and performing the personalization rules attached to the events. When a rule is triggered, to evaluate the rule conditions and perform the proper actions we have implemented a.net component using the ANTLR Parser generator From the PRML grammar we can generate the syntactic trees which help us to evaluate the rule conditions and perform them if necessary. Finally to execute the actions of the rules, we have implemented in C# the different actions types that we can find in PRML. The third layer contains the Application database and a text file containing the set of rules defining personalization policies on the Website. For further details consult [14,15]. An example of execution is explained next: in Fig. 17 the recommendations page is shown for two different users. Depending on the user interest (stored in the user model) the books to recommend vary. To properly show the recommendations to the user the implemented tool follows the next steps: the website engine gathers the request of the user for the recommendations page and triggers the user browsing event (i.e. click on recommendations) sending it to the PRML evaluator module. This module checks if there is any rule triggered, and finds the showrecommendations rule (see Section 4.3.3) which executes. This rule selects the corresponding book instances to be shown from the navigational model. These recommendations won t change until the next time the user starts a session. This decision has been taken not to overwhelm the user with constant updates. 7. Conclusions and further work Website modeling methodologies provide a conceptual and systematic approach to complex Web application design and implementation. Most of these methodologies allow developing personalized websites where the personalization specifications are tightened to the underlying technology and in some cases embedded in their design models. This can cause some problems like the difficulty of maintenance of the personalization and the inability of reusing the personalization specification among different approaches. In this paper we have presented a solution based on a high level rule language called PRML (Personalization Rules Modeling Language) which allows us to specify personalization at design time as an orthogonal concern of the website, independent of the underlying technology. PRML can be used within other approaches or websites in different ways: the reuse of the rule language within different Web methodologies is possible. To achieve this goal PRML has been defined as a method-independent language by identifying the common denominator of the most representative Web design methodologies. This is performed by abstracting the basic modeling elements which the primitives and techniques that are used for personalization act on. PRML has been developed using these abstract modeling elements that have been explained in Section 3.4. Reusability of personalization strategies among different websites is also possible. In this case, personalization strategies can be seen as patterns stored in a repository that we can reuse in different Web applications. An example of a real world case study is recommendation systems. In order that users are not overwhelmed by too much information, e-commerce is widely adopting recommendation systems. A common example in e-commerce is the Customers who bought feature. Examples of websites in which this feature is used are: amazon ( asos ( pharmacy-online ( orcashop ( etc. With the help of this feature, these systems recommend similar products to the current buyer based on the purchase histories of previous customers who bought the same product. Given the existing complexity of systems, reusability is required. PRML ameliorate this complex scenario allowing the designer specifying recommendations whatever the system is, because PRML is independent of the target platform so personalization strategies specified with PRML can be used in different systems. Regarding the previous example, using PRML we could specify the recommendation system by means of PRML acquisition and personalization rules. We would need acquisition rules in order to store the purchase history of the users. Personalization rules would specify a recommendation algorithm to calculate the probability interest of the user by taking the average of the interest of other customers in the same category or product. The specification of this strategy could be reused in several websites with shared adaptation requirements. Moreover, the personalization strategies are portable to different approaches. We are able to apply personalization strategies specified in PRML in different methods. This is possible if the different Web design methods define their models according to the requirements that have been specified in Section 3.4. These requirements define the abstract conceptual models, on which PRML can work/act. To be able to use PRML and then reuse the same personalization strategy, these approaches must have equivalent models to specify a Web application. We have identified for each different approach a subset of its models. We can guarantee that the expressiveness of this subset of models corresponds to PRML abstract models. Therefore, these subsets of the models of different approaches have equivalent expressiveness. In this paper, UWE and Hera approaches are used to show this fact. Section 3 explains how the abstract models map to the specifics of Hera and UWE, having the same expressiveness and how they fulfil the defined requirements. Section 5 presents formal transformations from PRML into UWE and Hera using the standard language QVT to formally show the portability of the PRML approach and its reusability among different methodologies. To illustrate this fact, concrete examples of PRML rules are transformed into Hera and UWE, considering that they access the set of models that are presented in Section 3. Finally, we have presented a tool that automatically performs such transformations. Considering that is impossible to cover all the aspects of personalization some boundaries were set to this work and some limitations exist: Adapting the presentation. We do not consider the personalization of the presentation in this work. Limitation considering context-aware websites. This work does not consider in detail the context based adaptation, as it is out of the scope of this work. However, the approach supports some kind of context-awareness. For this purpose the UM should be extended with context entities. Limitations of the portability of PRML. Defining transformations from PRML to other approaches (besides UWE and Hera) would strengthen the obtained results. However it should be noted that being able to transform PRML to these different approaches is enough to show our claims. As explained in Section 4.3, due to the generality of the language, some personalization actions are not possible. We have been working in splitting PRML into two conformance levels [29] (i.e. PRML Lite and PRML Full) in which the second level allows to define more complex personalization (not just the common denominator) thus reducing the reusability. The double objective of PRML is that of making possible the portability of personalization strategies among different approaches and that of allowing the definition of more complex and specific personalization

19 I. Garrigós et al. / Information and Software Technology 52 (2010) actions. For this purpose, two conformance levels are defined in this language: PRML Lite: This level comprises the basic operations supported by the most representative Web modeling methods [4,5,7,9,10]. It allows the independence from the Web modeling methodology and thus, the portability and reuse. The purpose of its definition is to be able to specify a universal personalization policy. PRML Full: The purpose of this level is to give support to specific personalization actions, though limiting portability. With the constructs defined at this level, more complex personalization strategies can be specified. PRML Lite is a subset of PRML Full; therefore the particularities defined in PRML Lite are also valid for PRML Full. Ongoing work includes the definition of transformation rules of PRML in the context of other Web design methods like OOHDM or WebML. Moreover, we have the purpose of investigating eventual extensions of PRML full actions to better cover all possible personalization strategies and scenarios. Another important issue that we would like to consider is checking the consistency of the models before transformations. Therefore, before processing conditions and operations we will check the parameters for their consistency with the navigation model structure and with the user model. As future work we also consider to study the usability of PRML in a formal way (e.g. through usability tests). Studying the impact of the Web 2.0 and AJAX on PRML is also interesting to take into account for further experiments. For this purpose we plan to extend the set of PRML events, studying these issues. Another issue to consider as future work is studying the possible extension of the user model with the needed elements in order to adapt the proposal to support other type of applications like for example mobile, GUI or voice-based applications. We would also have to study if the PRML syntax should be modified in any case. Acknowledgements This work has been partially supported by the ESPIA (TIN ) project from the Spanish Ministry of Education and Science. Appendix A. BNF specification of PRML Rule Specification <rule> ::= <features> When <event> do <body> endwhen <features> ::= Rule: <rulename> type: <type> priority: <priority> activation: <activation- Date> expiration: <expirationdate> <type> ::= ( Acquisition j Pers-Navigation j Pers-Content j Pers-Presentation ) <priority> ::= ( high j medium j low ) <body> ::= ( <foreachexp>)? ( If ( <condition> ) then )? <action> endif? endforeach? Event <event> ::= ( SessionStart j <navigation> j<loadelement> j SessionEnd ) <navigation> ::= Navigation. <activelinkname> ( <parameterexpression>) <loadelement> ::= LoadElement. <activenodename> (<parameterexpression>) <parameterexpression> ::= NM. <activenodename> *? <parametername> Condition Expressions <condition> ::=( <boolexpression>)( <booloperator> ( <boolexpression> )* <boolexpression> ::= not? <operand> <compoperator> (<value>j<operand> j<literal>) <foreachexp> ::= Foreach (<variablename>,?)+ in ( ((<PE> j<conceptname>),)+ ) do <operand> ::= <PE> (( <arithmeticoperator>) ( <PE> j <number>))? <PE> ::= ( UM.User j DM. <conceptname> j<parameter- Name>) {. <targetrole>}*. ( <attributename> j <conceptname>)? <PE> ::= NM. <nodename>. {<linkname> }*. ( <attributename> j <nodename>)? j <parametername> {. <attributename> } <compoperator> ::= < j > j = j <= j >= j <> <booloperator> ::= and j or j not <arithmeticoperator> ::= + j j * j / Action <action> ::= <setcontent> j<selectinstance> j<selectattribute> j<hidelink> <setcontent> ::= setcontent( ( <PE> j<operand>), ( <PE> j<operand> j<literal>) ) <selectinstance> ::= ( <PE> j<parametername>)?selectinstance( <variablename> ) <selectattribute> ::= ( <PE> j<parametername>). Attributes? selectattribute( <PE> ) <hidelink> ::= hidelink(nm. <linkname> ) Miscellaneous <rulename>::= <string> <activelinkname>::= <string> <activenodename>::= <string> <parametername>::= <string> <variablename>::= <string> <conceptname>::= <string> <targetrole>::= <string> <attributename>::= <string> <linkname>::= <string> <nodename>::= <string> <value>::= <number>+ j <boolean> Data Types <number>::= -? ( <integer>j <float>j<exponential>) <integer>::= <nonzero-digit> <digit>* <float>::= <integer>. <digit> <digit>* <exponential>::= <digit>. <digit> <digit>* E ( + j - ) <integer> <digit>::= 0 j <nonzero-digit> <nonzero-digit>::= 1 j 2 j 3 j 4 j 5 j 6 j 7 j 8 j 9 <boolean>::= true j false <string>::= <char> + <literal>::= (<string>j j <number>j, j % )* <char>::= a j b j c j d j e j f j g j h j i j j j k j l j m j n j o j p j q j r j s j t j u j v j w j x j y j z j A j B j C j D j E j F j G j H j I j J j K j L j M j N j O j P j Q j R j S j T j U j V j W j X j Y j Z

20 1010 I. Garrigós et al. / Information and Software Technology 52 (2010) References [1] J. Blom, Personalization: a taxonomy, in: Proceedings of CHI 00, Extended Abstracts on Human Factors in Computing Systems, ACM, 2000, pp [2] I. Cingil, A. Dogac, A. Azgin, A broader approach to personalization, Communications of the ACM 43 (2000) [3] W. Kim, Personalization: definition, status, and challenges ahead, Journal of Object Technology 1 (2002) [4] S. Casteleyn, O. De Troyer, S. Brockmans, Design time support for adaptive behaviour in websites, in: Proceedings of the 18th ACM Symposium on Applied Computing, Melbourne, USA, ACM, 2003, pp [5] S. Ceri, F. Daniel, F. Facca, Modeling Web Applications Reacting to User Behaviors, Elsevier Computer Networks Special Issue on Web Dynamics, vol. 50 (10), 2006, pp [6] J. Gómez, C. Cachero, O. Pastor, conceptual modeling of device-independent web applications, IEEE Multimedia Special Issue on WE, vol. 8, 2001, pp [7] G.J, Houben, F. Frasincar, P. Barna, R. Vdovjak, Modeling user input and hypermedia dynamics in Hera, in: International Conference on Web Engineering, Munich, Springer-Verlag, 2004, pp [8] G. Kappel, W. Retschitzegger, E. Kimmerstorfer, B. Proll, W. Schwinger, Th. Hofer, Towards a generic customization model for ubiquitous web applications, in: Proceedings of the 2nd International Workshop on Web Oriented Software Technology (IWWOST), in conjunction with the 16th European conference on Object-Oriented Programming (ECOOP), Malaga, Spain, Springer-Verlag, [9] N. Koch, Software Engineering for Adaptive Hypermedia Systems, Reference Model, Modeling Techniques and Development Process, PhD Thesis, Munich, Germany. Ludwig-Maximilian University, Munich, [10] G. Rossi, D. Schwabe, M. Guimaraes, Designing personalized web applications, in: Proceedings of the World Wide Web Conference (WWW 10), Hong Kong, ACM, New York, 2001, pp [11] J. Li, A. Gupta, J. Arvid, B. Borretzen, R. Conradi, The empirical studies on quality benefits of reusing software components, in: Computer Software and Applications Conference, Beijing, China, IEEE Computer Society, 2007, pp [12] C. McClure, Software Reuse: A Standards-Based Guide, Wiley-IEEE Computer Society Pr, New York, [13] I. Garrigós, J. Gómez, P. Barna, G.J. Houben, A reusable personalization model in web application design, in: Proceedings of the ICWE 2005 Workshop on Web Information Systems Modelling, Workshop at ICWE2005, International Conference on Web Engineering, Sydney, Australia, University of Wollongong, School of IT and Computer Science, 2005, pp [14] I. Garrigós, C. Cruz, J. Gómez, A prototype tool for the automatic generation of adaptive websites, in: Proceedings of the 2nd International Workshop on Adaptation and Evolution in Web Systems Engineering (AEWSE 07), Como, Italy, Dipartamento di Elettronica e Informazione, Politecnico di Milano, 2007, pp [15] I. Garrigós, O. Glorio, P. Hernández, A. Mate, Una Aplicación basada en Eclipse para la Personalización de Aplicaciones Web Dirigida por Modelos. XIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 09), San Sebastian, Spain, 2009, pp [16] A. Vallecillo et al., MDWEnet: a practical approach to achieving interoperability of model-driven web engineering methods, in: Proceedings of the 3rd International Workshop on Model Driven Web Engineering, Como, Italy, Dipartamento di Elettronica e Informazione, Politecnico di Milano, 2007, pp [17] L. Aroyo, P. Dolog, G.J. Houben, M. Kravcik, A. Naeve, M. Nilsson, F. Wild, Interoperability in personalized adaptive learning, Journal of Educational Technology and Society 9 (2006) [18] D. Schwabe, G. Rossi, An object oriented approach to Web-based applications design, Theory and Practice of Object Systems 4 (1998) [19] S. Casteleyn, Designer Specified Self Re-organizing Websites, Phd thesis, Vrije Universiteit Brussels, [20] F. Daniel, M. Matera, G. Pozzi, Combining conceptual modeling and active rules for the design of adaptive web applications, in: First international Workshop on Adaptation and Evolution in Web Systems Engineering (AEWSE 06), in: Workshop Proceedings of the Sixth International Conference of Web Engineering, Palo Alto, CA, USA, ACM Digital Library, [21] M. Mernik, J. Heering, A. Sloane, When and how to develop domain-specific languages, ACM Computing Surveys (CSUR) 37 (2005) [22] M. Nussbaumer, P. Freudenstein, M. Gaedke, Web application development employing domain-specific languages, in: Proceedings of the IASTED International Conference on Software Engineering, Innsbruck, Austria, IASTED/ACTA Press, 2006, pp [23] A. Van Deursen, P. Klint, J. Visser, Domain-specific languages: an annotated bibliography, ACM SIGPLAN Notices 35 (2000) [24] N. Koch, M. Wirsing, The Munich reference model for adaptive hypermedia applications, in: Second International Conference on Adaptive Hypermedia and Adaptive Web-based Systems, Málaga, Spain, May, Springer-Verlag, 2002, pp [25] R. Vdovjak, F. Frasincar, G.J. Houben, P. Barna, Engineering semantic web information systems in Hera, Journal of Web Engineering (JWE) 2 (2003) [26] UML 2.0 OCL specification [27] D. Brickley, R. Guha, RDF Vocabulary Description Language 1.0: RDF Schema. W3C Recommendation 10 February [28] OpenRDF, The SeRQL query language (2006), rev < [29] I. Garrigós, A-OOH: Extending Web Application Design with Dynamic Personalization, Phd thesis, University of Alicante, [30] OMG: Meta Object Facility (MOF) (2002) v1.4, OMG doc.formal/ [31] OMG: Query/View/Transformation (2006). doc?ptc/ [32] S. Meliá, J. Gomez, UPT: a graphical transformation language based on a UML profile, in: Proceedings of European Workshop on Milestones, Models and Mappings for Model-Driven Architecture (3M4MDA 2006), Workshop at 2nd European Conference on Model Driven Architecture (EC-MDA 2006), Bilbao, Spain, CTIT Workshop Proceedings, 2006.

Modeling User Behaviour Aware WebSites with PRML

Modeling User Behaviour Aware WebSites with PRML WISM'06 1087 Modeling User Behaviour Aware WebSites with PRML Irene Garrigós and Jaime Gómez Universidad de Alicante, IWAD, Campus de San Vicente del Raspeig, Apartado 99 03080 Alicante, Spain {igarrigos,

More information

A Generic Transcoding Tool for Making Web Applications Adaptive

A Generic Transcoding Tool for Making Web Applications Adaptive A Generic Transcoding Tool for Making Applications Adaptive Zoltán Fiala 1, Geert-Jan Houben 2 1 Technische Universität Dresden Mommsenstr. 13, D-01062, Dresden, Germany zoltan.fiala@inf.tu-dresden.de

More information

MDA Transformations Applied to Web Application Development 1

MDA Transformations Applied to Web Application Development 1 MDA Transformations Applied to Web Application Development 1 Santiago Meliá 1, Andreas Kraus 2, and Nora Koch 2, 3 1 Universidad de Alicante, Spain 2 Ludwig-Maximilians-Universität München, Germany 3 F.A.S.T

More information

Modeling the User Interface of Web Applications with UML

Modeling the User Interface of Web Applications with UML Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de

More information

AN ONTOLOGICAL APPROACH TO WEB APPLICATION DESIGN USING W2000 METHODOLOGY

AN ONTOLOGICAL APPROACH TO WEB APPLICATION DESIGN USING W2000 METHODOLOGY STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume L, Number 2, 2005 AN ONTOLOGICAL APPROACH TO WEB APPLICATION DESIGN USING W2000 METHODOLOGY ANNA LISA GUIDO, ROBERTO PAIANO, AND ANDREA PANDURINO Abstract.

More information

An MDA Approach for the Development of Web applications

An MDA Approach for the Development of Web applications An MDA Approach for the Development of Web applications Santiago Meliá Beigbeder and Cristina Cachero Castro {santi,ccachero}@dlsi.ua.es Univesidad de Alicante, España Abstract. The continuous advances

More information

technische universiteit eindhoven WIS & Engineering Geert-Jan Houben

technische universiteit eindhoven WIS & Engineering Geert-Jan Houben WIS & Engineering Geert-Jan Houben Contents Web Information System (WIS) Evolution in Web data WIS Engineering Languages for Web data XML (context only!) RDF XML Querying: XQuery (context only!) RDFS SPARQL

More information

UML-based Conceptual Design Approach for Modeling Complex Processes in Web Application

UML-based Conceptual Design Approach for Modeling Complex Processes in Web Application UML-based Conceptual Design Approach for Modeling Complex Processes in Web Application Siti Azreena Mubin Faculty of Computer Science and Information Technology, Universiti Putra Malaysia, 43400 Serdang,

More information

Towards a Common Metamodel for the Development of Web Applications

Towards a Common Metamodel for the Development of Web Applications Towards a Common Metamodel for the Development of Web Applications Nora Koch and Andreas Kraus Ludwig-Maximilians-Universität Munich, Germany Motivation Overwhelming diversity of Web methodologies Goal:

More information

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Ahmet Demir Technische Universität München Department of Informatics Munich, Germany AhmetDemir@gmx.de

More information

Tool Support for Model Checking of Web application designs *

Tool Support for Model Checking of Web application designs * Tool Support for Model Checking of Web application designs * Marco Brambilla 1, Jordi Cabot 2 and Nathalie Moreno 3 1 Dipartimento di Elettronica e Informazione, Politecnico di Milano Piazza L. Da Vinci,

More information

Considering Additional Adaptation Concerns in the Design of Web Applications

Considering Additional Adaptation Concerns in the Design of Web Applications Considering Additional Adaptation Concerns in the Design of Web Applications Sven Casteleyn 1, Zoltán Fiala 2, Geert-Jan Houben 1,3, and Kees van der Sluijs 3 1 Vrije Universiteit Brussel, Pleinlaan 2,

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

THE HERA SOFTWARE ARCHITECTURE FOR GENERATING HYPERMEDIA APPLICATIONS FOR AD-HOC DATABASE OUTPUT

THE HERA SOFTWARE ARCHITECTURE FOR GENERATING HYPERMEDIA APPLICATIONS FOR AD-HOC DATABASE OUTPUT THE HERA SOFTWARE ARCHITECTURE FOR GENERATING HYPERMEDIA APPLICATIONS FOR AD-HOC DATABASE OUTPUT Geert-Jan Houben* and Pim Lemmens Eindhoven University of Technology Department of Computing Science PO

More information

Chapter 7. UML-BASED WEB ENGINEERING An Approach Based on Standards 7.1 OVERVIEW

Chapter 7. UML-BASED WEB ENGINEERING An Approach Based on Standards 7.1 OVERVIEW Chapter 7 UML-BASED WEB ENGINEERING An Approach Based on Standards Nora Koch, 1, 2 Alexander Knapp, 1 Gefei Zhang, 1 Hubert Baumeister 3 1 Institut für Informatik, Ludwig-Maximilians-Universität München,

More information

Semantical Descriptions of Models for Web Design

Semantical Descriptions of Models for Web Design Semantical Descriptions of Models for Web Design Peter Barna, Geert-Jan Houben, Flavius Frasincar, and Richard Vdovjak Technische Universiteit Eindhoven PO Box 513, NL-5600 MB Eindhoven, The Netherlands

More information

AN ANALYSIS OF MODEL-DRIVEN WEB ENGINEERING METHODOLOGIES. Received November 2011; revised March 2012

AN ANALYSIS OF MODEL-DRIVEN WEB ENGINEERING METHODOLOGIES. Received November 2011; revised March 2012 International Journal of Innovative Computing, Information and Control ICIC International c 2013 ISSN 1349-4198 Volume 9, Number 1, January 2013 pp. 413 436 AN ANALYSIS OF MODEL-DRIVEN WEB ENGINEERING

More information

Rapid Development of Modular Dynamic Web Sites using UML

Rapid Development of Modular Dynamic Web Sites using UML Rapid Development of Modular Dynamic Web Sites using UML Tim Schattkowsky 1, Marc Lohmann 2 1 Paderborn University, C-LAB, D-33102 Paderborn, Germany tim@c-lab.de 2 Paderborn University, Department of

More information

The Expressive Power of UML-based Web Engineering 1

The Expressive Power of UML-based Web Engineering 1 The Expressive Power of UML-based Web Engineering 1 NORA KOCH AND ANDREAS KRAUS Ludwig-Maximilians-Universität München. Germany UML-based Web Engineering (UWE) is a development process for Web applications

More information

Challenges and Benefits of the Semantic Web for User Modelling

Challenges and Benefits of the Semantic Web for User Modelling Challenges and Benefits of the Semantic Web for User Modelling Abstract Peter Dolog and Wolfgang Nejdl Learning Lab Lower Saxony University of Hannover Expo Plaza 1, 30539 Hannover, Germany dolog@learninglab.de,

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation Technical Brief April 2011 The National Consortium for Justice Information and Statistics Model-driven Development of NIEM Information Exchange Package Documentation By Andrew Owen and Scott Came Since

More information

A Brief Analysis of Web Design Patterns

A Brief Analysis of Web Design Patterns A Brief Analysis of Web Design Patterns Ginny Sharma M.Tech Student, Dept. of CSE, MRIU Faridabad, Haryana, India Abstract Design patterns document good design solutions to a recurring problem in a particular

More information

DESIGNING AND MINING WEB APPLICATIONS: A CONCEPTUAL MODELING APPROACH

DESIGNING AND MINING WEB APPLICATIONS: A CONCEPTUAL MODELING APPROACH DESIGNING AND MINING WEB APPLICATIONS: A CONCEPTUAL MODELING APPROACH Rosa Meo Dipartimento di Informatica, Università di Torino Corso Svizzera, 185-10149 - Torino - Italy E-mail: meo@di.unito.it Tel.:

More information

Towards Web Design Frameworks (Wdfs)

Towards Web Design Frameworks (Wdfs) 14 Towards Web Design Frameworks (Wdfs) Rehema Baguma, Faculty of Computing and IT, Makerere University. rbaguma@cit.mak.ac.ug; Ogao Patrick, Department of Information Systems, Faculty of Computing and

More information

Winery A Modeling Tool for TOSCA-based Cloud Applications

Winery A Modeling Tool for TOSCA-based Cloud Applications Institute of Architecture of Application Systems Winery A Modeling Tool for TOSCA-based Cloud Applications Oliver Kopp 1,2, Tobias Binz 2, Uwe Breitenbücher 2, and Frank Leymann 2 1 IPVS, 2 IAAS, University

More information

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT Cléver Ricardo Guareis de Farias, Marten van Sinderen and Luís Ferreira Pires Centre for Telematics and Information Technology (CTIT) PO Box

More information

A Methodology for the Development of New Telecommunications Services

A Methodology for the Development of New Telecommunications Services A Methodology for the Development of New Telecommunications Services DIONISIS X. ADAMOPOULOS Centre for Communication Systems Research School of Elec. Eng., IT and Mathematics University of Surrey Guildford

More information

Managing Software Evolution through Reuse Contracts

Managing Software Evolution through Reuse Contracts VRIJE UNIVERSITEIT BRUSSEL Vrije Universiteit Brussel Faculteit Wetenschappen SCI EN T I A V INCERE T ENE BRA S Managing Software Evolution through Reuse Contracts Carine Lucas, Patrick Steyaert, Kim Mens

More information

Training Management System for Aircraft Engineering: indexing and retrieval of Corporate Learning Object

Training Management System for Aircraft Engineering: indexing and retrieval of Corporate Learning Object Training Management System for Aircraft Engineering: indexing and retrieval of Corporate Learning Object Anne Monceaux 1, Joanna Guss 1 1 EADS-CCR, Centreda 1, 4 Avenue Didier Daurat 31700 Blagnac France

More information

Chapter 7 Application Protocol Reference Architecture

Chapter 7 Application Protocol Reference Architecture Application Protocol Reference Architecture Chapter 7 Application Protocol Reference Architecture This chapter proposes an alternative reference architecture for application protocols. The proposed reference

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

3 The Development Process

3 The Development Process 3 The Development Process The Web technologies discussed in the previous chapter enable the development of Web applications ranging from small, ad hoc solutions to complex Web information systems. Before

More information

Mapping between Levels in the Metamodel Architecture

Mapping between Levels in the Metamodel Architecture Mapping between Levels in the Metamodel Architecture José Álvarez, Andy Evans 2, Paul Sammut 2 Dpto. de Lenguajes y Ciencias de la Computación, University Málaga, Málaga, 2907, Spain alvarezp@lcc.uma.es

More information

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0 NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5

More information

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book. * ** Today s organization increasingly prompted to integrate their business processes and to automate the largest portion possible of them. A common term used to reflect the automation of these processes

More information

A Variability Viewpoint for Enterprise Software Systems

A Variability Viewpoint for Enterprise Software Systems 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,

More information

New UML 2.0 based models to design WAP applications

New UML 2.0 based models to design WAP applications New UML 2.0 based models to design WAP applications Ricardo Soto De Giorgis School of Informatic Engineering, Pontifical Catholic University of Valparaíso, Chile 56 32 273762 ricardo.soto@ucv.cl Nibaldo

More information

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Model Driven Interoperability through Semantic Annotations using SoaML and ODM Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:

More information

Using MDA in Web Software Architectures

Using MDA in Web Software Architectures Using MDA in Web Software Architectures SANTIAGO MELIA, CRISTINA CACHERO AND JAIME GOMEZ 1 Universidad de Alicante, Spain The new challenges posed by the Internet market have increased the need for Web

More information

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development * for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston hiroshi_wada@otij.org and jxs@cs.umb.edu Abstract. This

More information

Lightweight Data Integration using the WebComposition Data Grid Service

Lightweight Data Integration using the WebComposition Data Grid Service Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed

More information

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations Steen Brahe 1 and Behzad Bordbar 2 1 Danske Bank and IT University

More information

A Framework of Model-Driven Web Application Testing

A Framework of Model-Driven Web Application Testing A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China

More information

Characterizing Navigation Maps for Web Applications with the NMM Approach

Characterizing Navigation Maps for Web Applications with the NMM Approach Characterizing Navigation Maps for Web Applications with the NMM Approach A. Navarro, A. Fernández-Valmayor, B. Fernández-Manjón, J.L. Sierra Dpto. de Ingeniería del Software e Inteligencia Artificial,

More information

Design of UML models and their simulation using ARENA

Design of UML models and their simulation using ARENA Design of UML models and their simulation using ARENA ARTIS TEILANS and ARNIS KLEINS Exigen Services DATI 17a Ganibu Dambis, LV-1045, Riga LATVIA artis.teilans@exigenservices.com arnis.kleins@exigenservices.com

More information

Extending UML for the migration of Legacy Systems to the Web

Extending UML for the migration of Legacy Systems to the Web Lecture Notes in Computer Science 1 Extending UML for the migration of Legacy Systems to the Web Cristina Cachero, Jaime Gómez and Antonio Párraga Departament of Languages and Information Systems University

More information

Chapter 5. Regression Testing of Web-Components

Chapter 5. Regression Testing of Web-Components Chapter 5 Regression Testing of Web-Components With emergence of services and information over the internet and intranet, Web sites have become complex. Web components and their underlying parts are evolving

More information

An approach for the systematic development of domain-specific languages

An approach for the systematic development of domain-specific languages SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2009; 39:1253 1292 Published online 28 August 2009 in Wiley InterScience (www.interscience.wiley.com)..936 An approach for the systematic development

More information

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

ProGUM-Web: Tool Support for Model-Based Development of Web Applications ProGUM-Web: Tool Support for Model-Based Development of Web Applications Marc Lohmann 1, Stefan Sauer 1, and Tim Schattkowsky 2 1 University of Paderborn, Computer Science, D 33095 Paderborn, Germany {mlohmann,sauer}@upb.de

More information

An Approach for the Systematic Development of Domain-Specific Languages

An Approach for the Systematic Development of Domain-Specific Languages An Approach for the Systematic Development of Domain-Specific Languages Mark Strembeck 1, Uwe Zdun 2 1 Institute of Information Systems, New Media Lab Vienna University of Economics and BA, Austria mark.strembeck@wu-wien.ac.at

More information

Software Requirements Specification of A University Class Scheduler

Software Requirements Specification of A University Class Scheduler Software Requirements Specification of A University Class Scheduler Deanna M. Needell Jeff A. Stuart Tamara C. Thiel Sergiu M. Dascalu Frederick C. Harris, Jr. Department of Computer Science University

More information

Demonstrating WSMX: Least Cost Supply Management

Demonstrating WSMX: Least Cost Supply Management Demonstrating WSMX: Least Cost Supply Management Eyal Oren 2, Alexander Wahler 1, Bernhard Schreder 1, Aleksandar Balaban 1, Michal Zaremba 2, and Maciej Zaremba 2 1 NIWA Web Solutions, Vienna, Austria

More information

Web services to allow access for all in dotlrn

Web services to allow access for all in dotlrn Web services to allow access for all in dotlrn German Moreno 1, Olga C. Santos 2, Jesus G. Boticario 2, Ramon Fabregat 1 1 Institute of Informatics and Aplications (IIiA), Universidad de Girona, Spain,

More information

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications WebRatio 5: An Eclipse-based CASE tool for engineering Web applications Roberto Acerbis 1, Aldo Bongio 1, Marco Brambilla 2, Stefano Butti 1 1 WebModels S.r.l. Piazzale Gerbetto, 6. I22100 Como, Italy

More information

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1 The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions

More information

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University Data Analysis 1 SET08104 Database Systems Copyright @ Napier University Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship?

More information

An executable metamodelling facility for domain specific language design.

An executable metamodelling facility for domain specific language design. An executable metamodelling facility for domain specific language design. CLARK, Tony, EVANS, Andy, SAMMUT, Paul and WILLANS, James Available from Sheffield Hallam University Research Archive (SHURA) at:

More information

Building a Flexible Software Factory Using Partial Domain Specific Models

Building a Flexible Software Factory Using Partial Domain Specific Models Building a Flexible Software Factory Using Partial Domain Specific Models Jos Warmer 1, Anneke Kleppe 2 3 1 Ordina SI&D, The Netherlands Jos.Warmer@ordina.nl 2 University Twente, Netherlands a.kleppe@utwente.nl

More information

An Ontology-based e-learning System for Network Security

An Ontology-based e-learning System for Network Security An Ontology-based e-learning System for Network Security Yoshihito Takahashi, Tomomi Abiko, Eriko Negishi Sendai National College of Technology a0432@ccedu.sendai-ct.ac.jp Goichi Itabashi Graduate School

More information

A process-driven methodological approach for the design of telecommunications management systems

A process-driven methodological approach for the design of telecommunications management systems A process-driven methodological approach for the design of telecommunications management systems Thierry FRAIZE, Julio VILLENA, Jean-Daniel GUEDJ TELECOM ARGENTINA Av Dorrego 2520 (1425) Buenos Aires Argentina

More information

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster jku@zurich.ibm.com Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

Model-Driven Development: A Metamodeling Foundation

Model-Driven Development: A Metamodeling Foundation Model-Driven Development: A Metamodeling Foundation Colin Atkinson University of Mannheim 68161 Mannheim, Germany atkinson@informatik.uni-mannheim.de Thomas Kühne Darmstadt University of Technology 64283

More information

What is BPM? Software tools enabling BPM

What is BPM? Software tools enabling BPM What is BPM? BPM, or Business Process Management, is a technology, but it is also more than that. Broadly speaking, one can consider BPM as a management discipline in which processes are valued as assets

More information

Engineering Web Applications for Reuse

Engineering Web Applications for Reuse Engineering Web Applications for Reuse Daniel Schwabe *, Gustavo Rossi **, Luiselena Esmeraldo *, Fernando Lyardet** *Departamento de Informática, PUC-Rio, Brazil E-mail: {schwabe, luiselena} @inf.puc-rio.br

More information

Unit 2.1. Data Analysis 1 - V2.0 1. Data Analysis 1. Dr Gordon Russell, Copyright @ Napier University

Unit 2.1. Data Analysis 1 - V2.0 1. Data Analysis 1. Dr Gordon Russell, Copyright @ Napier University Data Analysis 1 Unit 2.1 Data Analysis 1 - V2.0 1 Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes,

More information

Integrating adaptive functionality in a LMS

Integrating adaptive functionality in a LMS Integrating adaptive functionality in a LMS Kees van der Sluijs 1 and Kai Michael Höver 2 1 Technische Universiteit Eindhoven, Eindhoven, The Netherlands 2 IMC Information Multimedia Communication AG,

More information

Task-Model Driven Design of Adaptable Educational Hypermedia

Task-Model Driven Design of Adaptable Educational Hypermedia Task-Model Driven Design of Adaptable Educational Hypermedia Huberta Kritzenberger, Michael Herczeg Institute for Multimedia and Interactive Systems University of Luebeck Seelandstr. 1a, D-23569 Luebeck,

More information

Process Modeling using BPMN 2.0

Process Modeling using BPMN 2.0 Process Modeling using BPMN 2.0 This chapter provides a brief overview of Business Process Modeling Notation (BPMN) concepts with particular emphasis on the BPMN 2.0 additions. In addition, it describes

More information

flashweb: Graphical Modeling of Web Applications for Data Management

flashweb: Graphical Modeling of Web Applications for Data Management flashweb: Graphical Modeling of Web Applications for Data Management Mihály Jakob Oliver Schiller Holger Schwarz Fabian Kaiser Institute of Parallel and Distributed Systems Universität Stuttgart Universitätsstr.

More information

Chapter 12 AN OVERVIEW OF MODEL-DRIVEN WEB ENGINEERING AND THE MDA 1. INTRODUCTION

Chapter 12 AN OVERVIEW OF MODEL-DRIVEN WEB ENGINEERING AND THE MDA 1. INTRODUCTION Chapter 12 AN OVERVIEW OF MODEL-DRIVEN WEB ENGINEERING AND THE MDA Nathalie Moreno 1, José Raúl Romero 2, and Antonio Vallecillo 1 1 Dept. Lenguajes y Ciencias de la Computación, University of Málaga,

More information

Introduction to Service Oriented Architectures (SOA)

Introduction to Service Oriented Architectures (SOA) Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction

More information

Language-Driven, Technology-Enhanced Instructional Systems Design

Language-Driven, Technology-Enhanced Instructional Systems Design Language-Driven, Technology-Enhanced Instructional s Design Iván Martínez-Ortiz, José-Luis Sierra, Baltasar Fernández-Manjón Fac. Informática. Universidad Complutense de Madrid C/ Prof. José García Santesmases

More information

WEB APPLICATION DEVELOPMENT EMPLOYING DOMAIN-SPECIFIC LANGUAGES

WEB APPLICATION DEVELOPMENT EMPLOYING DOMAIN-SPECIFIC LANGUAGES WEB APPLICATION DEVELOPMENT EMPLOYING DOMAIN-SPECIFIC LANGUAGES Martin Nussbaumer, Patrick Freudenstein, Martin Gaedke University of Karlsruhe, Institute of Telematics, IT-Management and Web Engineering

More information

Aplicando enfoque MDE a aplicaciones WEB-SOA

Aplicando enfoque MDE a aplicaciones WEB-SOA Aplicando enfoque MDE a aplicaciones WEB-SOA María Consuelo Franky lfranky@javeriana.edu.co Dpto. Ingeniería de Sistemas Universidad Javeriana Bogotá - 2010 http://sophia.javeriana.edu.co/~lfranky/ 1 Temario

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

MDE Adoption in Industry: Challenges and Success Criteria

MDE Adoption in Industry: Challenges and Success Criteria MDE Adoption in Industry: Challenges and Success Criteria Parastoo Mohagheghi 1, Miguel A. Fernandez 2, Juan A. Martell 2, Mathias Fritzsche 3 and Wasif Gilani 3 1 SINTEF, P.O.Box 124-Blindern, N-0314

More information

An Approach for Designing Ubiquitous Web Applications: A Case Study

An Approach for Designing Ubiquitous Web Applications: A Case Study An Approach for Designing Ubiquitous Web Applications: A Case Study Vito Perrone, Paolo Paolini perrone paolini@elet.polimi.it HOC (Hypermedia Open Center) Politecnico di Milano Via Ponzio 34/5-20133 Milano

More information

Towards a Common Metamodel for the Development of Web Applications 1

Towards a Common Metamodel for the Development of Web Applications 1 Towards a Common Metamodel for the Development of Web Applications 1 Nora Koch and Andreas Kraus Ludwig-Maximilians-Universität München, Oettingenstr. 67, 80538 München, Germany www.pst.informatik.uni-muenchen.de

More information

XML-Based Software Development

XML-Based Software Development 1 XML-Based Software Development Baltasar Fernández-Manjón, Alfredo Fernández-Valmayor, Antonio Navarro, José Luis Sierra Grupo de Investigación en Ingeniería del Software e Inteligencia Artificial. Departamento

More information

1. Visual Paradigm for UML

1. Visual Paradigm for UML Summary 1. Visual Paradigm for UML... 1 2. Creating the GeoProfile... 2 3. Applying Icons to Stereotypes... 11 4. Applying the GeoProfile... 12 1. Visual Paradigm for UML Visual Paradigm for UML (Visual

More information

Journal of Information Technology Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION ABSTRACT

Journal of Information Technology Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION ABSTRACT Journal of Information Technology Management ISSN #1042-1319 A Publication of the Association of Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION MAJED ABUSAFIYA NEW MEXICO TECH

More information

Architectural Design

Architectural Design Software Engineering Architectural Design 1 Software architecture The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural

More information

Increasing Development Knowledge with EPFC

Increasing Development Knowledge with EPFC The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,

More information

Software Development Kit

Software Development Kit Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice

More information

Unification of AOP and FOP in Model Driven Development

Unification of AOP and FOP in Model Driven Development Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

Designing Rich Internet Applications Combining UWE and RUX-Method

Designing Rich Internet Applications Combining UWE and RUX-Method Designing Rich Internet Applications Combining UWE and RUX-Method Juan Carlos Preciado, Marino Linaje, Rober Morales-Chaparro, Fernando Sanchez-Figueroa Quercus SEG. Universidad de Extremadura {jcpreciado,

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

Generating Edit Operations for Profiled UML Models

Generating Edit Operations for Profiled UML Models Generating Edit Operations for Profiled UML Models Timo Kehrer, Michaela Rindt, Pit Pietsch, Udo Kelter Software Engineering Group University of Siegen {kehrer,mrindt,pietsch,kelter}@informatik.uni-siegen.de

More information

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer

More information

Meta-Model specification V2 D602.012

Meta-Model specification V2 D602.012 PROPRIETARY RIGHTS STATEMENT THIS DOCUMENT CONTAINS INFORMATION, WHICH IS PROPRIETARY TO THE CRYSTAL CONSORTIUM. NEITHER THIS DOCUMENT NOR THE INFORMATION CONTAINED HEREIN SHALL BE USED, DUPLICATED OR

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

A terminology model approach for defining and managing statistical metadata

A terminology model approach for defining and managing statistical metadata A terminology model approach for defining and managing statistical metadata Comments to : R. Karge (49) 30-6576 2791 mail reinhard.karge@run-software.com Content 1 Introduction... 4 2 Knowledge presentation...

More information

Revel8or: Model Driven Capacity Planning Tool Suite

Revel8or: Model Driven Capacity Planning Tool Suite Revel8or: Model Driven Capacity Planning Tool Suite Liming Zhu 1,2, Yan Liu 1,2, Ngoc Bao Bui 1,2,Ian Gorton 3 1 Empirical Software Engineering Program, National ICT Australia Ltd. 2 School of Computer

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

A Framework for Exploiting Conceptual Modeling in the Evaluation of Web Application Quality

A Framework for Exploiting Conceptual Modeling in the Evaluation of Web Application Quality A Framework for Exploiting Conceptual Modeling in the Evaluation of Web Application Quality Pier Luca Lanzi, Maristella Matera, Andrea Maurino Dipartimento di Elettronica e Informazione, Politecnico di

More information

10g versions followed on separate paths due to different approaches, but mainly due to differences in technology that were known to be huge.

10g versions followed on separate paths due to different approaches, but mainly due to differences in technology that were known to be huge. Oracle BPM 11g Platform Analysis May 2010 I was privileged to be invited to participate in "EMEA BPM 11g beta bootcamp" in April 2010, where I had close contact with the latest release of Oracle BPM 11g.

More information