Model Engineering for Software Modernization (2004)

GUI Model transfOf JavaSwing Model transfOf transfOf Abstract Code Model mergeOf Java Model transfOf BMS (Basic Mapping Services) is a set of services for GUI definition for CICS type transactional systems. The basic element is a map defining a display and map transitions. Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 130 Just in time model production (an execution trace is a model) • A program execution may produce at any time a model of itself, based on a given metamodel. • This model may correspond to an instantaneous state of its execution, including instances. • It may also correspond to a history of its execution states: a trace is a model. • Model production may be periodical, or on demand, or on specific events. • The produced model may be either directly used or serve to produce in terms other models, possibly by model combination. • All MDA models and metamodels conforms to the XMI format. • From internal to external reflection. • Variable metamodel handling is possible by decorating the metamodel with reflective API discovery code (ako model weaving operation). Execution of a Smalltalk program A Smalltalk metamodel A Smalltalk model read XMI write XMI sem This is a dynamic model. Px1 Ps M2x1 Ms M1x1 Mnx1 Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 131 Agenda Conclusions and perspectives Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 132 Conclusions •Model engineering is the future of object technology • As object and classes were seen in the 80's as class entities, with libraries of several hundred of classes hierarchically organized, models and metamodels are beginning to be considered alike in the 2000's. • Libraries of hundreds of domain specific models and metamodels of high abstraction are beginning to appear. Each such metamodel contains a number of concepts and relations. • Tools will be needed to work with these vast libraries of models and metamodels. These tools will be much different of present CASE tools and class browsers. They will interoperate on open platforms (EMF or VisualStudio based). Many of them will be partially automatically generated from metamodels. Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 133 Conclusions • The problems of understanding what is a good metamodel for a PIM, a PSM or a PDM may take longer to settle than initially planned. The concept of PSM itself may be questionable and is probably still illdefined. • The model transformation operation is beginning to be understood (QVT++). Other operations like model weaving still need research work. The global relations between models should be considered. Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 134 Conclusions •What could kill the MDE? Only two things: •Lack of modesty •Overselling •Hiding difficult open problems •Claiming that everything is simple and under control •etc. •Lack of ambition •Ad-hoc solutions •No research or insufficient research. •UML case tool vendor restricted •If the MDE does not fly, then other technology spaces will harbor similar ideas Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 135 Main messages of the presentation • Model Driven Engineering (i.e. the consideration of models as first class entities) and its various variants are changing the landscape of software engineering and data engineering. • Software modernization is more demanding than plain forward engineering, but could benefit as well from the application of model engineering. Many well established software modernization practices may be revisited in the unifying context of MDE. • However the more urgent need is to define the foundations for model engineering. MDE is presently industry-driven and still lacks solid conceptual basis. • The relations of conformance and representation lies at the hearth of these conceptual foundations. Model engineering is presently in the state of object technology in the 80's. Model Engineering for Software Modernization . Jean Bezivin, The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004 136 Thanks Questions? Comments? http://www.sciences.univ-nantes.fr/lina/atl/ Jean Bezivin Jean.Bezivin{noSpamAt}lina.univ-nantes.fr Equipe ATLAS, INRIA & LINA, Nantes, France