Download presentation
Presentation is loading. Please wait.
Published byTracy Harrison Modified over 9 years ago
1
December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development: by Didier Parigot Applications need to be more open and adaptable
2
December 4, 2003 2 Didier.Parigot@inria.fr ICSSEA’03 Evolutions in Software Engineering Open Problem Applications need to be more open and adaptable Plan Intuitive Idea of Software Factory Upheaval factors of this Software Evolution Overview of the SmartTools Software Factory 4Data Model: independent format 4Semantic Model: Aspect-Oriented Programming 4Component Model: SmartTools Architecture 4Visualisation Model: an example of a MDA component Open Problem Applications need to be more open and adaptable Plan Intuitive Idea of Software Factory Upheaval factors of this Software Evolution Overview of the SmartTools Software Factory 4Data Model: independent format 4Semantic Model: Aspect-Oriented Programming 4Component Model: SmartTools Architecture 4Visualisation Model: an example of a MDA component
3
December 4, 2003 3 Didier.Parigot@inria.fr ICSSEA’03 programs compilers system languages applications execution Open and adaptable An intuitive idea of Software Factory Models or Specific languages generators Business Code The Glue Platform Family of application To control the code sensitive to evolutions Capture of a knowledge Software product-line Evolutionary Applications Open and Adaptable Applications
4
December 4, 2003 4 Didier.Parigot@inria.fr ICSSEA’03 Factors of change in Software development The Internet 4Web applications (B2B applications and Web Semantic) The proliferation of new technologies 4Components (EJB, CCM, Web Services etc...) 4Which one to choose ? The Democratisation of computer science The time to market: fast software development The impact of standards: W3C et OMG
5
December 4, 2003 5 Didier.Parigot@inria.fr ICSSEA’03 Cross-Fertilisation between several research domains Evolution of programming languages By separation of concerns Aspect-Oriented Programming Component Programming Method Call or Interface Model Programming MDA approach proposed by the OMG programming languages The Applications must to be open and adaptable Models or specific languages Generators New programming languages Design Pattern Model: an abstraction for each concern
6
December 4, 2003 6 Didier.Parigot@inria.fr ICSSEA’03 Software Factory: SmartTools Generators PIMPSM Data Model Semantic Model Component Model View Model The Glue Business Code Platform Pivot Model Projectable Model Extensible Component MDA approach MDA Component Parts written by the programmer Parts sensitive to evolutions Independent Models (PIM)Specific Models (PSM) MDA Approach Other concerns Other models
7
December 4, 2003 7 Didier.Parigot@inria.fr ICSSEA’03 The Data Model Goals Independent Model : PIM 4Any programming language : neutral format 4With generator to instrument the data model : PSMs To use the Standard of W3C (or OMG) consortium 4open new application fields
8
December 4, 2003 8 Didier.Parigot@inria.fr ICSSEA’03 UML MOF The Data Model Data Model Meta-language : Absynt Traductors DTD XML Schema Generators Java classes top of the DOM API Is Instance of XML Java XML Is Conform to Can be serialised in Is represented by PSM Meta level
9
December 4, 2003 9 Didier.Parigot@inria.fr ICSSEA’03 The Semantic Model The visitor design pattern 4clear separation between structure (objects) and semantic treatments 4Control-flow inside semantic treatments 4the visit method contain the traversal of model Aspect-Oriented programming for this kind of program 4Structure + Traversal + Semantic Actions = program Useful for the projection of semantic treatments in case of data model transformation
10
December 4, 2003 10 Didier.Parigot@inria.fr ICSSEA’03 Projection of the semantic treatments Model 2 Transformation Technology 2 Model 1 Technology 1 treatment Projection of aspects Dynamic Projection ? components
11
December 4, 2003 11 Didier.Parigot@inria.fr ICSSEA’03 Component model: our approach Architecture of SmartTools Meta tools The method Definition of an abstract component model 4independent of any component technology Definition of a set of transformations to standard component models (EJB, CCM, etc..) : MDA approach Component model based on neutral model (PIM) P2P, dynamic topology Extensible Component
12
December 4, 2003 12 Didier.Parigot@inria.fr ICSSEA’03 Connection Generator Component Model Components Manager Creation Component model: an example Data Model View Model Graphic Model Semantic Model Document Graphic view Graphic User Interface Collaboration between all the models Capture of knowledge New notion of type (interface)
13
December 4, 2003 13 Didier.Parigot@inria.fr ICSSEA’03 Component model: transformation EJB Home and Remote interfaces Eclipse Eclipse API? (IDE) Abstract Component Model IDL File + Server Class CORBA CCM SmartTools Container Class + Extend facade Class Generators WSDL File SOAP Class Web Services MDA PIM PSM Different interpretations of the component notion
14
December 4, 2003 14 Didier.Parigot@inria.fr ICSSEA’03 SmartTools: WHAT is it ? An application manufactured by a software factory To test our approach of Software Factories An application which enables to build a software factory To propose and extend our approach A factory which enables to quickly create a family of application To build a family of application
15
December 4, 2003 15 Didier.Parigot@inria.fr ICSSEA’03 GUI: View model Objectives To manipulate the logical form (model) in front To force to definition of the data model Thank to XML approach (DTD, XML schema) Highly extensible Graphic view Extensible IHM, multi-support To place the application before Environment Applications Domain-specific languages (in XML) 4all our DSLs are defined with SmartTools.
16
December 4, 2003 16 Didier.Parigot@inria.fr ICSSEA’03 View Model: the Cosynt language Data ModelConcrete Model Logical ComponentView Component View ModelStyle Model XSLT JTOM QVT Model transformation : MDA approach MDA PIM Transformations to PSM Transformations MDA Component Input Output parserXSLT Transformationstylesheet Fusion of transformation Symmetric Transformations Incremental Transformations Double MDA approach Double MDA approach
17
December 4, 2003 17 Didier.Parigot@inria.fr ICSSEA’03 Basic components Component manager Graphic User Interface Generators Component Generator Data Structure Generator Semantic Generator View Generator Y logical Component Y view component Applications Y logical component X view component A Bootstrapped Application: SmartTools Kernel 0% Cosynt Xprofile Coq (XML) XML (generic) IDL bibtex In production mode Generators Component Generator Data Structure Generator Semantic Generator View Generator 100% In bash mode In none interactive or export mode N % use of the Software Factory lml Application fields ? Application fields ? RA INRIA Syntax (relax) EDF (UML) B WSDL CSS Java cdml Basic components Component Manager Graphical User Interface 100%50% XSLT DTD MathML XML Schema SVG Absynt HTML ant
18
December 4, 2003 18 Didier.Parigot@inria.fr ICSSEA’03 Conclusion : Macro-Programming ? The Classic programming Languages are not the solution ? Independent Model / inter-domains ? Development Processes / Incremental ? Conceptual Model / Product Model ? Universal Model / Business Model ? Open and Adaptable Applications ? Model for each concern ? AOP / directly on the model ? Dynamic Transformation / projection of semantic treatments ? Generative programming / Meta-programming ? Etc… More questions than answers ! But there is already a research prototype: SmartTools
19
December 4, 2003 19 Didier.Parigot@inria.fr ICSSEA’03 END QUESTIONS ? Software Factory www-sop.inria.fr/oasis/SmartTools Demonstration
20
December 4, 2003 20 Didier.Parigot@inria.fr ICSSEA’03 An example of the GUI
21
December 4, 2003 21 Didier.Parigot@inria.fr ICSSEA’03 Overview of SmartTools factory
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.