SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante 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
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochRoopa Nadkarni
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katochIBM
 
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
 

Semelhante 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
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep Katoch
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 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
 

Mais 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
 

Mais 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

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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