• No results found

Towards a Common Metamodel for the Development of Web Applications

N/A
N/A
Protected

Academic year: 2021

Share "Towards a Common Metamodel for the Development of Web Applications"

Copied!
17
0
0

Loading.... (view fulltext now)

Full text

(1)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

Towards a Common Metamodel

for the Development of

Web Applications

Nora Koch and Andreas Kraus Ludwig-Maximilians-Universität

(2)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

Motivation

Overwhelming

Overwhelming

diversity

diversity

of Web

of Web

methodologies

methodologies

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

Goal:

Goal:

Unification

Unification

at high

at high

level

level

of

of

abstraction

abstraction

Common

Common

metamodel

metamodel

for

for

Web

Web

methodologies

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)

(3)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

Overview

n

About UWE

n

A Step Towards the Common Metamodel: UWE Metamodel

n

Mapping to the Notation

(4)

UML-BASED WEB ENGINEERING 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-tool ArgoUWE – an extension of ArgoUML

n Semi-automatic generation supported

by UWEXML – a model-driven Code Generator for deployment to an XML publishing framework OpenUWE development environment UWE metamodel

(5)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING ApplicationModel UWE MOF UML M3 M2 M1

UWE Metamodel

n

Definition of concepts and relationships

among concepts

n

Compatibility with the OMG metamodeling

architecture

n MOF meta-metamodel

n XMI interchange format → tool compatibility

n

Conservative extension of the UML

metamodel

n

Static semantics given by OCL constraints

(Well-formedness rules)

(6)

UML-BASED WEB ENGINEERING 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

NavigationClass Class

Not allowed for conservative extensions!

ConceptualClass

NavigationClass Class

(7)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING = UML Metamodel Foundation Model Management Behavioral Elements UWE Foundation Behavioral Elements Model Management Foundation Model Management Behavioral Elements = UWE Metamodel

Package Structure

(8)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING Foundation Context User Environment Core Navigation Conceptual Presentation Model Management Behavioral Elements Task Adaptation

Package Structure

(cont.)

Foundation Context User Environment Core Navigation Conceptual Presentation Model Management Behavioral Elements Task AdaptationSeparation of Concerns“

(9)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING = UML Metamodel Attribute (Foundation.Core) Association (Foundation.Core) AssociationEnd (Foundation.Core) Class (Foundation.Core) Operation (Foundation.Core) BehavioralFeature (Foundation.Core) Feature (Foundation.Core) Classifier (Foundation.Core) StructuralFeature (Foundation.Core) 1 2..* {ordered} +connection 0..1 +owner * {ordered} +feature 1 +participant * +association

Conceptual Package

Attribute (Foundation.Core) Association (Foundation.Core) ConceptualAssociation AssociationEnd (Foundation.Core) ConceptualOperation Operation (Foundation.Core) BehavioralFeature (Foundation.Core) Feature (Foundation.Core) Class (Foundation.Core) ConceptualClass Classifier (Foundation.Core) ConceptualAttribute StructuralFeature (Foundation.Core) 1 2..* {ordered} +connection 0..1 +owner * {ordered} +feature 1 +participant * +association = UWE Metamodel

(10)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING Class (Foundation.Core) Association (Foundation.Core)

Navigation Package

Link isAutomatic : Boolean Association (Foundation.Core) NavigationNode isLandmark : Boolean Class (Foundation.Core) {derived} +target 1..* +inLinks * {derived} +source 1 +outLinks * NavigationNode isLandmark : Boolean Association (Foundation.Core) Link isAutomatic : Boolean Class (Foundation.Core) ExternalNode url : String Menu NavigationClass * 1..* {derived} +target 1..* +inLinks * {derived} +source 1 +outLinks * 0..1 * NavigationNode isLandmark : Boolean Association (Foundation.Core) Link isAutomatic : Boolean Class (Foundation.Core) ExternalNode url : String TaskLink Menu

NavigationClass ExternalLink NavigationLink

* 1..* {derived} +target 1..* +inLinks * {derived} +source 1 +outLinks * 0..1 *

(11)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

Example of a well-formedness rule:

“Navigation attributes are derived from from conceptual attributes. These navigation attributes have to be reachable by navigation through the model“

Same example constraint in OCL:

context NavigationClass

inv: self.feature->select( oclIsKindOf(NavigationAttribute) ).derivedFromAttributes-> forAll( f | self.derivedFrom.transitiveClosure->exists( feature = f ) )

Navigation Package

(cont.)

ConceptualAttribute (UWE.Foundation.Core.Conceptual) ConceptualClass (UWE.Foundation.Core.Conceptual) NavigationNode Attribute (Foundation.Core) NavigationAttribute NavigationClass * +derivedFromAttributes * * +derivedFrom 1 * <<implicit>>

(12)

UML-BASED WEB ENGINEERING 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

notation MyNavigationClass isLandmark abstract syntax NavigationClass NavigationNode isLandmark : Boolean Example:

(13)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

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

(14)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

§ Classes → Elements with stereotype

notation

<<navigation class>>

MyNavigationClass

§ Attributes → Tagged values

<<navigation class>>

MyNavigationClass

{isLandmark}

Mapping Rules

Systematic rules for mapping a metamodel to a UML profile:

abstract syntax

NavigationClass

NavigationNode isLandmark : Boolean

§ Inheritance → Inheritance among stereotypes

Repeated mapping of attributes and associations

«navigation node»

«navigation class»

§ Associations → Tagged values or associations (for Classifiers)

<<navigation class>>

MyNavigationClass

{isLandmark, derivedFrom=MyCClass}

(15)

UML-BASED WEB ENGINEERING 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 class>> Paper {derivedFrom=Paper} keywords[*] : String{derivedFromAttributes=keyword.key} title : String{derivedFromAttributes=title} <<navigation class>> Author {derivedFrom=Author} affilation : String{derivedFromAttributes=affilation} name : String{derivedFromAttributes=name} <<navigation link>> 1..* <<navigation link>> 1..* SubmittedPapers <<navigation link>> * <<navigation link>> * <<navigation class>> Author {derivedFrom=Author} affilation : String{derivedFromAttributes=affilation} name : String{derivedFromAttributes=name} i

(16)

UML-BASED WEB ENGINEERING 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

(17)

UML-BASED WEB ENGINEERING UML-BASED WEB ENGINEERING

Thank you for your attention

Further questions?

Nora Koch [email protected]

References

Related documents

“Also, since we know that the time from diagnosis to transplant may impact survival, wider availability of alternative donor methods may also allow more

Including Autistic Spectrum Disorders • Multisystem Developmental Disorders • Regulatory Disorders involving Attention, Learning, and Behavior Problems • Cognitive, Language, Motor

To the best of our knowledge, some of the proposed mod- els are the first models trained and evaluated on the limited size GRID and TCD-TIMIT datasets that accomplish

Our results suggest that the stock market reaction of banks to changes in sovereign credit ratings is likely explained by a combination of factors, including an economy-wide effect

Upon submission of an application pursuant to Section 6, BellSouth will provide BTI physical collocation, pursuant to the terms of this Attachment, at any BellSouth central

We evaluate data availability and energy consumption for different values of sleep ratio p, with NDN+CoCa using a simple caching strategy called Random Caching.. With Random Caching,

Our important results are as follows: (i) semi- durable-non-durable goods, energy-transportation-communication, and ownership of dwelling are found to be necessities,

The lecturer asks students to join their respective groups and reminds them by emphasizing that having face to face interaction in a group during the process