Linköping Studies in Science and Technology Dissertation No. 1547 Model-Based Verification of Dynamic System Behavior against Requirements Method, Language, and Tool by Wladimir Schamai Department of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden Linköping 2013
Copyright 2013 Wladimir Schamai ISBN 978-91-7519-505-6 ISSN 0345-7524 Thesis No. 1547 October 2013 Electronic version available at: http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-98107 Printed by LiU-Tryck 2013
Abstract Modeling and simulation of complex systems is at the heart of any modern engineering activity. Engineers strive to predict the behavior of the system under development in order to get answers to particular questions long before physical prototypes or the actual system are built and can be tested in real life. An important question is whether a particular system design fulfills or violates requirements that are imposed on the system under development. When developing complex systems, such as spacecraft, aircraft, cars, power plants, or any subsystem of such a system, this question becomes hard to answer simply because the systems are too complex for engineers to be able to create mental models of them. Nowadays it is common to use computer-supported modeling languages to describe complex physical and cyber-physical systems. The situation is different when it comes to describing requirements. Requirements are typically written in natural language. Unfortunately, natural languages fail at being unambiguous, in terms of both syntax and semantics. Automated processing of natural-language requirements is a challenging task which still is too difficult to accomplish via computer for this approach to be of significant use in requirements engineering or verification. This dissertation proposes a new approach to design verification using simulation models that include formalized requirements. The main contributions are a new method that is supported by a new language and tool, along with case studies. The method enables verification of system dynamic behavior designs against requirements using simulation models. In particular, it shows how naturallanguage requirements and scenarios are formalized. Moreover, it presents a framework for automating the composition of simulation models that are used for design verification, evaluation of verification results, and sharing of new knowledge inferred in verification sessions. A new language called ModelicaML was developed to support the new method. It enables requirement formalization and integrates UML and Modelica. The language and the developed algorithms for automation are implemented in a prototype that is based on Eclipse Papyrus UML, Acceleo, and Xtext for modeling, and OpenModelica tools for simulation. The prototype is used to illustrate the applicability of the new method to examples from industry. The case studies presented start with sets of natural-language requirements and show how they are translated into models. Then, designs and verification scenarios are modeled, and simulation models are composed and simulated automatically. The simulation results produced are then used to draw conclusions on requirement violations; this knowledge is shared using semantic web technology. This approach supports the development and dynamic verification of cyberphysical systems, including both hardware and software components. ModelicaML facilitates a holistic view of the system by enabling engineers to model and verify multi-domain system behavior using mathematical models and state-of-the-art
simulation capabilities. Using this approach, requirement inconsistencies, incorrectness, or infeasibilities, as well as design errors, can be detected and avoided early on in system development. The artifacts created can be reused for product verification in later development stages. This work has been supported by EADS Innovation Works, the German Federal Ministry of Education and Research (BMBF), and the Swedish Governmental Agency for Innovation Systems (Vinnova) in the ITEA2 OPENPROD and MODRIO projects, and by SSF and ELLIIT.
Populärvetenskaplig sammanfattning Modellering och simulering är idag centrala inslag i modern produktutveckling. Man kan göra modeller av en produkt i datorn redan innan den är tillverkad och simulera dess beteende. På så sätt kan man tidigt eliminera felaktigheter på designstadiet och öka kvaliteten. En viktig frågeställning är om en viss design kan verifieras, dvs om den uppfyller ställda krav på produkten. Detta är vanligen svårt att svara på för komplexa produkter som exempelvis bilar, flygplan och kraftverk. Anledningen är att det är svårt för en person att skapa sig en mental modell av alla aspekter för en så komplex produkt. Idag är det vanligt att använda datorstödda modelleringsspråk för att beskriva komplexa produkter och system. Situationen är dock en annan för produktkraven. De skrivs typiskt i ett vanligt naturligt språk som svenska eller engelska. Detta är problematiskt eftersom naturliga språk är flertydiga och inte tillräckligt exakta för att krav skrivna i sådana språk entydigt ska kunna tolkas och verifieras av en dator. För att lösa dessa problem presenterar denna avhandling en ny metod för att verifiera krav med användning av simuleringsmodeller som innehåller formaliserade krav, dvs krav uttryckta i ett exakt formaliserat datorspråk. Avhandlingens forskningsbidrag omfattar en ny metod, ett nytt verktyg med ett nytt modelleringsspråk, samt fallstudier med metoden och verktyget tillämpade på mindre industriella problemställningar. Denna metod möjliggör automatisk verifiering av krav. Man får reda på om den tänkta produkten, beskriven som en simuleringsmodell, uppfyller kraven för de användningsfall som man modellerat. Dessutom visas hur krav och användningsfall uttryckta i naturligt språk kan skrivas om i modelleringsspråket för att bli formella och exakta. Vidare ingår ett ramverk för att automatisera sammansättning av simuleringsmodeller för designverifiering, utvärdering av verifieringsresultat, och genererande av rapporter med kunskap som erhållits under verifieringsprocessen. Det nya språket, kallat ModelicaML, utvecklades under avhandlingsarbetet för att stödja den nya metoden. Det möjliggör exakt formell beskrivning av krav och baseras på modelleringsspråken UML, känt för mjukvarumodellering, och Modelica, mest känt för hårdvarumodellering. Därmed kan ModelicaML göra cyberfysikalisk modellering, dvs uttrycka modeller och krav för produkter som innehåller både programvara och hårdvara. Själva simuleringen utförs t.ex. med OpenModelica som är en öppen källkodsimplementation av utvecklingsverktyg för Modelicaspråket. Sammanfattningsvis ger den nya metoden och verktyget en helhetsyn för utveckling av komplexa produktsystem innehållande både hårdvara och mjukvara. Metoden ger stöd till utvecklingsingenjörer som behöver modellera och verifiera komplexa produktmodeller på ett matematiskt exakt sätt. Med denna metod kan fel
och motsägelser i kraven samt rena designfel upptäckas och åtgärdas tidigt under produktutvecklingen. Detta arbete har stötts av EADS Innovation Works och Vinnova samt Tyska undervisnings och forskningsdepartementet (BMBF) inom ITEA2 OPENPROD och MODRIO projekten, samt av SSF och ELLIIT.