BENEFITS OF MODELING WITH A FORMAL LANGUAGE Emmanuel Gaudin emmanuel.gaudin@pramadev.com
PragmaDev French software editor based in Paris Dedicated to the development of RTDS: a modeling and testing tool for event driven applications Founded in 2001 by engineers having a strong background on modeling languages Company is participating to: European projects such as PRESTO on Modeling and Test subjects with Thales and INRIA French Competiveness Cluster Systematic Common lab with National Nuclear Research Center CEA
Partners OS and tools vendors Service compagnies Academics
References Aero/ Defense Automotive Telecoms Semi-conductor Free university program : more than 800 licenses used over the world Distribution Network covering North America, Asia and Europe
Trends in software developments The software content is doubling about every two years. The sheer volume is making it increasingly difficult for QA and test teams to keep up with traditional tools and processes. Wind River Market Survey of Device Software Testing Trends and Quality Concerns in the Embedded Industry June 2010. Software development costs only comprise a portion of the total cost of software ownership. However, the development process itself has a significant impact on total cost of ownership. Total Cost of Ownership: Development is (only) Job One by Daniel D. Galorath - June 2008. Source: James Martin study
Modeling: an appropriate solution To concentrate on What rather than How, Modeling is about Communication and Documentation, Legibility of large systems gets critical. Would you build a house without drawing detailed plans? Get control over productivity, Improve quality.
Requirements of a modeling language Complete (self sufficient) Non ambiguous Executable Action language Execution semantic Formal language
SDL: the right language Classes Architecture Behavior Processes
RTDS: PragmaDev tool suite
First feature: Model simulation Model debugger based on the language semantic Breakpoints and stepping capabilities in the model, Interactive or external operators, Simulation traces, Connection to an HMI or an external tool via socket. The model can be verified
Second Feature: Full code generation Code generation of C or C++ Templates for integration with RTOS, OS or Scheduler Integration with debugger Debugging is done at the model level Generated code is Royalty Free No re-think, no need to re-design, process continuity Coding phase is shortened No need to debug (the model is right) Less errors of coding Easier maintenance
Third feature: testing Same abstraction level Relies on same basic services Messages Procedures Timers Parallel execution Based on TTCN-3 international standard: Data types definitions or ASN.1, Templates definitions, Test cases, Verdict, Execution control.
Benefits: early validation Specification Simulation Validation testing Design Simulation Execution Integration testing Implementation Execution Unit testing
Fourth feature: Model checking Exhaustive simulation: Verimag LAAS ( FIACRE) Symbolic resolution: PragmaList: joint lab with French National Nuclear Research center CEA Property verification on traces Benefits: System validation Robustness
Fifth feature: Model Based Testing Test generated from: Execution traces Simulation Real execution Test objective (property in exhaustive simulation) Code coverage Benefits: Easier to write Easier to maintain
Sixth feature: Deployment simulator Benefits: Simulate configuration that can not be tested on the field Deploy a substantial number of instances and verify the system of system behaves correctly: Deployment diagram Environment scenario Live and post-mortem simulation traces
Benefits: continuous integration Fits any cycle Code is automatically generated Test can be generated automatically Test can be done at model level or code level Automatic merge tool Graphical diff Automatic documentation generation Traceability table (from req to test)
Benefits listed by users Hand written code Improved legibility Generated code out of a model Easier maintenance Less errors 20% less development time Test integrated
Roadmap Deployment simulator Built in Traceability Upcoming major version New GUI New features (performance)
Conclusion Based on a formal language PragmaDev RTDS allows you to: Make sure to do right thing Shorten development time Reduce development cost Improve quality Ease maintenance
Modeling technology introduction New project or substantial modification Motivated team for a change Real project is always best Consulting
Are you ready to experiment?