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 machinereadable 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, implementationindependent, 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