# Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 Keynote)

date post

27-Aug-2014Category

## Software

view

275download

3

Embed Size (px)

description

Slides of Marsha Chechik´s Keynote at the European Conference on Modelling Foundations and Applications 2014. Marsha´s webpage: http://www.cs.toronto.edu/~chechik/ ECMFA webpage: http://ecmfa2014.lcc.uma.es/

### Transcript of Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 Keynote)

- EXPLICATING AND REASONING WITH MODEL UNCERTAINTY Marsha Chechik University of Toronto July, 2014 Acknowledgements: work done in collaboration with R. Salay, M. Famelis, A. DiSandro and many others 1
- Why Do Engineers Build Models? To understand the interesting characteristics of an existing or desired (complex) system and its environment To predict the interesting characteristics of the system by analysing its model(s) To communicate their understanding and design intent (to others and to oneself!) To specify ...the implementation of the system (models as blueprints) Source: Bran Selics Modeling Course
- Software Engineering Models Requirements Architecture Behaviour Static Design Use CasesDeployment Concepts StructureAbstraction
- Model-Based Software Engineering (MBSE) An approach to system and software development in which software models play an indispensable role Based on two time-proven ideas: switch (state) { case1:action1; newState(2); break; case2:action2; newState(3); break; case3:action3; newState(1); break;} (2) AUTOMATION S1 S3 S2 e1/action1 e2/action2 e3/action3 switch (state) { case1:action1; newState(2); break; case2:action2; newState(3); break; case3:action3; newState(1); break;} (1) ABSTRACTION S1 S3 S2 e1/action1 e2/action2 e3/action3 Realm of modeling languages Realm of tools Source: Bran Selics Modeling Course
- Model-Based Software Engineering (MBSE) Toolbox (partial list!) Support for: Development, analysis, refinement, transformation of models + Communication, documentation 9
- 10 This is Natalie. Natalie is a modeler. Natalie faces uncertainty in her everyday work
- Alternative Designs 11 Hmm, I dont know which one, yet.
- Conflicting Stakeholder Opinions 12 What do I do until they decide?
- Incomplete Information 13 I dont know everything about this, yet.
- Uncertainty in Software Development 14 Uncertainty about the content of the model. Many design alternatives Conflicting stakeholder opinions Incomplete information
- Classifying Natalies Uncertainty [Aughenbaugh06] classification 15 Is inherently unknowable? In the world (aleatory, gambler) In the knowledge (epistemic, science) Yes (irreducible uncertainty) No (reducible uncertainty) Location of uncertainty Uncertainty about the content of the model.
- MBSE Toolbox for Natalie? Existing tools do not apply Options: Wait until uncertainty gets resolved (how long?) Make a provisional decision and run with it (need backtracking!) We propose: Defer resolution of uncertainty but incorporate uncertainty handling into the development process to allow progress Lift standard MDE tools to handle models with uncertainty Add new tools: Help Natalie express her uncertainty Help Natalie determine what she does not yet know Help Natalie manage and reduce uncertainty
- Motivation: MBSE toolbox Sources of uncertainty Goal: MBSE toolbox for uncertainty-aware models Creating the toolbox Modeling uncertainty Transforming models containing uncertainty Reasoning about models Uncertainty-reducing refinement Tool support Putting this into context 17
- EXPRESSING UNCERTAINTY 18
- Representing Uncertainty: Example 19 Solver SolverException + effect : String Unsure if it should be an inner class. Unsure if we need this field. Notation means inner class in UML
- Some Decisions to Make Options for assigning values to states of confidence 20 Quantitative Examples: 0, 0.3, 0.75 Good for capturing likelihood of events Hard to capture ones own uncertainty Qualitative Examples: yes/no/dont know strongly strongly agree disagree Good for capturing ones own level of uncertainty Less precise than quantitative
- How to Represent Uncertainty? Ask users Goals: model uncertainty explicitly, keep syntax familiar 21 [MiSE13]
- Representing Uncertainty Partial Models Points of uncertainty (May elements) explicated using syntactic annotations 22 Solver SolverException + effect : String Unsure if it should be an inner class. Unsure if we need this field. [ICSE12]
- Representing Uncertainty Partial Models Points of uncertainty (May elements) explicated using syntactic annotations Propositional variables: the element exists 23 Solver SolverException + effect : String X Y [ICSE12]
- Representing Uncertainty 24 Solver SolverException + effect : String X Y Solver SolverException Solver SolverException Solver SolverException + effect : String Solver SolverException + effect : String x=F, y=F x=T, y=F x=F, y=T x=T, y=T 4 concretizations: 4 ways to resolve uncertainty.
- Representing Uncertainty Partial Models Points of uncertainty (May elements) explicated using syntactic annotations Restrictions to the set of concretizations can be captured in the May formula 25 Solver SolverException + effect : String X Y X v Y
- Representing Uncertainty 26 Solver SolverException + effect : String X Y Solver SolverException Solver SolverException Solver SolverException + effect : String Solver SolverException + effect : String x=F, y=F x=T, y=F x=F, y=T x=T, y=T X v Y
- -(S)securityRelated : (SV)Types1 -numOfPassengers : Int Vehicle CarTimeMachine Boat (M)Hovercraft (MS)OtherVehicles -numOfDoors : Int (V)C1 (M) (M) (M) (M) (MS) (SV)Types1 Int P1:ClassDiagram ? ? ? ? ? ? ? More Complex Design Uncertainty Not sure which security attributes - but know some will be needed. Not sure which class will hold the numOfDoors attribute Not sure if we will have Hovercraft or which class it specializes. Not sure what other vehicle types there will be
- May Not sure if a model element should occur annotations: M maybe E - exists (default) Abs Not sure how many elements exist that play a particular role annotations: S - set, P - particular (default) Var Not sure whether the element will be merged with another annotations: V variable, C - constant (default) OW Not sure if the model is complete annotations: M - maybe, E - exists (default) Capturing Partial Information with MAVO M maybe E exists (default) S set P particular (default) V variable C constant (default) inc incomplete comp complete (default)
- A MAVO Class Diagram Not sure which security attributes - but know some will be needed. -(S)securityRelated : (SV)Types1 -numOfPassengers : Int Vehicle CarTimeMachine Boat (M)Hovercraft (MS)OtherVehicles -numOfDoors : Int (V)C1 (M) (M) (M) (M) (MS) (SV)Types1 Int P1:ClassDiagram Not sure which class will hold the numOfDoors attribute Not sure if we will have Hovercraft or which class it specializes. Not sure what other vehicle types there will be ? ? ? ? ? ? ? P1:MAVO(ClassDiagram)
- Benefits Partial model refinement = uncertainty reduction Formal: allows analysis and automation Semantics-independent applies to models of different types Use instead of concrete models to allow deferral of decisions without delaying progress Partial Models A partial model represents the entire set of possible concrete models
- UNCERTAINTY TOOLBOX 31
- Motivation: MBSE toolbox Sources of uncertainty Goal: MBSE toolbox for uncertainty-aware models Creating the toolbox Modeling uncertainty Transforming models containing uncertainty Reasoning about models Uncertainty-reducing refinement Tool support Putting this into context 32
- Transforming Models with Uncertainty 33 Natalie should be able to use model transformations [MODELS13]
- Transforming Models with Uncertainty 34 We need to lift Natalies transformations so that they can apply to models with uncertainty Existing transformation techniques do not support this! Natalie should be able to use model transformations [MODELS13]
- Reminder: Model Transformations With Graph Rewriting (Classical) 35 class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 Negative Application Condition Left Hand Side Right Hand Side EncapsulateVariable refactoring: Make fields private and add getter methods unless they belong to some inner class Example rule: