The Future of Model Driven Software Engineering February 2015
Introduction Degree in Physics, +/- 15 years as Software Engineer 6502 ASM, ASM85, ASM86, Pascal, PLM, C, Smalltalk Built Factory Automation Systems, Water Treatment Systems Previously built & sold a software development company CEO & Co-founder of Verum (Est Jan 2004) Responsible for strategy, business, commerce & finance Won major accounts including Philips, ASML, Ericsson Raised more than 11 Million in funding in total Designed Verum s business models & metrics system Successfully restarted Verum after 2013 crash
Verum s Mission & Pitch Mission Provide a better way of working for Software Engineers Enables you to reason about (any part of) a software system without having to execute it Deliver software that can be trusted, based on evidence Free your creativity and ability to rapidly build software systems Pitch Verum s range of software engineering tools enables engineers to create, explore and formally verify model-based designs for software-controlled systems, leading to generated code that is robust, reliable and trustworthy.
DEZYNE modeling language sophisticated designs for control systems DEZYNE simulation reason about designs through simulation DEZYNE verification discover hidden defects, fully automatically DEZYNE code generation generate efficient, reliable and robust code
Customer Success Stories ASML Significant ASD design component released to market High level decision to deploy ASD to new developments AT Technologies / Sioux Developed entire control software for semiconductor lithography system Software ready first, most reliable component of the product
Customer Success Stories FEI Electron Microscopes Core control software built using ASD:Suite Over 3 years, cost / LOC reduced to 5,-. New long term contract agreed Philips Digital Pathology Entire pathology scanner built using the ASD:Suite Software architecture easy to learn. High reusability. New developments planned
What I m going to say Software increasingly embodies the value of a product Conventional software engineering (CSE) is already failing to meet the needs of the businesses that depend on it. Addressing the challenges of the Internet of Things will mean making an quantum leap in Software Engineering capability MDSE has the potential to be better than CSE MDSE is still young and incomplete For MDSE to be a success we need to be thinking about the whole, integral MDSE process, eg: Development Tools and interoperability Testing Tools and interoperability MDSE Process & Metrics Software Total Cost of Ownership Commercial Value needs to be the driving force behind MDSE
The Importance of Software
Conventional SW Engineering fails to deliver
Conventional SW Engineering fails to deliver
Engineering Smart, Secure Software Smart industrial systems will be supremely sophisticated. They will need to be innovative, flexible, highly integrated and yet geographically distributed. Smart software, of a level of complexity and sophistication that has yet to be seen, will be the means by which such smart industrial systems are realized Smart industrial systems will need to be secure, not only against intrusion, but also in terms of reliability, robustness and trustworthiness. Realising demonstrability secure, reliable, robust and trustworthy industrial software systems will of itself require a breakthrough in practical software engineering.
Information Disorder Order Why Model Driven Software Engineering? Requirements
Information Disorder Order Why Model Driven Software Engineering? Architecture Requirements
Information Disorder Order Why Model Driven Software Engineering? Design Architecture Requirements
Information Disorder Order Why Model Driven Software Engineering? Design Architecture Code Requirements
Information Disorder Order Why Model Driven Software Engineering? Design Architecture Code Requirements Executable
Information Disorder Order Why Model Driven Software Engineering? Design Validate & Verify Architecture Code Requirements Executable
Information Disorder Order Why Model Driven Software Engineering? Design Validate & Verify Architecture Code Requirements Executable
MDSE has the potential to be Better Models allow SW Designs to be Validated & Verified The result is (at least):
What does the Customer want? Does NOT want a lot of island tools! For MDSE to be successful it must: Be easy for customers to adopt Cope with legacy software Offer a total solution Provide compelling, measurable benefits This implies: A defined MDSE process and how-to resources Integration strategy with legacy code Interoperability between tools Fundamentally meaningful metrics (for demonstrating benefits)
Clockwork Cockpit
Glass Cockpit
Imagine (the Glass Cockpit MDSEE) A SW Development Environment where: Automatic (Formal) Verification largely replaced testing (Automated) Design Validation is commonplace Source code becomes largely irrelevant Design decisions are based on calculated system properties Component reuse is commonplace Testing is largely automated The lifetime of software components is greatly increased Engineering decisions are based on objective business cases
The Challenge facing MDSE Algorithm Modelling Formal Verification Data Modelling Requirements Formal Validation Automated Testing Control Modelling Performance Analysis Process Metrics
The Future of MDSE MDD/MDSE needs to be about: People (Software Engineers, Development Managers, etc) Customer Business Cases Making Money What to do? There are enough workable MDD technologies/products around Need to work together on the Big Picture My Opinion: We have all the elements necessary to be successful. We just need a determined drive to bring them all together.