Software Validation and Verification Overzicht inhoud en verdiepingsopdracht Julien Schmaltz Texte
Software ontwikkelen met models informal ideas specification design code realization
Software ontwikkelen met models informal ideas informal world specification formalizable design world of models code real world realization
Software ontwikkelen met models informal ideas informal world specification design world of models code real world realization
Software ontwikkelen met models informal ideas informal world specification formal verification design world of models code real world realization
Software ontwikkelen met models informal ideas informal world validation specification formal verification design world of models code real world realization
Software ontwikkelen met models informal ideas informal world validation specification formal verification design world of models code testing real world realization
Software ontwikkelen met models informal ideas informal world validation specification formal verification design world of models code testing real world realization
Software ontwikkelen met models informal ideas informal world specification validation world of models formal verification design code modelbased testing real world realization
SVV deel 1: Specificaties en formele modellen informal ideas informal world specification
SVV deel 2: Validaties met model-checking informal ideas informal world validation specification
SVV deel 3: Testen met models informal ideas informal world validation specification design world of models code modelbased testing real world realization
Deel I: Modellen Modellen staan centraal in deze cursus Drie varianten van transitiesystemen Kripke stucturen Labelled transitiesystemen Timed Automata Modelleertool UPPAAL Het zelfde tool is gebruikt in Deel II
Varianten van transitiesystemen Kripke closed closed close Labelled transitiesystemen open Timed Automata close x 10 x 10 open
Opbouw deel I Introductie leereenheid Voor elk model variant (dus 2 leereenheden) formele definitie voorbelden opdrachten - (klein) modellen maken 1 leereenheid over het gebruik van UPPAAL om te modelleren syntax en semantiek van UPPAAL modellen (netwerk timed automata) praktische opdrachten
Deel II: Formele specificatie en validatie Temporele logica LTL, CTL en UPPAAL TCTL Theoretisch deel LTL en CTL Explicit en symbolic state exploration Continuous time Praktisch deel UPPAAL model-checking
Aspecten van model-checking Linear vs. branching incomparable logics er zijn formules in LTL die geen equivalent versie in CTL hebben en anders om Explicit state vs. symbolic states verschillende technieken symbolic met Binary Decision Diagrams (BDDs) explicit soms meer efficient
Opbouw deel II Introductie leereenheid leereenheid over LTL en CTL leereenheid over algoritme leereenheid over UPPAAL model checking theoretisch en praktisch opdrachten
Deel III: testen
pass fail Model-based testing IUT confto model IUT passes tests test generation tool test tool model IUT IUT confto model
De ioco relatie i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) Intuition: i ioco-conforms to s, iff if i produces output x after trace σ, then s can produce x after σ if i cannot produce any output after trace σ, then s cannot produce any output after σ ( quiescence δ )
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i s!coffee!tea!coffee
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i s!coffee!tea!coffee out (i after ) = {!coffee }
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i s!coffee!tea!coffee out (i after ) = {!coffee } out (s after ) = {!coffee,!tea }
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i s!coffee!tea!coffee ioco out (i after ) = {!coffee } out (s after ) = {!coffee,!tea }
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i!tea!coffee s!coffee
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i!tea!coffee s!coffee out (i after ) = {!coffee,!tea } out (s after ) = {!coffee}
De ioco relatie - voorbeeld 1 i ioco s = def σ Straces (s) : out (i after σ) out (s after σ) i!tea!coffee s!coffee ioco out (i after ) = {!coffee,!tea } out (s after ) = {!coffee}
Opbouw deel III Introductie leereenheid Leereendheid over ioco theorie Leereenheid over test generation Leereendheid over tools JToRX UPPAAL-TRON Theoretisch en praktisch opdrachten
Project opdracht Drie delen over het zelfde casus Studenten beginen met specificatie in natureel taal implementaties Studenten moeten formele modellen maken eigenschappen in temporele logica schrijven een model-checker gebruiken implementaties testen met een MBT tool
Elevator Doors Request buttons Engine first floor 1 0 Ground floor Control unit Control panel Elevator cabin
Kort demo
Verdiepingsopdracht SVV Probleemstelling formuleren Studenten mogen kiezen validatie of testen toepassing area Opdracht is om een probleemstelling/onderzoeksvraag te formuleren om een kort tekst (2-3 A4) te schrijven waar de student zijn vraag moet beoordelen/verdedigen Studenten krijgen een aantal criteria voor een goede vraag Scoring het beoordelen van de vraag + vraag zelf
Criteria voor een goede onderzoeksvraag Relevant (hot) Manageable in terms of research and in terms of you own academic capabilities Substantial and with original dimension Clear and simple Interesting