Managing Design-Time Uncertainty in Software Models

Managing Design-Time Uncertainty in Software Models Michail Famelis Doctor of Philosophy Graduate Department of Computer Science University of Toronto 2016 The concern for handling uncertainty in software pervades contemporary software engineering. A particular form of uncertainty is that which can exist at multiple stages of the development process, where developers are uncertain about the content of their artifacts. However, existing tools and methodologies do not support working in the presence of design-time uncertainty, i.e., uncertainty that developers have about the content of their artifacts in various stages of the development process, therefore having to mentally keep track of multitude of possible alternative designs. Because of this uncertainty, developers are forced to either refrain from using their tools until uncertainty is resolved, or to make provisional decisions and attempt to keep track of them in case they prove premature and need to be undone. These options lead to either under-utilization of resources or potentially costly re-engineering. This thesis presents a way to avoid these pitfalls by managing uncertainty in a systematic way. We propose to to work in the presence of uncertainty and to only resolve it when enough information is available. Development can therefore continue while avoiding premature design commitments. In a pilot user study we found that, when asked to articulate design-time uncertainty in a freeform modelling scenario, people tend to explicate it within the software artifact itself, staying close to the existing notation. This lead us to adopt “partial models”, a formalism for representing sets of possible design alternatives while staying faithful to the underlying language. This way, the problem of managing uncertainty in software artifacts is turned into a problem of doing management of software artifacts that contain uncertainty. To manage partial models, we have thus leveraged several software engineering sub-disciplines to develop techniques for: (a) articulating uncertainty, (b) checking and enforcing properties, as well as generating appropriate user feedback, (c) applying transformations, and (d) systematically making decisions, as new information becomes available. The resulting partial model management framework utilizes novel abstraction and automation approaches and enables a principled and systematic approach to managing design-time uncertainty in the software development process.

[1]  Holger H. Hoos,et al.  Programming by optimization , 2012, Commun. ACM.

[2]  Sven Apel,et al.  Toward variability-aware testing , 2012, FOSD '12.

[3]  Jürgen Dingel,et al.  Specification and Verification of Graph-Based Model Transformation Properties , 2014, ICGT.

[4]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[5]  Sam Malek,et al.  Uncertainty in Self-Adaptive Software Systems , 2010, Software Engineering for Self-Adaptive Systems.

[6]  Rick Salay,et al.  MU-MMINT: An IDE for Model Uncertainty , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[7]  André van der Hoek,et al.  Software design sketching with calico , 2010, ASE.

[8]  B. Boehm Software risk management: principles and practices , 1991, IEEE Software.

[9]  Tanja Hueber,et al.  Designing Software Product Lines With Uml From Use Cases To Pattern Based Software Architectures , 2016 .

[10]  Assaf Schuster,et al.  Memory Efficient All-Solutions SAT Solver and Its Application for Reachability Analysis , 2004, FMCAD.

[11]  B. Demuth,et al.  Model and Object Verification by Using Dresden OCL , 2009 .

[12]  Colin Atkinson,et al.  Model-Driven Development: A Metamodeling Foundation , 2003, IEEE Softw..

[13]  Mehrdad Sabetzadeh,et al.  View merging in the presence of incompleteness and inconsistency , 2006, Requirements Engineering.

[14]  Rick Salay,et al.  Partial models: Towards modeling and reasoning with uncertainty , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[15]  Indrakshi Ray,et al.  UML2Alloy: a challenging model transformation , 2007, MODELS'07.

[16]  Alfred V. Aho,et al.  Efficient optimization of a class of relational expressions , 1978, SIGMOD Conference.

[17]  Rick Salay,et al.  Lifting model transformations to product lines , 2014, ICSE.

[18]  Martin Gogolla,et al.  USE: A UML-based specification environment for validating UML and OCL , 2007, Sci. Comput. Program..

[19]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[20]  Rick Salay,et al.  Comparing the effectiveness of reasoning formalisms for partial models , 2012, MoDeVVa '12.

[21]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[22]  Michalis Famelis,et al.  MAV-Vis: A notation for model uncertainty , 2013, 2013 5th International Workshop on Modeling in Software Engineering (MiSE).

[23]  Vinod Kumar,et al.  Identifying some important success factors in adopting agile software development practices , 2009, J. Syst. Softw..

[24]  Andreas Classen,et al.  Introducing TVL, a Text-based Feature Modelling Language , 2010, VaMoS' 2010.

[25]  Ivar Jacobson,et al.  Unified Modeling Language Reference Manual, The (2nd Edition) , 2004 .

[26]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[27]  Sven Apel,et al.  Integrating Compositional and Annotative Approaches for Product Line Engineering , 2008 .

[28]  Marsha Chechik,et al.  Synthesis of Partial Behavior Models from Properties and Scenarios , 2009, IEEE Transactions on Software Engineering.

[29]  Sahar Kokaly,et al.  MMINT: A Graphical Tool for Interactive Model Management , 2015, P&D@MoDELS.

[30]  Gabor Karsai,et al.  MDE-based approach for generalizing design space exploration , 2010, MODELS'10.

[31]  Jürgen Dingel,et al.  Migrating Automotive Product Lines: A Case Study , 2015, ICMT.

[32]  Donald H. Rumsfeld Known and Unknown: A Memoir , 2011 .

[33]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[34]  João Saraiva,et al.  Generative and Transformational Techniques in Software Engineering II , 2007, Lecture Notes in Computer Science.

[35]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[36]  Marie-Pierre Gervais,et al.  Ontology Transformations , 2012, 2012 IEEE 16th International Enterprise Distributed Object Computing Conference.

[37]  Gunter Saake,et al.  Type checking annotation-based product lines , 2012, TSEM.

[38]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[39]  C. Petri Kommunikation mit Automaten , 1962 .

[40]  Rick Salay,et al.  Managing requirements uncertainty with partial models , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[41]  Rick Salay,et al.  Language Independent Refinement Using Partial Modeling , 2012, FASE.

[42]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[43]  Eduardo Casais The Automatic Reorganization of Object Oriented Hierarchies - A Case Study , 1994 .

[44]  Norbert Seyff,et al.  FLEXISKETCH TEAM: Collaborative Sketching and Notation Creation on the Fly , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[45]  Armin Biere,et al.  Bounded Model Checking Using Satisfiability Solving , 2001, Formal Methods Syst. Des..

[46]  Gordon S. Blair,et al.  Dynamically Adaptive Systems are Product Lines too: Using Model-Driven Techniques to Capture Dynamic Variability of Adaptive Systems , 2008, SPLC.

[47]  C. Ramchandani,et al.  Analysis of asynchronous concurrent systems by timed petri nets , 1974 .

[48]  Shareeful Islam,et al.  Integrating risk management activities into requirements engineering , 2010, 2010 Fourth International Conference on Research Challenges in Information Science (RCIS).

[49]  Andres J. Ramirez,et al.  A taxonomy of uncertainty for dynamically adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[50]  Claus Brabrand,et al.  Systematic derivation of static analyses for software product lines , 2014, MODULARITY.

[51]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[52]  Peng Xu,et al.  Can distributed software development be agile? , 2006, CACM.

[53]  Marian Petre,et al.  UML in practice , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[54]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[55]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[56]  Nenad Medvidovic,et al.  Revisiting Compatibility of Input-Output Modal Transition Systems , 2014, FM.

[57]  Rick Salay,et al.  Using Macromodels to Manage Collections of Related Models , 2009, CAiSE.

[58]  Patrice Godefroid,et al.  Model Checking Partial State Spaces with 3-Valued Temporal Logics , 1999, CAV.

[59]  Rick Salay,et al.  Partial models: a position paper , 2011, MoDeVVa.

[60]  André van der Hoek,et al.  Lightweight analysis of software design models at the whiteboard , 2013, 2013 5th International Workshop on Modeling in Software Engineering (MiSE).

[61]  Jean Bézivin,et al.  On the Need for Megamodels , 2004, OOPSLA 2004.

[62]  Marsha Chechik,et al.  A Survey of Feature Location Techniques , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

[63]  Richard F. Paige,et al.  Refinement via Consistency Checking in MDA , 2005, Refinement Workshop.

[64]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[65]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[66]  Stefan Biffl,et al.  A flyweight UML modelling tool for software development in heterogeneous environments , 2003, 2003 Proceedings 29th Euromicro Conference.

[67]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[68]  Jef Wijsen,et al.  Database repairing using updates , 2005, TODS.

[69]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series) , 1992 .

[70]  S. Žižek Philosophy, the “unknown knowns,” and the public use of reason , 2006 .

[71]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[72]  Alfonso Pierantonio,et al.  Uncertainty in bidirectional transformations , 2014, MiSE 2014.

[73]  Sanjeev Khanna,et al.  Data Provenance: Some Basic Issues , 2000, FSTTCS.

[74]  Wolfram Schulte,et al.  An Approach for Effective Design Space Exploration , 2010, Monterey Workshop.

[75]  Wolfgang Emmerich,et al.  Consistency management with repair actions , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[76]  Heather Goldsby,et al.  Automatically discovering properties that specify the latent behavior of UML models , 2010, MODELS'10.

[77]  Jim Steel,et al.  On Model Subtyping , 2012, ECMFA.

[78]  Hartmut Ehrig,et al.  Graph Grammars and Petri Net Transformations , 2003, Lectures on Concurrency and Petri Nets.

[79]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[80]  Jean-Marc Jézéquel,et al.  Meta-model Pruning , 2009, MoDELS.

[81]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[82]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[83]  Saburo Muroga,et al.  Binary Decision Diagrams , 2000, The VLSI Handbook.

[84]  Peter Buneman,et al.  Provenance in databases , 2009, SIGMOD '07.

[85]  G. Nordstrom,et al.  Specifying graphical modeling systems using constraint-based meta models , 2000, CACSD. Conference Proceedings. IEEE International Symposium on Computer-Aided Control System Design (Cat. No.00TH8537).

[86]  Pekka Abrahamsson,et al.  Exploring the Sources of Waste in Kanban Software Development Projects , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[87]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .

[88]  Carlo Ghezzi,et al.  On requirement verification for evolving Statecharts specifications , 2013, Requirements Engineering.

[89]  Tom Mens,et al.  Incremental Resolution of Model Inconsistencies , 2006, WADT.

[90]  Corey Ladas,et al.  Scrumban: Essays on Kanban Systems for Lean Software Development , 2009 .

[91]  Rick Salay,et al.  Supporting early decision-making in the presence of uncertainty , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[92]  George Mangalaraj,et al.  Challenges of migrating to agile methodologies , 2005, CACM.

[93]  Rainer Fehling,et al.  A Concept of Hierarchical Petri Nets with Building Blocks , 1991, Applications and Theory of Petri Nets.

[94]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[95]  Dalal Alrajeh,et al.  Supporting incremental behaviour model elaboration , 2012, Computer Science - Research and Development.

[96]  Edward P. K. Tsang,et al.  Foundations of constraint satisfaction , 1993, Computation in cognitive science.

[97]  Gilles Vanwormhoudt,et al.  From subsets of model elements to submodels , 2013, Software & Systems Modeling.

[98]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[99]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[100]  Tom Mens,et al.  Using Description Logic to Maintain Consistency between UML Models , 2003, UML.

[101]  Yasaman Talaei Rad,et al.  Use of Global Consistency Checking for Exploring and Refining Relationships between Distributed Models : A Case Study , 2012 .

[102]  Michael K. Molloy Performance Analysis Using Stochastic Petri Nets , 1982, IEEE Transactions on Computers.

[103]  Jean-Marie Favre,et al.  Towards a Megamodel to Model Software Evolution Through Transformations , 2005, SETra@ICGT.

[104]  Rick Salay,et al.  Using developer conversations to resolve uncertainty in software development: a position paper , 2014, RSSE 2014.

[105]  Scott W. Ambler,et al.  The Elements of UML(TM) 2.0 Style , 2005 .

[106]  Tom Mens,et al.  Formalizing refactorings with graph transformations , 2005, J. Softw. Maintenance Res. Pract..

[107]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[108]  Mikolás Janota,et al.  On Computing Backbones of Propositional Theories , 2010, ECAI.

[109]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[110]  Marian Petre,et al.  Insights from expert software design practice , 2009, ESEC/SIGSOFT FSE.

[111]  Rabéa Ameur-Boulifa,et al.  A UML-based Environment for System Design Space Exploration , 2006, 2006 13th IEEE International Conference on Electronics, Circuits and Systems.

[112]  Sebastián Uchitel,et al.  Merging Partial Behaviour Models with Different Vocabularies , 2013, CONCUR.

[113]  Sebastián Uchitel,et al.  Weak Alphabet Merging of Partial Behavior Models , 2012, TSEM.

[114]  Benoît Combemale,et al.  Modeling model slicers , 2011, MODELS'11.

[115]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

[116]  Marsha Chechik,et al.  A Variability-Based Approach to Reusable and Efficient Model Transformations , 2015, FASE.

[117]  T. Capers Jones,et al.  Estimating software costs , 1998 .

[118]  Kim G. Larsen,et al.  A modal process logic , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[119]  Nikolaj Bjørner,et al.  Satisfiability modulo theories , 2011, Commun. ACM.

[120]  Dániel Varró,et al.  Termination Analysis of Model Transformations by Petri Nets , 2006, ICGT.

[121]  Andrew M. Sutton,et al.  Context-free slicing of UML class models , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[122]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

[123]  Rick Salay,et al.  Transformation of Models Containing Uncertainty , 2013, MoDELS.

[124]  Victor W. Marek,et al.  Stable models and an alternative logic programming paradigm , 1998, The Logic Programming Paradigm.

[125]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[126]  Brice Morin,et al.  Weaving variability into domain metamodels , 2010, Software & Systems Modeling.

[127]  Yasuhiro Monden,et al.  Toyota Production System: An Integrated Approach to Just-In-Time , 1993 .

[128]  Philip A. Bernstein,et al.  Applying Model Management to Classical Meta Data Problems , 2003, CIDR.

[129]  Gunter Saake,et al.  Analysis Strategies for Software Product Lines , 2012 .

[130]  Steven Guan,et al.  A Prioritized Petri Net Model and Its Application in Distributed Multimedia Systems , 1998, IEEE Trans. Computers.

[131]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[132]  Kim G. Larsen The Expressive Power of Implicit Specifications , 1993, Theor. Comput. Sci..

[133]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).

[134]  Serge Abiteboul,et al.  On the representation and querying of sets of possible worlds , 1987, SIGMOD '87.

[135]  Alexander Egyed,et al.  Generating and Evaluating Choices for Fixing Inconsistencies in UML Design Models , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[136]  Levi Lucio,et al.  A technique for automatic validation of model transformations , 2010, MODELS'10.

[137]  Jordi Cabot,et al.  UMLtoCSP: a tool for the formal verification of UML/OCL models using constraint programming , 2007, ASE.

[138]  Andrew Hinton,et al.  PRISM: A Tool for Automatic Verification of Probabilistic Systems , 2006, TACAS.

[139]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[140]  John C. Shepherdson,et al.  Negation as Failure: A Comparison of Clark's Completed Data Base and Reiter's Closed World Assumption , 1984, J. Log. Program..

[141]  Hannes Schwarz,et al.  Model-Driven Software Development , 2013 .

[142]  Jean Bézivin,et al.  ATL: a QVT-like transformation language , 2006, OOPSLA '06.

[143]  Martin Gogolla,et al.  Research Questions for Validation and Verification in the Context of Model-Based Engineering , 2013, MoDeVVa@MoDELS.

[144]  David Garlan,et al.  Software engineering in an uncertain world , 2010, FoSER '10.