1 / 17

Applications need to be more open and adaptable

The SmartTools Software Factory The MDA approach and Generative programming for Software Development: by Didier Parigot. Applications need to be more open and adaptable. Evolutions in Software Engineering. Open Problem Applications need to be more open and adaptable Plan

kobe
Télécharger la présentation

Applications need to be more open and adaptable

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The SmartTools Software FactoryThe MDA approach and Generative programmingfor Software Development:byDidier Parigot Applications need to be more open and adaptable

  2. 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 • Data Model: independent format • Semantic Model: Aspect-Oriented Programming • Component Model: SmartTools Architecture • Visualisation Model: an example of a MDA component

  3. applications Open and adaptable programs Models or Specific languages Business Code languages The Glue compilers generators execution system Platform An intuitive idea of Software Factory Family of application Open and Adaptable Applications Evolutionary Applications To control the code sensitive to evolutions Capture of a knowledge Software product-line

  4. Factors of change in Software development • The Internet • Web applications (B2B applications and Web Semantic) • The proliferation of new technologies • Components (EJB, CCM, Web Services etc...) • Which one to choose? • The Democratisation of computer science • The time to market: fast software development • The impact of standards: W3C et OMG

  5. The Applications must to be open and adaptable Models or specific languages By separation of concerns Aspect-Oriented Programming Component Programming Method Call or Interface Model Programming MDA approach proposed by the OMG Generators programming languages Evolution of programming languages Model: an abstraction for each concern Design Pattern New programming languages Cross-Fertilisation between several research domains

  6. MDA Approach Parts sensitive to evolutions Parts written by the programmer Independent Models (PIM) Specific Models (PSM) Data Model Business Code Semantic Model PIM PSM The Glue Component Model Generators View Model Platform Software Factory: SmartTools Pivot Model Projectable Model Extensible Component MDA approach Other concerns Other models MDA Component

  7. The Data Model Goals • Independent Model : PIM • Any programming language : neutral format • With generator to instrument the data model : PSMs • To use the Standard of W3C (or OMG) consortium • open new application fields

  8. Java classes top of the DOM API DTD Data Model Meta-language : Absynt XML Schema PSM UML Generators Traductors PSM MOF Java XML XML Can be serialised in Is Conform to Is Instance of Is represented by XML XML XML The Data Model Meta level

  9. Architecture of SmartTools Meta tools The method Definition of an abstract component model independent of any component technology Definition of a set of transformations to standard component models (EJB, CCM, etc..) : MDAapproach Component model based on neutral model (PIM) P2P, dynamic topology Extensible Component Component model: our approach

  10. Creation Graphic view Connection Components Manager View Model Graphic Model Component Model Graphic view Document Generator Graphic User Interface Data Model Semantic Model Componentmodel: an example New notion of type (interface) Capture of knowledge Collaboration between all the models

  11. Abstract Component Model PIM Eclipse SmartTools MDA Eclipse API? (IDE) Container Class + Extend facade Class Generators WSDL File SOAP Class IDL File + Server Class CORBA Home and Remote interfaces PSM EJB Web Services CCM Component model: transformation Different interpretations of the component notion

  12. 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

  13. Component manager Component Manager Graphic User Interface Graphical User Interface 50% 100% Basic components Basic components Component Generator Component Generator Data Structure Generator Data Structure Generator Semantic Generator Semantic Generator View Generator View Generator 100% Generators Generators Y view component Y logical Component X view component Y logical component Applications In bash mode In none interactive or export mode In production mode N % use of the Software Factory A Bootstrapped Application: SmartTools Kernel 0% Application fields ? XSLT Cosynt MathML lml SVG XML (generic) HTML Java Absynt DTD Xprofile cdml ant Coq (XML) CSS XML Schema bibtex Syntax (relax) RA INRIA WSDL IDL EDF (UML) B

  14. Open and Adaptable Applications ? Conclusion : Macro-Programming ? Etc… More questions than answers ! The Classic programming Languages are not the solution ? Independent Model / inter-domains ? Conceptual Model / Product Model ? Universal Model / Business Model ? Model for each concern ? Development Processes / Incremental ? But there is already a research prototype: SmartTools Generative programming / Meta-programming ? AOP / directly on the model ? Dynamic Transformation / projection of semantic treatments ?

  15. ENDQUESTIONS ?Software Factorywww-sop.inria.fr/oasis/SmartToolsDemonstration

  16. An example of the GUI

  17. Overview of SmartTools factory

More Related