Unifying Requirements and Code: An Example

  • Alexandr NaumchevEmail author
  • Bertrand Meyer
  • Victor Rivera
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9609)


Requirements and code, in conventional software engineering wisdom, belong to entirely different worlds. Is it possible to unify these two worlds? A unified framework could help make software easier to change and reuse. To explore the feasibility of such an approach, the case study reported here takes a classic example from the requirements engineering literature and describes it using a programming language framework to express both domain and machine properties. The paper describes the solution, discusses its benefits and limitations, and assesses its scalability.


Software engineering Requirements specifications Multirequirements Eiffel 



This work has been supported by the Russian Ministry of education and science with the project “Development of new generation of cloudy technologies of storage and data control with the integrated security system and the guaranteed level of access and fault tolerance” (agreement: 14.612.21.0001, ID: RFMEFI61214X0001). Also, the authors would like to thank their colleagues Alexander Chichigin and Dr. Manuel Mazzara from the Innopolis University Software Engineering Laboratory for their invaluable feedback.


  1. 1.
    Meyer, B.: Object-Oriented Software Construction, vol. 2. Prentice Hall, New York (1988)zbMATHGoogle Scholar
  2. 2.
    Meyer, B.: Multirequirements. In: Seyff, N., Koziolek, A. (eds.) Modelling and Quality in Requirements Engineering (Martin Glinz Festscrhift). MV Wissenschaft (2013)Google Scholar
  3. 3.
    Jackson, M., Zave, P.: Deriving specifications from requirements: an example. In: Proceedings of the 17th International Conference on Software Engineering, pp. 15–24. ACM (1995)Google Scholar
  4. 4.
    Meyer, B.: On formalism in specifications. IEEE Softw. 2(1), 6–26 (1985)CrossRefGoogle Scholar
  5. 5.
    Waldén, K., Nerson, J.M.: Seamless Object-Oriented Software Architecture. Prentice-Hall, Upper Saddle River (1995)Google Scholar
  6. 6.
    Polikarpova, N.: Specified and verified reusable components. Ph.D. thesis, Diss., Eidgenössische Technische Hochschule ETH Zürich, Nr. 21939, 2014 (2014)Google Scholar
  7. 7.
    Meyer, B.: Touch of Class: Learning to Program Well with Objects and Contracts. Springer, Heidelberg (2009)CrossRefzbMATHGoogle Scholar
  8. 8.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefzbMATHGoogle Scholar
  9. 9.
    Tschannen, J., Furia, C.A., Nordio, M., Meyer, B.: Automatic verification of advanced object-oriented features: the autoproof approach. In: Meyer, B., Nordio, M. (eds.) LASER 2011. LNCS, vol. 7682, pp. 133–155. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  10. 10.
    Jackson, M.: The world and the machine. In: 17th International Conference on Software Engineering, ICSE 1995, pp. 283–283. IEEE (1995)Google Scholar
  11. 11.
    Naumchev, A.: Jackson-zave zoo turnstile implementation (2015).
  12. 12.
    Nordio, D.M.: Proofs and proof transformations for object-oriented programs. Ph.D. thesis, Citeseer (2009)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Alexandr Naumchev
    • 1
    Email author
  • Bertrand Meyer
    • 1
    • 2
  • Victor Rivera
    • 1
  1. 1.Software Engineering LaboratoryInnopolis UniversityInnopolisRussia
  2. 2.ETH ZürichZurichSwitzerland

Personalised recommendations