Skip to main content
Log in

Managing design-time uncertainty

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. Available at: http://github.com/adisandro/mmint.

  2. Bug #10: https://github.com/umlet/umlet/issues/10, URL accessed on 2015-10-22.

  3. Revision 59 on Google Code, since then migrated to GitHub and available at: https://github.com/umlet/umlet/commit/f708f57a1fbf98b3b083e583761e9887ea717ef3, URL accessed on 2015-10-22.

  4. http://www.borland.com/us/products/together/, URL accessed 2011-09-30.

  5. Atlantic Metamodel Zoo: http://www.emn.fr/z-info/atlanmod/index.php/ZooFederation, URL accessed 2015-11-04.

  6. The metamodels with the prefix \({\mathtt {GWPN}}\) were created by Guido Wachsmut and Kelly Garces. The metamodel \({\mathtt {Extended}}\) was created by Hugo Bruneliere and Pierrick Guyard. The metamodel \({\mathtt {PetriNet}}\) was created by David Touzet.

References

  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. 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)

  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. Barrett, C., Stump, A., Tinelli, C.: The SMT-LIB Standard: Version 2.0. In: Proceedings of SMT’10 (2010)

  5. Bernstein, P.A.: Applying model management to classical meta data problems. In: Proceedings of CIDR’03 (2003)

  6. Bézivin, J., Jouault, F., Valduriez, P.: On the need for megamodels. In: Proceedings of OOPSLA/GPCE’04 (2004)

  7. Brooks, F.P.: The mythical man-month. Addison-Wesley, Reading (1995)

    Google Scholar 

  8. Chechik, M., Czarnecki, K., Famelis, M., Rubin, J., Salay, R.: Choices, Choices! Reasoning About Uncertainty and Variability (2016) (In progress)

  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)

  10. Czarnecki, K., Helsen, S., Eisenecher, U.: Staged configuration using feature models. In: Proceedings of SPLC’04, pp. 266–283 (2004)

  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. De Moura, L., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Commun. ACM 54(9), 69–77 (2011)

    Article  Google Scholar 

  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)

  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)

    MATH  Google Scholar 

  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)

  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)

  17. Famelis, M., Ben-David, S., Chechik, M., Salay, R.: Partial models: a position paper. In: Proceedings of MoDeVVa’11, pp. 1–6 (2011)

  18. Famelis, M., Chechik, M., Salay, R.: Partial models: towards modeling and reasoning with uncertainty. In: Proceedings of ICSE’12 (2012)

  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)

  20. Famelis, M., Salay, R., Di Sandro, A., Chechik, M.: Transformation of models containing uncertainty. In: Proceedings of MODELS’13, pp. 673–689 (2013)

  21. Famelis, M., Santosa, S.: MAV-Vis: a notation for model uncertainty. In: Proceedings of MiSE’13 (2013)

  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

    Chapter  Google Scholar 

  23. Fowler, M., Highsmith, J.: The agile manifesto. Softw. Dev. 9(8), 28–35 (2001)

    Google Scholar 

  24. Goldratt, E.M.: Critical Chain: A Business Novel. North River Press, Great Barrington (1997)

    Google Scholar 

  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

    Chapter  Google Scholar 

  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. Gronback, R.: Eclipse Modeling Project. Addison Wesley, Reading (2009)

    Google Scholar 

  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. 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

    Article  Google Scholar 

  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)

  31. Hoos, H.H.: Programming by optimization. Commun. ACM 55(2), 70–80 (2012). doi:10.1145/2076450.2076469

    Article  Google Scholar 

  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. 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

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. Kästner, C., Apel, S., Thüm, T., Saake, G.: Type checking annotation-based product lines. ACM TOSEM 21(3), 14 (2012)

    Article  Google Scholar 

  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)

  39. Ladas, C.: Scrumban-Essays on Kanban Systems for Lean Software Development. Modus Cooperandi Press (2009)

  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. Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River (2003)

    Google Scholar 

  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)

  43. Mens, T., Van Der Straeten, R.: Incremental resolution of model inconsistencies. In: Proceedings of WADT’06 (2007)

  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

    Article  Google Scholar 

  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. 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)

    Article  Google Scholar 

  47. Molloy, M.: Performance analysis using stochastic petri nets. IEEE Trans. Comput. C–31(9), 913–917 (1982). doi:10.1109/TC.1982.1676110

    Article  Google Scholar 

  48. Monden, Y.: Toyota Production System: An Integrated Approach to Just-in-Time. CRC Press, Boca Raton (2011)

    Book  Google Scholar 

  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. Murata, T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989). doi:10.1109/5.24143

    Article  Google Scholar 

  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

    Article  Google Scholar 

  52. Petre, M.: Insights from expert software design practice. In: Proceedings of FSE’09 (2009)

  53. Petri, C.A.: Kommunikation mit automaten. Ph.D. Thesis, Universität Hamburg (1962)

  54. Pohl, K., Böckle, G., Van Der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)

    Book  MATH  Google Scholar 

  55. Poppendieck, M., Poppendieck, T.: Lean Software Development: An Agile Toolkit. Addison-Wesley Professional, Reading (2003)

    Google Scholar 

  56. Ramchandani, C.: Analysis of Asynchronous Concurrent Systems by Timed Petri Nets. Ph.D. Thesis, Massachusetts Institute of Technology (1974)

  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

    Article  Google Scholar 

  58. Ramirez, A., Jensen, A., Cheng, B.: A taxonomy of uncertainty for dynamically adaptive systems. In: Proceedings of SEAMS’12, pp. 99–108 (2012)

  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

    Article  MathSciNet  MATH  Google Scholar 

  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

    Chapter  Google Scholar 

  61. Salay, R., Famelis, M., Chechik, M.: Language independent refinement using partial modeling. In: Proceedings of FASE’12 (2012)

  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)

  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

    Chapter  Google Scholar 

  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)

  65. Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, Upper Saddle River (2008)

    Google Scholar 

  66. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. Addison-Wesley, Reading (2009)

    Google Scholar 

  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)

  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)

  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)

  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

Download references

Acknowledgements

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michalis Famelis.

Additional information

Communicated by Prof. Gary Leavens.

Appendices

Appendix 1: Operators

Here we give the detailed descriptions of the Uncertainty Operators from Sect. 4 (see Tables 3, 4, 5, 6, 7, 8, 9, 10, 11, 12).

Table 3 Operator MakePartial
Table 4 Operator Expand
Table 5 Operator Transform
Table 6 Operator Verify
Table 7 Operator Deconstruct
Table 8 Operator Decide
Table 9 Operator Constrain
Table 10 Operator GenerateCounterExample
Table 11 Operator GenerateExample
Table 12 Operator GenerateDiagnosticCore

Appendix 2: Models

In this appendix, we provide additional details about the worked examples in Sects. 6.1 and 6.2.

1.1 UMLet Bug #10

Figure 14 shows the Mu-Mmint model K0 that encodes the UMLet model shown in Fig. 10. The encoded model contains the relevant slices of both the class diagram and the sequence diagram (bottom), as well as traceability links between them, linking messages in the sequence diagram to operations in the class diagram and objects to their classes. In the sequence diagram model, objects and lifelines are represented by the same model element. Mu-Mmint uses yellow and pink stars to, respectively, indicate edges that represent the source and target lifelines of messages.

Fig. 14
figure 14

Mu-Mmint model K0

Table 13 Valid combinations of repair strategies for ClasslessInstance and DanglingOperation

Table 13 shows the valid combinations of strategies for repairing the ClasslessInstance and DanglingOperation consistency violations. Each combination represent a repair of the model shown in Fig. 14, i.e., a concretization of the partial model K1, shown in Fig. 15

Fig. 15
figure 15

Diagram of the Mu-Mmint partial model K1

Figure 15 shows the diagram of the partial model K1 created by the maintainer to express her uncertainty about which of the 44 alternative repairs in Table 13 to select. To enhance diagram readability, we have hidden the labels of the arrow model elements. This has resulted in hiding Maybe annotations as well; however, it is easy to deduce that edges that are in K1 but not in K0 have Maybe annotations.

Figure 16 shows the ground propositional encoding \(\phi _{U1}\) of the property U1, expressed in SMT-LIB [4]. The formula encodes the property as a conjunction of the variables (see [18]) of the messages that are required to perform pasting.

Figure 17 shows the ground propositional encoding in SMT-LIB of the sequence diagram well-formedness constraints for the slice of K1 involved in checking U1. Specifically, we check that for each message in Fig. 16, there is an operation reference that maps it to the appropriate method definition. The abbreviation “or” in the name of the variables means “operation reference”.

Fig. 16
figure 16

Ground propositional encoding of the property U1

Fig. 17
figure 17

Ground propositional encoding of sequence diagram well-formedness constraints involved in checking the property U1

Fig. 18
figure 18

Ground propositional encoding of the property U2

Figure 18 shows the ground propositional encoding \(\phi _{U2}\) of the property U2 for K1, in SMT-LIB. Specifically, we check whether the message \({\mathtt {setComponentZOrder}}\) exists in every concretization. We have combined the property with the sequence diagram well-formedness constraint additionally requiring the appropriate operation reference to the method definition.

Figure 19 shows the model K2, a concretization of K1. It was created by invoking the operator GenerateCounterExample with inputs K1 and U1. Mu-Mmint has greyed out Maybe elements of K1 that are not also part of K2.

Figure 20 shows the diagram of the partial model K3, resulting from invoking the operator Constrain with inputs K1 and U1. To enhance diagram readability, we have hidden the labels of edge elements. Every edge that is outgoing from the elements \({\mathtt {new}}\), \({\mathtt {moveToTop}}\), \({\mathtt {setComponentZOrder}}\), and \({\mathtt {positioner}}\) is annotated with Maybe.

Fig. 19
figure 19

Concretization K2 of the partial model K1, a counterexample demonstrating why checking U1 yields Maybe. Mu-Mmint has greyed out elements of K1 that are not also part of K2

Fig. 20
figure 20

Diagram of the partial model K3

Fig. 21
figure 21

Diagram of the final model K4, implementing the repairs RC4 and RD2

Figure 21 shows the (concrete) model K4, resulting from invoking the operator \({\mathtt {Decide}}\) with K3 as input while choosing the repairs RC4 and RD2.

1.2 Petri net metamodel

Figure 22 shows the Mu-Mmint diagram of the partial metamodel N0. Meta-associations are decorated with the icon “

figure d

”, whereas containment references—with the icon “

figure e

”. Maybe elements are annotated with “[M]” and one or more alternatives from the uncertainty tree of N0 in square brackets. The uncertainty tree of N0 is shown in Fig. 23.

The May formula of N0 is constructed from the uncertainty tree using the technique described in Sect. 5. Specifically:

  • The May formula is a conjunction of the decision variables:

    • \({\mathtt {d1\_ArcClasses}}\) \(\wedge \) \({\mathtt {d4\_Locations}}\) \(\wedge \)

    • \({\mathtt {d5\_TokenClass}}\) \(\wedge \) \({\mathtt {d7\_Executions}}\)

  • Each decision variable is equivalent to an exclusive disjunction of the alternative variables. For example:

    • \({\mathtt {d1\_ArcClasses}}\)\(\Leftrightarrow \)((\({\mathtt {d1ynw}}\)\(\bigoplus \)\({\mathtt {d1yw}}\)\()\bigoplus \)\({\mathtt {d1n}}\)).

  • Each alternative variable is equivalent to the conjunction of the Maybe elements that are annotated with the alternative and the negations of the Maybe elements that are annotated with other alternatives of the same decision. For example:

    • \({\mathtt {d1n}}\) \(\Leftrightarrow \) \({\mathtt {src\_placeToTransition\_Association}}\) \(\wedge \)

    • \({\mathtt {src\_transitionToPlace\_Association}}\) \(\wedge \)

    • \({\mathtt {dst\_placeToTransition\_Association}}\) \(\wedge \)

    • \({\mathtt {dst\_transitionToPlace\_Association}}\) \(\wedge \)

    • \(\lnot \) \({\mathtt {PlaceToTransition\_Class}}\) \(\wedge \lnot \)

    • \({\mathtt {TransitionToPlace\_Class}}\) \(\wedge \ldots \wedge \)

    • \(\lnot \) \({\mathtt {weight\_P2T\_Attribute}}\) \(\wedge \)

    • \(\lnot \) \({\mathtt {getWeight\_P2T\_Operation}}\) \(\wedge \)

    • \(\lnot \) \({\mathtt {setWeight\_P2T\_Operation}}\) \(\wedge \ldots \)

Fig. 22
figure 22

Diagram of the partial metamodel N0

Fig. 23
figure 23

Uncertainty tree of the partial metamodel N0

With the exception of the class \({\mathtt {Location}}\), the various meta-attributes, and the getter and setter operators, the diagram of the metamodel N0 was created by merging slices of the AMZ metamodels listed in Table 2. We sliced the AMZ metamodels in order to get a model that can be used with the ORM transformation described in “Appendix 3”, which requires the input class diagram to have a flat class inheritance hierarchy.

Figure 24 shows the ground propositional encoding \(\phi _{U3}\) of the property U3, expressed in SMT-LIB [4]. The formula encodes the property as a conjunction of the variables (cf. atomToProposition) of the tables that are needed to map tuples from tables representing graphical PTN elements to tuples of the table \({\mathtt {Location}}\).

Fig. 24
figure 24

Ground propositional encoding of the property U3

Figure 25 shows the partial PTN metamodel N2 that results from invoking the operator Decide on the partial model N0 to select the alternative \({\mathtt {d4y}}\) of the decision \({\mathtt {d4\_Locations}}\) in the uncertainty tree in Fig. 23.

Fig. 25
figure 25

Partial PTN metamodel N2

Fig. 26
figure 26

Partial PTN metamodel N3. The uncertainty tree is shown in Fig. 27

Figure 26 shows the diagram of the partial PTN metamodel N3 that results from invoking the operator Expand on the partial model N2 to include uncertainty about which domain-specific PTN constructs should be included in the ConcMod tool.

Fig. 27
figure 27

Uncertainty tree of the partial metamodel N3

Figure 28 shows the concrete PTN metamodel N5, resulting from invoking the operator \({\mathtt {Decide}}\) with N3 as input and making the decisions \({\mathtt {d1yw}}\), \({\mathtt {d2n}}\), \({\mathtt {d3n}}\), \({\mathtt {d5y}}\), \({\mathtt {d6n}}\), \({\mathtt {d7y}}\), \({\mathtt {d8n}}\), \({\mathtt {d9n}}\), \({\mathtt {d10n}}\) from the uncertainty tree in Fig. 27.

Fig. 28
figure 28

Diagram of the final PTN metamodel N5

Appendix 3: Object-relational mapping

Figure 29 shows the first three Henshin rules \({\mathtt {classTo}}\)\({\mathtt {Table}}\), \({\mathtt {associationToTable}}\), and \({\mathtt {attributeTo}}\)\({\mathtt {Column}}\) used to perform the Object-Relational Mapping (ORM) transformation.

Fig. 29
figure 29

Rules \({\mathtt {classToTable}}\), \({\mathtt {associationToTable}}\), and \({\mathtt {attributeToColumn}}\) used to perform the ORM transformation

Fig. 30
figure 30

Rules \({\mathtt {attributeToForeighKey}}\) and \({\mathtt {associationToForeignKey}}\) used to perform the ORM transformation

Figure 30 shows the last two Henshin rules \({\mathtt {attribute}}\)\({\mathtt {ToForeighKey}}\) and \({\mathtt {associationToForeignKey}}\) used to perform the ORM transformation.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Famelis, M., Chechik, M. Managing design-time uncertainty. Softw Syst Model 18, 1249–1284 (2019). https://doi.org/10.1007/s10270-017-0594-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-017-0594-9

Keywords

Navigation