<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards A Semi-Automated Model-Driven Method for the Generation of Web-based Applications from Use Cases</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ali Fatolahi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>St´ephane S. Som´e</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Timothy C. Lethbridge</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Information Technology and Engineering, University of Ottawa</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents a semi-automated method for the generation of web-based applications from high-level requirements expressed as use cases in accordance with model-driven architecture (MDA). MDA is a relatively new paradigm, which aims at providing a standard baseline for model-driven development. The ultimate goal of MDA is to (semi)automate the process of software development from requirements to code using an interoperable set of standards. Being very popular, use case modeling is a perfect choice for capturing requirements at the beginning of an MDA-based process. We consider the use case model as a baseline to generate other models including a state machine and a user interface model, which are eventually transformed into a platform-specific model used for code generation.</p>
      </abstract>
      <kwd-group>
        <kwd>MDA</kwd>
        <kwd>Use Case</kwd>
        <kwd>PIM</kwd>
        <kwd>PSM</kwd>
        <kwd>Web Application</kwd>
        <kwd>Transformation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        MDA [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is the OMG’s [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] solution to increase model reusability and design-time
interoperability. A very important feature of MDA is a facility to transform
models. Not only is it easier to build automatic model mappings in the MDA
context, but MDA could also be beneficial when the model transformation is done
manually. MDA provides a collection of popular standards beneath a common
philosophy to alleviate the process of quality software design and
implementation. There has been a growing interest in MDA within the software community
in the recent years [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        The MDA process starts with capturing requirements at a
computationindependent layer [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In our approach, use case descriptions are used for
requirements capture. Use cases are a popular technique for systems analysis and
design that are mainly expressed using informal or semi-formal textual
descriptions.
      </p>
      <p>
        However, since writing textual descriptions is not as formal a task as drawing
UML [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] models and writing programming code, different guidelines have been
proposed to ease the process of writing use case descriptions and benefiting
from these documents (e.g. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). The fact that several approaches have
examined semi-automatic use-case based tools/techniques (e.g. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ])
evidences that use cases as a technique for analysis would be more useful, if we
find some ways to connect them to lower-level design models or even to code.
      </p>
      <p>
        In this paper, we extend our previous work [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] to present a method for the
semi-automated generation of design models related to web-based applications
from requirements. Requirements are expressed as use case descriptions along
with a domain model supporting the use cases. The whole model is used to
produce a state machine. A default user interface model created based on the
state machine is refined by the developer to form the desired user interface of
the application. Based on these models, the method generates a platform-specific
model, which is used to generate the code. The developer is our preferred name
for the user of our method.
      </p>
      <p>
        In order to assess the feasibility of the approach we have implemented the
method using UCEd [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and AndroMDA [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. UCEd is used for use case
modeling and AndroMDA for code generation. In addition, we have developed an
application to generate the platform-specific model that bridges the output of
UCEd to the input of AndroMDA. However, the method and supporting tools
and techniques are supposed to be extensible to higher-level requirements and
adaptable with other tools. Because of our previous experience and familiarity
with UCEd and AndroMDA as elaborated in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], we preferred to use
those tools for the current stage so that we could focus on the core ideas rather
than learning new tools.
      </p>
      <p>The rest of this paper is organized as follows. In Section 2, technical
background of this research are explained. Section 3 carries the elaboration of our
method and the applied tools and techniques along with a case study. Section 4
addresses related research and practice in past and how they are related to this
research. In Section 5, we, briefly provide a conclusion, discuss some research
issues and present our plan for future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        MDA is an effort by OMG, in order to standardize model driven software
development [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. It could be seen as a framework, composed of four different layers of
modeling. The most top layer is the layer of Computation-Independent Models
(CIM). This layer represents models, which are valid in spite of the
computational options. Then we have the layer of Platform-Independent Models (PIM).
PIM acts as a standpoint of systems/software design and architecture. However,
it does not contain any information about specific platforms. The third layer,
Platform-Specific Models (PSM) deals with the technological details of
platforms. Here, logical design models are expressed in terms of certain platforms.
      </p>
      <p>
        In our research, we also use the method presented by Som´e in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which is
done with the help of the UCEd. This method elaborates the necessities to
support use-case based requirements engineering. This support is given throughout
domain objects, operation (pre and post)conditions and semi-natural language
use case steps; for each of which, UCEd provides some automatic and/or
semiautomatic means. The output is a state machine that belongs to the category of
platform-independent models, since it sketches an overview of how the system
works without any design-related details.
      </p>
      <p>
        In order to work with UCEd, one needs to first enter use case descriptions.
Having this description validated, she could go through a wizard in which UCEd
provides her with a series of different choices for domain objects. The result
is a validated domain model. This domain may be optionally supplied with
operations’ conditions that are used to build some form of operation contracts
[
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. State machine could be generated thereafter.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>The Method</title>
      <p>The solution we provide in here is a method, which is both model driven and
requirements based. The input is provided through use cases and the output is
the executable code generated in accordance with MDA. Different steps of the
method are either automatic or semi-automatic. The whole process is actually a
collection of mappings in accordance with XMI format necessities, MOF-based
metamodels and MDA transformation rules.</p>
      <p>Figure 1 is a decomposition of the method into three main steps. In Figure 1,
steps A2 and A4 could be understood as the UCEd and AndroMDA processes.
Step A3 is the core of our method, which is described using more details in
Figure 2.</p>
      <p>As Figure 2 shows, the main task of this process is to transform a PIM to
a PSM. This process includes three main steps. At first, a default UI model is
created according to the state machine found in the PIM. The developer is then
asked to refine this model to build her desired UI model. Finally the UI model,
along with other parts of the PIM, is used to generate a PSM. The manual
work happens in the first and last step, where the developer has to interact with
the tools to generate the state machines as well as to refine the design-specific
models required for code generation. The middle step is the main contribution
of this paper.</p>
      <p>
        Having the whole method depicted, we are now able to go through the
details of the method, mappings and the techniques used to steer the
process. This is done using a working example, named Election Management
System(EleManSys) taken from [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] throughout this paper. The EleManSys is a
system used for managing elections and their related polls. The EleManSys is
composed of several use cases required for performing operations by election
officers, candidates, voters and journalists who may use the reports for analysis
purposes.
3.1
      </p>
      <sec id="sec-3-1">
        <title>First Step: CIM to PIM</title>
        <p>Use case descriptions and default domain objects are considered as the CIM in
our method. The objective of this step is to transform the CIM to the PIM.
The PIM includes the state machine, the user interface model and the refined
domain model. By refined domain model, we mean a domain model that is
enriched with the operations of objects, operation conditions and fundamental
attributes of objects.</p>
        <p>The CIM could be already generated by another tool or alternatively built up
from scratch using UCEd. The generated UCEd model is actually an XML file
containing the use case model and domain objects. However, the state machine
model should be manually transferred into a text file for further use. Because
of the implementation limitations, the user interface model generation, which is
theoretically a part of this step, is done in the next step.</p>
        <p>Table 1 lists a few use cases included in the CIM of EleManSys. This CIM is
transformed to the PIM afterward. Figure 3, shows a part of the PIM, which is
a state machine that models the flow of the Open Poll use case. Since this use
case includes two other use cases, the state machine covers the included use case
as well.</p>
        <p>Name
Open Poll
Add Poll
View Poll Results
Vote</p>
        <p>EleManSys has several other use cases that are not covered in this paper.
These use cases include:
– A use case for the reporters to keep track of incumbents for a seat, so that
they can report the incumbent’s possible loss or win.
– A use case to define eligible voters. Every voter can only vote in certain polls
for specific seats.
– A use case to close a poll, which includes the View Poll Results use case.
– Other administration use cases to create, delete or update the information
regarding Elections, Polls, Seats, Candidates and Voters
The state machine leads to the information regarding the domain objects and
their operations, the flow of events and the conditions that apply to every phase.
In order to generate the state machine using UCEd, one can take one of the two
following approaches: One is simply the basic state machine generated from the
use case flow. The more formal way; however, is to generate the state machine
based in the operation conditions. UCEd performs this type of state-machine
generation in the following way:
– During the domain extraction wizard, domain operations are extracted and
assigned to domain entities.
– The developer defines operation conditions so that different operations’
conditions match their preceding and following operations.
– The state machine is generated starting from the first use case step following
each operation’s condition that matches the previous one or by the usual use
case flow of events.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Second Step: PIM to PSM</title>
        <p>
          A PIM-to-PSM is a mapping from a platform-independent model of domain
objects, state machines and user interface models to a platform-specific model. The
true mapping should be done according to a selected profile. However, due to
implementation constraints, we have to pick up some profiles already created
to be used with a specific code generation framework, AndroMDA. The chosen
profile contains various definitions about Java as the programming language,
AndroMDA as code generation framework, ArgoUML as the modeling tool, Struts
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] as the user interface framework and MySQL [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] as the database server.
        </p>
        <p>
          The resultant application follows an MVC-based architecture with data
access mechanisms - so called services - at the lowest level. The flow of data between
different layers is facilitated using value objects. The behavior is controlled using
controller classes and operations. Related definitions are as follows:
– A State Machine Context is a controller class that is responsible for handling
and forwarding the operations regarding events occurring within the state
machine.
– A controller class is the class responsible for controlling general activities
within a use case. Controller can act as an entry point to dispatch messages
and operation requests to the right target. This is in accordance with a design
pattern with the same name. For more information regarding the controller
pattern, see [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
– An action event is an event to be called when submitting a form from within
a web page. Action events usually include parameters which are the input
fields on the forms.
– A deferrable event is an event calling a controller operation. Deferrable events
are used to assign states with operations.
– A page parameter is any output that is either shown or used for other output
fields on the web page.
– A value object is an object to carry the required information between domain
objects and the presentation or data access layer.
– FrontEndView is a state stereotype implying that the stereotyped state
represents a web page.
– A signal event is the event that is usually carried by a transition incoming
to a front-end state, carrying the output fields to be shown.
– A call event is an event located on a transition outgoing from a front-end
state, carrying the input fields to be submitted along with the controller
operation to be called for performing the required action. For more information,
one may refer to [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ].
        </p>
        <p>The approach is not fully automatic; we need to interact with the developer
to obtain the appropriate value of required user parameters. In order to do this,
we first create a default UI model according to the provided PIM state machine.
This default UI model will be the base model to generate the PSM thereafter.</p>
        <p>
          The method is adjusted to work with the OpenDocument format [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
OpenDocument is an XML-based format to define documents containing text or
graphics. This means that the user interface model should be created in
accordance with this format. Currently, we use OpenDraw [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] to draw the UI
model. The developer is required to create the UI model following some rules:
– Every non-empty slide is considered a presentation state (e.g. a web page)
– Drawing items could be grouped to represent a group of related outputs on
a page or more importantly an input action and its related items (e.g. a
submit button)
– A frame is a symbol of an action
– A triangle represents a dropdown input
– A rectangle represents a plane text input
– A cloud could be grouped with any input item to identify its data type
– A ring can be grouped with an action denoting the called operation
associated with the action
– A cylinder could be grouped with any input item declaring its data source
containing the name of table and/or column
– If a group of outputs was combined with a cross, this would mean a table
view output
States are recognized as either presentation (front-end) or logic states. For each
presentation state, si
– si−1 is the state preceding si
– si+1 is the state following si
– ti−1,i is the transition from si−1 to si
– ti,i−1 is the transition from si to si−1
– ti,i+1 is the transition from si to si+1
– ti+1,i is the transition from si+1 to si
Neither si−1 nor si+1 could be a presentation state. Currently we accept no
multiple transitions out of a state, which means there would be just one form
per web page.
        </p>
        <p>Figure 4 shows the UI model of the state, Polls List Shown of EleManSys
(see Figure 3), where the User is asked to select a poll to open. The default
user interface model includes an empty slide for each step of the state machine
in Figure 3. The developer has then generated the user interface model for this
state machine assigning the model in Figure 4 to the step, Polls List Shown.
According to this figure, EleManSys shows a webpage containing an action form
submitting a poll selected from the list of polls coming from database table polls
to the operation, openPoll.</p>
        <p>Suppose A as the set of actions submitted from si. Each action is defined
as the tuple {a, Fi, operation}. Fi is the set of input fields and is defined as
{{F,r}:{f,r}+} in which
– F is a set of fields
– f is a single field
– r is the value object providing the input
– operation is the name of the operation this action calls.</p>
        <p>Also, assume O as the set of outputs shown by si. Each output is simply a set
of output fields, Fo.</p>
        <p>Back to the EleManSys example, we can see that for s2 0, A includes one
action that is defined as {Open Poll, {{poll, POLLS}, openPoll}, where</p>
        <p>Fig. 4. Polls List Shown state: UI Model
– ‘Open Poll’ is the action
– The set of input fields (Fi), includes</p>
        <p>• poll coming from database table POLLS
– And openPoll, the controller operation to be called</p>
        <p>There are some mapping rules that apply regardless of the UI model:
– A main use case is defined and stereotyped as FrontEndApplication to
indicate the entry point of application. The execution of other use cases will
originate from this use case. This main use case will be supported by a state
machine, which has:
• a FrontEndView state
• an outgoing transition for each use case; this will carry a signal event
named after the action event of the corresponding use case and will end
to a final state named after the corresponding use case.
• for use cases that have a pre-condition, a junction will be added to check
if the pre-condition is met? If not the flow simply returns to the main
state. This junction is preceded by another state. The transition from
the state to the junction will have a call event that runs a controller
operation to check the pre-condition.
– For every use case that has a state machine including at least one
presentation states, a use case is created with the stereotypes, FrontEndUseCase
– There must be one controller class per use case
– There must be a service class per use case
– Controller classes must be dependent on their objects’ service classes
Figure 5 shows the main state machine of EleManSys imported and refined using
ArgoUML.</p>
        <p>Other mapping rules are as follows
– Every presentation state becomes a state stereotyped as FrontEndView
– For each member of A</p>
        <p>• a becomes an action event on ti,i−1 or ti,i+1 whichever exists</p>
        <p>
          Fig. 5. The Main State Machine of EleManSys
• a becomes a deferrable event on si+1 calling operation
• operation becomes an operation of the controller class
• Fi becomes the set of input parameters on both a and operation
– For every database table referred by members of Fi, a domain object and a
value object are created
• There would be a dependency from every entity domain object to the
relevant value object
• Add an operation to the service class to retrieve the data from database
• Make a dependency from the service class
– For each member of O, Fo becomes the set of parameters on a signal event
belonging to ti−1,i or ti+1,i whichever exists
The mapping rules have been also expressed using Query-View-Transformation
(QVT) [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] language to make sure the method can integrate with other
MDAbased models and methods.
        </p>
        <p>Figure 6 shows a simplified version of the state machine generated for the
use case, Open Poll, which includes the View Results and Add Poll use cases
as well. The state machine was generated by the method and then imported
and refined using ArgoUML. Some details are shown for more clarification. For
example, Figure 6 shows that the transition after the first FrontEndView has a
signal event carrying the parameter, poll, which means the there would be an
entry named, poll on the corresponding web-page. Figure 7 depicts another part
of the PSM, which describes the service class model of the Open Poll use case.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Third Step: PSM to Code</title>
        <p>
          This last step is done by the code generation tool. Currently, we generate a
PSM that could be edited by ArgoUML and read by AndroMDA. Developers
are given the chance to refine the generated model or simply generate and launch
the executable code.
A model-driven approach for the semi-automated generation of web-based
applications using UWE [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ] is introduced by Kraus et al [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. This method goes
through requirements analysis, conceptual design, navigation design and
presentation design in order to build the application. Automated transformations can
be defined to transform models of content, presentation and navigation from
model to model and from model to code. The transformation process covers all
the levels from CIM to PSM. Examples of such transformations are defined in
the series of the UWE-related works.
        </p>
        <p>Kraus et al’s approach is an adequate method to generate web-based
applications that provides detailed mechanisms to define the application in a
modeldriven way. The main difference to ours appears to be the purpose. As a part of
the group of UWE-based approaches, Karus et al’s effort is dedicated to
preparing a framework based on which the developers can generate model-driven
applications. For this purpose, they mention an example of transformations created
based on their method. Our approach is instead focused on (semi)automating
parts of the process; thus we cover a smaller scope in a rather automated
manner. We do not tend for others to build methods on top of ours; instead our
method could be seen as a sample method of what model-driven web
engineering approaches such as UWE might be able to generate.</p>
        <p>
          Another related work is presented by Wu et al [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. This work describes a
method to generate a user interface code following MDA transformation and
the Model View Controller (MVC) pattern. The method spans the gap from
requirements to code for a user interface model by transforming boundary objects
resulting from a robustness analysis [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] to JSP pages [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. In order to do this,
the authors provide a framework that starts with use case modeling and activity
diagram. Then they perform a robustness analysis to categorize the participating
objects. Finally, JSP pages are built according to the transformation rules and
UML models.
        </p>
        <p>Unlike Wu et al’s work, our study covers the generation of code for the whole
software system not only the user interface part. Although, we select certain
platforms to implement our method, the method itself is theoretically
platformindependent. Finally, we have developed not only a method but also a practice
to show the feasibility of the method, which is not presented by Wu et al.</p>
        <p>
          Brambilla et al. [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] introduce an approach to web development using
WebRatio [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] as a tool and WebML [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] as a modeling language. The approach
guides the developer through a model-driven method to define a web-based
application in terms of the following:
– Data modeling
– Hypertext modeling
– Personalization to give different Users different viewpoints
– Presentation to add the look-and-feel
– Integrating business processes
– Integrating Web services
The resultant PSM will be automatically mapped to the executable code.
        </p>
        <p>Brambilla et al’s approach is focused on the automation of the
PSM-toCode transformation while providing a detailed mechanism for developing the
PSM. Our approach is instead centered on the PIM-to-PSM transformation and
leaves the code generation to other tools. WebRatio is a good alternative to the
AndroMDA-based platform we use at the moment.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], authors suggest a model-drievn method for the generation of
webbased applications using OOHDM [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], which is a data centric and object
oriented model for hypertext modeling. The method covers a software engineering
process from use cases to implementation. Use cases are modeled using
interaction diagrams. There is also a spot for navigational modeling using state charts
as well as conceptual modeling by class diagrams. The main difference of this
approach to ours is the lack of automation especially in terms of data access and
UI modeling.
        </p>
        <p>
          Another approach based on OOHDM is published in [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]. This approach
results in two different PSMs: conceptual and navigational, which has the
advantage of the choice of different independent technologies as for presentation
and logic. However, the approach only covers the navigational transformations.
Navigation is separated into that for fixed and dynamic pages. A semi-formalized
language is used to generate the PSM. The target platform is a servlet-based
web application. Besides not covering the conceptual parts of the application,
the main difference this approach shows to our method is the fact that the UI
model have not been considered as a requirement. Generally speaking, authors
are not concerned with requirements in their method.
        </p>
        <p>
          We may also mention [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ], which is a conceptual framework for MDA-based
software development environments. The approach presented in their book is
neither rendered in practice nor formally; however since an ultimate goal of
our method could be the generation of an MDA-based environment, their work
provides a useful point of reference.
        </p>
        <p>Some related works present similar features to ours but our approach remains
unique especially in terms of automating the PIM-to-PSM transformations and
considering UI models as a requirement.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In this paper we presented the results of the research and development of a
method to address the issue of the generation of web-based applications from
requirements. This is done using several transformations over use cases, user
interface models, state machines, design models and code. The output of our
method is a PSM that could be used to generate executable application.</p>
      <p>Although the intention is to implement a general-purpose method but our
conclusion shows that the method shows better compliance with data-centric
web applications that contain several database-related activities. As a result,
our future work is mostly devoted to automating the process of generating data
operations and mechanisms in short term. In the long term we will look at other
possibilities.</p>
      <p>
        A Java application has been implemented to run the method using real
examples. Besides the EleManSys example, our tool has so far been tried on several
other examples taken from actual case studies including the ones found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Other examples have been either planned or queued to test the method.
      </p>
      <p>As future work, we also intend to cover more complicated cases. We are
especially interested in mixed problem classes, applications with database
transactions and multiple use cases and state machines within the same application.
We also intend to evaluate the effectiveness of the method by having groups of
developers evaluate it in practice.</p>
      <p>One critical feature to add to the method is the ability of the method to
identify manageable entities. A manageable entity is required whenever the developer
needs to create, delete or update an entity; this is done by stereotyping the entity
as Manageable. Regular Entity stereotype can only support the database query
operations. An example is the Poll entity in Figure 7. Currently, we are working
on adding a tagged value to use case steps for this purpose.</p>
      <p>
        The UI model used in this paper needs to be formally defined. To this end, we
will choose an existing abstract UI model that could be used in an MDA-based
environment to define the UI model. One example is introduced by Koch [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Finally, in order to generalize the approach it is critical to employ an abstract
model that describes web-based applications. There are many models for this
purpose and the selection of a suitable candidate needs an in-depth study. So
far, we have found the model provided by Baresi et al [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], called W2000, a good
candidate as it adapts with both MDA and MVC.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Model-Driven</surname>
            <given-names>Architecture</given-names>
          </string-name>
          , www.omg.org/mda
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. Object Management Group, www.omg.org</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Meservy</surname>
            ,
            <given-names>T.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fenstermacher</surname>
          </string-name>
          , K.D.:
          <article-title>Transforming software development: an MDA road map</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <volume>38</volume>
          (
          <issue>9</issue>
          ),
          <fpage>52</fpage>
          -
          <lpage>58</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. Object Management Group UML, www.uml.org</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Writing Effective Use Cases</article-title>
          . Addison-Wesley,
          <source>Harlow</source>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Song</surname>
            ,
            <given-names>I.Y.</given-names>
          </string-name>
          :
          <article-title>Guidelines for Developing Quality Use Case Descriptions</article-title>
          .In: IRMA International Conference, pp
          <fpage>564</fpage>
          -
          <lpage>567</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Som´e, S. S.:
          <article-title>Supporting use case based requirements engineering</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>48</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>43</fpage>
          -
          <lpage>58</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Behrens</surname>
          </string-name>
          , H.:
          <article-title>Requirements Analysis Using Statecharts and Generated Scenarios</article-title>
          .
          <source>In: Doctoral Symposium at IEEE Joint Conference on Requirements Engineering</source>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Sutcliffe</surname>
            ,
            <given-names>A. G.</given-names>
          </string-name>
          <string-name>
            <surname>Maiden</surname>
            ,
            <given-names>N. A. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Minocha</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Manuel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Supporting ScenarioBased Requirements Engineering</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>24</volume>
          (
          <issue>12</issue>
          ), pp.
          <fpage>1072</fpage>
          -
          <lpage>1088</lpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>10. Use Case Editor, www.site.uottawa.ca/˜ssome/Use Case Editor UCEd.html</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>11. AndroMDA, www.andromda.org</mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <article-title>Software Engineering for Adaptive Hypermedia Systems: Reference Model, Modeling Techniques and Development Process PhD</article-title>
          . Thesis, FAST Reihe Software technik, UNI-DRUCK Verlag,
          <year>December 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Baresi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Colazzo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Mainetti</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Morasca</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>W2000: A Modeling Notation for Complex Web Applications</article-title>
          . In E. Mendes and N. Mosley (eds.) Web Engineering:
          <article-title>Theory and Practice of Metrics and Measurement for Web Development</article-title>
          . Springer, ISBN:
          <fpage>3</fpage>
          -
          <lpage>540</lpage>
          -28196-
          <issue>7</issue>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. UML,
          <article-title>Unified Modeling Language: Superstructure version 2.1.1 (non-change bar</article-title>
          ) formal/2007-02-05 (Available from: www.omg.org/cgi-bin/doc?formal/07-02-05)
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Stahl</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Volter</surname>
            ,
            <given-names>M</given-names>
          </string-name>
          , Bettin,
          <string-name>
            <given-names>J.</given-names>
            <surname>Haase</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            and
            <surname>Helsen</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Model-driven software development : technology, engineering, management /translated by Bettina von Stockfleth</article-title>
          . John Wiley, Chichester, England ; Hoboken, NJ (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <article-title>QVT 1.0, www</article-title>
          .omg.org/spec/QVT/1.0, May
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Comai</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Matera</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Designing Web Applications with WebML and WebRatio</article-title>
          . In book: ”Web Engineering:
          <article-title>Modelling and Implementing Web Applications</article-title>
          .” Gustavo Rossi, Oscar Pastor, Daniel Schwabe and
          <string-name>
            <given-names>Luis</given-names>
            <surname>Olsina</surname>
          </string-name>
          .
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>18. WebRatio, www.webratio.com</mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>19. WebML, www.webml.org</mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <article-title>The Object-Oriented Hypermedia Design Model (OOHDM), www</article-title>
          .telemidia.pucrio.br/oohdm/oohdm.html
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Kraus</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Knapp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <article-title>Model-Driven Generation of Web Applications in UWE</article-title>
          .
          <source>In Proc. MDWE</source>
          <year>2007</year>
          - 3rd International Workshop on Model-Driven Web Engineering, CEUR-WS, Vol
          <volume>261</volume>
          ,
          <string-name>
            <surname>July</surname>
            <given-names>2007</given-names>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>J. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>S. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chien</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chao</surname>
            ,
            <given-names>W. S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Hsieh</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. C.L An</surname>
          </string-name>
          <article-title>Extended MDA Method for User Interface Modeling and Transformation</article-title>
          .
          <source>In: The 15th European Conference on Information Systems</source>
          . pp
          <fpage>1632</fpage>
          -
          <lpage>1641</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Rosenberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Stephens</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Use case driven object modeling with UML : theory and practice</article-title>
          , Apress Publishers (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Java</surname>
          </string-name>
          <article-title>Server Pages Technology, java</article-title>
          .sun.com/products/jsp
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Struts</surname>
          </string-name>
          , struts.apache.org
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>MySQL</surname>
            <given-names>AB</given-names>
          </string-name>
          , dev.mysql.com
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Larman</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Applying</surname>
            <given-names>UML</given-names>
          </string-name>
          and
          <article-title>Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall PTR (</article-title>
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <article-title>AndroMDA BPM4Struts, galaxy</article-title>
          .andromda.org/docs/andromda-bpm4strutscartridge/index.html
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>29. OASIS, www.oasis-open.org</mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>30. Draw, /www.openoffice.org/product/draw.html</mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Rossi</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Schwabe</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Model-Based Web Application Development</article-title>
          . In Mendes E. and
          <string-name>
            <surname>Mosley</surname>
            <given-names>N</given-names>
          </string-name>
          . (eds.) Web Engineering:
          <article-title>Theory and Practice of Metrics and Measurement for Web Development</article-title>
          . Springer, ISBN:
          <fpage>3</fpage>
          -
          <lpage>540</lpage>
          -28196-
          <issue>7</issue>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Schmid</surname>
            ,
            <given-names>H. A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Donnerhak</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>The PIM to Servlet-Based PSM Transformation with OOHDMDA</article-title>
          , Workshop on Model-driven
          <source>Web Engineering (MDWE 2005) July</source>
          <volume>26</volume>
          ,
          <year>2005</year>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Pastor</surname>
            <given-names>O.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Molina</surname>
            <given-names>J. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Model-Driven Architecture</surname>
          </string-name>
          in
          <source>Practice: A Software Production Environment Based on Conceptual Modeling</source>
          , Springer (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Fatolahi</surname>
            <given-names>A.</given-names>
          </string-name>
          , Som´e
          <string-name>
            <given-names>S. S.</given-names>
            and
            <surname>Lethbridge T. C.</surname>
          </string-name>
          <article-title>A Model-Driven Approach for the Semi-Automated Generation of Web-based Applications from Requirements</article-title>
          .
          <source>Proceedings of 2008 International Conference on Software Engineering and Knowledge Engineering</source>
          . pp
          <fpage>619</fpage>
          -
          <lpage>624</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Lethbridge</surname>
            <given-names>T. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laganire</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <article-title>Object-oriented software engineering : practical software development using UML and Java</article-title>
          , London :
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          ,
          <year>c2001</year>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <article-title>UWE UML-based Web Engineering, www</article-title>
          .pst.informatik.unimuenchen.de/projekte/uwe/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>