Unifying Requirements and Code: An Example
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.
KeywordsSoftware 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.
- 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.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
- 5.Waldén, K., Nerson, J.M.: Seamless Object-Oriented Software Architecture. Prentice-Hall, Upper Saddle River (1995)Google Scholar
- 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
- 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.Naumchev, A.: Jackson-zave zoo turnstile implementation (2015). https://github.com/anaumche/Zoo-Turnstile-Multirequirements
- 12.Nordio, D.M.: Proofs and proof transformations for object-oriented programs. Ph.D. thesis, Citeseer (2009)Google Scholar