O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Software Modeling
and
the Future of Engineering
JBezivin@gmail.com
JBezivin@twitter
University of Nantes
THE NEW ENGINEERING
LANDSCAPE
Problem and Solution Spaces
Hype after Hype
 Are we condemned to jump from hype to hype like a
fashion industry? (1)
 What is the hidden meaning (if...
ThoughtWorks, Technology Radar, May 2013
Languages & Frameworks
Adopt
Clojure
CSS frameworks
Jasmine paired with Node.js
S...
Surface or deep-sea movements?
Focus on Engineering
Scientists study the world as it is; engineers
create the world that has never been.
Theodore von Kár...
Looking at the past to guess the future
5 years 5 years
50 years 50 years
What has changed in the past 50 years ?
 Expressions like “CAD” or “Computer Assisted” or
“Computer Aided” have lost all ...
Change of focus
Computers
everywhere
Software
everywhere
Models
everywhere?
Computer
Assisted
Design
Software
Intensive
Sy...
The two engineering spaces
Domain
Engineering
Support
Engineering
Problems lie here
Tools to solve problems
may be found h...
Problems and Solutions
 Support Engineering
 Process engineering
 Product (line) engineering
 Software language engine...
DOMAIN ENGINEERING
Problem Spaces
Traditional Engineering Fields:
Civil, Mechanical, Chemical, …
Emerging Engineering Fields:
Financial, Business, Enterprise, …
Old and New engineering fields
Software vs. Traditional Engineers
Description Number Ann. Salary
Software Eng., Applications 356,760 $73,800
Software Eng...
Many features common
to all domain engineering fields,
for example:
 Based on support engineering
 Product & Process foc...
Domain Engineering
Domain
Engineering
Product
Engineering
Process
Engineering
Problem spaces
Solution spaces
(Support Engi...
Electrical Engineering
Building abstract
models
Validation
Verification
Putting in
Production
Augmenting,
Changing the
wor...
Construction Engineering
Building abstract
models
Validation
Verification
Putting in
Production
Augmenting,
Changing the
w...
Complexity of the
Domain Engineering Landscape
Civil
Engineering
Electrical
Engineering
Automotive
Engineering
Architectur...
Many Communities, Many Journals
http://www.govengr.com/
Journal of Neural Engineering to help scientists, clinicians and e...
And many more
SUPPORT ENGINEERING
The spaces of solutions
Product and Team Management Engineering
Product Lifecyle
Management (PLM)
Product Line
Engineering
(incl. variability)
Sof...
Process engineering
 Process engineering
encompasses a vast range
of industries, such as
chemical, petrochemical,
mineral...
Process Engineering
Process Specification Language NIST
+name
Process
-name
-duration
Activity
1
0..*
+following0..*
+prec...
Data Engineering
Data
Engineering
Data
Mining
Big Data,
Etc.
Open
Data
Data
Visualization
Linked
Data
And also data transformation
Data Engineering
Data Transformation
Engineering
Transformation Engineering
Transformation Engineering
Transformation
Engineering
Graph
Transformation
Eng.
Program
Transformation
Eng.
Ontology
trans...
Transformation in a SE context
Transformation
Engineering
After code
production
Before code
production
MDSD
Including code...
Transformation in a ME context
Transformation
Engineering
Model to System
Transformation
System to Model
Transformation
As...
Diversity of the
Support Engineering Landscape
Language
Engineering
Program
Engineering
Ontology
Engineering
Model
Enginee...
But also …
Tree
Engineering
Graph
Engineering
XML
Engineering
UML
Engineering
Document
Engineering
Legal
Engineering
MOF/E...
Relation to Technical Spaces
Engineering Field
Support
Engineering
Fixed Metamodel
Technical Space
Domain
Engineering
Vari...
Example: EBNF Technical Space
[the 3-level conjecture]
[SOFTWARE] MODEL ENGINEERING
Using ME for cross-disciplinary approaches
Software Model Engineering
Short name: “Software Modeling”
An important support engineering
Central to most domain enginee...
Not all models are software models,
but most of them are
Creative Commons http://en.wikipedia.org/wiki/File:Renault_clay_m...
MDE is not only for code generation
 Software engineering
 Data engineering
 System engineering
 Business engineering
...
In several domain engineering fields,
no “visible” code is generated
There is no contribution to the basic information
sy...
Definition Framework
 (Software) Model Engineering (ME) is an abstract
calculus on models with associated operations.
 I...
Also, two branches of MDSE
MDSE
DSL
Engineering
UML
Engineering
Universal Modeling Language
One Unique Language
Multiple D...
The powerful calculus of Model Engineering
 Definition (one of)
 ME is a typed polymorphic calculus on immutable
objects...
Early modeling result:
The Seven Bridges of Königsberg (L. Euler)
• The city of Königsberg included two large islands conn...
Software modeling: the roots
When we wish to solve a problem on a computer
we often need to construct within the computer ...
Representation and Conformance
ModelSystem
representationOf
Metamodel
conformsTo
The two orthogonal
dimensions of MDE
wrt
Several periods for ME
(iterations/ generations)
Contemplative models
Implicit metamodels
Explicit metamodels
Transfor...
A View of 20th and 21st Century Software Engineering
Barry Boehm, ICSE2006, Shanghai
Where is the logical line of progress?
Paradigm/Artifact changes {step = 15y.}
Procedural
Technology
Component
Technology
Object
Technology
Objects,
Classes,
Sma...
Climbing the steps
Image credit fgormezano.free.fr
Software engineering: Approaching half-time?
1965 2015 2065
Structured
Programming
Object
Oriented
Programming
Agile
Devel...
History of Modeling Languages
Juha-Pekka Tolvanen (Metaedit+)
The long history of modeling languages
Programming
Languages
Assembler
Fortran COBOL
Algol60
PL/1
ADA Java
C#
Smalltalk
C+...
We learnt many things
from the MDE last iteration
1. Representation principle
 Any model M represents a system S
2. Multi...
General Acceptance of Metamodeling
Example: Various accounting metamodels
ABC metamodel
REA metamodel
DEA metamodel
NO ENGINEERING FIELD IS AN ISLAND
Inter-Disciplinary and Trans-Disciplinary Practices
Specialized engineering fields
Language
Engineering
Software
Language
Engineering
Model
Engineering
Ontology
Engineering
G...
Composite Engineering Fields
Software
Engineering
Program
Engineering
Language
Engineering
Model
Engineering
Method
Engine...
Domain using Support Engineering
(one example among many)
Biology
Engineering
Constraint
Engineering
uses
New workshops, New communities
Robot Engineering
(Robotics)
Model Engineering
Software Engineering
Informatics or “Computer Science”
Computer
Engineering
Program
Engineering
Software
Engineering
Data Engineering?
Language...
Understanding complex relations
Business
Engineering
Informatics
?
?
Model
Engineering
Language
Engineering
Data
Engineeri...
DogFooding: Software Tools are Software Too
Support Engineering
Software Engineering Software Engineering
Domain Engineeri...
Making implicit relations explicit
Language engineering is
related to the definition
and handling of languages
Program e...
Program Engineering
 Short name: “programming”
 Long tradition of excellence
 Noble and visible part of SE
 Very diffi...
Models for producing programs
Domain
(World)
Problem
(Application)
Platform
(Machine)
Program
Models
Code generation with ...
But also models for understanding programs
View1
View2
View3
Program
Models
Code understanding with models
Today
Tomorrow
Strange Encounters between Engineering Fields
Many Possible Useful Collaborations
Between Support Eng.
Transformation
Engineering
Model
Engineering
Data
Engineering
Pro...
Informal Transfer of expertise
Architectural engineering Software engineering
1st published 1977
Synergies Between Engineering Fields
Program Engineering Building Engineering
“The Origins of Pattern Theory, the
Future o...
Model Engineering and Language Engineering
2005 2010 2015 2020 2025
Model Engineering
(Domain
Specific)
Language
Engineeri...
Spreadsheet Engineering meets ME
Using Excel to
a) capture models
b) store models
c) render models
Model Engineering
Sprea...
Excel as a DSL
Everybody’s a programmer
www.bricklin.com
Visicalc (1979) Excel (much later)
(…Charles Simonyi…)
(…Intentio...
Workload Transfer due to Excel
3 M Software
Professionals
(1%)
300 M
End Users
(99%)
Including 55M
Excel users
(about 18%)...
OO Engineering meets COBOL Engineering
Smalltalk
Engineering
Model
Engineering
Cobol
Engineering
Strange Encounters:
ME meets Standardization & OSS Eng.
 The Normative period
(1996-2004)
 The Open Source period
(2004-...
ME and 3D scanning/printing engineering
Model
Real World Real World
ModelSystem ModelModel Model System
Towards Automatic Production of Models?
Where are models
coming from?
ModelSystem
Thesis
Model Engineering is a support engineering
potentially useful in most other domain and
support engineering fields, ...
CONCLUSIONS
Software Engineering is Engineering
Model Engineering is no more part
of Software Engineering only
Software
Engineering
Model
Engineering
Software
Engineering...
A possible scenario for MDE
Visibility
Time
Technology trigger
Second tentative
ME is too important to be confined to pure...
The second life of Model Engineering
eEngineering
Platform
Mechanical
Engineering
Financial
Engineering
Enterprise
Enginee...
Subliminal Message
Towards a Unified “Global Theory” of Engineering
 The second part of the life of Software Engineering (2015-2065) may
pro...
ME for cross-disciplinary projects
 Most projects have now become complex,
interdisciplinary and interdependent, drawing ...
Thanks
• Questions?
• Comments?
JBezivin@gmail.com
JBezivin@twitter
Próximos SlideShares
Carregando em…5
×

de

 Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 1  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 2  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 3  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 4  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 5  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 6  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 7  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 8  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 9  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 10  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 11  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 12  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 13  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 14  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 15  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 16  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 17  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 18  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 19  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 20  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 21  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 22  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 23  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 24  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 25  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 26  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 27  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 28  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 29  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 30  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 31  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 32  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 33  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 34  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 35  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 36  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 37  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 38  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 39  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 40  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 41  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 42  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 43  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 44  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 45  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 46  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 47  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 48  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 49  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 50  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 51  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 52  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 53  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 54  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 55  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 56  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 57  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 58  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 59  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 60  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 61  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 62  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 63  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 64  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 65  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 66  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 67  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 68  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 69  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 70  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 71  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 72  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 73  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 74  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 75  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 76  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 77  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 78  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 79  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 80  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 81  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 82  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 83  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 84  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 85  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 86  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 87  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 88  Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York) Slide 89
Próximos SlideShares
Design concepts and principles
Avançar
Transfira para ler offline e ver em ecrã inteiro.

17 gostaram

Compartilhar

Baixar para ler offline

Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)

Baixar para ler offline

In the past fifty years the world of engineering has considerably changed. From computer-assisted to software-intensive, most classical and emerging domain engineering fields now heavily draw on some forms of Software Model Engineering (SME) shortly called “Software Modeling”. Starting from a general map of engineering fields, the talk will first outline this important evolution and the progressive shift of SME from the mere support of code production and maintenance to the much broader spectrum of a central practice in most of these current domain engineering fields. In other words the focus of software modeling is rapidly changing from software engineering to engineering software. But what is exactly SME? Historically its definition has been rather fluctuating. The last iteration, since 2000, did not even produce a unique characterization. On the contrary, SME may be viewed as composed as a set of different facets, some of them not even mutually compatible. The talk will describe these various segments of SME, their objective, market, usage characteristics and hopefully convergence of goals. One of these segments, the management of abstract correspondences between models (and of transformations, their operational counterparts) will be for example more particularly detailed and its importance outlined. All these observations will allow to conclude that, at this point of its history and in this state of maturity, software modeling may be seen as an essential contribution to the future of engineering and an outstanding long-term research opportunity.

Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)

  1. 1. Software Modeling and the Future of Engineering JBezivin@gmail.com JBezivin@twitter University of Nantes
  2. 2. THE NEW ENGINEERING LANDSCAPE Problem and Solution Spaces
  3. 3. 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? (raw Ngram buzzword observations) Google Ngram Viewer (1) Ivar Jacobson
  4. 4. 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 Handwritten CSS Logic in stored procedures http://www.thoughtworks.com/radar (Martin Fowler & C°)
  5. 5. Surface or deep-sea movements?
  6. 6. Focus on Engineering Scientists study the world as it is; engineers create the world that has never been. Theodore von Kármán
  7. 7. Looking at the past to guess the future 5 years 5 years 50 years 50 years
  8. 8. 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
  9. 9. Change of focus Computers everywhere Software everywhere Models everywhere? Computer Assisted Design Software Intensive Systems Model Driven Engineering?
  10. 10. The two engineering spaces Domain Engineering Support Engineering Problems lie here Tools to solve problems may be found here
  11. 11. Problems and Solutions  Support Engineering  Process engineering  Product (line) engineering  Software language engineering  Model engineering  Service engineering  Data engineering  Program engineering  Event engineering  Constraint engineering  System engineering  Requirement engineering  Ontology engineering  OSS engineering  Domain Engineering  Robotics engineering  Civil engineering  Building engineering  Electrical engineering  Mechanical engineering  Business engineering  Biological engineering  Automotive engineering  Health engineering  Enterprise Engineering
  12. 12. DOMAIN ENGINEERING Problem Spaces
  13. 13. Traditional Engineering Fields: Civil, Mechanical, Chemical, …
  14. 14. Emerging Engineering Fields: Financial, Business, Enterprise, …
  15. 15. Old and New engineering fields
  16. 16. Software vs. Traditional Engineers Description Number Ann. Salary Software Eng., Applications 356,760 $73,800 Software Eng., System Software 255,040 $75,840 Aerospace Engineers 74,210 $74,110 Agricultural Engineers 2,500 $55,730 Biomedical Engineers 7,130 $64,420 Chemical Engineers 32,110 $75,010 Civil Engineers 207,480 $63,010 Computer Hardware Engineers 67,180 $76,150 Electrical Engineers 146,180 $70,480 Electronics Eng., Exc. Computer 126,020 $71,600 Environmental Engineers 45,720 $63,440 Health and Safety, Exc. Mining 34,160 $59,830 Industrial Engineers 151,760 $63,590 Marine Eng., Naval Architects 4,810 $68,280 Materials Engineers 22,780 $64,310 Mechanical Engineers 203,620 $65,170 Mining and Geological Eng. 5,050 $64,770 Nuclear Engineers 15,180 $82,300 Petroleum Engineers 11,130 $85,540 611.900 (35%) 1.157.020 (65%) Source U.S. Bureau of Labor Statistics (2002) Software Engineer s (35%) Traditional Engineers (65%) ?
  17. 17. Many features common to all domain engineering fields, for example:  Based on support engineering  Product & Process focus  Including HR and team management  Human in the loop  Engineers in control  Chain 1. Building Abstract Models 2. Verification/Validation 3. Putting in Production 4. Putting in Operation (deployment)  Need for a strong model repository (e.g. Dassault Syst. Catia)  Scaling up to millions of parts  Cooperative concurrent access  Point of view mechanisms  Strong zooming mechanisms
  18. 18. Domain Engineering Domain Engineering Product Engineering Process Engineering Problem spaces Solution spaces (Support Engineering)
  19. 19. Electrical Engineering Building abstract models Validation Verification Putting in Production Augmenting, Changing the world
  20. 20. Construction Engineering Building abstract models Validation Verification Putting in Production Augmenting, Changing the world
  21. 21. Complexity of the Domain Engineering Landscape Civil Engineering Electrical Engineering Automotive Engineering Architecture Engineering Medical & Health Engineering Chemical Engineering Biological Engineering Weather Engineering Military Engineering Financial Engineering Business Engineering Enterprise Engineering Ecology Engineering Agricultural Engineering Telecommunications Engineering Other Engineering Fields
  22. 22. Many Communities, Many Journals http://www.govengr.com/ Journal of Neural Engineering to help scientists, clinicians and engineers to understand, replace, repair and enhance the nervous system. Neural engineering (also known as Neuroengineering) is a discipline within biomedical engineering that uses engineering techniques to understand, repair, replace, enhance, or otherwise exploit the properties of neural systems Healthcare Engineering Biomedical engineering Computer-aided medical engineering Medical/disease modeling Rehabilitation engineering Healthcare energy systems engineering Healthcare support service engineering Emergency response engineering Engineering issues in public health and epidemiology Aging Engineering and aging (elderly patient service) Healthcare engineering education … Concurrent engineering is a work methodology based on the parallelization of tasks (i.e. performing tasks concurrently). It refers to an approach used in product development in which functions of design engineering, manufacturing engineering and other functions are integrated to reduce the elapsed time required to bring a new product to the market.
  23. 23. And many more
  24. 24. SUPPORT ENGINEERING The spaces of solutions
  25. 25. Product and Team Management Engineering Product Lifecyle Management (PLM) Product Line Engineering (incl. variability) Software Product Line Engineering Team Management Engineering Software Team Management Engineering Agile Methods Product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from inception, through engineering design and manufacture, to service and disposal of manufactured products
  26. 26. Process engineering  Process engineering encompasses a vast range of industries, such as chemical, petrochemical, mineral processing, advanced material, food, pharmaceutical, biotechnological, and software industries.  See also Concurrent Engineering Process Engineering Software Process Engineering SPEM Engineering Workflow Engineering
  27. 27. Process Engineering Process Specification Language NIST +name Process -name -duration Activity 1 0..* +following0..* +preceding 0..* Who is doing what, when, how and why ?
  28. 28. Data Engineering Data Engineering Data Mining Big Data, Etc. Open Data Data Visualization Linked Data
  29. 29. And also data transformation Data Engineering Data Transformation Engineering Transformation Engineering
  30. 30. Transformation Engineering Transformation Engineering Graph Transformation Eng. Program Transformation Eng. Ontology transformation Eng. XML Transformation Eng. Model Transformation Eng. Data Transformation Engineering XSLT Eng.
  31. 31. Transformation in a SE context Transformation Engineering After code production Before code production MDSD Including code generation MDCG Models@RunTime During code execution MDRE Reverse Engineering Software Modernization Refactoring
  32. 32. Transformation in a ME context Transformation Engineering Model to System Transformation System to Model Transformation As in reverse engineering M2M Model to Model Transformation As in code generation (Model to Text, Model to Code) ModelSystem ModelModel Model System
  33. 33. Diversity of the Support Engineering Landscape Language Engineering Program Engineering Ontology Engineering Model Engineering Web Engineering Service Engineering Transformation Engineering Rule Engineering Complex Event Engineering Data Engineering Process Engineering Product Engineering HR Engineering Team Engineering Software Engineering OSS Engineering
  34. 34. But also … Tree Engineering Graph Engineering XML Engineering UML Engineering Document Engineering Legal Engineering MOF/EMF Engineering Grammar Engineering (Grammarware) Spreadsheet Engineering etc. etc. etc. etc. etc. etc. etc. Fields of various granularity, from coarse to fine
  35. 35. Relation to Technical Spaces Engineering Field Support Engineering Fixed Metamodel Technical Space Domain Engineering Variable Metamodel Technical Space Example: LegalEngineering Example: PetriNets Excel Example: ModelWare Grammarware XMLWare Criteria: Precise metamodel
  36. 36. Example: EBNF Technical Space [the 3-level conjecture]
  37. 37. [SOFTWARE] MODEL ENGINEERING Using ME for cross-disciplinary approaches
  38. 38. Software Model Engineering Short name: “Software Modeling” An important support engineering Central to most domain engineering (cross-disciplinary)
  39. 39. Not all models are software models, but most of them are Creative Commons http://en.wikipedia.org/wiki/File:Renault_clay_model_-_front.JPG
  40. 40. MDE is not only for code generation  Software engineering  Data engineering  System engineering  Business engineering  Enterprise engineering  Telecommunication engineering  Building engineering  Electrical engineering  Mechanical engineering  Automotive engineering  Aeronautical engineering  Biological engineering  Automotive engineering  Health engineering  Financial engineering  Robotic Engineering  etc. appliesTo Model Driven Archiecture Initially MDA was for just software engineering, But the scope was progressively extended Broadening application spectrum (+ EDOC, etc.) Software Engineering System Engineering Data Engineering Business Engineering UML/SPEM CWM SysML BPMN Web Engineering IFML
  41. 41. In several domain engineering fields, no “visible” code is generated There is no contribution to the basic information system Models are just used for validation/verification and to answer questions about the system under study Examples: Model Driven Business Engineering, Model Driven Financial Engineering Model Driven Enterprise Engineering
  42. 42. Definition Framework  (Software) Model Engineering (ME) is an abstract calculus on models with associated operations.  In pure ME, models are immutable polymorphic objects (graphs).  Several ways to project this calculus on a given framework (EMF, MS DSL Tools, etc.) and to implement corresponding tools.  Executable projections on cloud engineering and functional or prototype language engineering with NoSQL database engineering seems well adapted.  Model Driven Engineering (MDE) is the application of ME principles and tools to any given engineering field.  Model Driven Software Engineering (MDSE) 1. Model Driven Software Development (MDSD)  Model Driven Code Generation (MDCG) 2. Models @RunTime 3. Model Driven Reverse Engineering (MDRE) Model Engineering Model Driven Engineering MDSE For other eng. fields Models @RunTime MDSD MDCG MDRE
  43. 43. Also, two branches of MDSE MDSE DSL Engineering UML Engineering Universal Modeling Language One Unique Language Multiple Domain Specific Modeling Languages
  44. 44. The powerful calculus of Model Engineering  Definition (one of)  ME is a typed polymorphic calculus on immutable objects (labelled graphs)  Mt [MMt] : Ma [MMa] → Mb [MMb] Abstract Model Terminal Model Model Transformation Verification Measurement View Extraction WeavingReference Model Metametamodel Metamodel
  45. 45. Early modeling result: The Seven Bridges of Königsberg (L. Euler) • The city of Königsberg included two large islands connected to each other and the mainland by seven bridges. • The problem was to find a walk through the city that would cross each bridge once and only once. • Leonhard Euler, in 1735, proved that the problem has no solution • First, Euler pointed out that the choice of route inside each land mass is irrelevant. The only important feature of a route is the sequence of bridges crossed. [Modeling means ignoring some features of the real world] • In this pre-computer period, Euler defined a language (DSL) of nodes and edges (graphs) to describe a real world problem and to express a solution (Eulerian paths) The World The Model
  46. 46. Software modeling: the roots When we wish to solve a problem on a computer we often need to construct within the computer a model of that aspect of the real or conceptual world to which the solution of the problem will be applied … C.A.R. Hoare, “Record Handling”, in Programming Languages, F. Genuys (ed.), Villard-de-Lans (near Grenoble, France), September 1966
  47. 47. Representation and Conformance ModelSystem representationOf Metamodel conformsTo The two orthogonal dimensions of MDE wrt
  48. 48. Several periods for ME (iterations/ generations) Contemplative models Implicit metamodels Explicit metamodels Transformable models Transformation models Megamodels etc.
  49. 49. A View of 20th and 21st Century Software Engineering Barry Boehm, ICSE2006, Shanghai Where is the logical line of progress?
  50. 50. Paradigm/Artifact changes {step = 15y.} Procedural Technology Component Technology Object Technology Objects, Classes, Smalltalk, C++, ... Procedures, Pascal, C, ... Components, Packages, Frameworks, Patterns, EJB, J2EE 1980 1995 2010 Procedural refinement Model Driven Engineering Models, Metamodels, UML, MOF, … Object composition Model transformation 1965 2025
  51. 51. Climbing the steps Image credit fgormezano.free.fr
  52. 52. Software engineering: Approaching half-time? 1965 2015 2065 Structured Programming Object Oriented Programming Agile Development ? 1967 http://bertrandmeyer.com/2013/04/04/the-origin-of-software-engineering/
  53. 53. History of Modeling Languages Juha-Pekka Tolvanen (Metaedit+)
  54. 54. The long history of modeling languages Programming Languages Assembler Fortran COBOL Algol60 PL/1 ADA Java C# Smalltalk C++ Ruby Scala Python F# Go Dart (DS) Modeling LanguagesSara SREM SADT Petri JSD DFD B OMT Z VDM UML SART Flowcharts Lisp Prolog SysML Pascal PSL/PSA SBVR Javascript No global consolidated history of Modeling Languages Merise
  55. 55. We learnt many things from the MDE last iteration 1. Representation principle  Any model M represents a system S 2. Multiple view principle  A system S may be represented by several models 3. Conformance principle  Any model M conforms to the language of its metamodel MM 4. 3-level organization  Any metamodel MM conforms to a common metametamodel MMM (3- level conjecture) 5. Transformation principle  The most important operation applicable to models is a transformation 6. HOT principle  A transformation is a model 7. Weaving principle  Abstract declarative correspondences between models may be represented as models (non executable) 8. Megamodel principle  Model elements may be considered as models. A megamodels is composed, of models, metadata on models and relations between them. 9. Unification principle  All models specialize a common abstract model 10. Technical Space Framework  Any model has a given representation defined by its technical space (no MOF/ECORE lock-in)
  56. 56. General Acceptance of Metamodeling Example: Various accounting metamodels ABC metamodel REA metamodel DEA metamodel
  57. 57. NO ENGINEERING FIELD IS AN ISLAND Inter-Disciplinary and Trans-Disciplinary Practices
  58. 58. Specialized engineering fields Language Engineering Software Language Engineering Model Engineering Ontology Engineering Grammar Engineering XML Engineering Engineering Field Engineering Field Engineering Field
  59. 59. Composite Engineering Fields Software Engineering Program Engineering Language Engineering Model Engineering Method Engineering Etc. But also: OSS Engineering Document Engineering Requirement Engineering Formal Method Engineering Data Engineering User Interface Eng. Usability Engineering HR Engineering Education Engineering Team Mgmt Engineering Legal Engineering Computer Engineering
  60. 60. Domain using Support Engineering (one example among many) Biology Engineering Constraint Engineering uses
  61. 61. New workshops, New communities Robot Engineering (Robotics) Model Engineering Software Engineering
  62. 62. Informatics or “Computer Science” Computer Engineering Program Engineering Software Engineering Data Engineering? Language Engineering Informatics Platform Engineering
  63. 63. Understanding complex relations Business Engineering Informatics ? ? Model Engineering Language Engineering Data Engineering Service Engineering
  64. 64. DogFooding: Software Tools are Software Too Support Engineering Software Engineering Software Engineering Domain Engineering uses Software Engineering uses One peculiarity of SE is that it may be considered as a Domain Engineering and as a Support Engineering at the same time.
  65. 65. Making implicit relations explicit Language engineering is related to the definition and handling of languages Program engineering deals with the use of executable software languages to produce operational programs that will participate in human activities (includes deployment). Language Engineering Program Engineering ? ?
  66. 66. Program Engineering  Short name: “programming”  Long tradition of excellence  Noble and visible part of SE  Very difficult  Many iterations and branches  Structured Programming  OO Programming  Functional Programming  Etc.  Panels on “programming vs. modeling” considered harmful Programming is Modeling Modelingis Programming Model Engineering Program Engineering ? ?  Good definitions allow avoiding sterile, futile, and non productive discussions  «Mal nommer les choses, c'est ajouter au malheur du monde» Albert Camus [To misname things is to add misery to the world]
  67. 67. Models for producing programs Domain (World) Problem (Application) Platform (Machine) Program Models Code generation with models Today Knowledge in the head of programmer Tomorrow From implicit to explicit Transformation basedOther aspects
  68. 68. But also models for understanding programs View1 View2 View3 Program Models Code understanding with models Today Tomorrow
  69. 69. Strange Encounters between Engineering Fields
  70. 70. Many Possible Useful Collaborations Between Support Eng. Transformation Engineering Model Engineering Data Engineering Program Engineering Model Engineering Language Engineering Service Engineering Model Engineering Data Engineering Process Engineering Model Engineering Product Engineering
  71. 71. Informal Transfer of expertise Architectural engineering Software engineering 1st published 1977
  72. 72. Synergies Between Engineering Fields Program Engineering Building Engineering “The Origins of Pattern Theory, the Future of the Theory, And The Generation of a Living World” Christopher Alexander Once in a great while, a great idea makes it across the boundary of one discipline to take root in another. The adoption of Christopher Alexander’s patterns by the software community is one such event. . Jim Coplien
  73. 73. Model Engineering and Language Engineering 2005 2010 2015 2020 2025 Model Engineering (Domain Specific) Language Engineering
  74. 74. Spreadsheet Engineering meets ME Using Excel to a) capture models b) store models c) render models Model Engineering Spreadsheet Engineering ? ?
  75. 75. Excel as a DSL Everybody’s a programmer www.bricklin.com Visicalc (1979) Excel (much later) (…Charles Simonyi…) (…Intentional Programming…)
  76. 76. Workload Transfer due to Excel 3 M Software Professionals (1%) 300 M End Users (99%) Including 55M Excel users (about 18%)Workload transfer (1979-2014)
  77. 77. OO Engineering meets COBOL Engineering Smalltalk Engineering Model Engineering Cobol Engineering
  78. 78. Strange Encounters: ME meets Standardization & OSS Eng.  The Normative period (1996-2004)  The Open Source period (2004-2010) Task Force RFIRFP AB Review (Architecture Board) Evaluation Final AB Review Board Approval DTC or PTC Recommendation DTC = Domain Technical committee. PTC = Platform Technical committee. 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.
  79. 79. ME and 3D scanning/printing engineering Model Real World Real World ModelSystem ModelModel Model System
  80. 80. Towards Automatic Production of Models? Where are models coming from? ModelSystem
  81. 81. Thesis Model Engineering is a support engineering potentially useful in most other domain and support engineering fields, for example: Software Engineering Model Engineering Data Engineering Process Engineering Service Engineering Enterprise Engineering Biological Engineering Business Engineering Mechanical Engineering
  82. 82. CONCLUSIONS Software Engineering is Engineering
  83. 83. Model Engineering is no more part of Software Engineering only Software Engineering Model Engineering Software Engineering Business Engineering Enterprise Engineering Model Engineering Data Engineering Financial Engineering Other Engineering Fields Web Engineering Biology Engineering
  84. 84. A possible scenario for MDE Visibility Time Technology trigger Second tentative ME is too important to be confined to pure software engineering 2010 2020 2030 2040
  85. 85. The second life of Model Engineering eEngineering Platform Mechanical Engineering Financial Engineering Enterprise Engineering Business Engineering Chemical Engineering NuclearPlant Engineering Health Engineering Biological Engineering Software Engineering Most results achieved in the past iteration of ME (1995-2015) are applicable in this wider context.
  86. 86. Subliminal Message
  87. 87. Towards a Unified “Global Theory” of Engineering  The second part of the life of Software Engineering (2015-2065) may probably be more in rupture than in continuity  Change of focus: from “Software Engineering” to “Engineering Software”?  Wikipedia: “Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software”  More relevant is the increasing need for the application of software to engineering  General engineering will not only use computers, not only use software, but most likely use some form of software modeling, whatever the field.
  88. 88. ME for cross-disciplinary projects  Most projects have now become complex, interdisciplinary and interdependent, drawing on multiple engineering fields.  We need a regular organization of all these support and domain engineering fields, showing the semantic relations between them.  For industry, education and research  Model Engineering will play an important role in this new engineering landscape, allowing to:  Cope with various engineering fields  Use similar concepts and tools across all disciplines  Handle multidisciplinary projects
  89. 89. Thanks • Questions? • Comments? JBezivin@gmail.com JBezivin@twitter
  • DanielNicklaus2

    Oct. 31, 2019
  • SusmithaReddy34

    Feb. 5, 2019
  • RaufPaswal

    Jul. 4, 2018
  • NassimKHARMOUM

    May. 9, 2016
  • ssuser158d55

    Mar. 27, 2016
  • QaziUmarF786

    Nov. 3, 2015
  • JunweiCheng

    Sep. 28, 2015
  • ksibrahim

    Sep. 19, 2015
  • samarin

    Nov. 22, 2014
  • ilia12

    Nov. 22, 2014
  • furuyoshi

    Nov. 18, 2014
  • juandesant

    Nov. 12, 2014
  • Mtriver

    Sep. 3, 2014
  • MBoskovic

    Aug. 7, 2014
  • aladinux

    Aug. 7, 2014
  • mbrambil

    Aug. 5, 2014
  • jcabot

    Aug. 3, 2014

In the past fifty years the world of engineering has considerably changed. From computer-assisted to software-intensive, most classical and emerging domain engineering fields now heavily draw on some forms of Software Model Engineering (SME) shortly called “Software Modeling”. Starting from a general map of engineering fields, the talk will first outline this important evolution and the progressive shift of SME from the mere support of code production and maintenance to the much broader spectrum of a central practice in most of these current domain engineering fields. In other words the focus of software modeling is rapidly changing from software engineering to engineering software. But what is exactly SME? Historically its definition has been rather fluctuating. The last iteration, since 2000, did not even produce a unique characterization. On the contrary, SME may be viewed as composed as a set of different facets, some of them not even mutually compatible. The talk will describe these various segments of SME, their objective, market, usage characteristics and hopefully convergence of goals. One of these segments, the management of abstract correspondences between models (and of transformations, their operational counterparts) will be for example more particularly detailed and its importance outlined. All these observations will allow to conclude that, at this point of its history and in this state of maturity, software modeling may be seen as an essential contribution to the future of engineering and an outstanding long-term research opportunity.

Vistos

Vistos totais

6.182

No Slideshare

0

De incorporações

0

Número de incorporações

926

Ações

Baixados

170

Compartilhados

0

Comentários

0

Curtir

17

×