• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Towards a Common Metamodel for the Development of Web Applications
 

Towards a Common Metamodel for the Development of Web Applications

on

  • 1,649 views

 

Statistics

Views

Total Views
1,649
Views on SlideShare
1,647
Embed Views
2

Actions

Likes
0
Downloads
33
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Towards a Common Metamodel for the Development of Web Applications Towards a Common Metamodel for the Development of Web Applications Presentation Transcript

    • 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