Managing design-time uncertainty

Managing design-time uncertainty, i.e., uncertainty that developers have about making design decisions, requires creation of “uncertainty-aware” software engineering methodologies. In this paper, we propose a methodological approach for managing uncertainty using partial models. To this end, we identify the stages in the lifecycle of uncertainty-related design decisions and characterize the tasks needed to manage it. We encode this information in the Design-Time Uncertainty Management (DeTUM) model. We then use the DeTUM model to create a coherent, tool-supported methodology centred around partial model management. We demonstrate the effectiveness and feasibility of our methodology through case studies.

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

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

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

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

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

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

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

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

[9]  Richard C. Gronback Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit , 2009 .

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

[11]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[12]  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.

[13]  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).

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

[15]  Isaac Pentinmaki,et al.  Review of "Lean software development: an agile tookit" by Mary and Tom Poppendieck. Addison Wesley 2003. , 2004, SOEN.

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

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

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

[19]  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.

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

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

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

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

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

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

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

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

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

[29]  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.

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

[31]  Marsha Chechik,et al.  Managing Design-Time Uncertainty , 2017, MoDELS.

[32]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[33]  Robert J. Winter Cpt Agile Software Development: Principles, Patterns, and Practices , 2014 .

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

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

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

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

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

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

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

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

[42]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[43]  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.

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

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

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

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

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

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

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

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

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

[53]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

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

[55]  Tom Mens,et al.  Design preservation over subsequent releases of a software product: a case study of Baan ERP: Practice Articles , 2005 .

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

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

[58]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

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

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

[61]  Kurt Jensen,et al.  Coloured Petri Nets: Modelling and Validation of Concurrent Systems , 2009 .

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

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

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

[65]  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.

[66]  Rick Salay,et al.  Software Product Lines with Design Choices: Reasoning about Variability and Design Uncertainty , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

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

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

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

[70]  Eliyahu M. Goldratt,et al.  Critical Chain: A Business Novel , 1997 .

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

[72]  Michail Famelis,et al.  Managing Design-Time Uncertainty in Software Models , 2016 .

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

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

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