
Le Génie Logiciel à la croisée des chemins Software Engineering at the crossroads Work in progress [email protected] JBezivin@twitter Presenter/Presentation 1967 1. In search of the ultimate silver bullet 1. Introduction 2. Software Engineering 1.0 3. How Model Driven 1980 Engineering Missed the Boat 2. From SE 1.0 to SE 2.0 1987 1. Problem and Solution Spaces 2. Domain Engineering 1998 3. Support Engineering 4. Conclusion Santa Claus does not exist There is NO silver bullet 2008 From where we come Where we stand To where we are leading Some bad news and some good news INTRODUCTION A View of 20th and 21st Century Software Engineering Barry Boehm, ICSE2006, Shanghai Paradigm/Artifact changes {step = 15y.} 1965 1980 1995 2010 2025 Procedural Object Component Model Driven Technology Technology Technology Engineering Procedures, Objects, Components, Models, Pascal, Classes, Packages, Metamodels, C, Smalltalk, C++, Frameworks, UML, MOF, ... ... Patterns, … EJB, J2EE Procedural Object Model refinement composition transformation Climbing the steps Image credit fgormezano.free.fr Software engineering: Approaching half-time? ? Agile Development Object Oriented Programming Structured Programming 1965 1967 2015 2065 Jeff Sutherland: Scrum (OOPSLA95) http://bertrandmeyer.com/2013/04/04/the-origin-of-software-engineering/ ThoughtWorks, Technology Radar, May 2013 Languages & Frameworks Adopt Clojure CSS frameworks Jasmine paired with Node.js Scala Sinatra Trial CoffeeScript Dropwizard HTML5 for offline applications JavaScript as a platform JavaScript MV* frameworks Play Framework 2 Require.js & NPM Scratch, Alice, and Kodu Assess ClojureScript Gremlin Lua Nancy OWIN RubyMotion Twitter Bootstrap Hold Backbone.js Component-based frameworks http://www.thoughtworks.com/radar (Martin Fowler & C°) Handwritten CSS Logic in stored procedures Hype after Hype Are we condemned to jump from hype to hype like a fashion industry? (1) What is the hidden meaning (if any) in the evolution of our discipline? Google Ngram Viewer (raw Ngram buzzword observations) (1) Ivar Jacobson Looking at the past to guess the future 5 years 5 years 50 years 50 years Sorry for the bad news, Software Engineering is not in good health SOFTWARE ENGINEERING 1.0 Not dead, but at least critically ill The NATO Conferences of 1968 and 1969 were Software engineering is gravely hampered today by motivated by the belief that software immature practices: development should be "based on the types The prevalence of fad's more typical of fashion industry than of an engineering discipline of theoretical foundations and practical The lack of a sound, widely accepted theoretical disciplines that are traditional in the basis established branches of engineering.“ The huge number of methods and method variants, with differences little understood and Surprisingly the conferences did not discuss artificially magnified what these foundations and disciplines were, The lack of credible experimental evaluation and or how they could be emulated. There has validation been little discussion of this topic in the The split between industry practice and academic research intervening forty years and more. Some important lessons have been neglected. The “New Deal” for Software development From Michael Jackson’s Web site What has changed in the past 50 years ? Expressions like “CAD” or “Computer Assisted” or “Computer Aided” have lost all their discriminant meaning in engineering Most engineering fields are now using computers and software Time to adapt our vision “Software Professionals” vs. “End User Developers” Christopher Scaffidi, Mary Shaw, and Brad Myers. Estimating the Numbers of End Users and End User Programmers. Fourth International Symposium on End-User Development In Proceedings of the 2005 IEEE Symposium on June 10-13, 2013, IT University of Copenhagen, Denmark Visual Languages and Human-Centric Computing (VLHCC '05). Software Professionals and End Users ? End Users, Software Professionals including (1%) End User Developers (99%) 100% Total inversion: Percentage of non software professional using computers and software applications at work, home, etc. 0% 1965 2015 Software vs. Traditional Engineers U.S. Bureau of Labor Statistics (2002) ? Software Traditional Engineers Engineers (35%) (65%) Will have to imagine new ways for working together in the next decades Workload Transfer due to Excel 300 M End Users 3 M Software Professionals (99%) (1%) Including 55M Excel users Workload transfer (about 18%) (1979-2013) Everybody’s a programmer Visicalc (1979) Excel (much later) (…Charles Simonyi…) (…Intentional Programming…) www.bricklin.com Model Driven Engineering The last silver bullet fired blank HOW MDE PARTLY MISSED THE BOAT Separating the platform independent and dependent parts of a system (PIM/PSM) We don't want anymore to pay such a high price for simply moving our information system to a new middleware platform (COM, CORBA, Java, HTML, XML, DotNet, etc.) when our business system stays stable. We are prepared to pay a last price for building the abstract models of our business and services that will guarantee us against technological obsolescence. From there, any platform provider will also have to provide the mapping solutions from standard business models before we buy. November 2000 Sustainable Modeling? The first promise/commitment of The MDA™ did not deliver on MDA™ was on sustainability: sustainability. “Developers gain the ultimate in flexibility, Reasons are multiple: the ability to regenerate code from a stable, platform independent model as Complexity of UML the underlying infrastructure shifts over Evolution of UML (versions) time”. UML profiles “ROI flows from the reuse of application UML tools not based on the UML and domain models across the software metamodel (no dogfooding) lifespan--especially during long-term Bad interoperability of UML tools support and maintenance, the most Versions of XMI expensive phase of an application's life”. “Durability”, “Perennity” As a result, Java code is probably more sustainable than most UML models In direct violation of initial PIM/PSM separation objective (MDA) Any artifact or situation in IS management my be precisely described and operated by models/metamodels Product & Process Requirement models Code & Data Product line models Problem & Solution Feature models Process & agent models Static & Dynamic Trace models PIM & PSM (& CIM) Object & Component models Primitive & Derived Service models Executable & Non executable Complex event models Proprietary & Normative Legacy models Atomic & Composite Software architecture models Basic & Correspondence & Transformation Enterprise architecture models Visual & Textual Modeling in the large & modeling in Descriptive & Prescriptive the small etc. Formal & Informal Huge productivity gains possible with this homogeneous representation scheme But we learnt many things from MDE 1. Representation principle 6. HOT principle Any model M represents a system S A transformation is a model 2. Multiple view principle 7. Weaving principle A system S may be represented by Abstract correspondences between several models models are represented as models 3. Conformance principle 8. Megamodel principle Any model M conforms to the Model elements may be considered language of its metamodel MM as models 4. 3-level principle 9. Unification principle Any metamodel MM conforms to a All models specialize a common common metametamodel MMM abstract model 5. Transformation principle 10. Technical Space Framework The most important operation Any model has a given applicable to models is a representation defined by its transformation technical space (no MOF/ECORE lock-in) Not all models are software models, but most of them are Creative Commons http://en.wikipedia.org/wiki/File:Renault_clay_model_-_front.JPG ME meets OSS Board Approval DTC or PTC Recommendation The Normative period (1996-2004) Final AB Review Evaluation The Open Source period (2004-2010) RFI RFP AB Review (Architecture Board) Task Force DTC = Domain Technical committ PTC = Platform Technical commit Mission The Eclipse Modeling Project will focus on the evolution and promotion of model-based development technologies within the Eclipse community. It will unite projects falling into this classification to bring holistic model-based development capabilities to Eclipse. ME and DSLs Model Engineering (Domain Specific) Language Engineering 2005 2010 2015 2020 2025 The long history of modeling languages Programming Lisp Algol60 Smalltalk Ruby Javascript Fortran COBOL PL/1 Java Scala Dart Languages ADA C++ Python Assembler Prolog Pascal C# F# Go No global consolidated history of Modeling Languages (DS) Petri Flowcharts JSD Z SREM SADT B UML SBVR Modeling SART DFD Sara PSL/PSA VDM OMT SysML Languages Model Engineering Definition Framework (Software) Model Engineering (ME) Model promotes the systematic use of models, Driven metamodels and model transformations to Engineering achieve industrial goals. Model Driven Engineering (MDE) is the application of ME principles and tools to any given engineering field. Model Driven Software Engineering (MDSE) MDbizE MDSE MDsysE (BPMN) (UML) (SysML) Model Driven (Software) Development (MDD) Model Driven Code Generation(MDCG) Model Driven Reverse Engineering (MDrevE) But also Model Driven Business Engineering (MDbizE) MDrevE MDD Model Driven System Engineering (MDsysE) Model Driven Data Engineering Model Driven Web Engineering Model Driven Requirement Engineering
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages56 Page
-
File Size-