Model Driven Software Engineering for Web Applications
Total Page:16
File Type:pdf, Size:1020Kb
Model Driven Software Engineering for Web Applications Andreas Kraus Dissertation zur Erlangung des akademischen Grades des Doktors der Naturwissenschaften an der Fakultät für Mathematik, Informatik und Statistik der Ludwig-Maximilians-Universität München vorgelegt am 23.04.2007 Model Driven Software Engineering for Web Applications Tag der Einreichung: 23.04.2007 Tag des Rigorosums: 04.07.2007 Berichterstatter Prof. Dr. Rolf Hennicker (Ludwig-Maximilians-Universität, München) Prof. Dr. Antonio Vallecillo (Universidad de Malaga, Spanien) 2 Model Driven Software Engineering for Web Applications Summary Model driven software engineering (MDSE) is becoming a widely accepted approach for developing complex applications and it is on its way to be one of the most promising para- digms in software engineering. MDSE advocates the use of models as the key artifacts in all phases of the development process, from analysis to design, implementation and testing. The most promising approach to model driven engineering is the Model Driven Architec- ture (MDA) defined by the Object Management Group (OMG). Applications are modeled at a platform independent level and are transformed to (possibly several) platform specific implementations. Model driven Web engineering (MDWE) is the application of model driven engineering to the domain of Web application development where it might be par- ticularly helpful because of the continuous evolution of Web technologies and platforms. However, most current approaches for MDWE provide only a partial application of the MDA pattern. Further, metamodels and transformations are not always made explicit and metamodels are often too general or do not contain sufficient information for the automatic code generation. Thus, the main goal of this work is the complete application of the MDA pattern to the Web application domain from analysis to the generated implementation, with transformations playing an important role at every stage of the development process. Ex- plicit metamodels are defined for the platform independent analysis and design and for the platform specific implementation of dynamic Web applications. Explicit transformations allow the automatic generation of executable code for a broad range of technologies. For pursuing this goal, the following approach was chosen. A metamodel is defined for the platform independent analysis and for the design of the content, navigation, process and presentation concerns of Web applications as a conserva- tive extension of the UML (Unified Modeling Language) metamodel, together with a cor- responding UML profile as notation. OCL constraints ensure the well-formedness of mod- els and are checked by transformations. Transformations implement the systematic evolu- tion of analysis and design models. A generic platform for Web applications built on an open-source Web platform and a generic runtime environment is proposed that represents a family of platforms supporting the combination of a broad range of technologies. The transformation to the platform specific models for this generic platform is decomposed along the concerns of Web applications to cope in a fine-grained way with technology changes. For each of the concerns a metamodel for the corresponding technology is de- fined together with the corresponding transformations from the platform independent de- sign models. The resulting models are serialized to code by means of serialization trans- formations. 3 Model Driven Software Engineering for Web Applications 4 Model Driven Software Engineering for Web Applications Zusammenfassung Die modellgetriebene Softwareentwicklung (MDSE) entwickelt sich zu einem der vielver- sprechendsten Paradigmen für die Entwicklung komplexer Anwendungen. Modelle spielen dabei die zentrale Rolle in allen Phasen des Entwicklungsprozesses, von Analyse und Ent- wurf bis zur Implementierung. Die Model Driven Architecture (MDA) ist der derzeit er- folgversprechendste Ansatz zur modellgetriebenen Softwareentwicklung. Anwendungen werden dabei auf einer plattformunabhängigen Ebene modelliert und durch Transformatio- nen in eine plattformspezifische Implementierung überführt. Die modellgetriebene Web- Anwendungsentwicklung (MDWE) wendet das Prinzip der modellgetriebenen Software- entwicklung auf den Bereich der Web-Anwendungen an, wo sich dieser Ansatz als beson- ders nützlich erweist, gegeben durch die andauernde Weiterentwicklung von Web- Technologien und –Plattformen. Die meisten aktuellen MDWE-Ansätze setzen den MDA-Ansatz allerdings nur teilweise um. Ferner werden die verwendeten Metamodelle und Transformationen oft nicht explizit definiert, und die Metamodelle sind oft zu allgemein oder enthalten nicht ausreichend In- formationen zur automatischen Code-Generierung. Daher ist das Hauptziel dieser Disserta- tion die umfassende Übertragung des MDA-Ansatzes auf den Bereich der Web- Anwendungsentwicklung, von der Analyse bis zur Implementierung, wobei Transformati- onen eine entscheidende Rolle in jeder Phase des Entwicklungsprozesses spielen. Explizite Metamodelle werden definiert für die Analyse, den plattformunabhängigen Entwurf und die plattformspezifische Implementierung. Eindeutig definierte Transformationen ermögli- chen die automatische Code-Generierung für ein Vielzahl von Web-Technologien. Um dieses Ziel zu erreichen wurde der folgende Ansatz gewählt. Für die Analyse und für den plattformunabhängigen Entwurf der Inhalts-, Navigations-, Prozess- und Präsentationsebenen einer Web-Anwendung wird ein Metamodell als eine konservative Erweiterung des UML-Metamodells (Unified Modeling Language) definiert. Ein entsprechendes UML-Profil dient dabei als Notation. OCL-Constraints, die durch Transformationen überprüft werden, stellen die Wohlgeformtheit der Modelle sicher. Transformationen implementieren auch die systematische Entwicklung der Analyse- und Entwurfsmodelle. Eine generische Plattform ermöglicht eine Aufspaltung der Transforma- tion plattformunabhängiger Modelle in einzelne Transformationen für die verschiedenen Ebenen einer Web-Anwendung. Für jede Ebene wird dazu ein Metamodell für die entspre- chende Implementierungstechnologie und eine entsprechende Transformation definiert, wodurch eine Vielzahl von Technologien kombiniert werden kann. Die resultierenden Mo- delle werden dann durch Serialisierungstransformationen in Code umgewandelt. 5 Model Driven Software Engineering for Web Applications Acknowledgments First of all, I would like to thank my two supervisors Rolf Hennicker and Antonio Vallecillo, and Martin Wirsing. Then, thanks go to my colleagues, especially Nora Koch and Alexander Knapp for the fruitful discussions on Web engineering topics, and to Mat- thias Ludwig and Stephan Janisch for the time working together in the GLOWA-Danube project. Finally, I thank all of my students and all the people from abroad I have been working together over the last years. My special thanks go to Sabine, our families and friends for their support and patience. This work has been supported by the German BMBF-project GLOWA-Danube. 6 CONTENT 1 Introduction ________________________________________________________ 13 1.1 Problem Statement ______________________________________________ 14 1.2 Approach ______________________________________________________ 14 1.3 Introduction to the DANUBIA Case Study __________________________ 19 1.4 Organization of the Work ________________________________________ 20 2 Model Driven Software Engineering ____________________________________ 21 2.1 Model Driven Architecture (MDA)_________________________________ 23 2.1.1 Model Types________________________________________________ 24 2.1.1.1 Computation Independent Models (CIM) _______________________ 25 2.1.1.2 Platform Independent Models (PIM) ___________________________ 25 2.1.1.3 Platform Specific Models (PSM) ______________________________ 25 2.1.1.4 Platform Models (PM) ______________________________________ 26 2.1.2 Transformation Types_________________________________________ 26 2.1.2.1 Model Type Transformations_________________________________ 26 2.1.2.2 Model Instance Transformations ______________________________ 27 2.2 Object Management Group Meta Architecture ______________________ 27 2.2.1 Metamodel Layering _________________________________________ 28 2.2.2 Meta Object Facility (MOF)____________________________________ 29 2.2.3 Unified Modeling Language (UML) _____________________________ 30 2.2.4 UML Extensions_____________________________________________ 31 2.3 Transformation Approaches ______________________________________ 32 2.3.1 Classification _______________________________________________ 32 2.3.1.1 Hard-Coded Transformations_________________________________ 33 2.3.1.2 Model-To-Code Approaches _________________________________ 33 2.3.1.3 Direct-Manipulation Approaches ______________________________ 34 2.3.1.4 Relational Approaches ______________________________________ 35 2.3.1.5 Graph-Transformation-Based Approaches_______________________ 36 2.3.1.6 Structure-Driven Approaches_________________________________ 37 2.3.1.7 Hybrid Approaches_________________________________________ 37 2.3.1.8 Other Model-To-Model Approaches ___________________________ 37 Model Driven Software Engineering for Web Applications 2.3.1.9 Discussion _______________________________________________ 38 2.3.2 Query/Views/Transformations (QVT) ___________________________ 38 2.3.2.1 Declarative Rules (Relations) ________________________________ 40 2.3.2.2 Imperative Rules (Operational Mappings) ______________________