CS 290C: Formal Models for Web Software

fanaticalpumaMechanics

Nov 5, 2013 (3 years and 5 months ago)

113 views

CS 290C: Formal Models for Web Software



Lecture 11:

Model Driven Development for Web
Software with WebML



Instructor:
Tevfik Bultan


Model Driven Development (MDD)


In MDD approach software development is driven by
models


Models are written in a software modeling language
such as UML



These high level models are systematically translated to
concrete implementations



Models provide an abstract, implementation platform
independent view of the software system


Model Driven Development


Software development is a modeling activity


Even if the developers do not use any modeling
language they have mental models of the problem and
the solution they are developing


These models are then translated to code using the
abstractions provided by the programming language


MDD adds more layers of abstraction that can be used for
modeling both the problem domain and the solution


Different aspects of an application can be modeled using
different modeling techniques



Separation of Concerns


MDD promotes separation of concerns



Different modeling techniques are used for modeling
different aspects of the application



MDD separates technology dependant concerns from the
application logic


Automation


MDD promotes automation


Automated analysis and verification of models


Since models do not contain implementation details they
are easier to analyze


Automated code generation from models


Guaranteeing conformance to models


Runtime monitoring based on models


Using runtime monitoring to make sure that the
implementation follows the behavior specified in the
model


Automated test generation


Models can be used to generate tests for testing the
implementation

Model Driven Architecture (MDA)


MDA is supported by the Object Management Group
(OMG)



MDA separates the business and application logic from the
underlying implementation platform



MDA is a forward engineering approach where first abstract
model diagrams are developed which are later transformed
to code



The goal of MDA is to separate the conceptual design from
the implementation architecture


The MDA approach


First, the developers build platform independent models
for the application


uses machine readable design models


uses modeling languages such as UML


These platform independent models document the
business functionality of an application


separate from the technology
-
specific code that
implements it


After the implementation platform is chosen


the platform independent models are translated to
platform specific models


then the platform specific models are used to guide the
implementation for the chosen platform


Platform Independance


The platform independent models enable the business and
technological concerns to evolve separately


Models enable interoperability both within and across
platform boundaries


models serve as a technology neutral specification of the
functionality


Different components of the system can be implemented in
different platforms


they can be easily integrated since they all conform to
the same design models


MDA Benefits for Software Lifecycle


Implementation:

MDA enables integration of new
implementation infrastructures based on the existing design
models


Integration:

Integration is easier since both the
implementation and the design models exists at the time of
integration.


Maintenance:

the availability of the design in a machine
-
readable form gives developers direct access to the
specification of the system, making maintenance much
simpler


Testing and simulation:
The design models can be
validated against requirements and executable models can
also be used to simulated the behavior of the system

Web Modeling Language (WebML)


WebML

is a modeling language for developing web
applications


http://
www.webml.org
/



WebML

if a modeling language for MDD of web
applications



WebML

models are high
-
level, implementation
-
independent, conceptual models


WebML References


Stefano Ceri,

Piero Fraternali,

Aldo Bongio: Web Modeling
Language (WebML): a modeling language for designing
Web sites.

Computer Networks 33(1
-
6): 137
-
157 (2000)


Stefano Ceri,

Piero Fraternali,

Maristella Matera:
Conceptual Modeling of Data
-
Intensive Web
Applications.

IEEE Internet Computing 6(4): 20
-
30 (2002)


Stefano Ceri,

Marco Brambilla,

Piero Fraternali: The History
of WebML Lessons Learned from 10 Years of Model
-
Driven
Development of Web Applications.

Conceptual Modeling:
Foundations and Applications 2009: 273
-
292


Stefano Ceri et al. Designing Data
-
Intensive Web
Applications,
Morgan Kaufmann Series in Data
Management Systems.




WebML and WebRatio


There is a spinoff company that has a software tool that
generates code from WebML models


http://www.webratio.com/



WebML models can be developed and translated to
implementations using a software toolsuite called WebRatio



More than 70 companies adopted the commercial version
of the WebRatio toolsuite and used it for medium
-
to
-
large
development projects



Separation of concerns


Technological mapping is handled by WebRatio and
WebML models are platform independent






WebML


WebML is used to create orthogonal conceptual models:


Data model


Entity
-
relationship diagrams (UML class diagrams),
describes the data schema


Navigation model


Modeling of how information is assembled to pages
and linked to each other (hypertext model)


Presentation model


Modeling of the views, page layout



Separation of concerns: data content, interface logic and
presentation logic are specified separately


Data Model


The data model is consists of entity
-
relationship diagrams


similar to UML class diagrams



Identify the data objects that will be stored in the back
-
end
database


The attributes of the data objects


The relations among the data objects





Navigation Model (Hypertext Model in WebML)


Units for publishing content:


Data and index units


Links


Navigation links


Transport links (no navigation, just parameter passing
between units)


Automatic links (automatically navigated)


Contextual links transfer data whereas non
-
contextual links
only used for navigation


The semantics of navigation model is based on statecharts


There is a page navigation algorithm which given a
WebML navigation model and a user event identifies
what the contents of the next page will be

Presentation Model


Enables dressing of the hypertext model to obtain web
pages with the desired layout and the look & feel



It allows the use of html templates which are applied to the
hypertext model to generate the pages



WebML includes pre
-
defined presentation style sheets that
can be used


Modeling skeleton


Using WebML it is possible to abstract a web application to
elementary structures called skeletons (pairs of data and
hypertext diagrams) that show a certain aspect of the
design


Core skeletons for displaying and managing business
objects


Access skeletons for categorizing and selecting concepts


Interconnection skeletons define the relations between the
business objects


Content management skeletons