19 April 2012 Megamodels as models of the linguistic architecture of software products and software technologies Ralf Lämmel (Software Languages Team) on behalf of Jean-Marie Favre, Thomas Schmorleiz, and Andrei Varanovich http://101companies.org
Speaker bio Ralf Lämmel Professor of CS at University of Koblenz-Landau Leader of the Software Languages Team @ Koblenz Co-founder of SLE conference series Co-founder of GTTSE summer school series Previous jobs: MSFT, VU (A dam), CWI, Uni Rostock Interests: languages, grammars, software language engineering, software linguistics, transformations, automation, lambdas, programs, technologies, understanding,... Casualty of social networks
Context: Technical space travel for developers, researchers, and educators in the 101companies project.
Technical space travel for developers, researchers, and educators What s a technical space?
Technical space = Technology and community context in software engineering Objectware (more specifically: Javaware) Modelware Grammarware XMLware Ontoware Tableware (aka Tupleware, Dataware)...
Technical space travel for developers, researchers, and educators What s technical space travel?
Technical space travel Abstractly: Handle multiple technical spaces simultaneously Less dramatically Handle multiple technologies simultaneously Acquire skills for a new technology Concretely: Master Object/Relational/XML mapping Master domain-specific languages
Too much technologies. Too little time. EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jdom Rose Protegé XQuery ODM XMLSpy JPA JAXB JDBC ODBC MySQL ArgoUML Jean Jena Jena Ralf Dragan TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER SLE2010 xerces xalan saxon sax sed XSD JMI JMF SBVR
Issues XPATH with Jena Rose TXL JDBC Sesame EMF.gen software technologies JPA XText jdom JAXB Jersey RDF(S) UTF8 Jena ODM XSD MOF UML JeanBeans Teneo BNF VLDB Stratego xerces GWT SLE2010 Json OCL sax Ralf RDFS saxon OWL OWL Ecore Rest MySQL RDF Jean OMG XMI ORACLE JMI EMF JMF XSD ArgoUML xalan ODBC SparQL XMLSpy Yacc RDFa LALR XSLT Prolog JAXP Protegé CFG SBVR DOM Java ATOM ER Silos of knowledge Combining technologies Complexity of technologies Entering a new space Teaching technologies SQL DDL Dragan SQL Antlr QVT TENEO XLST Awk DTD sed Saxon TCS grep ASCII XSD Hibernate XQuery
Technical space travel for developers, researchers, and educators Developers may need to travel like this. How do we care as researchers? How do we care as educators?
The student-centric view Why would you study computer science, if your ultimate destiny is to get lost in space and technology?
Popular faculty opinion 1 Practice is terribly complex. University should not bother.
Popular faculty opinion 2 Practice is too complex. University can not bother.
Popular faculty opinion 3 Practice is incidentally complex. University must not bother.
Proposed opinion shift Practice is amazingly complex and does not go away. University and research should, can, and must bother and help.
Technical space travel for developers, researchers, and educators http://www.fotocommunity.de/pc/pc/display/18564779 Time to let the cat out of the bag.
Issues XPATH with Jena Rose TXL JDBC jdom JAXB Jersey RDF(S) UTF8 Jena ODM XSD MOF UML JeanBeans Teneo BNF VLDB Silos Stratego of knowledge xerces GWT SLE2010 Json Combining OCL sax technologies Ralf RDFS saxon OWL OWL Complexity of technologies Ecore Rest MySQL RDF Jean OMG XMI ORACLE Entering a JMInew EMF space JMF XSD ArgoUML xalan ODBC SparQL XMLSpy Yacc RDFa Teaching technologies? LALR XSLT Prolog JAXP Protegé CFG SBVR DOM Java ATOM ER SQL DDL Dragan TENEO XLST Awk sed grep Hibernate Sesame EMF.gen software technologies JPA XText In need of... analogies SQL Antlr DTD Saxon TCS ASCII XSD XQuery QVT examples abstractions
Analogies Examples Abstractions
Modelware XMLware Ontoware Tableware Grammarware Meta language MOF XSD RDFS SQL.DDL EBNF Navigation Query OCL XPath XQuery SPARQL SQL Transfo. QVT XSLT TXL ASF Toolkit ArgoUML Rose XMLSpy VS-XML Protégé Topbeard MySQL Oracle MetaEnv. Conferences MoDELS ECMDA XML VLDB ICSW ESWC VLDB SIGMOD CC POPL
Analogy in space travel Modelware XMI XMLware Teneo JMI EMF.gen JAXB JDOM Dataware Sesame Ontoware JDBC Hibernate JPA Jena Javaware
Use of an ontology (taxonomy) for the organization of technologies and languages 21
Use of an ontology (taxonomy) for the organization of technologies and languages 22
Analogies Examples Abstractions
Implement many Human Resources Management Systems Company X: Swing + JDBC Company Y: SWT + Hibernate Company Z: GWT + MongoDB... Many different implementations (and specifications) of about the same, in fact, feature-wise differing human-resources management system using different software technologies and software languages. http://101companies.org
Basic data model of the HRMS
Demo $ pwd /Users/laemmel/101companies/contributions/html5local $ open index.html
Basic features of the HRMS Serialize companies Total salaries Cut salaries
The feature model of the HRMS Cut salaries Total salaries Persist companies All features are optional. Parallelize operations
Distribution of files for 101companies implementations # Files Implementations
Distribution of LOC for 101companies implementations LOC Implementations
Technologies used in 101companies implementations
Languages used in 101companies implementations
Demo
Plan for the demo Start at 101companies landing page. Enter search string HTML5 Browse github for HTML5 implementation Explore wiki: Themes of implementations The Web programming theme The Java mapping theme Feature model Ontology Show resources
Analogies Examples Abstractions
What is the essence of technology xyz?
Summary: why is 101companies important and how to contribute? Compare to Wikipedia Compare to Stack Overflow Semantic web Technology adoption Think of SE/PL courses
Meat: Megamodels as models of the linguistic architecture of software products and software technologies.
What s a megamodel? Uses MegaL/yEd
What s a megamodel? Uses MegaL/yEd
The notion of megamodel Megamodels are (ER) models. Entities of interest Languages Technologies (components thereof) Programs... Relationships of interest Conformance Transformation...
That s a megamodel, too! http://en.wikipedia.org/wiki/tombstone_diagram
Yet another ATL Documentations megamodel!! ATL Starter s Guide Date 07/12/2005! MMM What to think of this part? MM a M a conformsto conformsto conformsto conformsto MM t M t conformsto conformsto MM b Transformation M b Model transformations with ATL Figure 1. An overview of model transformation Figure 1 summarizes the full model transformation process. A model M a, conforming to a metamodel MM a, is here transformed into a model M b that conforms to a metamodel MM b. The transformation is defined by the model transformation model M t which itself conforms to a model transformation metamodel MM t. This last metamodel, along with the MM a and MM b metamodels, has to conform to a metametamodel http://wiki.eclipse.org/atl/concepts#model_transformation (such as MOF or Ecore). 3 A simple transformation example This section introduces the transformation example that is going to be developed in the document. The aim of this first example is to introduce users with the basic concepts of the ATL programming. To this end, this example considers two similar metamodels, Author (Figure 2) and Person (Figure 3), that
That s nearly the same megamodel. del-driven Engineering 33 Metametamodel conforms to Metamodel conforms to Model + source conforms to conforms to TransformationMetamodel + source conforms to Metamodel + target TransformationModel conforms to Model represented by + target Transformation Model transformations Is this is a function or an application thereof? Figure 2.6: Model transformation megamodel Bas Graaf: Model-Driven Evolution of Software Architectures, Dissertation, Delft University of Technology, 2007. s in the Object Constraint Language 1 (OCL) to select the elements
Megamodel of O/X mapping with xsd.exe http://softlang.uni-koblenz.de/mega/ Uses MegaL/yEd
Megamodel of a software product Uses MegaL/yEd
Research questions Can we do heavy lifting with megamodeling? Does a general megamodeling language exist? What are the entities of linguistic architecture? What are the relationships of interest? (What is a good visual syntax?) How to validate megamodels?
Heavy lifting with megamodeling Claim by this speaker: Megamodeling lifts heavily once it can explain, for example, Object/Relational/XML mapping at a high level of abstraction in a comprehensible and falsifiable manner. More generally, megamodeling must help with managing diversity and heterogeneity of software technologies.
Fig. 1. The linguistic architecture of a software product when displayed with the Me- Demo
Dependencies of implementation
MegaL/yEd
Cont d
MegaL -- summary Entities and relationships Types relate to 101companies ontology Actual entities or placeholders thereof MegaL/yEd: visual notation MegaL/Txt: textual notation MegaL/RDF: RDF representation Binding: Turn placeholders into entities Linking: Link online artifacts to entities
A megamodel for Object/XML mapping http://black42.uni-koblenz.de/production/101worker/ MegaModels/capabilities/Object_XML_mapping/MegaL/
Conclusion 101companies helps technological space travelers. Megamodels model linguistic architecture. Finally, we understand Object/XML mapping. There is going to be a related summer school in Koblenz: SoTeSoLa -- Software Technologies and Software Languages Thanks! Questions?