<!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>A UML Profile for Modeling Framework­based Web  Information Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Laboratory for Applied Ontology</institution>
          ,
          <addr-line>Polo Tecnologico, Via Solteri, 38 38100 Trento</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universidade Federal do Espírito Santo</institution>
          ,
          <addr-line>Av. Fernando Ferrari, 514 29075­910 Vitória - ES</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <abstract>
        <p> The rapid evolution of the area of Web Engineering has motivated the  proposal   of   several   methods   and   frameworks   for   the   development   of   Web  Information   Systems   (WISs).   In   particular,   it   is   becoming   more   and   more  common to use container­based architectures and frameworks when it comes to  their   development.   Following   this   idea,   we   have   proposed   a   method   for  designing   framework­based   WISs,   called   FrameWeb.   and,   in   this   paper,   we  present   FrameWeb's   UML   profile   for   modeling   framework   components   in  design models.</p>
      </abstract>
      <kwd-group>
        <kwd> Web   Engineering</kwd>
        <kwd>  Web   Information   Systems</kwd>
        <kwd>  Frameworks</kwd>
        <kwd>  Modeling Language</kwd>
        <kwd> UML profile</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Web Engineering (WebE) can be defined as “the establishment and use of engineering 
principles   and   disciplined   approaches   to   the   development,   deployment   and 
maintenance   of   Web­based   Applications”   [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].   What   started   with   the   ad­hoc 
development of simple web pages now congregates many methods for the design  of 
Web Information Systems (WISs), such as WAE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and OOWS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Also, new technologies for coding WISs have rapidly evolved. Frameworks for the 
solution   of   infrastructure   issues   were   developed   and   entire   architectures   providing 
containers   for   user   components   became   standards.   For   example,   the   most   recent 
version   of   Java   EE   [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]   borrows   many   concepts   from   existing   frameworks.   These 
technologies provide a large code base that can be reused, improving productivity.
      </p>
      <p>
        This   scenario   motivated   the   proposition   of   FrameWeb   [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]:   a   Framework­Based 
Design   Method   for   Web   Engineering.   FrameWeb   proposes   a   basic   architecture   for 
developing WISs and a UML profile for a set of design models that brings concepts 
used by some categories of frameworks. The use of FrameWeb can further improve 
team   productivity   by   allowing   designers   to   produce   diagrams   that   represent 
framework  concepts, and  developers  (maybe,   in  the   future, CASE  tools)   to  quickly 
and directly translate these diagrams to code.
      </p>
      <p>The   objective   of   this   paper   is   to   present   FrameWeb's   modeling   profile.   It   is 
organized as follows: section 2 talks about the area of Web Engineering and what has 
motivated   the   authors   for   the   creation   of   this   UML   profile.   This   section   also 
summarizes   the   key   points   of   FrameWeb's   design   method.   Section  3  details 
FrameWeb's modeling profile, which is the focus of this paper; section  4  compares 
FrameWeb's profile to others; finally, section 5 concludes and lists future work.
Web sites evolved from static pages to complex information systems. In this process, 
many   frameworks   (artifacts   of   code   that   provide   components   ready   for   reuse   by 
inheritance, composition or configuration) were created to help Web developers speed 
up the development of Web applications.</p>
      <p>These   frameworks   substantially   change   the   kind   of   components   that   are   built 
during coding. Classes that inherit from other classes in the framework, configuration 
files and others are now source code artifacts that must be written by developers. In 
particular,   three   kinds   of   frameworks   have   the   most   impact   on   this   change:   Front 
Controller, Object/Relational Mapping and Dependency Injection frameworks. </p>
      <p>
        Front Controller [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] frameworks, also known as MVC frameworks for being based 
on   the   well­known   Model­View­Controller   architectural   pattern   [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],   separate   the 
functionality   of   a   WebApp   from   its   presentation.   With   proper   configuration,   the 
developer   is   given   the   task   of   creating   action   classes   that   will   respond   to   client 
requests and redirect the response to a user interface (UI) component. In FrameWeb, 
action classes, UI components and their interaction (which guides the configuration of 
the framework) are modeled in the Navigation Model, presented in section 3.3.
      </p>
      <p>
        Object/Relational Mapping (ORM) frameworks provide automatic and transparent 
persistence of objects to tables of a Relational Database, using meta­data that describe 
the mapping between both worlds [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. A mapping is written for each persistent class 
and the ORM framework does the rest of the job. In FrameWeb, these mappings are 
presented   in   the   Domain   Model   (section  3.1),   while   the   classes   that   perform   the 
persistence are modeled in the Persistence Model (section 3.2).
      </p>
      <p>Dependency   Injection   (DI)   frameworks   allow   the   developer   to   program   to 
interfaces [9,  7] and specify the concrete dependencies in a configuration file.   The 
idea   is   that   classes   that   depend   on   services   from   different   tiers   would   declare   an 
association with an interface instead of the concrete implementation. This facilitates, 
for   instance,   the   replacement   of   the   real   service   class   with   a   mock   object   for   unit 
testing. When an object is created, the DI framework wires all required dependencies 
automatically, based on a configuration file. In FrameWeb, the dependency relations 
between different tiers are represented in the Application Model (section 3.4).</p>
      <p>
        A detailed description of these and other kinds of frameworks can be found at [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Our personal experience with the use of frameworks for the construction of WISs 
has   motivated   the   proposal   of   the   Framework­Based   Design   Method   for   Web 
Engineering (FrameWeb) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The method has two main propositions:
 A   standard   architecture   for   WISs   that   integrates   with   the   frameworks 
described earlier by separating their concerns into different packages;
 A UML profile suited for the construction of four kinds of design models 
that   represent   framework   components   from   different   packages:   Domain 
Model, Persistence Model, Navigation Model and Application Model.
      </p>
      <p>FrameWeb's   standard   architecture   separates   different   frameworks   concerns   into 
three   layers.   At   the   Presentation   layer   (View  and  Controller  packages),   UI 
components and action classes integrate with the Front Controller framework, calling 
services   from   a   Business   layer,   which   contains   service   classes   (Application
package) and domain classes (Domain package). The latter, in turn, are mapped by 
the  ORM  framework and  persisted  by classes that  belong  to the  Data  Access layer 
(Persistence package).   Class   dependencies   that   cross   a   layer's   boundaries   are 
taken care of by the DI framework.</p>
      <p>
        For a detailed description of the method, the interested reader should refer to [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In 
the  next  section,  we  focus   on  FrameWeb's  modeling  profile,   used   during  design  to 
produce diagrams that depict coding artifacts that belong to these different layers.
To   model   classes   and   other   components,   FrameWeb   defines   a   UML   profile   using 
standard extension mechanisms for designing four different kinds of diagrams during 
system design: Domain Model, Persistence Model, Navigation Model and Application 
Model.   All   of   them   are   based   on   UML's   class   diagram,   but   represent   components 
from different layers that integrate with different frameworks. 
      </p>
      <p>Throughout   the   next   subsections   we   detail   these   four   models   using   as   examples 
diagrams   produced   for   a   collaborative   learning   environment   called   JSchool1, 
developed by the local Java User Group2  using FrameWeb. JSchool contains a core 
subsystem, which is responsible for user registration, login, system configuration and 
allowing users to send messages to the administrators and view other users' profiles. 
JSchool also includes a group module, which contains features for creating, managing, 
searching, joining and participating in groups.</p>
      <p>Figure  1  shows   the   conceptual   model   for   the   core   and   group   modules. 
Collaborators   are   registered   with   name,   e­mail,   password,   institution,   contact 
information   and   picture.   Groups   have   names,   descriptions,   keywords   and 
configurations such as if the group is open or public. Other classes complement these 
two, representing invitations to participate in a group, confirmation of a user's e­mail 
address, a user membership and role in a group and requests from a user to create a 
group or participate in a group.
1 http://jschool.dev.java.net
2 Espírito Santo Java User Group (ESJUG) – http://esjug.dev.java.net
The Domain Model is a UML class diagram that represents classes of objects from 
the problem domain and their Object/Relational (OR) mappings. This diagram should 
be used by developers to guide the codification of classes from the Domain package.</p>
      <p>Designers should use the conceptual model built during Requirement Analysis and 
add platform­specific details and the OR mappings. Platform­specific details include 
attribute   types,   association   navigabilities,   etc.   The   OR   mappings   will   guide   the 
developers on how to configure the ORM framework to persist these entities.</p>
      <p>Although this configuration is more related to persistence, it is represented in the 
Domain   Model   because   the   classes   that   should   be   mapped   and   their   attributes   are 
represented in this diagram.</p>
      <p>Table  1  describes  some  possible  OR mappings for the  Domain Model. For each 
mapping,   the   table   presents   which   lightweight   extension   mechanism   was   used   and 
what   are   the   possible   values   or   syntax   for   its   use.   None   of   the   mappings   are 
mandatory and most of them have sensible defaults in order to lessen the amount of 
information   on   the   model.   These   default   values   are   shown   in   the   possible   values 
column in boldface or in parenthesis.</p>
      <p>The Domain Model for the core and group modules of JSchool is shown in figure 
2. According to the  default values, all classes are persistent and class  and attribute 
names are used as table and column names respectively. None of the classes have ID 
or version attributes because they are inherited from a utility package.</p>
      <p>Attributes have received mappings such as nullability and size. Date attributes such 
as  invitationDate,  entryDate  and  requestDate  were   mapped   as   date­only 
precision,   while   the   remaining   dates   will   be   stored   as   timestamps.   All   three 
collections (navigable association endings with multiplicity “many”) were configured 
to be sorted naturally (will be implemented in the programming language, Java), to be 
fetched lazily (only when used for the first time) and to cascade all operations (e.g. if 
a group is deleted, all of its subgroups are automatically deleted).</p>
      <p>Extension</p>
      <p>Possible Values
If   the   class   is   persistent,   transient   or   mapped   (not 
persistent   itself,   but   its   properties   are   persistent   if 
another class inherits them)
Name   of   the   column   in   which   an   attribute   will   be 
persisted
Size   of   the   column   in   which   an   attribute   will   be 
persisted
Inheritance mapping strategy: one table for each class 
using UNION, one table for each class using JOIN or 
single table for the entire hierarchy</p>
      <p>Class 
stereotype</p>
      <p>
        Class 
constraint
Attribute 
stereotype
Attribute 
constraint
Attribute 
constraint
Attribute 
stereotype
Attribute 
constraint
Attribute 
constraint
Attribute 
constraint
Inheritance 
stereotype
&lt;&lt;persistent&gt;&gt;
&lt;&lt;transient&gt;&gt;
&lt;&lt;mapped&gt;&gt;
table=name
(default: class' name)
&lt;&lt;persistent&gt;&gt;
&lt;&lt;transient&gt;&gt;
Order of an association's collection: natural ordering 
(implemented   in   code)   or   order   by   columns 
(ascending or descending)
FrameWeb   indicates   the   use   of   the   Data   Access   Object   (DAO)   pattern   [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]   for   the 
construction of the Data Access layer. The Persistence Model is a UML class diagram 
that   represents   the   DAO   classes   responsible   for   the   persistence   of   domain   objects. 
This   diagram   is   used   by   developers   for   codifying   classes   from   the  Persistence
package.
      </p>
      <p>For   each   domain   class   that   needs   to   be   persisted,   the   Persistence   Model   should 
present   one   DAO   interface   and   one   or   more   DAO   classes,   meaning   that   different 
persistence technologies can be implemented in the same system. Base DAO interface 
and implementation can be presented to reduce the amount of diagram elements in the 
Model: all DAO interfaces/classes automatically extend the base DAO interface/class, 
without   the   need   to   explicitly   show   it.   Implementing   common   methods   such   as 
save(), delete() and retrieveById() in the base DAO can reduce the amount of 
modeling that has to be done.</p>
      <p>Besides those basic methods, DAOs should also have methods to retrieve objects 
using   specific   queries.   Also,   it   is   assumed   that   the   interface   declares   all   methods 
presented by the DAO class to relief the designer of repeating them on the diagram. 
Thus, basically the Persistence Model represents the “query methods” and does not 
require   any   UML   extension   for   such   a   task.   For   instance,   to   authenticate   a 
collaborator's password we need to retrieve the collaborator object given his/her email. 
Therefore, the method  retrieveByEmail(email: String) : Collaborator  is 
modeled for the CollaboratorDAO implementation.</p>
    </sec>
    <sec id="sec-2">
      <title>3.3   Navigation Model</title>
      <p>The   Navigation   Model   is   a   UML   class   diagram   that   represents   the   different 
components that form the Presentation Logic tier, such as Web pages, HTML forms 
and action classes.  Table  2  shows the stereotypes used by the different components 
that can be represented in a Navigation Model.  This model is used by developers to 
guide the codification of classes from the View and Controller packages.</p>
      <p>Dependency associations among these components dictate the control flow when 
an   action   is   executed.   When   directed   toward   an   action   class,   it   means   that   data   is 
coming from pages or forms and are being set at the action class. Analogously, when 
directed outward an action class, it means that data from that class is being displayed 
in some page or template. Homonymous attributes in pages, forms and action classes 
indicate the information being exchanged.</p>
      <p>The designer is free to chose the granularity of the action class: one for each use 
case scenario, one for each use case, and so on. Since an action class can implement 
many   actions   with   different   methods   and   each   of   them   can   produce   different 
outcomes, constraints at the dependency associations indicate which method/result is 
being modeled, when needed. </p>
      <p>Figure  3  shows the Navigation Model for the “Send Message to Administrators” 
use   case.   The  web::index  page   and  web::home  template   represent   the   pages   to 
which visitors and registered users, respectively, have access. These pages can request 
the action's input (a form to be filled and submitted), which results in the displaying 
of   the  sendMessageAdministration  template.   This   template   contains   an   input 
form   that   sends   the   name,   email   and   body   of   message   to   the   action   that,   after 
executed, displays the  messageSent  template, if successful. When a registered user 
requests the input form, the action retrieves its name and e­mail and automatically fills 
those input fields. That is why the template has name and email as attributes.</p>
      <p>At the time FrameWeb was being conceived, a question arose as to whether UML's 
sequence   diagram   would   be   better   suited   for   the   Navigation   Model   than   the   class 
diagram.   The   issue   was   discussed   with   the   first   group   of   developers   which   used 
FrameWeb in its  early stages to build a WIS. Two main reasons contributed to the 
choice of the class diagram: (a) it provides a better visualization of the inner structure 
of action classes, forms and templates; and (b) it models page – form composition 
with a more appropriate notation (UML's composition association). In spite of this, 
FrameWeb   does   not   suggest   sequence   diagrams   should   be   avoided,   but   simply 
recognizes that class diagrams are better suited for the Navigation Model.
Fig. 3. Navigation Model for the use case “Send Message to Administrators” (JSchool core)</p>
    </sec>
    <sec id="sec-3">
      <title>3.4   Application Model</title>
      <p>The Application Model is a UML class diagram that represents service classes, which 
are responsible for the implementation of use cases. This diagram is used for guiding 
the codification of classes from the  Application  package and the configuration of 
the dependencies between Controller, Application and Persistence packages.</p>
      <p>As with action classes, the  designer should chose  the granularity of the  service 
classes   and   display,   for   each   of   them,   one   interface   and   one   implementation.   The 
Application Model displays, then, all action classes and their dependencies with the 
service   interface,   the   methods   of   the   service   class   that   implement   the   use   case 
scenarios and DAO interfaces and the dependencies that service classes have on them.</p>
      <p>Figure 4  shows part of the Application Model of JSchool's core module, showing 
the   service   class   for   the   “Configure   System”   use   case   and   its   dependencies.   The 
action class (tagged with the controller:: namespace) depends on the service class 
for  the execution of  the use case. The  service class,  in turn,  depends on the DAO 
classes for Collaborator and Group, as it needs to access data of both classes.
Fig. 4. Part of an Application Model of the core module of JSchool.
There   are   several   Web   Engineering   methods   that   define   modeling   languages   and 
profiles for Web­specific purposes.</p>
      <p>
        Conallen [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] proposes a UML profile named Web Application Extensions (WAE). 
WAE extends UML to provide Web­specific constructs for modeling WISs, including 
a   new   model   called   User   Experience   (UX)   Model,   which   defines   guidelines   for 
modeling   layout   and   navigation.   Models   like   the   navigation   diagram,   the   class 
diagram and the component diagram (the last two specific for the web tier) use WAE 
to represent Web components such as screens, server pages, client pages, forms, links 
and many more. FrameWeb's modeling profile is quite similar to WAE, as both extend 
UML for the creation of diagrams that represent web­related elements. However, as 
FrameWeb is based on frameworks, its stereotypes and constraints are different from 
those proposed by WAE. Also, we prefer to use dependency associations to represent 
the relations among web components instead of regular associations, which represent, 
in other contexts, a direct relation between components and can confuse developers 
accustomed to this other meaning. This explains why FrameWeb is not an extension 
of WAE, but a new profile altogether.
      </p>
      <p>
        OOWS   (Object   Oriented   Web   Solution)   [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]   uses   UML   for   most   of   its   models, 
making use of its extension mechanisms. But it also proposes extensions that are not 
standard, which can make things difficult for developers that do not have CASE tools 
specifically designed for the method. On the other hand, its navigation model defines 
specific indexing and filtering mechanisms that make it easier to model these kinds of 
structures, which are quite common in the Web environment.
      </p>
      <p>
        The   UML­based   Web   Engineering   (UWE)   [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]   also   defines   a   UML   profile 
specifically   for   Web   components   using   standard   extensions   mechanism,   but   also 
offering   a   few   non­standard   extensions.   As   with   WAE,   it   doesn't   define   specific 
extensions for framework­related components either.
      </p>
      <p>FrameWeb uses only lightweight extension mechanisms, being easily supported by 
most CASE tools that support UML.</p>
      <p>
        Other   proposals,   such   as   WebML   [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],   define   a   modeling   language   that   is   not 
UML­based. As intuitive as their graphical representations might be, not being based 
on UML is a big disadvantage for reasons of developer's acceptance and tool support.
      </p>
      <p>Given all of the options available, FrameWeb comes in as a good choice when it 
comes to architectures that are based on the use of frameworks. In this case, which is 
very common for the development of WISs, FrameWeb's profile provides models that 
are directed towards the frameworks' architectures, allowing for quick understanding 
of   the   implementation.   During   two   software   projects   developed   to   informally 
experiment  the  method and  its modeling  profile,  developer  feedback  indicated that 
FrameWeb   is   easy   to   learn   and   use,   noting   some   difficulty   only   on   Navigation 
Models.
This paper presented a detailed view of the UML profile proposed by FrameWeb, a 
design   method   suited   for   the   development   of   framework­based   Web   Information 
Systems.   The   profile   aims   at   depicting   framework­related   components,   easing   the 
transition from design models to coding. Using lightweight extensions of UML makes 
the language more familiar to UML developers.</p>
      <p>Future work has already started on the experimentation of the method with many 
different frameworks, to verify if different framework implementations also fit in the 
categories   summarized  in   section  2.   Other  opportunities   lie  in   developing   a   CASE 
tool to produce FrameWeb's design models and developing automatic code generation 
tools (feature that is present in other approaches, such as OOWS and UWE).</p>
      <p>
        Although two software projects have already been conducted to informally evaluate 
the   method   [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]   and   modeling   profile,   systematic   evaluations   could   be   proposed   to 
reach conclusions that have more scientific value.
      </p>
      <p>Acknowledgments.  This   work   was   accomplished   with   the   financial   support   of 
CAPES, an entity of the Brazilian Government reverted to scientific and technological 
development.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Murugesan, S., Deshpande, Y., Hansen, S., Ginige, A.: Web Engineering: A 
          <article-title>New Discipline  for Development of Web­based Systems</article-title>
          . Proceedings. of. the First ICSE Workshop on Web  Engineering. IEEE, Australia (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Conallen, J.: Building 
          <article-title>Web Applications with UML. 2nd edn</article-title>
          . 
          <string-name>
            <surname>Addison­Wesley </surname>
          </string-name>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Fons, J., Valderas, P., Ruiz, M., Rojas, G., Pastor, O.: OOWS: A Method to Develop Web  Applications   from   Web­Oriented   Conceptual   Models.  
          <source>Proceedings   of   the   7th   World  Multiconference on Systemics</source>
          , Cybernetics and Informatics. Orlando, FL - USA (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Shannon,   B.:   JavaTM   Platform,   Enterprise   Edition   (Java   EE)   Specification,  
          <fpage>v5</fpage>
          .   Sun  Microsystems (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Souza,   V.   E.   S.,   Falbo,   R.   A.:
          <article-title>  FrameWeb:   A   Framework­based   Design   Method   for   Web  Engineering</article-title>
          . Proceedings of the  Euro American Conference on Telematics and Information  Systems (EATIS 
          <year>2007</year>
          ). Faro, Portugal (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies.  Prentice Hall / Sun Microsystems Press (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Gamma,  E., Helm, R.,  Johnson, R., Vlissides, J.: Design  Patterns:  Elements of  Reusable  Object­Oriented Software. 
          <string-name>
            <surname>Addison­Wesley </surname>
          </string-name>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Bauer, C., King, G.: Hibernate in Action. 1st 
          <fpage>edn</fpage>
          . Manning (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Schmidt,   D.:   Programming   Principles   in   Java:   Architectures   and   Interfaces  (http://www.cis.ksu.edu/~schmidt/CIS200/). Chapter 
          <fpage>9</fpage>
          . Capture on February 14th (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Koch</surname>
          </string-name>
          , N., Baumeister, H., Hennicker, R., Mandel, L.: Extending UML to Model Navigation  and Presentation in Web Applications. Proceedings of Modelling Web Applications in the  UML Workshop (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Ceri</surname>
          </string-name>
          ,   S.,   Fraternali,   P.,   Bongio,   A.:   Web  
          <article-title>Modeling   Language:  a   modeling   language   for  designing Web sites</article-title>
          . Computer Networks. Elsevier (
          <year>2000</year>
          ) v. 
          <volume>33</volume>
          , n. 
          <fpage>1</fpage>
          ­
          <lpage>6</lpage>
          , p. 
          <fpage>137</fpage>
          ­
          <lpage>157</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>