Automatic Detection of Incomplete Requirements Using Symbolic Analysis and Evolutionary Computation

  • Byron DeVries
  • Betty H. C. Cheng
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10452)


The usefulness of a system specification depends on the completeness of the requirements specified. Unfortunately it is difficult to ensure a requirements specification includes all necessary requirements, especially when the system interacts with an unpredictable and often idealized environment. Worse yet, a single completeness counterexample may not clearly indicate the extent that incomplete requirements impacts the system or what range of environmental scenarios are affected. This paper introduces Ares-EC, a design-time approach for detecting incomplete requirements decomposition using a combination of evolutionary computation and symbolic analysis of hierarchical requirements models to detect a set of representative incompleteness counterexamples. We illustrate our approach by applying Ares-EC to a requirements model of an industry-based automotive adaptive cruise control system. Ares-EC is able to apply symbolic analysis and evolutionary computation to automatically detect diverse and representative sets of requirements incompleteness counterexamples at design time.


  1. 1.
    Alrajeh, D., Kramer, J., van Lamsweerde, A., Russo, A., Uchitel, S.: Generating obstacle conditions for requirements completeness. In: Proceedings of the 34th International Conference on Software Engineering, pp. 705–715 (2012)Google Scholar
  2. 2.
    Cheng, B.H.C., Atlee, J.M.: Research directions in requirements engineering. In: ICSE 2007 Future of Software Engineering, pp. 285–303 (2007)Google Scholar
  3. 3.
    Cheng, B.H.C., Sawyer, P., Bencomo, N., Whittle, J.: A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 468–483. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-04425-0_36 CrossRefGoogle Scholar
  4. 4.
    Cormen, T.H.: Introduction to Algorithms. MIT press, Cambridge (2009)zbMATHGoogle Scholar
  5. 5.
    Darimont, R., Van Lamsweerde, A.: Formal refinement patterns for goal-driven requirements elaboration. ACM SIGSOFT Softw. Eng. Notes 21, 179–190 (1996)CrossRefGoogle Scholar
  6. 6.
    de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-78800-3_24 CrossRefGoogle Scholar
  7. 7.
    Deb, K.: Multi-objective Optimization Using Evolutionary Algorithms. Wiley, New York (2005)zbMATHGoogle Scholar
  8. 8.
    Deb, K., Agrawal, R.B.: Simulated binary crossover for continuous search space. Complex Syst. 9(3), 1–15 (1994)MathSciNetzbMATHGoogle Scholar
  9. 9.
    Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6(2), 182–197 (2002)CrossRefGoogle Scholar
  10. 10.
    DeVries, B., Cheng, B.H.C.: Automatic detection of incomplete requirements via symbolic analysis. In: 19th International Conference on Model Driven Engineering Languages and Systems (MODELS 2016), Proceedings, Saint-Malo, France, October 2–7, pp. 385–395 (2016)Google Scholar
  11. 11.
    Eiben, A.E., Smith, J.E., et al.: Introduction to Evolutionary Computing, vol. 53. Springer, Heidelberg (2003). doi: 10.1007/978-3-662-05094-1 CrossRefzbMATHGoogle Scholar
  12. 12.
    Feather, M.S., Fickas, S., Van Lamsweerde, A., Ponsard, C.: Reconciling system requirements and runtime behavior. In: Proceedings of the 9th International Workshop on Software Specification and Design, p. 50 (1998)Google Scholar
  13. 13.
    Ferrari, A., dell’Orletta, F., Spagnolo, G.O., Gnesi, S.: Measuring and improving the completeness of natural language requirements. In: Salinesi, C., Weerd, I. (eds.) REFSQ 2014. LNCS, vol. 8396, pp. 23–38. Springer, Cham (2014). doi: 10.1007/978-3-319-05843-6_3 CrossRefGoogle Scholar
  14. 14.
    Fickas, S., Feather, M.S.: Requirements monitoring in dynamic environments. In: Proceedings of the Second IEEE International Symposium on Requirements Engineering, pp. 140–147 (1995)Google Scholar
  15. 15.
    Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)CrossRefGoogle Scholar
  16. 16.
    Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. (CSUR) 45(1), 11 (2012)CrossRefGoogle Scholar
  17. 17.
    Lehman, J., Stanley, K.O.: Abandoning objectives: evolution through the search for novelty alone. Evol. Comput. 19(2), 189–223 (2011)CrossRefGoogle Scholar
  18. 18.
    Leveson, N.: Completeness in formal specification language design for process-control systems. In: Proceedings of the Third Workshop on Formal Methods in Software Practice, pp. 75–87 (2000)Google Scholar
  19. 19.
    Menzel, I., Mueller, M., Gross, A., Doerr, J.: An experimental comparison regarding the completeness of functional requirements specifications. In: 2010 18th IEEE International Requirements Engineering Conference (RE), pp. 15–24 (2010)Google Scholar
  20. 20.
    Ramirez, A.J., Cheng, B.H.C.: Automatic derivation of utility functions for monitoring software requirements. In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 501–516. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-24485-8_37 CrossRefGoogle Scholar
  21. 21.
    Souyris, J., Wiels, V., Delmas, D., Delseny, H.: Formal verification of avionics software products. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 532–546. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-05089-3_34 CrossRefGoogle Scholar
  22. 22.
    Van Lamsweerde, A., et al.: Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley, Chichester (2009)Google Scholar
  23. 23.
    Walsh, W.E., Tesauro, G., Kephart, J.O., Das, R.: Utility functions in autonomic systems. In: International Conference on Autonomic Computing, Proceedings, pp. 70–77 (2004)Google Scholar
  24. 24.
    Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C.: A language for self-adaptive system requirements. In: International Workshop on Service-Oriented Computing: Consequences for Engineering Requirements (SOCCER 2008), pp. 24–29 (2008)Google Scholar
  25. 25.
    Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C, Bruel, J.M.: Relax: incorporating uncertainty into the specification of self-adaptive systems. In: 17th IEEE International Requirements Engineering Conference (RE 2009), pp. 79–88 (2009)Google Scholar
  26. 26.
    Yu, E.S.: Towards modelling and reasoning support for early-phase requirements engineering. In: Proceedings of the Third IEEE International Symposium on Requirements Engineering, pp. 226–235 (1997)Google Scholar
  27. 27.
    Zenun, M.M., Loureiro, G.: A framework for dependability and completeness in requirements engineering. In: Latin American Symposium on Dependable Computing, pp. 1–4 (2013)Google Scholar
  28. 28.
    Zhang, Y., Finkelstein, A., Harman, M.: Search based requirements optimisation: existing work and challenges. In: International Working Conference on Requirements Engineering: Foundation for Software Quality, pp. 88–94 (2008)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringMichigan State UniversityEast LansingUSA

Personalised recommendations