SlideShare una empresa de Scribd logo
1 de 82
Descargar para leer sin conexión
UML-based Web Engineering (UWE)

     Software engineering approach for Web domain
     Based on OMG standards, such as UML, MDA, OCL, XMI, …

     Domain specific modeling language (DSL)

     MOF-based metamodel, OCL constraints

     Open source CASE tool support




Sevilla – June 2007 – Nora Koch ©                            15
UWE in a Nutshell

   UWE is a an engineering approach for the development of Web applications

   Main characteristic is the use of UML for all models
         “pure” UML whenever possible
         UML extension for Web specific features                 UML profile

   Focuses on systematisation and automatic generation

   UWE comprises
        a modelling language for the graphical representation of models of Web applications
        a method (technique) supporting semi-automatic generation
        a metamodel for UWE modelling elements
        a process supporting the development life-cycle of Web applications
        a case-tool supporting the development of Web applications
             ArgoUWE editor for the design
             set of transformations for model-to-model and model-to-code transformations




Sevilla – June 2007 – Nora Koch ©                                                             16
Modelling Language UWE




Sevilla – June 2007 – Nora Koch ©         17
Why UML?

    UML is a graphical language for specifying, constructing and documenting
    software artifacts
    UML is a de facto industry standard and an OMG standard
    UML includes
         notation
         diagram types
         Object Constraints Language (OCL)
         metamodel
         well-formedness rules
    UML does not provide a development process


How expressive is UML for the development of Web applications?
  UML does not include specific Web model elements
  UML defines extension mechanisms       UML profiles



Sevilla – June 2007 – Nora Koch ©                                              18
“Pure” UML for Modelling Web Applications

   Use of UML (without extension) whenever possible
   Example: UML deployment diagram used to
                                                                    : Web Browser
   document
        physical nodes                                                  Client
        distribution of web components                               ShoppingCart         physical node

                                                 UML dependency             «use»


                               : Application
                                                                    : Web Server
                                  Server
                                                         «use»
                                   DB                                    JSP
                               ShoppingCart                          ShoppingCart
                                                                                         UML
                                                                                         component

                                     «realize»                             «realize»     design class

                                                       «trace»    «presentation class»
                              ShoppingCart                           ShoppingCart


 Sevilla – June 2007 – Nora Koch ©                                                                   19
UML Profiles

    UML extension is called a UML profile
    if based on extension mechanisms provided by UML
         stereotypes for new metaclasses
               domain specific: EJB «bean», «session», «entity», …
               defined in the UML: «metaclass», «trace», «file», …
         tagged values for metaattributes
         OCL constraints for invariants, pre- and postconditions
                                                                        eases
    UML profile = light weight extension                             tool support

    Heavy weight extension
          uses other diagram types not defined in the UML
          uses different notation




Sevilla – June 2007 – Nora Koch ©                                                   20
Analysis and Design Models in UWE

   Analysis models of a Web application
         functional requirements are specified by
              use case model
              workflows
         data (content) requirements are specified by
              domain model
   Design models of a Web application
         information aspects
              content model
         hypertext structure and
         navigation functionality
              navigation model
         layout schema
              presentation model
         functionality
              process model
              adaptivity model



Sevilla – June 2007 – Nora Koch ©                       21
Example: Simple Music Portal

     Inspired by www.mp3.com
          offers albums for downloading
          contains information about albums, songs, singer, composer, and publisher
          this information is available for free
          registered users can search albums and download them
          for downloading they need to have enough credit on their prepaid account
          accounts are rechargeable
          provides a guided tour through the Web application




Sevilla – June 2007 – Nora Koch ©                                                     22
Modelling Requirements with UWE

    Use cases are the most appropriate/used technique for modelling requirements
    Graphical visualization by UML use case diagram
          to model required functionality
          distinguishes between navigation and process use cases


    Modeling constructs
          «navigation»




          «web process»
         (in ArgoUWE normal use case)




Sevilla – June 2007 – Nora Koch ©                                                  23
Modelling Business Processes

   Business process can be modelled as workflows
   Workflows are visualized by UML activity diagram
         set of actions
         control flow elements as decisions, merges, forks, joins, etc.
         object flows including relevant objects (instance of classes)
   Example: Download Album


                                                                 RE        UML         Icon
                                                                 Element   Metaclass



                                                                                        ?




Sevilla – June 2007 – Nora Koch ©                                                             24
Content Modelling

    Representation with “pure” UML is sufficient
         no additional semantics required
         UML class diagram
    UML class diagrams used at analysis-level and design-level
         domain concepts represented by classes
               units of information
               users of the system (user model)
         relationship between concepts represented by
         associations
         whole/part relationship shown by aggregations and
         composition
         hierarchical dependencies depicted by
         generalization/specialization (inheritance)
         multiplicities
         …




Sevilla – June 2007 – Nora Koch ©                                25
Navigation Modelling

    Goals
         to represent nodes and links of the hypertext structure
         to design navigation paths
         to avoid disorientation and cognitive overload
    Result: navigation model
         represented by a UML class diagram
         uses specific modelling elements for Web concepts
    Modelling elements
         basic elements
         access primitives

    Other methodologies
         own notation for hypertext elements
         different diagram types: UML state diagram or own diagram type




Sevilla – June 2007 – Nora Koch ©                                         26
Basic Navigation Elements

    Navigation elements used to model the core hypertext structure
          navigation class specifies a hypertext node visited by a user through browsing
          (related to a content class)
          navigation link specifies a hyperlink used to access the target navigation object
          from the source navigation object


    Stereotypes for basic navigation elements
          «navigation   class»
          «navigation   link»




Sevilla – June 2007 – Nora Koch ©                                                             27
Navigation Model: Hypertext Structure




Sevilla – June 2007 – Nora Koch ©       28
Access Primitives

    Additional elements for the selection of one target navigation element from
    a set of instances of a navigation element
          index
          guidedTour
          query
    Shortcuts for more complex constructs (if represented in UML without
    extension)




Sevilla – June 2007 – Nora Koch ©                                                 29
Access Primitive: Index

   Index specifies direct access to all instances of the target by providing a list
   of all elements from which one can be selected to continue navigating in the
   Web application
          contains an arbitrary number of
          index items
          each index item is an object which
          has a name and owns a link to an
          instance of a navigation class
    UML stereotype: «index»




Sevilla – June 2007 – Nora Koch ©                                                     30
Access Primitives: Query and Guided Tour

    Query represents the possibility to search for instances of the target node
    where instances are selected based on the property FilterExpression
          UML stereotype: «query»

    GuidedTour provides sequential access to instances of the target node
          order in the sequential access is given by a property SortExpression
          different options may be specified
                                    circular access to the instances
                                    access is triggered by a user-interaction
          UML stereotype: «guidedTour»




Sevilla – June 2007 – Nora Koch ©                                                 31
Navigation Model Elements: Menu and External Links

    Menus are used to structure the outgoing links from a node
          associated to a navigation class by composition
          consists of a set of links to heterogeneous elements, such as indexes, guided
          tours, queries, instances instances of navigation classes or other menus
          UML stereotype: «menu»




    External Links are links pointing to nodes that
    do not belong to the Web application
          UML stereotype:«external link»

Sevilla – June 2007 – Nora Koch ©                                                         32
Navigation Model: Hypertext Structure




Sevilla – June 2007 – Nora Koch ©       33
Modelling Navigation

   Systematic enhancement of the navigation structure model by
         indexes for all navigation links which have multiplicity > 1 at the directed association end
         menus for all navigation classes with more than 1 outgoing association
   Design decision to include
         guided tour instead of index
         queries
         tagged value home to indicate starting point of the application (node without ingoing
         links)
         tagged value landmark to indicate that a node is reachable from everywhere (all other
         nodes include a link to the landmark node)

   Construction of views of the navigation space
         partial views if the number of nodes is large
         different views for different users
         different views for different environments




Sevilla – June 2007 – Nora Koch ©                                                                  34
Modelling Processes in UWE

   Navigation model of a Web application
         represents the static information structure accessible to a user of the system
         specifies browsing (navigation) functionality
    Process model
         represent the dynamic aspects of a Web application
         specifies functionality, such as transactions and complex workflows of activities
   Process modelling consists of
         definition of process classes (for non-navigation use cases)
         integration of these process classes in the navigation model
         description of the behaviour through a process flow
              represented as UML activity diagram




Sevilla – June 2007 – Nora Koch ©                                                            35
Process Elements

    Process class represents the process through which the user will be guided in
    the Web application
         for complex process that require more than a single class, an additional process model
         is built
         UML stereotype: «process class»
    Process link is used to model the association between a «navigation class» and
    a «process class»
         indicates entry points and exit points of processes within the navigation structure
         UML stereotype: «process link»




Sevilla – June 2007 – Nora Koch ©                                                              36
Navigation Model: Including Web Processes




Sevilla – June 2007 – Nora Koch ©           37
Modelling the Process Flow

   The behavior of a Web process is defined by the process flow model
         represented by an UML activity diagram
         result of the refinement of the activity diagram drawn for requirements specification
         no need of use of stereotypes


   Process flow consists of
         flow of execution represented by activity nodes connected by activity edges
         control nodes that provide flow-of-control constructs, such as decisions and
         synchronization
         object nodes that represent data flowing along object flow edges or pins associated to
         the actions
         semantic of activities is based on control and data token flows, similar to Petri nets




Sevilla – June 2007 – Nora Koch ©                                                                 38
Requirements: UML Activity Diagrams for Login




Sevilla – June 2007 – Nora Koch ©               39
Process Model: UML Activity Diagram: Login




Sevilla – June 2007 – Nora Koch ©            40
Modelling Presentation
    Representation of layout for the underlying navigation and process models
         is an abstract presentation
         concrete presentation requires specification of additional physical properties of the
         layout
              colour
              position
    Presentation classes represent Web pages or part of pages
         composition of user interface elements
         hierarchical composition of presentation elements
    UML class diagram for the structure of the presentation
         using UML container notation
    UML interaction diagram (sequence diagrams)
         used for modelling behaviour of presentation classes (classical UML)

   Alternative: development of a prototype




Sevilla – June 2007 – Nora Koch ©                                                                41
Presentation Model Elements

    «presentation class» groups a set
    of user interface elements
    representing a logic unit of
    presentation
    «page» is a presentation class
    that contains all elements that will
    be presented together to the user
    as response to one request
    user interface elements
          «anchor»
          «text»
          «image»
          «form»
          «anchored collection»
          …


Sevilla – June 2007 – Nora Koch ©          42
Modelling Adaptivity

   UWE uses a technique called Aspect-Oriented Modelling (AOM) for the
   construction of models to specify adaptive Web applications


    What are adaptive Web applications?
    What is AOM?




Sevilla – June 2007 – Nora Koch ©                                        43
Adaptive Web Applications

   Adaptation for
        user properties: knowledge, tasks, preferences, interests
        context properties: location (place and time) & platform (HW, SW, network)
   Update of a user model / context model
        observation of the user behaviour or environment by the system
   Techniques for adaptation
        content adaptation
             inserting and removing text/multimedia features
             content variants
        navigation adaptation
             link ordering
             link annotation
             link hiding
             link generation
        presentation adaptation
             modality adaptation (audio or text)
             language selection
             layout variants (resizing of fonts, images, changing colours)


Sevilla – June 2007 – Nora Koch ©                                                    44
Aspect-Oriented Modelling (AOM) in a Nutshell

     AOM identifies and defines
          join point: well-defined place in a model / program where additional
          features can be attached
          pointcut: set of join points
          advices: feature to add/execute at a join point
     AOM specifies a weaving process (composition) of
          core functional modules (elements of a pointcut)
          aspects (defined by an advice)




Sevilla – June 2007 – Nora Koch ©                                                45
Modelling Adaptivity

   Specification of
        pointcuts (including conditions) and
        advices
   Weaving the result into the web
   application based on
        current state of the user model
        information provided by link traversal
   Example: links only visible for
   registered users to
        download album
        recharge




Sevilla – June 2007 – Nora Koch ©                46
Outline

     Web Engineering Methodologies
     Modelling of Web Applications
     UWE Approach
           Modelling Language
           CASE Tool
           Metamodel
           Development Process




Sevilla – June 2007 – Nora Koch ©    47
CASE Tool ArgoUWE




Sevilla – June 2007 – Nora Koch ©           48
Tool Support for UWE

    Goal
          support of UWE notation for design of Web applications
          separation of concerns (navigation, process, presentation,…)
          implementation of UWE development process allowing for semi-automatic model
          generation
          support of model validation checking models consistency
          code generation




Sevilla – June 2007 – Nora Koch ©                                                       49
ArgoUWE

   Extension of ArgoUML
        advantages
              open source UML CASE tool
              design critics for checking model consistency
              XMI output as basis for code generation
        disadvantages
              still based on UML 1.x
              inherited usability problems

   Implemented as a plugin for ArgoUML 0.16
        extends the NSUML library with the UWE metamodel
        developed within the scope of a couple of diploma theses


   Main difficulty
        lack of ArgoUML evolution towards UML 2.0
   Currently we are developing plugins for other CASE tools


Sevilla – June 2007 – Nora Koch ©                                  50
Model Validation

   Consistency checks for model correctness
   ArgoUML offers cognitive design critics
        background thread
        warning mechanism for model inconsistencies
        wizard for design improvement
        uses critics pane for the critiques
        displays wizards comments in detail pane
   ArgoUWE extends the design critics features
        inherits from ArgoUML (e.g. name collision)
        is extended by wellformedness constraints of UWE (e.g.
        relationship between use case and process model)




Sevilla – June 2007 – Nora Koch ©                                51
Modelling with UWE Stereotypes




Sevilla – June 2007 – Nora Koch ©   52
Modelling Navigation with ArgoUWE




Sevilla – June 2007 – Nora Koch ©   53
Metamodel for UWE




Sevilla – June 2007 – Nora Koch ©             54
UWE Metamodel

   UWE Metamodel is defined as a conservative extension of UML 2.0
        model elements of the UML metamodel are not modified
        all new elements are related by inheritance to at least one model element of the UML
        use of OCL to specify additional semantics of the new elements
    UWE extension
         Core
         Adaptivity




Sevilla – June 2007 – Nora Koch ©                                                              55
UWE Metamodel Characteristics

   UWE metamodel
        reflects separation of concerns in the structure of Core
        shows cross-cutting aspect of adaptation
   UWE metamodel is profileable
         mapping to a UML profile is possible
   UWE metamodel is MOF compatible
         uses XML metadata interchange format (XMI)




Sevilla – June 2007 – Nora Koch ©                                  56
UWE Metamodel: Requirements Model

    Model elements grouped in
    packages
         WebRE Behaviour
         WebRE Structure
    Defines relationships among
    elements
         inheritance (e.g. search defined
         as an extended browse)
         associations (e.g. a browse
         requires a source and a target
         node)
     Defines invariants (OCL
     constraints)
     context Search
     inv: self.parameters -> forAll
          (p | p.location ->
               includes
               (self.source))

                                            (see stereotypes used in the example)

Sevilla – June 2007 – Nora Koch ©                                                   57
UWE Profile: Requirements

    UML stereotype for each concept of the
    requirements package of the UWE
    metamodel
    Extends relationship
    UML metaclass

    Advantages
          no need to specify complete semantic of
          new modelling elements
          use of all UML CASE tools supporting
          UML profiles for modelling Web
          applications




Sevilla – June 2007 – Nora Koch ©                   58
UWE Metamodel: Navigation




                                    (see stereotypes used in the example)


Sevilla – June 2007 – Nora Koch ©                                           59
UWE Profile: Navigation

    UML stereotypes for
    Web specific
    concepts used for the
    specification of the
    hypertext structure
    Extends relationships
    UML metaclasses




Sevilla – June 2007 – Nora Koch ©   60
Meta-associations of the Metamodel

   Representation using associations derived from the UML metamodel
         association {subsets target} for association between NavigationLink and
         NavigationClass
         association {subsets ownedProperty} for composition between NavigationClass and
         NavigationProperty
   Representation stereotyping UML metaclass Dependency
         aggregation between NavigationClass and Menu
         association between AccessPrimitive and NavigationProperty, leading to the following
         constraint
             context Dependency
             inv: self.stereotypes->
                         includes(quot;Primitive2Propertyquot;) implies
                    (self.client.stereotypes->
                            includes(quot;AccessPrimitivequot;) and
                     self.supplier.stereotypes->
                            includes(quot;NavigationPropertyquot;))

             where client and supplier denote the ends of the Dependency relationship

Sevilla – June 2007 – Nora Koch ©                                                               61
UWE Metamodel: Presentation




                                    (see stereotypes used in the example)



Sevilla – June 2007 – Nora Koch ©                                           62
UWE Profile: Presentation




Sevilla – June 2007 – Nora Koch ©   63
UML Extension for Aspects

  Lightweight extension of UML
  An Aspect stereotype as an extension of UML metaclass Package
  composing
        Pointcut package that references to all model elements on which
        Advice package is applied
   Pointcut and Advice packages may contain OCL constraints detailing
        conditions for the application of the aspect
        effects of the aspect




Sevilla – June 2007 – Nora Koch ©                                         64
UWE Metamodel: Adaptivity

  NavigationAnnotation stereotype to model link adaptation
       related to Link
       navigation annotations are attached to navigation links




Sevilla – June 2007 – Nora Koch ©                                65
UWE Development Process




Sevilla – June 2007 – Nora Koch ©        66
Evolution

     1999 - 2003
           based on the Unified Process (UP)
           development is supported by a set of workflows
           based on concepts of role, activity, artifact, tool, ...
     2003 – 2004
           incorporation of elements of agile process
      since 2005
           based on the model-driven development (MDD) principles
            Model-Driven Architecture (MDA) standard of the OMG




 Sevilla – June 2007 – Nora Koch ©                                    67
Model-Driven Development Approaches

      MDD approaches based on
           models and model transformations

     MDD approaches require languages for
          specification of models
                                                                        MDD
          description of metamodels
          definition of model transformations




                                                                                       Model transformations
     MDD in the Web Domain




                                                                         Meta models
                                                               Models
           several methods propose modelling
                OOHDM, OO-H, UWE, WebML, Hera,…
                separation of concerns
                similar Web specific modeling elements
                different notations
           some methods define metamodels for modelling languages
                OO-H, UWE, W2000, WebML, …
           few approaches address model transformations
                OOWS, UWE, WebSA, …


 Sevilla – June 2007 – Nora Koch ©                                                                             68
MDD Principles: Models and Metamodels
    Models
         computational independent model (CIM)
                                                              «metamodel»       M3
         platform independent model (PIM)                         MOF
         platform specific model (PSM)

    Metamodels                                                       «instantiate»
         definition of concepts and relationships among
         concepts                                             «metamodel»
                                                                  UML
         compatibility with the OMG metamodelling
         architecture                                                           M2
         MOF meta-metamodel                                   «metamodel»
               XMI interchange format → tool compatibility       UWE
               (theoretically)
         static semantics given by OCL constraints
         (well-formedness rules)                                    «instantiate»
         basis for tool support
                                                             UWE Application    M1
                                                                Model



Sevilla – June 2007 – Nora Koch ©                                                    69
MDD Principles: Model Transformations
    Model transformations
         CIM PIM, PIM PIM, PIM PSM

    Model transformation languages
         general programming languages
               Java
         graph transformation languages
               Attribute Graph Grammar (AGG)
         query/view/transformation languages
               QVT
               ATL
    OMG standards
         MOF, UML, OCL, XMI, QVT




Sevilla – June 2007 – Nora Koch ©              70
Model Transformations

     Translate between source and target models
           instances of same or different metamodel
     Translation performed by a
     transformation engine
     Transformation engine
     executes rules

     Transformation rules are
           defined at metamodel level
           applied at model level
     Set of rules
           seen as a model
           with a metamodel

     Metamodels are based on
     a metametamodel
                                                  Model transformation pattern (J. Bézivin, 2004)

 Sevilla – June 2007 – Nora Koch ©                                                                  71
Model Transformations

     Translate between source and target models
           Instances of same or different metamodel

     Translation performed by a
     transformation engine
     Transformation engine
     executes rules

     Transformation rules are
           defined at metamodel level
           applied at model level
     Set of rules
           seen as a model
           with a metamodel

     Metamodels are based on
     a metametamodel
                                                  Model transformation pattern (J. Bézivin, 2004)

 Sevilla – June 2007 – Nora Koch ©                                                                  72
Model-Driven Process of UWE

                                     Graphical representation of the
                                     process
                                        process as UML activity diagram
                                        model transformations as stereotyped
                                        UML actions
                                        models as UML object flow states
                                        implicit initial and final state
                                     Types of models in UWE
                                        requirements model (CIM)
                                        functional models (PIM)
                                             content model
                                             navigation model
                                             …
                                        architecture models (PIM)
                                        integration models (PIM)
                                        models for J2EE, .Struts (PSM)

 Sevilla – June 2007 – Nora Koch ©                                         73
UWE Development Process
Requirements to Functional Models




Sevilla – June 2007 – Nora Koch ©   74
Music Portal Example (excerpt)
       Requirements model
            UML use case diagrams
            UML activity diagrams
       Web requirements engineering
       profile (WebRE)
            WebUser,
            navigation, WebProcess
            browse, search, …
            content, node, …




 Sevilla – June 2007 – Nora Koch ©    75
Transformation Requirements to Content (1)
   Source: requirements model (UML activity diagram)
        objects input for Web actions
        objects result of Web actions
   Target: content model
        classes of the content model
   Profile-based transformation




 Sevilla – June 2007 – Nora Koch ©                     76
Transformation Requirements to Content (2)

      Model transformation language
           Query View Transformation (QVT)
           textual notation
      Transformation rule

       transformation ReqContent2ContentClass (webre:WebRE,uwe:UWE) {
            top relation R1 {
                checkonly domain webre c: Content {name = n};
                enforce   domain uwe    cc: Class {name = n}; }
            top relation R2 {cn: String;
                checkonly domain webre p: Property {namespace=c:
                                        Content{}, name = cn};
                enforce domain uwe p1: Property {namespace = cc: Class{};
                                        name = cn }
                when {R1 (c,cc);}
             }
       }




 Sevilla – June 2007 – Nora Koch ©                                          77
Transformation Requirements to Navigation Elements (1)

      Source: requirements model (UML activity diagram)
            search action
            content and node object flow states
      Target: navigation model
            query and index class
            navigation class
            navigation link
      Pattern-based transformation




 Sevilla – June 2007 – Nora Koch ©                        78
Transformation Requirements to Navigation Elements (2)

     Model transformation language
          QVT
          graphical notation
     Transformation rule




 Sevilla – June 2007 – Nora Koch ©                       79
Construction of Functional Models




        UWE metamodel and UWE profile
              navigation elements: navigation class, navigation link, index, …
              presentation elements: presentation class, anchor, image, …


        Case tool ArgoUWE
              extension of ArgoUML
              provides stereotypes
              supports (semi-)automatic execution of transformations


Sevilla – June 2007 – Nora Koch ©                                                80
Transformation Content to Navigation (1)

     Content2Navigation
           generates navigation classes from
           content classes
           adds a navigation links based on
           associations of the content model
     Marking elements
           identification of classes of the content
           model that are relevant for the navigation
           view
           task performed by designer
     Semi-automatic transformation




Sevilla – June 2007 – Nora Koch ©                       81
Transformation Content to Navigation (2)

    Implementation
          Java within CASE tool ArgoUWE
          ATL (ATLAS Transformation Language)
    ATL transformation rule

      rule Class2NavigationClass {
          from c : UWE!Class ( c.oclIsTypeOf( UWE!Class ) )
          to    nc : UWE!NavigationClass (
                       name <- c.name,
                       ownedAttribute <- c.ownedAttribute->select( p |
                                    p.association.oclIsUndefined() ) )
      }




Sevilla – June 2007 – Nora Koch ©                                        82
Refinement of Navigation Model

      Improvement based on patterns
           index for associations with multiplicity greater than one at the directed
           association end
           menu for navigation classes with multiple outgoing associations
      Implementation
           Java in ArgoUWE
           ATL




Sevilla – June 2007 – Nora Koch ©                                                      83
Integration with Architecture Models

    Web Software Architecture (WebSA) approach*
         domain specific language for modelling architectural views of Web applications
               subsystem model
                                           Web Functional Viewpoint                   Web Architectural Viewpoint
               configuration model
               integration model                  Functional                          Subsystem           Configuration
                                                   Models                               Model                Model
                                                 (OO-H,UWE)
         UML profile of architectural
         modelling elements                    Analysis
                                                                             T1
               Web component                                        Merge             Models to Model
               Web port                                                               Transformation

               Web connector
                                               Platform
                                                                      Integration Model
               server page,               Independent Design

               etc.
         QVT-like transformations                              T2            T2'             T2'’

                                             Implementation



                                                J2EE models             .NET models                 Other models



                                               *Santiago Melía, University of Alicante, PhD Thesis (2007)
Sevilla – June 2007 – Nora Koch ©                                                                                         84
Generating “Big Picture” Model

     Generation of an integrated functional model (“big picture” )
          transformation target UML state machine for integration of content, navigation and
          process models
          graph transformation language
          tool: Attributed Graph Grammar System (AGG)
          validation of correctness by model checking




Sevilla – June 2007 – Nora Koch ©                                                              85
Big Picture: Transformation of Navigation Model

     capture navigation nodes as states (with parameters for data)




     Example: music portal: transformation for navigation node “song”




Sevilla – June 2007 – Nora Koch ©                                       86
Big Picture: Transformation of Business Process




Sevilla – June 2007 – Nora Koch ©                 87
Big Picture: Example Transformation of Business Process




Sevilla – June 2007 – Nora Koch ©                         88
Model Validation

    Model transformations for Web applications based on UWE and its UML-based
    metamodel
    Graph transformations into integrating UML state machine
    Model validation by model checking using Hugo/RT
    (http://www.pst.ifi.lmu.de/projekte/hugo)
    Automation of transformation process using Attribute Graph Grammars (AGG)




Sevilla – June 2007 – Nora Koch ©                                               89
Generation of Web Applications

    UWE uses a transformational approach
         to generate data model and presentation layer
         based on content, navigation structure and presentation models
         transformation rules from UWE content model to Java beans
         transformation rules from UWE presentation model to Java Server Pages (JSPs)
    UWE uses an interpretational approach
         using a virtual machine
         to interpret the process model (activity diagrams)
         configuration data for the virtual machine is generated from process and navigation
         model
    Implemented so far
         using the Spring framework
         transformations defined in ATLAS Transformation Language (ATL)




Sevilla – June 2007 – Nora Koch ©                                                              90
Features of Model Transformations
       MDD Type
            CIM to PIM, PIM to PIM, PIM to PSM
       Complexity
            simple, merge
       Use of marks
            types, stereotypes, patterns, explicit marks
       Execution type
            automatic, semi-automatic, manual
       Implementation technique
            general programming language
            graph transformation
            model transformation language




 Sevilla – June 2007 – Nora Koch ©                         91
Classification of UWE Model Transformations

          Characteristics            Type     Complexity      Marks        Execution   Techniques
  Transformation

  Req2Content                    CIM to PIM     simple     WebRE profile   automatic      QVT

  Req2Architecture               CIM to PIM     simple           -          manual          -

  Content2Navigation             PIM to PIM     simple      navigation       semi-      Java, ATL
                                                            relevance      automatic
  NavigationRefinement           PIM to PIM     simple     UWE profile &   automatic      Java
                                                             patterns
  Req2Navigation                 CIM to PIM     merge      WebRE profile   automatic      QVT

  Navigation2Presentation        PIM to PIM     simple      UWE profile    automatic    Java, ATL
  StyleAdjustment                PIM to PIM     merge       style guide    automatic      Java

  Functional2BigPicture          PIM to PIM     merge        patterns      automatic   graph trans-
                                                                                        formations
  Functional&Architecture2       PIM to PIM     merge      UWE & WebSA     automatic     QVT-P
  Integration                                                 profile
  Integration2J2EE               PIM to PSM     merge        patterns      automatic   QVT-P, ATL




 Sevilla – June 2007 – Nora Koch ©                                                                    92
UWE: Current State and Future Work

     Focus on systematisation and automatic generation
     Following the model-driven approach
     Use of UML notation for graphical representation


     Ongoing work
     Main focus on case-tool support
     Final objective to cover all relevant aspects in the development life- cycle of
     Web applications




 Sevilla – June 2007 – Nora Koch ©                                                     93
Summary

     Web engineering methodologies
          since 1993 many methods
          data-oriented, hypertext-oriented, object-oriented, software-oriented
          WebML, WSDM, OOHDM, UWE, WAE,…
     Modelling of Web applications
          four dimensions by modelling Web applications
     UWE is a modelling language
          UML Profile for modelling navigation, presentation,
          process, adaptivity, …
     UWE has a metamodel
          conservative and profileable
     UWE defines a model-driven development process
          based on model transformations
          focus on the use of model transformation languages such as ATL and QVT

Sevilla – June 2007 – Nora Koch ©                                                  94
Literature

   Web Engineering: Systematic Development of Web Applications
   Gerti Kappel, Birgid Pröll, Siegfried Reich, Werner Retschitzegger (eds.)
   dpunkt-verlag (German version), 2003,
   John Wiley & Sons (English version), 2006.
   Web Engineering: Modelling and Implementing Web Applications
   G. Rossi, O. Pastor, D. Schwabe, L. Olsina (eds.), Springer (2007), to appear.
   Metamodelling the Requirements of Web Systems
   María José Escalona and Nora Koch
   2nd International Conference on Web Information Systems and Technologies (WebIST'06), Setubal,
   Portugal, pages 310-317. INSTICC, 2006.
   Modelling Adaptivity with Aspects
   Hubert Baumeister, Alexander Knapp, Nora Koch and Gefei Zhang
   5th International Conference on Web Engineering (ICWE 2005), Sydney, Australia, LNCS 3579, 406-
   416, 2005.
   Modelling Business Processes in Web Applications with ArgoUWE
   Alexander Knapp, Nora Koch and Hanns-Martin Hassler
   7th International Conference on the Unified Modeling Language (UML 2004), Lisboa, Portugal, LNCS
   3273, 69-83, 2004.
   Model-Driven Generation of Web Applications in UWE
  Andreas Kraus, Alexander Knapp and Nora Koch
  3rd International Workshop on Model-Driven Web Engineering (MDWE 2006), Como, Italy, to appear
Sevilla – June 2007 – Nora Koch ©                                                                     95
Muchas gracias!


                                    Nora Koch

                                    nora.koch (at) pst.ifi.lmu.de
                                    www.pst.ifi.lmu.de/~kochn/

                                    uwe (at) pst.ifi.lmu.de



Sevilla – June 2007 – Nora Koch ©                                   96

Más contenido relacionado

La actualidad más candente

Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagramRamakant Soni
 
Eucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebulaEucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebulaAmar Myana
 
McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance sundas Shabbir
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manualPraseela R
 
Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine camunda services GmbH
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture DIPEN SAINI
 
Presentation Use Case Diagram and Use Case Specification.pptx
Presentation Use Case Diagram and Use Case Specification.pptxPresentation Use Case Diagram and Use Case Specification.pptx
Presentation Use Case Diagram and Use Case Specification.pptxazida3
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentationmewaseem
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGERaval Chirag
 
software engineering
software engineeringsoftware engineering
software engineeringTayfun Çelik
 
API Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementAPI Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementBizTalk360
 

La actualidad más candente (20)

Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 
Eucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebulaEucalyptus, Nimbus & OpenNebula
Eucalyptus, Nimbus & OpenNebula
 
Uml
UmlUml
Uml
 
McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manual
 
Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine
 
3 tier architecture
3 tier architecture3 tier architecture
3 tier architecture
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Aneka platform
Aneka platformAneka platform
Aneka platform
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
 
Presentation Use Case Diagram and Use Case Specification.pptx
Presentation Use Case Diagram and Use Case Specification.pptxPresentation Use Case Diagram and Use Case Specification.pptx
Presentation Use Case Diagram and Use Case Specification.pptx
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
software engineering
software engineeringsoftware engineering
software engineering
 
API Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementAPI Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API Management
 

Similar a UML-based Web Engineering (UWE)

UML-Based Web Engineering
UML-Based Web EngineeringUML-Based Web Engineering
UML-Based Web Engineeringelliando dias
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)swethadln
 
Towards a Common Metamodel for the Development of Web Applications
Towards a Common Metamodel for the Development of Web ApplicationsTowards a Common Metamodel for the Development of Web Applications
Towards a Common Metamodel for the Development of Web Applicationselliando dias
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applicationsidescitation
 
Metamodels evaluation of web engineering methodologies to develop web applica...
Metamodels evaluation of web engineering methodologies to develop web applica...Metamodels evaluation of web engineering methodologies to develop web applica...
Metamodels evaluation of web engineering methodologies to develop web applica...IJCSEA Journal
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011MDDAY11
 
UML - Unified Modelling Language
UML - Unified Modelling LanguageUML - Unified Modelling Language
UML - Unified Modelling LanguageAnoop VJ
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Marwa Ali Eissa
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Umlguest514814
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000eudal
 

Similar a UML-based Web Engineering (UWE) (20)

UML-Based Web Engineering
UML-Based Web EngineeringUML-Based Web Engineering
UML-Based Web Engineering
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
 
Towards a Common Metamodel for the Development of Web Applications
Towards a Common Metamodel for the Development of Web ApplicationsTowards a Common Metamodel for the Development of Web Applications
Towards a Common Metamodel for the Development of Web Applications
 
Chapter9
Chapter9Chapter9
Chapter9
 
Uml basics
Uml basicsUml basics
Uml basics
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
3.UML Diagrams.pptx
3.UML Diagrams.pptx3.UML Diagrams.pptx
3.UML Diagrams.pptx
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applications
 
Metamodels evaluation of web engineering methodologies to develop web applica...
Metamodels evaluation of web engineering methodologies to develop web applica...Metamodels evaluation of web engineering methodologies to develop web applica...
Metamodels evaluation of web engineering methodologies to develop web applica...
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Esb Overview
Esb OverviewEsb Overview
Esb Overview
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
 
Esb
EsbEsb
Esb
 
Fundamentals of Mule Esb
Fundamentals of Mule EsbFundamentals of Mule Esb
Fundamentals of Mule Esb
 
UML - Unified Modelling Language
UML - Unified Modelling LanguageUML - Unified Modelling Language
UML - Unified Modelling Language
 
l1_introuml.pdf
l1_introuml.pdfl1_introuml.pdf
l1_introuml.pdf
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000
 

Más de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Más de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

UML-based Web Engineering (UWE)

  • 1. UML-based Web Engineering (UWE) Software engineering approach for Web domain Based on OMG standards, such as UML, MDA, OCL, XMI, … Domain specific modeling language (DSL) MOF-based metamodel, OCL constraints Open source CASE tool support Sevilla – June 2007 – Nora Koch © 15
  • 2. UWE in a Nutshell UWE is a an engineering approach for the development of Web applications Main characteristic is the use of UML for all models “pure” UML whenever possible UML extension for Web specific features UML profile Focuses on systematisation and automatic generation UWE comprises a modelling language for the graphical representation of models of Web applications a method (technique) supporting semi-automatic generation a metamodel for UWE modelling elements a process supporting the development life-cycle of Web applications a case-tool supporting the development of Web applications ArgoUWE editor for the design set of transformations for model-to-model and model-to-code transformations Sevilla – June 2007 – Nora Koch © 16
  • 3. Modelling Language UWE Sevilla – June 2007 – Nora Koch © 17
  • 4. Why UML? UML is a graphical language for specifying, constructing and documenting software artifacts UML is a de facto industry standard and an OMG standard UML includes notation diagram types Object Constraints Language (OCL) metamodel well-formedness rules UML does not provide a development process How expressive is UML for the development of Web applications? UML does not include specific Web model elements UML defines extension mechanisms UML profiles Sevilla – June 2007 – Nora Koch © 18
  • 5. “Pure” UML for Modelling Web Applications Use of UML (without extension) whenever possible Example: UML deployment diagram used to : Web Browser document physical nodes Client distribution of web components ShoppingCart physical node UML dependency «use» : Application : Web Server Server «use» DB JSP ShoppingCart ShoppingCart UML component «realize» «realize» design class «trace» «presentation class» ShoppingCart ShoppingCart Sevilla – June 2007 – Nora Koch © 19
  • 6. UML Profiles UML extension is called a UML profile if based on extension mechanisms provided by UML stereotypes for new metaclasses domain specific: EJB «bean», «session», «entity», … defined in the UML: «metaclass», «trace», «file», … tagged values for metaattributes OCL constraints for invariants, pre- and postconditions eases UML profile = light weight extension tool support Heavy weight extension uses other diagram types not defined in the UML uses different notation Sevilla – June 2007 – Nora Koch © 20
  • 7. Analysis and Design Models in UWE Analysis models of a Web application functional requirements are specified by use case model workflows data (content) requirements are specified by domain model Design models of a Web application information aspects content model hypertext structure and navigation functionality navigation model layout schema presentation model functionality process model adaptivity model Sevilla – June 2007 – Nora Koch © 21
  • 8. Example: Simple Music Portal Inspired by www.mp3.com offers albums for downloading contains information about albums, songs, singer, composer, and publisher this information is available for free registered users can search albums and download them for downloading they need to have enough credit on their prepaid account accounts are rechargeable provides a guided tour through the Web application Sevilla – June 2007 – Nora Koch © 22
  • 9. Modelling Requirements with UWE Use cases are the most appropriate/used technique for modelling requirements Graphical visualization by UML use case diagram to model required functionality distinguishes between navigation and process use cases Modeling constructs «navigation» «web process» (in ArgoUWE normal use case) Sevilla – June 2007 – Nora Koch © 23
  • 10. Modelling Business Processes Business process can be modelled as workflows Workflows are visualized by UML activity diagram set of actions control flow elements as decisions, merges, forks, joins, etc. object flows including relevant objects (instance of classes) Example: Download Album RE UML Icon Element Metaclass ? Sevilla – June 2007 – Nora Koch © 24
  • 11. Content Modelling Representation with “pure” UML is sufficient no additional semantics required UML class diagram UML class diagrams used at analysis-level and design-level domain concepts represented by classes units of information users of the system (user model) relationship between concepts represented by associations whole/part relationship shown by aggregations and composition hierarchical dependencies depicted by generalization/specialization (inheritance) multiplicities … Sevilla – June 2007 – Nora Koch © 25
  • 12. Navigation Modelling Goals to represent nodes and links of the hypertext structure to design navigation paths to avoid disorientation and cognitive overload Result: navigation model represented by a UML class diagram uses specific modelling elements for Web concepts Modelling elements basic elements access primitives Other methodologies own notation for hypertext elements different diagram types: UML state diagram or own diagram type Sevilla – June 2007 – Nora Koch © 26
  • 13. Basic Navigation Elements Navigation elements used to model the core hypertext structure navigation class specifies a hypertext node visited by a user through browsing (related to a content class) navigation link specifies a hyperlink used to access the target navigation object from the source navigation object Stereotypes for basic navigation elements «navigation class» «navigation link» Sevilla – June 2007 – Nora Koch © 27
  • 14. Navigation Model: Hypertext Structure Sevilla – June 2007 – Nora Koch © 28
  • 15. Access Primitives Additional elements for the selection of one target navigation element from a set of instances of a navigation element index guidedTour query Shortcuts for more complex constructs (if represented in UML without extension) Sevilla – June 2007 – Nora Koch © 29
  • 16. Access Primitive: Index Index specifies direct access to all instances of the target by providing a list of all elements from which one can be selected to continue navigating in the Web application contains an arbitrary number of index items each index item is an object which has a name and owns a link to an instance of a navigation class UML stereotype: «index» Sevilla – June 2007 – Nora Koch © 30
  • 17. Access Primitives: Query and Guided Tour Query represents the possibility to search for instances of the target node where instances are selected based on the property FilterExpression UML stereotype: «query» GuidedTour provides sequential access to instances of the target node order in the sequential access is given by a property SortExpression different options may be specified circular access to the instances access is triggered by a user-interaction UML stereotype: «guidedTour» Sevilla – June 2007 – Nora Koch © 31
  • 18. Navigation Model Elements: Menu and External Links Menus are used to structure the outgoing links from a node associated to a navigation class by composition consists of a set of links to heterogeneous elements, such as indexes, guided tours, queries, instances instances of navigation classes or other menus UML stereotype: «menu» External Links are links pointing to nodes that do not belong to the Web application UML stereotype:«external link» Sevilla – June 2007 – Nora Koch © 32
  • 19. Navigation Model: Hypertext Structure Sevilla – June 2007 – Nora Koch © 33
  • 20. Modelling Navigation Systematic enhancement of the navigation structure model by indexes for all navigation links which have multiplicity > 1 at the directed association end menus for all navigation classes with more than 1 outgoing association Design decision to include guided tour instead of index queries tagged value home to indicate starting point of the application (node without ingoing links) tagged value landmark to indicate that a node is reachable from everywhere (all other nodes include a link to the landmark node) Construction of views of the navigation space partial views if the number of nodes is large different views for different users different views for different environments Sevilla – June 2007 – Nora Koch © 34
  • 21. Modelling Processes in UWE Navigation model of a Web application represents the static information structure accessible to a user of the system specifies browsing (navigation) functionality Process model represent the dynamic aspects of a Web application specifies functionality, such as transactions and complex workflows of activities Process modelling consists of definition of process classes (for non-navigation use cases) integration of these process classes in the navigation model description of the behaviour through a process flow represented as UML activity diagram Sevilla – June 2007 – Nora Koch © 35
  • 22. Process Elements Process class represents the process through which the user will be guided in the Web application for complex process that require more than a single class, an additional process model is built UML stereotype: «process class» Process link is used to model the association between a «navigation class» and a «process class» indicates entry points and exit points of processes within the navigation structure UML stereotype: «process link» Sevilla – June 2007 – Nora Koch © 36
  • 23. Navigation Model: Including Web Processes Sevilla – June 2007 – Nora Koch © 37
  • 24. Modelling the Process Flow The behavior of a Web process is defined by the process flow model represented by an UML activity diagram result of the refinement of the activity diagram drawn for requirements specification no need of use of stereotypes Process flow consists of flow of execution represented by activity nodes connected by activity edges control nodes that provide flow-of-control constructs, such as decisions and synchronization object nodes that represent data flowing along object flow edges or pins associated to the actions semantic of activities is based on control and data token flows, similar to Petri nets Sevilla – June 2007 – Nora Koch © 38
  • 25. Requirements: UML Activity Diagrams for Login Sevilla – June 2007 – Nora Koch © 39
  • 26. Process Model: UML Activity Diagram: Login Sevilla – June 2007 – Nora Koch © 40
  • 27. Modelling Presentation Representation of layout for the underlying navigation and process models is an abstract presentation concrete presentation requires specification of additional physical properties of the layout colour position Presentation classes represent Web pages or part of pages composition of user interface elements hierarchical composition of presentation elements UML class diagram for the structure of the presentation using UML container notation UML interaction diagram (sequence diagrams) used for modelling behaviour of presentation classes (classical UML) Alternative: development of a prototype Sevilla – June 2007 – Nora Koch © 41
  • 28. Presentation Model Elements «presentation class» groups a set of user interface elements representing a logic unit of presentation «page» is a presentation class that contains all elements that will be presented together to the user as response to one request user interface elements «anchor» «text» «image» «form» «anchored collection» … Sevilla – June 2007 – Nora Koch © 42
  • 29. Modelling Adaptivity UWE uses a technique called Aspect-Oriented Modelling (AOM) for the construction of models to specify adaptive Web applications What are adaptive Web applications? What is AOM? Sevilla – June 2007 – Nora Koch © 43
  • 30. Adaptive Web Applications Adaptation for user properties: knowledge, tasks, preferences, interests context properties: location (place and time) & platform (HW, SW, network) Update of a user model / context model observation of the user behaviour or environment by the system Techniques for adaptation content adaptation inserting and removing text/multimedia features content variants navigation adaptation link ordering link annotation link hiding link generation presentation adaptation modality adaptation (audio or text) language selection layout variants (resizing of fonts, images, changing colours) Sevilla – June 2007 – Nora Koch © 44
  • 31. Aspect-Oriented Modelling (AOM) in a Nutshell AOM identifies and defines join point: well-defined place in a model / program where additional features can be attached pointcut: set of join points advices: feature to add/execute at a join point AOM specifies a weaving process (composition) of core functional modules (elements of a pointcut) aspects (defined by an advice) Sevilla – June 2007 – Nora Koch © 45
  • 32. Modelling Adaptivity Specification of pointcuts (including conditions) and advices Weaving the result into the web application based on current state of the user model information provided by link traversal Example: links only visible for registered users to download album recharge Sevilla – June 2007 – Nora Koch © 46
  • 33. Outline Web Engineering Methodologies Modelling of Web Applications UWE Approach Modelling Language CASE Tool Metamodel Development Process Sevilla – June 2007 – Nora Koch © 47
  • 34. CASE Tool ArgoUWE Sevilla – June 2007 – Nora Koch © 48
  • 35. Tool Support for UWE Goal support of UWE notation for design of Web applications separation of concerns (navigation, process, presentation,…) implementation of UWE development process allowing for semi-automatic model generation support of model validation checking models consistency code generation Sevilla – June 2007 – Nora Koch © 49
  • 36. ArgoUWE Extension of ArgoUML advantages open source UML CASE tool design critics for checking model consistency XMI output as basis for code generation disadvantages still based on UML 1.x inherited usability problems Implemented as a plugin for ArgoUML 0.16 extends the NSUML library with the UWE metamodel developed within the scope of a couple of diploma theses Main difficulty lack of ArgoUML evolution towards UML 2.0 Currently we are developing plugins for other CASE tools Sevilla – June 2007 – Nora Koch © 50
  • 37. Model Validation Consistency checks for model correctness ArgoUML offers cognitive design critics background thread warning mechanism for model inconsistencies wizard for design improvement uses critics pane for the critiques displays wizards comments in detail pane ArgoUWE extends the design critics features inherits from ArgoUML (e.g. name collision) is extended by wellformedness constraints of UWE (e.g. relationship between use case and process model) Sevilla – June 2007 – Nora Koch © 51
  • 38. Modelling with UWE Stereotypes Sevilla – June 2007 – Nora Koch © 52
  • 39. Modelling Navigation with ArgoUWE Sevilla – June 2007 – Nora Koch © 53
  • 40. Metamodel for UWE Sevilla – June 2007 – Nora Koch © 54
  • 41. UWE Metamodel UWE Metamodel is defined as a conservative extension of UML 2.0 model elements of the UML metamodel are not modified all new elements are related by inheritance to at least one model element of the UML use of OCL to specify additional semantics of the new elements UWE extension Core Adaptivity Sevilla – June 2007 – Nora Koch © 55
  • 42. UWE Metamodel Characteristics UWE metamodel reflects separation of concerns in the structure of Core shows cross-cutting aspect of adaptation UWE metamodel is profileable mapping to a UML profile is possible UWE metamodel is MOF compatible uses XML metadata interchange format (XMI) Sevilla – June 2007 – Nora Koch © 56
  • 43. UWE Metamodel: Requirements Model Model elements grouped in packages WebRE Behaviour WebRE Structure Defines relationships among elements inheritance (e.g. search defined as an extended browse) associations (e.g. a browse requires a source and a target node) Defines invariants (OCL constraints) context Search inv: self.parameters -> forAll (p | p.location -> includes (self.source)) (see stereotypes used in the example) Sevilla – June 2007 – Nora Koch © 57
  • 44. UWE Profile: Requirements UML stereotype for each concept of the requirements package of the UWE metamodel Extends relationship UML metaclass Advantages no need to specify complete semantic of new modelling elements use of all UML CASE tools supporting UML profiles for modelling Web applications Sevilla – June 2007 – Nora Koch © 58
  • 45. UWE Metamodel: Navigation (see stereotypes used in the example) Sevilla – June 2007 – Nora Koch © 59
  • 46. UWE Profile: Navigation UML stereotypes for Web specific concepts used for the specification of the hypertext structure Extends relationships UML metaclasses Sevilla – June 2007 – Nora Koch © 60
  • 47. Meta-associations of the Metamodel Representation using associations derived from the UML metamodel association {subsets target} for association between NavigationLink and NavigationClass association {subsets ownedProperty} for composition between NavigationClass and NavigationProperty Representation stereotyping UML metaclass Dependency aggregation between NavigationClass and Menu association between AccessPrimitive and NavigationProperty, leading to the following constraint context Dependency inv: self.stereotypes-> includes(quot;Primitive2Propertyquot;) implies (self.client.stereotypes-> includes(quot;AccessPrimitivequot;) and self.supplier.stereotypes-> includes(quot;NavigationPropertyquot;)) where client and supplier denote the ends of the Dependency relationship Sevilla – June 2007 – Nora Koch © 61
  • 48. UWE Metamodel: Presentation (see stereotypes used in the example) Sevilla – June 2007 – Nora Koch © 62
  • 49. UWE Profile: Presentation Sevilla – June 2007 – Nora Koch © 63
  • 50. UML Extension for Aspects Lightweight extension of UML An Aspect stereotype as an extension of UML metaclass Package composing Pointcut package that references to all model elements on which Advice package is applied Pointcut and Advice packages may contain OCL constraints detailing conditions for the application of the aspect effects of the aspect Sevilla – June 2007 – Nora Koch © 64
  • 51. UWE Metamodel: Adaptivity NavigationAnnotation stereotype to model link adaptation related to Link navigation annotations are attached to navigation links Sevilla – June 2007 – Nora Koch © 65
  • 52. UWE Development Process Sevilla – June 2007 – Nora Koch © 66
  • 53. Evolution 1999 - 2003 based on the Unified Process (UP) development is supported by a set of workflows based on concepts of role, activity, artifact, tool, ... 2003 – 2004 incorporation of elements of agile process since 2005 based on the model-driven development (MDD) principles Model-Driven Architecture (MDA) standard of the OMG Sevilla – June 2007 – Nora Koch © 67
  • 54. Model-Driven Development Approaches MDD approaches based on models and model transformations MDD approaches require languages for specification of models MDD description of metamodels definition of model transformations Model transformations MDD in the Web Domain Meta models Models several methods propose modelling OOHDM, OO-H, UWE, WebML, Hera,… separation of concerns similar Web specific modeling elements different notations some methods define metamodels for modelling languages OO-H, UWE, W2000, WebML, … few approaches address model transformations OOWS, UWE, WebSA, … Sevilla – June 2007 – Nora Koch © 68
  • 55. MDD Principles: Models and Metamodels Models computational independent model (CIM) «metamodel» M3 platform independent model (PIM) MOF platform specific model (PSM) Metamodels «instantiate» definition of concepts and relationships among concepts «metamodel» UML compatibility with the OMG metamodelling architecture M2 MOF meta-metamodel «metamodel» XMI interchange format → tool compatibility UWE (theoretically) static semantics given by OCL constraints (well-formedness rules) «instantiate» basis for tool support UWE Application M1 Model Sevilla – June 2007 – Nora Koch © 69
  • 56. MDD Principles: Model Transformations Model transformations CIM PIM, PIM PIM, PIM PSM Model transformation languages general programming languages Java graph transformation languages Attribute Graph Grammar (AGG) query/view/transformation languages QVT ATL OMG standards MOF, UML, OCL, XMI, QVT Sevilla – June 2007 – Nora Koch © 70
  • 57. Model Transformations Translate between source and target models instances of same or different metamodel Translation performed by a transformation engine Transformation engine executes rules Transformation rules are defined at metamodel level applied at model level Set of rules seen as a model with a metamodel Metamodels are based on a metametamodel Model transformation pattern (J. Bézivin, 2004) Sevilla – June 2007 – Nora Koch © 71
  • 58. Model Transformations Translate between source and target models Instances of same or different metamodel Translation performed by a transformation engine Transformation engine executes rules Transformation rules are defined at metamodel level applied at model level Set of rules seen as a model with a metamodel Metamodels are based on a metametamodel Model transformation pattern (J. Bézivin, 2004) Sevilla – June 2007 – Nora Koch © 72
  • 59. Model-Driven Process of UWE Graphical representation of the process process as UML activity diagram model transformations as stereotyped UML actions models as UML object flow states implicit initial and final state Types of models in UWE requirements model (CIM) functional models (PIM) content model navigation model … architecture models (PIM) integration models (PIM) models for J2EE, .Struts (PSM) Sevilla – June 2007 – Nora Koch © 73
  • 60. UWE Development Process Requirements to Functional Models Sevilla – June 2007 – Nora Koch © 74
  • 61. Music Portal Example (excerpt) Requirements model UML use case diagrams UML activity diagrams Web requirements engineering profile (WebRE) WebUser, navigation, WebProcess browse, search, … content, node, … Sevilla – June 2007 – Nora Koch © 75
  • 62. Transformation Requirements to Content (1) Source: requirements model (UML activity diagram) objects input for Web actions objects result of Web actions Target: content model classes of the content model Profile-based transformation Sevilla – June 2007 – Nora Koch © 76
  • 63. Transformation Requirements to Content (2) Model transformation language Query View Transformation (QVT) textual notation Transformation rule transformation ReqContent2ContentClass (webre:WebRE,uwe:UWE) { top relation R1 { checkonly domain webre c: Content {name = n}; enforce domain uwe cc: Class {name = n}; } top relation R2 {cn: String; checkonly domain webre p: Property {namespace=c: Content{}, name = cn}; enforce domain uwe p1: Property {namespace = cc: Class{}; name = cn } when {R1 (c,cc);} } } Sevilla – June 2007 – Nora Koch © 77
  • 64. Transformation Requirements to Navigation Elements (1) Source: requirements model (UML activity diagram) search action content and node object flow states Target: navigation model query and index class navigation class navigation link Pattern-based transformation Sevilla – June 2007 – Nora Koch © 78
  • 65. Transformation Requirements to Navigation Elements (2) Model transformation language QVT graphical notation Transformation rule Sevilla – June 2007 – Nora Koch © 79
  • 66. Construction of Functional Models UWE metamodel and UWE profile navigation elements: navigation class, navigation link, index, … presentation elements: presentation class, anchor, image, … Case tool ArgoUWE extension of ArgoUML provides stereotypes supports (semi-)automatic execution of transformations Sevilla – June 2007 – Nora Koch © 80
  • 67. Transformation Content to Navigation (1) Content2Navigation generates navigation classes from content classes adds a navigation links based on associations of the content model Marking elements identification of classes of the content model that are relevant for the navigation view task performed by designer Semi-automatic transformation Sevilla – June 2007 – Nora Koch © 81
  • 68. Transformation Content to Navigation (2) Implementation Java within CASE tool ArgoUWE ATL (ATLAS Transformation Language) ATL transformation rule rule Class2NavigationClass { from c : UWE!Class ( c.oclIsTypeOf( UWE!Class ) ) to nc : UWE!NavigationClass ( name <- c.name, ownedAttribute <- c.ownedAttribute->select( p | p.association.oclIsUndefined() ) ) } Sevilla – June 2007 – Nora Koch © 82
  • 69. Refinement of Navigation Model Improvement based on patterns index for associations with multiplicity greater than one at the directed association end menu for navigation classes with multiple outgoing associations Implementation Java in ArgoUWE ATL Sevilla – June 2007 – Nora Koch © 83
  • 70. Integration with Architecture Models Web Software Architecture (WebSA) approach* domain specific language for modelling architectural views of Web applications subsystem model Web Functional Viewpoint Web Architectural Viewpoint configuration model integration model Functional Subsystem Configuration Models Model Model (OO-H,UWE) UML profile of architectural modelling elements Analysis T1 Web component Merge Models to Model Web port Transformation Web connector Platform Integration Model server page, Independent Design etc. QVT-like transformations T2 T2' T2'’ Implementation J2EE models .NET models Other models *Santiago Melía, University of Alicante, PhD Thesis (2007) Sevilla – June 2007 – Nora Koch © 84
  • 71. Generating “Big Picture” Model Generation of an integrated functional model (“big picture” ) transformation target UML state machine for integration of content, navigation and process models graph transformation language tool: Attributed Graph Grammar System (AGG) validation of correctness by model checking Sevilla – June 2007 – Nora Koch © 85
  • 72. Big Picture: Transformation of Navigation Model capture navigation nodes as states (with parameters for data) Example: music portal: transformation for navigation node “song” Sevilla – June 2007 – Nora Koch © 86
  • 73. Big Picture: Transformation of Business Process Sevilla – June 2007 – Nora Koch © 87
  • 74. Big Picture: Example Transformation of Business Process Sevilla – June 2007 – Nora Koch © 88
  • 75. Model Validation Model transformations for Web applications based on UWE and its UML-based metamodel Graph transformations into integrating UML state machine Model validation by model checking using Hugo/RT (http://www.pst.ifi.lmu.de/projekte/hugo) Automation of transformation process using Attribute Graph Grammars (AGG) Sevilla – June 2007 – Nora Koch © 89
  • 76. Generation of Web Applications UWE uses a transformational approach to generate data model and presentation layer based on content, navigation structure and presentation models transformation rules from UWE content model to Java beans transformation rules from UWE presentation model to Java Server Pages (JSPs) UWE uses an interpretational approach using a virtual machine to interpret the process model (activity diagrams) configuration data for the virtual machine is generated from process and navigation model Implemented so far using the Spring framework transformations defined in ATLAS Transformation Language (ATL) Sevilla – June 2007 – Nora Koch © 90
  • 77. Features of Model Transformations MDD Type CIM to PIM, PIM to PIM, PIM to PSM Complexity simple, merge Use of marks types, stereotypes, patterns, explicit marks Execution type automatic, semi-automatic, manual Implementation technique general programming language graph transformation model transformation language Sevilla – June 2007 – Nora Koch © 91
  • 78. Classification of UWE Model Transformations Characteristics Type Complexity Marks Execution Techniques Transformation Req2Content CIM to PIM simple WebRE profile automatic QVT Req2Architecture CIM to PIM simple - manual - Content2Navigation PIM to PIM simple navigation semi- Java, ATL relevance automatic NavigationRefinement PIM to PIM simple UWE profile & automatic Java patterns Req2Navigation CIM to PIM merge WebRE profile automatic QVT Navigation2Presentation PIM to PIM simple UWE profile automatic Java, ATL StyleAdjustment PIM to PIM merge style guide automatic Java Functional2BigPicture PIM to PIM merge patterns automatic graph trans- formations Functional&Architecture2 PIM to PIM merge UWE & WebSA automatic QVT-P Integration profile Integration2J2EE PIM to PSM merge patterns automatic QVT-P, ATL Sevilla – June 2007 – Nora Koch © 92
  • 79. UWE: Current State and Future Work Focus on systematisation and automatic generation Following the model-driven approach Use of UML notation for graphical representation Ongoing work Main focus on case-tool support Final objective to cover all relevant aspects in the development life- cycle of Web applications Sevilla – June 2007 – Nora Koch © 93
  • 80. Summary Web engineering methodologies since 1993 many methods data-oriented, hypertext-oriented, object-oriented, software-oriented WebML, WSDM, OOHDM, UWE, WAE,… Modelling of Web applications four dimensions by modelling Web applications UWE is a modelling language UML Profile for modelling navigation, presentation, process, adaptivity, … UWE has a metamodel conservative and profileable UWE defines a model-driven development process based on model transformations focus on the use of model transformation languages such as ATL and QVT Sevilla – June 2007 – Nora Koch © 94
  • 81. Literature Web Engineering: Systematic Development of Web Applications Gerti Kappel, Birgid Pröll, Siegfried Reich, Werner Retschitzegger (eds.) dpunkt-verlag (German version), 2003, John Wiley & Sons (English version), 2006. Web Engineering: Modelling and Implementing Web Applications G. Rossi, O. Pastor, D. Schwabe, L. Olsina (eds.), Springer (2007), to appear. Metamodelling the Requirements of Web Systems María José Escalona and Nora Koch 2nd International Conference on Web Information Systems and Technologies (WebIST'06), Setubal, Portugal, pages 310-317. INSTICC, 2006. Modelling Adaptivity with Aspects Hubert Baumeister, Alexander Knapp, Nora Koch and Gefei Zhang 5th International Conference on Web Engineering (ICWE 2005), Sydney, Australia, LNCS 3579, 406- 416, 2005. Modelling Business Processes in Web Applications with ArgoUWE Alexander Knapp, Nora Koch and Hanns-Martin Hassler 7th International Conference on the Unified Modeling Language (UML 2004), Lisboa, Portugal, LNCS 3273, 69-83, 2004. Model-Driven Generation of Web Applications in UWE Andreas Kraus, Alexander Knapp and Nora Koch 3rd International Workshop on Model-Driven Web Engineering (MDWE 2006), Como, Italy, to appear Sevilla – June 2007 – Nora Koch © 95
  • 82. Muchas gracias! Nora Koch nora.koch (at) pst.ifi.lmu.de www.pst.ifi.lmu.de/~kochn/ uwe (at) pst.ifi.lmu.de Sevilla – June 2007 – Nora Koch © 96