The document discusses the development of a common metamodel for web application development called UWE (UML-based Web Engineering). [1] It presents UWE as an approach that uses UML and the Unified Process for systematic design and semi-automatic code generation of web applications. [2] The authors define the UWE metamodel based on MOF and as a conservative extension of UML to provide a basis for the OpenUWE tool suite. [3] The metamodel is mapped to a UML profile for use in standard UML modeling tools.
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