Software & Systems Modeling

, Volume 18, Issue 2, pp 1249–1284 | Cite as

Managing design-time uncertainty

  • Michalis FamelisEmail author
  • Marsha Chechik
Regular Paper


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.


Software methodology Software modelling Software design Design space management Uncertainty 



We grateful to Alessio Di Sandro, lead developer of the MMINT and Mu-Mmint tools. We also thank Rick Salay for developing the initial version of the UMLet worked example [18], on which Sect. 6.1 was based. Finally, we thank the anonymous reviewer #2 of the manuscript for pointing us to the work of E. Goldratt.


  1. 1.
    Apvrille, L., Muhammad, W., Ameur-Boulifa, R., Coudert, S., Pacalet, R.: A uml-based environment for system design space exploration. In: 13th IEEE International Conference on Electronics, Circuits and Systems, 2006. ICECS ’06, pp. 1272–1275 (2006). doi: 10.1109/ICECS.2006.379694
  2. 2.
    Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: advanced concepts and tools for in-place EMF model transformations. In: Proceedings of MODELS’10, pp. 121–135 (2010)Google Scholar
  3. 3.
    Auer, M., Tschurtschenthaler, T., Biffl, S.: A flyweight uml modelling tool for software development in heterogeneous environments. In: Proceedings, 29th Euromicro Conference, 2003, pp. 267–272 (2003). doi: 10.1109/EURMIC.2003.1231600
  4. 4.
    Barrett, C., Stump, A., Tinelli, C.: The SMT-LIB Standard: Version 2.0. In: Proceedings of SMT’10 (2010)Google Scholar
  5. 5.
    Bernstein, P.A.: Applying model management to classical meta data problems. In: Proceedings of CIDR’03 (2003)Google Scholar
  6. 6.
    Bézivin, J., Jouault, F., Valduriez, P.: On the need for megamodels. In: Proceedings of OOPSLA/GPCE’04 (2004)Google Scholar
  7. 7.
    Brooks, F.P.: The mythical man-month. Addison-Wesley, Reading (1995)Google Scholar
  8. 8.
    Chechik, M., Czarnecki, K., Famelis, M., Rubin, J., Salay, R.: Choices, Choices! Reasoning About Uncertainty and Variability (2016) (In progress)Google Scholar
  9. 9.
    Classen, A., Heymans, P., Schobbens, P., Legay, A., Raskin, J.: Model checking lots of systems: efficient verification of temporal properties in software product lines. In: Proceedings of ICSE’10, pp. 335–344 (2010)Google Scholar
  10. 10.
    Czarnecki, K., Helsen, S., Eisenecher, U.: Staged configuration using feature models. In: Proceedings of SPLC’04, pp. 266–283 (2004)Google Scholar
  11. 11.
    Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: 11th International Software Product Line Conference, 2007. SPLC 2007, pp. 23–34 (2007). doi: 10.1109/SPLINE.2007.24
  12. 12.
    De Moura, L., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Commun. ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  13. 13.
    Di Sandro, A., Salay, R., Famelis, M., Kokaly, S., Chechik, M.: MMINT: a graphical tool for interactive model management. In: Proceedings of MODELS’15 (2015)Google Scholar
  14. 14.
    Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series), 1st edn. Springer, Berlin (2006)zbMATHGoogle Scholar
  15. 15.
    Esfahani, N., Malek, S.: Uncertainty in self-adaptive software systems. In: de Lemos, R., Giese, H.A., Müller, H., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II, International Seminar, Dagstuhl Castle, Germany, October 24–29, 2010 Revised Selected and Invited Papers, pp. 214–238. Springer, Berlin, Heidelberg (2013)Google Scholar
  16. 16.
    Famelis, M., Ben-David, N., Di Sandro, A., Salay, R., Chechik, M.: MU-MMINT: an IDE for model uncertainty. In: Proceedings of ICSE’15 formal demonstrations (2015)Google Scholar
  17. 17.
    Famelis, M., Ben-David, S., Chechik, M., Salay, R.: Partial models: a position paper. In: Proceedings of MoDeVVa’11, pp. 1–6 (2011)Google Scholar
  18. 18.
    Famelis, M., Chechik, M., Salay, R.: Partial models: towards modeling and reasoning with uncertainty. In: Proceedings of ICSE’12 (2012)Google Scholar
  19. 19.
    Famelis, M., Lucio, L., Selim, G., Di Sandro, A., Salay, R., Chechik, M., Cordy, J.R., Dingel, J., Vangheluwe, H., Ramesh, S.: Migrating automotive product lines: a case study. In: Proceedings of ICMT’15 (2015)Google Scholar
  20. 20.
    Famelis, M., Salay, R., Di Sandro, A., Chechik, M.: Transformation of models containing uncertainty. In: Proceedings of MODELS’13, pp. 673–689 (2013)Google Scholar
  21. 21.
    Famelis, M., Santosa, S.: MAV-Vis: a notation for model uncertainty. In: Proceedings of MiSE’13 (2013)Google Scholar
  22. 22.
    Fehling, R.: A concept of hierarchical petri nets with building blocks. In: Rozenberg, G. (ed.) Advances in Petri Nets 1993, Lecture Notes in Computer Science, vol. 674, pp. 148–168. Springer, Berlin, Heidelberg (1993). doi: 10.1007/3-540-56689-9_43 CrossRefGoogle Scholar
  23. 23.
    Fowler, M., Highsmith, J.: The agile manifesto. Softw. Dev. 9(8), 28–35 (2001)Google Scholar
  24. 24.
    Goldratt, E.M.: Critical Chain: A Business Novel. North River Press, Great Barrington (1997)Google Scholar
  25. 25.
    Goldsby, H., Cheng, B.: Automatically discovering properties that specify the latent behavior of uml models. In: Petriu, D.C., Rouquette, N., Haugen, O. (eds.) Model Driven Engineering Languages and Systems, Lecture Notes in Computer Science, vol. 6394, pp. 316–330. Springer, Berlin, Heidelberg (2010). doi: 10.1007/978-3-642-16145-2_22 CrossRefGoogle Scholar
  26. 26.
    Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison Wesley Longman Publishing Co. Inc, Redwood City (2004)Google Scholar
  27. 27.
    Gronback, R.: Eclipse Modeling Project. Addison Wesley, Reading (2009)Google Scholar
  28. 28.
    Grumberg, O., Schuster, A., Yadgar, A.: Memory efficient all-solutions sat solver and its application for reachability analysis. In: Hu, A., Martin, A. (eds.) Formal Methods in Computer-Aided Design, Lecture Notes in Computer Science, vol. 3312, pp. 275–289. Springer, Berlin, Heidelberg (2004). doi: 10.1007/978-3-540-30494-4_20 Google Scholar
  29. 29.
    Guan, S.U., Yu, H.Y., Yang, J.S.: A prioritized petri net model and its application in distributed multimedia systems. IEEE Trans. Comput. 47(4), 477–481 (1998). doi: 10.1109/12.675716 CrossRefGoogle Scholar
  30. 30.
    Hinton, A., Kwiatkowska, M., Norman, G., Parker, D.: PRISM: a tool for automatic verification of probabilistic systems. In: Proceedings of TACAS’06, LNCS, vol. 3920, pp. 441–444 (2006)Google Scholar
  31. 31.
    Hoos, H.H.: Programming by optimization. Commun. ACM 55(2), 70–80 (2012). doi: 10.1145/2076450.2076469 CrossRefGoogle Scholar
  32. 32.
    Ikonen, M., Kettunen, P., Oza, N., Abrahamsson, P.: Exploring the sources of waste in kanban software development projects. In: 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), pp. 376–381 (2010). doi: 10.1109/SEAA.2010.40
  33. 33.
    Jensen, K.: Coloured petri nets. In: Brauer, W., Reisig, W., Rozenberg, G. (eds.) Petri Nets: Central Models and Their Properties, Lecture Notes in Computer Science, vol. 254, pp. 248–299. Springer, Berlin, Heidelberg (1987). doi: 10.1007/BFb0046842 CrossRefGoogle Scholar
  34. 34.
    Jensen, K., Kristensen, L.M.: Colored Petri nets: a graphical language for formal modeling and validation of concurrent systems. Commun. ACM 58(6), 61–70 (2015)CrossRefGoogle Scholar
  35. 35.
    Jouault, F., Bézivin, J.: KM3: a DSL for metamodel specification. In: Formal Methods for Open Object-Based Distributed Systems, LNCS, vol. 4037, pp. 171–185 (2006). doi: 10.1007/11768869_14
  36. 36.
    Kang, E., Jackson, E., Schulte, W.: An approach for effective design space exploration. In: Calinescu, R., Jackson, E. (eds.) Foundations of Computer Software. Modeling, Development, and Verification of Adaptive Systems, Lecture Notes in Computer Science, vol. 6662, pp. 33–54. Springer, Berlin, Heidelberg (2011). doi: 10.1007/978-3-642-21292-5_3 Google Scholar
  37. 37.
    Kästner, C., Apel, S., Thüm, T., Saake, G.: Type checking annotation-based product lines. ACM TOSEM 21(3), 14 (2012)CrossRefGoogle Scholar
  38. 38.
    Kästner, C., von Rhein, A., Erdweg, S., Pusch, J., Apel, S., Rendel, T., Ostermann, K.: Toward variability-aware testing. In: Proceedings of the 4th International Workshop on Feature-Oriented Software Development, FOSD’12, pp. 1–8. ACM, New York, USA (2012)Google Scholar
  39. 39.
    Ladas, C.: Scrumban-Essays on Kanban Systems for Lean Software Development. Modus Cooperandi Press (2009)Google Scholar
  40. 40.
    Mangano, N., Baker, A., Dempsey, M., Navarro, E., van der Hoek, A.: Software design sketching with calico. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE ’10, pp. 23–32. ACM, New York (2010). doi: 10.1145/1858996.1859003
  41. 41.
    Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River (2003)Google Scholar
  42. 42.
    Mashiyat, A., Famelis, M., Salay, R., Chechik, M.: Using developer conversations to resolve uncertainty in software development: a position paper. In: Proceedings of RSSE’14 (2014)Google Scholar
  43. 43.
    Mens, T., Van Der Straeten, R.: Incremental resolution of model inconsistencies. In: Proceedings of WADT’06 (2007)Google Scholar
  44. 44.
    Mens, T., Van Eetvelde, N., Demeyer, S., Janssens, D.: Formalizing refactorings with graph transformations. J. Softw. Maint. Evol. Res. Pract. 17(4), 247–276 (2005). doi: 10.1002/smr.316 CrossRefGoogle Scholar
  45. 45.
    Midtgaard, J., Brabrand, C., Wasowski, A.: Systematic derivation of static analyses for software product lines. In: Proceedings of the 13th International Conference on Modularity, MODULARITY ’14, pp. 181–192. ACM, New York (2014). doi: 10.1145/2577080.2577091
  46. 46.
    Misra, S.C., Kumar, V., Kumar, U.: Identifying some important success factors in adopting agile software development practices. J. Syst. Softw. 82(11), 1869–1890 (2009)CrossRefGoogle Scholar
  47. 47.
    Molloy, M.: Performance analysis using stochastic petri nets. IEEE Trans. Comput. C–31(9), 913–917 (1982). doi: 10.1109/TC.1982.1676110 CrossRefGoogle Scholar
  48. 48.
    Monden, Y.: Toyota Production System: An Integrated Approach to Just-in-Time. CRC Press, Boca Raton (2011)CrossRefGoogle Scholar
  49. 49.
    Moody, D.: The ”physics” of notations: toward a scientific basis for constructing visual notations in software engineering. TSE 35(6), 756–779 (2009)Google Scholar
  50. 50.
    Murata, T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989). doi: 10.1109/5.24143 CrossRefGoogle Scholar
  51. 51.
    Nerur, S., Mahapatra, R., Mangalaraj, G.: Challenges of migrating to agile methodologies. Commun. ACM 48(5), 72–78 (2005). doi: 10.1145/1060710.1060712 CrossRefGoogle Scholar
  52. 52.
    Petre, M.: Insights from expert software design practice. In: Proceedings of FSE’09 (2009)Google Scholar
  53. 53.
    Petri, C.A.: Kommunikation mit automaten. Ph.D. Thesis, Universität Hamburg (1962)Google Scholar
  54. 54.
    Pohl, K., Böckle, G., Van Der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)CrossRefzbMATHGoogle Scholar
  55. 55.
    Poppendieck, M., Poppendieck, T.: Lean Software Development: An Agile Toolkit. Addison-Wesley Professional, Reading (2003)Google Scholar
  56. 56.
    Ramchandani, C.: Analysis of Asynchronous Concurrent Systems by Timed Petri Nets. Ph.D. Thesis, Massachusetts Institute of Technology (1974)Google Scholar
  57. 57.
    Ramesh, B., Cao, L., Mohan, K., Xu, P.: Can distributed software development be agile? Commun. ACM 49(10), 41–46 (2006). doi: 10.1145/1164394.1164418 CrossRefGoogle Scholar
  58. 58.
    Ramirez, A., Jensen, A., Cheng, B.: A taxonomy of uncertainty for dynamically adaptive systems. In: Proceedings of SEAMS’12, pp. 99–108 (2012)Google Scholar
  59. 59.
    Roy, C.K., Cordy, J.R., Koschke, R.: Comparison and evaluation of code clone detection techniques and tools: a qualitative approach. Sci. Comput. Program. 74(7), 470–495 (2009). doi: 10.1016/j.scico.2009.02.007 MathSciNetCrossRefzbMATHGoogle Scholar
  60. 60.
    Rubin, J., Chechik, M.: A survey of feature location techniques. In: Reinhartz-Berger, I., Sturm, A., Clark, T., Cohen, S., Bettin, J. (eds.) Domain Engineering, pp. 29–58. Springer, Berlin Heidelberg (2013). doi: 10.1007/978-3-642-36654-3_2 CrossRefGoogle Scholar
  61. 61.
    Salay, R., Famelis, M., Chechik, M.: Language independent refinement using partial modeling. In: Proceedings of FASE’12 (2012)Google Scholar
  62. 62.
    Salay, R., Famelis, M., Rubin, J., Di Sandro, A., Chechik, M.: Lifting model transformations to product lines. In: Proceedings of ICSE’14, pp. 673–689 (2014)Google Scholar
  63. 63.
    Saxena, T., Karsai, G.: Mde-based approach for generalizing design space exploration. In: Petriu, D., Rouquette, N., Haugen, O. (eds.) Model Driven Engineering Languages and Systems, Lecture Notes in Computer Science, vol. 6394, pp. 46–60. Springer, Berlin, Heidelberg (2010). doi: 10.1007/978-3-642-16145-2_4 CrossRefGoogle Scholar
  64. 64.
    Schobbens, P., Heymans, P., Trigaux, J.C.: Feature diagrams: a survey and a formal semantics. In: 14th IEEE International Conference on Requirements Engineering, pp. 139–148 (2006)Google Scholar
  65. 65.
    Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, Upper Saddle River (2008)Google Scholar
  66. 66.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. Addison-Wesley, Reading (2009)Google Scholar
  67. 67.
    Thüm, T., Apel, S., Kästner, C., Kuhlemann, M., Schaefer, I., Saake, G.: Analysis strategies for software product lines. School of Computer Science, University of Magdeburg, Technical Report FIN-004-2012 (2012)Google Scholar
  68. 68.
    Van Der Straeten, R., Mens, T., Simmonds, J., Jonckers, V.: Using description logic to maintain consistency between UML models. In: Proceedings of UML’03, pp. 326–340 (2003)Google Scholar
  69. 69.
    Varró, D., Varró-Gyapay, S., Ehrig, H., Prange, U., Taentzer, G.: Termination analysis of model transformations by Petri nets. In: Proceedings of ICGT’06, pp. 260–274 (2006)Google Scholar
  70. 70.
    Wüest, D., Seyff, N., Glinz, M.: Flexisketch team: collaborative sketching and notation creation on the fly. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE), vol. 2, pp. 685–688 (2015). doi: 10.1109/ICSE.2015.223

Copyright information

© Springer-Verlag Berlin Heidelberg 2017

Authors and Affiliations

  1. 1.Université de MontréalMontrealCanada
  2. 2.University of TorontoTorontoCanada

Personalised recommendations