SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
UML-BASED
             WEB
     ENGINEERING




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

                     n    Different views (models) and modeling elements
                     n    Different notations

                  Goal: Unification at high level of abstraction
                                        ⇓
                  Common metamodel for Web methodologies

                     n    Better comparison and integration
                     n    Fundamental for tool support and code generation
                     n    Allows different development processes
                     n    Allows use of subsets of modeling elements (like UML)
                     n    Allows different notations (concrete syntax)

  Andreas Kraus          Towards a Common Metamodel for the Development of Web Applications   2
UML-BASED
        WEB
ENGINEERING         Overview


    n         About UWE
    n         A Step Towards the Common Metamodel: UWE Metamodel
    n         Mapping to the Notation
    n         Conclusions and Future Work




  Andreas Kraus       Towards a Common Metamodel for the Development of Web Applications   3
UML-BASED
        WEB
ENGINEERING              About UWE
         n    UML-based Web Engineering (UWE) is an object-oriented approach
              based on UML and the Unified Process
         n    Main focus of UWE is the systematic design followed by a semi-
              automatic generation of Web applications

               n   Systematic design supported by CASE-                         OpenUWE
                   tool ArgoUWE – an extension of                              development
                   ArgoUML                                                     environment
               n   Semi-automatic generation supported
                   by UWEXML – a model-driven Code
                   Generator for deployment to an XML
                   publishing framework
                                                                                   UWE
                                                                                 metamodel

  Andreas Kraus          Towards a Common Metamodel for the Development of Web Applications   4
UML-BASED
        WEB
ENGINEERING            UWE Metamodel
    n         Definition of concepts and relationships                                 MOF          M3
              among concepts
    n         Compatibility with the OMG metamodeling
              architecture
              n   MOF meta-metamodel                                                   UML

              n   XMI interchange format → tool compatibility                                       M2
    n         Conservative extension of the UML                                        UWE
              metamodel
    n         Static semantics given by OCL constraints
              (Well-formedness rules)
    n         Basis for the open tool suite OpenUWE                              ApplicationModel   M1


  Andreas Kraus           Towards a Common Metamodel for the Development of Web Applications         5
UML-BASED
        WEB
ENGINEERING            Conservative Extension
    n         UML modeling elements
              n   are not modified, e.g. by adding additional features
              n   are extended by inheritance
    n         Valid UML model ⇒ valid UWE model
                                                                        Class
                              Class

                                                                   ConceptualClass


                          NavigationClass
                                                                   NavigationClass


                           Not allowed for conservative extensions!

  Andreas Kraus            Towards a Common Metamodel for the Development of Web Applications   6
UML-BASED
        WEB
ENGINEERING          Package Structure
                                                   UWE

                Behavioral            Behavioral           Model                 Model
                Elements              Elements
                                     Behavioral          Management
                                                           Model               Management
                                     Elements            Management



                                                Foundation
                                                Foundation




                                                Foundation




              = UML Metamodel                                                  = UWE Metamodel
  Andreas Kraus          Towards a Common Metamodel for the Development of Web Applications   7
UML-BASED
        WEB
ENGINEERING         Package Structure                                      (cont.)


                               Foundation
                               Foundation                                     Behavioral
                                                                              Elements
                                                                              Elements
                                  Core
                                                                     Adaptation            Task
              Conceptual       Navigation      Presentation




                                 Context
                                                                              Model
                     User                   Environment                     Management




                                            „Separation of Concerns“

  Andreas Kraus            Towards a Common Metamodel for the Development of Web Applications     8
UML-BASED
        WEB
ENGINEERING                Conceptual Package
                          Feature
                          Feature                   {ordered}                 Classifier                            AssociationEnd
                     (Foundation.Core)        *                 0..1      (Foundation.Core)     1        *         (Foundation.Core)
                                                                                                                   (Foundation.Core)

                                         +feature                +owner                   +participant   +association 2..*   +connection



                                                                                                                             {ordered}
      BehavioralFeature            StructuralFeature
      (Foundation.Core)            (Foundation.Core)


                                                                                                                        1

           Operation                    Attribute                               Class                                  Association
       (Foundation.Core)            (Foundation.Core)                      (Foundation.Core)                        (Foundation.Core)




     ConceptualOperation           ConceptualAttribute                     ConceptualClass                       ConceptualAssociation



              = UML Metamodel                                                                                = UWE Metamodel
  Andreas Kraus              Towards a Common Metamodel for the Development of Web Applications                                            9
UML-BASED
        WEB
ENGINEERING            Navigation Package

                            Class
                            Class                                                          Association
                                                                                           Association
                       (Foundation.Core)                                                (Foundation.Core)
                                                                                        (Foundation.Core)


                                              +source                     +outLinks
                                                                          +outLinks
                        NavigationNode
                         NavigationNode       1                                  *            Link
                     isLandmark : Boolean                  {derived}
                                                           {derived}                  isAutomatic : Boolean

                                               +target                     +inLinks
                                                                           +inLinks                           1..*
                                               1..*        {derived}
                                                           {derived}             *



   NavigationClass          Menu              ExternalNode             ExternalLink       NavigationLink             TaskLink
                                            url : String
       0..1             *          *




  Andreas Kraus             Towards a Common Metamodel for the Development of Web Applications                                  10
UML-BASED
        WEB
ENGINEERING          Navigation Package                                             (cont.)

                                                               NavigationNode




           ConceptualClass           +derivedFrom              NavigationClass
    (UWE.Foundation.Core.Conceptual) 1                   *

                                                                        * <<implicit>>

          ConceptualAttribute        +derivedFromAttributes   NavigationAttribute            Attribute
    (UWE.Foundation.Core.Conceptual) *                    *                              (Foundation.Core)



      Same example constraint in OCL:
      Example of a well-formedness rule:

      context   NavigationClass
           “Navigation attributes are derived from from conceptual attributes.
      inv:      self.feature->select( oclIsKindOf(NavigationAttribute) ).derivedFromAttributes->
           These navigation attributes have to be reachable by navigation
                    forAll( f | self.derivedFrom.transitiveClosure->exists( feature = f ) )
              through the model“

  Andreas Kraus           Towards a Common Metamodel for the Development of Web Applications                 11
UML-BASED
        WEB
ENGINEERING            Mapping to the Notation
    n             Mapping to extended UML syntax in a non-standard way
              n     i.e. not using extension mechanisms of the UML
              n     Standard UML CASE tools can not be used
              n     Good documentation required


        Example:
                                                                                isLandmark
                          NavigationNode
                       isLandmark : Boolean
                                                                        MyNavigationClass
                         NavigationClass



                      abstract syntax                                       notation

  Andreas Kraus            Towards a Common Metamodel for the Development of Web Applications   12
UML-BASED
        WEB
ENGINEERING             Mapping to the Notation                                             (cont.)

     n            Mapping to a UML Profile
              n     Mapping uses standard extension mechanisms like stereotypes,
                    tagged values and OCL constraints
              n     Standard UML CASE tools can be used
              n     Compatibility with the UML XMI interchange format

              n     Profile support
                    n   Active:       by plug-ins, tool extensions
                    n   Passive:      by an external tool




  Andreas Kraus            Towards a Common Metamodel for the Development of Web Applications   13
UML-BASED
        WEB
ENGINEERING             Mapping Rules
    Systematic rules for mapping a metamodel to a UML profile:
          § Classes                  →      Elements with stereotype
          § Attributes               →      Tagged values
          § Inheritance              →      Inheritance among stereotypes
                                            Repeated mapping of attributes and
                                            associations
          § Associations             →      Tagged values or associations (for Classifiers)
                 NavigationNode
                                                           <<navigation class>>       «navigation node»
              isLandmark : Boolean                        <<navigation class>>
                                                            MyNavigationClass
                                                          <<navigation class>>
                                                           MyNavigationClass
                                                                      {isLandmark,
                                                           MyNavigationClass
                                                                    {isLandmark}
                                                          derivedFrom=MyCClass}
                NavigationClass
                                                                                      «navigation class»

              abstract syntax                                   notation

  Andreas Kraus              Towards a Common Metamodel for the Development of Web Applications            14
UML-BASED
        WEB
ENGINEERING              Example UWE Model

                                                             <<navigation class>>
                                                                 Conference
                                                                                             {isLandmark,
                                                                                  derivedFrom=Conference}
                                    reviewDeadline : Date{derivedFromAttributes=reviewDeadline}
                                    submissionDeadline : Date{derivedFromAttributes=submissionDeadline}
                                    title : String{derivedFromAttributes=title}




                     <<navigation link>>                                              <<navigation link>>
                                                                               <<navigation class>>
                                             *                                                   *
                    <<navigation class>>                        <<navigation link>>  Author <<navigation class>>
                          Paper
                                                                               1..*
                                                                                               {derivedFrom=Author}
                                                                                                  Author
                                      {derivedFrom=Paper}                                                             {derivedFrom=Author}
                                                   affilation<<navigation link>> affilation : String{derivedFromAttributes=affilation}
  keywords[*] : String{derivedFromAttributes=keyword.key}i    : String{derivedFromAttributes=affilation}
  title : String{derivedFromAttributes=title}                                    name : String{derivedFromAttributes=name}
                                                   name : String{derivedFromAttributes=name}
                                                              1..*
                                                                 SubmittedPapers



  Andreas Kraus                Towards a Common Metamodel for the Development of Web Applications                                        15
UML-BASED
        WEB
ENGINEERING             Conclusions / Future Work
    n         Definition of the UWE metamodel
              ⇒ a first step towards a common metamodel for Web
              applications
    n         Systematic mapping to the UWE notation (UML profile)

    Future Work
              n   Refinement of the UWE metamodel and unification with other
                  methodologies, especially concerning dynamic aspects
              n   Meta tool suite OpenUWE
                   n   CASE tool ArgoUWE
                   n   Code generators
                   n   Model checking

  Andreas Kraus             Towards a Common Metamodel for the Development of Web Applications   16
UML-BASED
                WEB
        ENGINEERING




Thank you for your attention
           Further questions?

Nora Koch     kochn@informatik.uni-muenchen.de
Andreas Kraus krausa@informatik.uni-muenchen.de

Más contenido relacionado

Similar a Towards a Common Metamodel for the Development of Web Applications

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)swethadln
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applicationsidescitation
 
Trending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptxTrending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptxSophia Adams
 
Object Orientation Fundamentals
Object Orientation FundamentalsObject Orientation Fundamentals
Object Orientation FundamentalsPramod Parajuli
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Till Riedel
 
Jurnal an implementable architecture of an e-learning system
Jurnal   an implementable architecture of an e-learning systemJurnal   an implementable architecture of an e-learning system
Jurnal an implementable architecture of an e-learning systemUniversitas Putera Batam
 
Model Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldModel Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldRoger Snook
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsHenry Muccini
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web ApplicationsAngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web ApplicationsIdexcel Technologies
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katochIBM
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochRoopa Nadkarni
 
Dynamic component composition
Dynamic component compositionDynamic component composition
Dynamic component compositionijseajournal
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Coast
CoastCoast
CoastESUG
 
OpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel Alliance
 

Similar a Towards a Common Metamodel for the Development of Web Applications (20)

java
javajava
java
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
 
Framework
FrameworkFramework
Framework
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applications
 
Unit 01 - Introduction
Unit 01 - IntroductionUnit 01 - Introduction
Unit 01 - Introduction
 
Trending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptxTrending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptx
 
Object Orientation Fundamentals
Object Orientation FundamentalsObject Orientation Fundamentals
Object Orientation Fundamentals
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
 
Jurnal an implementable architecture of an e-learning system
Jurnal   an implementable architecture of an e-learning systemJurnal   an implementable architecture of an e-learning system
Jurnal an implementable architecture of an e-learning system
 
Model Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldModel Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShield
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web ApplicationsAngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep Katoch
 
Dynamic component composition
Dynamic component compositionDynamic component composition
Dynamic component composition
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Coast
CoastCoast
Coast
 
OpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite Mechanics
 

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

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Último (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

Towards a Common Metamodel for the Development of Web Applications

  • 1. UML-BASED WEB ENGINEERING Towards a Common Metamodel for the Development of Web Applications Nora Koch and Andreas Kraus Ludwig-Maximilians-Universität Munich, Germany
  • 2. UML-BASED WEB ENGINEERING Motivation Overwhelming diversity of Web methodologies n Different views (models) and modeling elements n Different notations Goal: Unification at high level of abstraction ⇓ Common metamodel for Web methodologies n Better comparison and integration n Fundamental for tool support and code generation n Allows different development processes n Allows use of subsets of modeling elements (like UML) n Allows different notations (concrete syntax) Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 2
  • 3. UML-BASED WEB ENGINEERING Overview n About UWE n A Step Towards the Common Metamodel: UWE Metamodel n Mapping to the Notation n Conclusions and Future Work Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 3
  • 4. UML-BASED WEB ENGINEERING About UWE n UML-based Web Engineering (UWE) is an object-oriented approach based on UML and the Unified Process n Main focus of UWE is the systematic design followed by a semi- automatic generation of Web applications n Systematic design supported by CASE- OpenUWE tool ArgoUWE – an extension of development ArgoUML environment n Semi-automatic generation supported by UWEXML – a model-driven Code Generator for deployment to an XML publishing framework UWE metamodel Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 4
  • 5. UML-BASED WEB ENGINEERING UWE Metamodel n Definition of concepts and relationships MOF M3 among concepts n Compatibility with the OMG metamodeling architecture n MOF meta-metamodel UML n XMI interchange format → tool compatibility M2 n Conservative extension of the UML UWE metamodel n Static semantics given by OCL constraints (Well-formedness rules) n Basis for the open tool suite OpenUWE ApplicationModel M1 Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 5
  • 6. UML-BASED WEB ENGINEERING Conservative Extension n UML modeling elements n are not modified, e.g. by adding additional features n are extended by inheritance n Valid UML model ⇒ valid UWE model Class Class ConceptualClass NavigationClass NavigationClass Not allowed for conservative extensions! Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 6
  • 7. UML-BASED WEB ENGINEERING Package Structure UWE Behavioral Behavioral Model Model Elements Elements Behavioral Management Model Management Elements Management Foundation Foundation Foundation = UML Metamodel = UWE Metamodel Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 7
  • 8. UML-BASED WEB ENGINEERING Package Structure (cont.) Foundation Foundation Behavioral Elements Elements Core Adaptation Task Conceptual Navigation Presentation Context Model User Environment Management „Separation of Concerns“ Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 8
  • 9. UML-BASED WEB ENGINEERING Conceptual Package Feature Feature {ordered} Classifier AssociationEnd (Foundation.Core) * 0..1 (Foundation.Core) 1 * (Foundation.Core) (Foundation.Core) +feature +owner +participant +association 2..* +connection {ordered} BehavioralFeature StructuralFeature (Foundation.Core) (Foundation.Core) 1 Operation Attribute Class Association (Foundation.Core) (Foundation.Core) (Foundation.Core) (Foundation.Core) ConceptualOperation ConceptualAttribute ConceptualClass ConceptualAssociation = UML Metamodel = UWE Metamodel Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 9
  • 10. UML-BASED WEB ENGINEERING Navigation Package Class Class Association Association (Foundation.Core) (Foundation.Core) (Foundation.Core) +source +outLinks +outLinks NavigationNode NavigationNode 1 * Link isLandmark : Boolean {derived} {derived} isAutomatic : Boolean +target +inLinks +inLinks 1..* 1..* {derived} {derived} * NavigationClass Menu ExternalNode ExternalLink NavigationLink TaskLink url : String 0..1 * * Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 10
  • 11. UML-BASED WEB ENGINEERING Navigation Package (cont.) NavigationNode ConceptualClass +derivedFrom NavigationClass (UWE.Foundation.Core.Conceptual) 1 * * <<implicit>> ConceptualAttribute +derivedFromAttributes NavigationAttribute Attribute (UWE.Foundation.Core.Conceptual) * * (Foundation.Core) Same example constraint in OCL: Example of a well-formedness rule: context NavigationClass “Navigation attributes are derived from from conceptual attributes. inv: self.feature->select( oclIsKindOf(NavigationAttribute) ).derivedFromAttributes-> These navigation attributes have to be reachable by navigation forAll( f | self.derivedFrom.transitiveClosure->exists( feature = f ) ) through the model“ Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 11
  • 12. UML-BASED WEB ENGINEERING Mapping to the Notation n Mapping to extended UML syntax in a non-standard way n i.e. not using extension mechanisms of the UML n Standard UML CASE tools can not be used n Good documentation required Example: isLandmark NavigationNode isLandmark : Boolean MyNavigationClass NavigationClass abstract syntax notation Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 12
  • 13. UML-BASED WEB ENGINEERING Mapping to the Notation (cont.) n Mapping to a UML Profile n Mapping uses standard extension mechanisms like stereotypes, tagged values and OCL constraints n Standard UML CASE tools can be used n Compatibility with the UML XMI interchange format n Profile support n Active: by plug-ins, tool extensions n Passive: by an external tool Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 13
  • 14. UML-BASED WEB ENGINEERING Mapping Rules Systematic rules for mapping a metamodel to a UML profile: § Classes → Elements with stereotype § Attributes → Tagged values § Inheritance → Inheritance among stereotypes Repeated mapping of attributes and associations § Associations → Tagged values or associations (for Classifiers) NavigationNode <<navigation class>> «navigation node» isLandmark : Boolean <<navigation class>> MyNavigationClass <<navigation class>> MyNavigationClass {isLandmark, MyNavigationClass {isLandmark} derivedFrom=MyCClass} NavigationClass «navigation class» abstract syntax notation Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 14
  • 15. UML-BASED WEB ENGINEERING Example UWE Model <<navigation class>> Conference {isLandmark, derivedFrom=Conference} reviewDeadline : Date{derivedFromAttributes=reviewDeadline} submissionDeadline : Date{derivedFromAttributes=submissionDeadline} title : String{derivedFromAttributes=title} <<navigation link>> <<navigation link>> <<navigation class>> * * <<navigation class>> <<navigation link>> Author <<navigation class>> Paper 1..* {derivedFrom=Author} Author {derivedFrom=Paper} {derivedFrom=Author} affilation<<navigation link>> affilation : String{derivedFromAttributes=affilation} keywords[*] : String{derivedFromAttributes=keyword.key}i : String{derivedFromAttributes=affilation} title : String{derivedFromAttributes=title} name : String{derivedFromAttributes=name} name : String{derivedFromAttributes=name} 1..* SubmittedPapers Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 15
  • 16. UML-BASED WEB ENGINEERING Conclusions / Future Work n Definition of the UWE metamodel ⇒ a first step towards a common metamodel for Web applications n Systematic mapping to the UWE notation (UML profile) Future Work n Refinement of the UWE metamodel and unification with other methodologies, especially concerning dynamic aspects n Meta tool suite OpenUWE n CASE tool ArgoUWE n Code generators n Model checking Andreas Kraus Towards a Common Metamodel for the Development of Web Applications 16
  • 17. UML-BASED WEB ENGINEERING Thank you for your attention Further questions? Nora Koch kochn@informatik.uni-muenchen.de Andreas Kraus krausa@informatik.uni-muenchen.de