Towards an Anatomy of Software Requirements
Requirements engineering is crucial to software development but lacks a precise definition of its fundamental concepts. Even the basic definitions in the literature and in industry standards are often vague and verbose. To remedy this situation and provide a solid basis for discussions of requirements, this work provides precise definitions of the fundamental requirements concepts and two systematic classifications: a taxonomy of requirement elements (such as components, goals, constraints...); and a taxonomy of possible relations between these elements (such as “extends”, “excepts”, “belongs” ...). The discussion evaluates the taxonomies on published requirements documents; readers can test the concepts in two online quizzes. The intended result of this work is to spur new advances in the study and practice of software requirements by clarifying the fundamental concepts.
We are grateful to Dr. Bettina Bair from Ohio State University for writing the original (2006) version of the course project document  and providing us with a more recent version.
Attendees of talks given on this work by some of the authors provided particularly relevant feedback: at Politecnico di Milano (Meyer, March 2019), Elisabetta Di Nitto, Carlo Ghezzi, Dino Mandrioli and Maurizio Patriarca; at the University of Toulouse (Meyer, March 2019), Mamoun Filali Amine, whose comments led to a revision of the classification of constraints; at Innopolis University (Meyer, March 2019); at the GDR meeting, Génie de la Programmation et du Logiciel, also in Toulouse (Bruel, June 2019).
We are further indebted to Joëlle Guion for important comments on the concerns of practicing requirements engineers.
- 1.IEEE 24765-2010. ISO/IEC/IEEE International Standard - Systems and software engineering - Vocabulary (2010). https://standards.ieee.org/standard/24765-2010.html
- 2.IEEE 830-1998. IEEE Recommended Practice for Software Requirements Specifications (1998). https://standards.ieee.org/standard/830-1998.html
- 3.Bair, B.: SBE Sales System (2006). Example requirements document for a course at Ohio State University. http://bit.ly/2OsNdmN
- 4.Bandakkanavar, R.: Software Requirements Specification document with example (2017). Technical paper. http://bit.ly/2XTSjOs
- 5.Bourque, P., Fairley, R.E., et al.: Guide to the Software Engineering Body of Knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press (2014)Google Scholar
- 6.Bruel, J.-M., Ebersold, S., Galinier, F., Naumchev, A., Mazzara, M., Meyer, B.: Formality in Software Requirements (2019, to appear)Google Scholar
- 7.Cohn, M.: Succeeding with Agile: Software Development Using Scrum. Pearson Education, London (2010)Google Scholar
- 8.Galinier, F., Ebersold, S., Bruel, J.-M., Meyer, B., Naumchev, A.: Detailed analysis and classification of a requirements document, September 2010. http://bit.ly/2F8NY2I
- 9.Galinier, F., Ebersold, S., Bruel, J.-M., Meyer, B., Naumchev, A.: Online quiz on taxonomy of requirements, September 2010. http://bit.ly/2Ww1vYk
- 10.Galinier, F., Ebersold, S., Bruel, J.-M., Meyer, B., Naumchev, A.: Online quiz on taxonomy of requirements relations, September 2010. http://bit.ly/2Ww7fBl
- 11.Object Management Group. Essence - Kernel and Language for Software Engineering Methods, October 2018. http://semat.org/essence-1.2
- 12.Jackson, M., Zave, P.: Deriving specifications from requirements: an example. In: 1995 17th International Conference on Software Engineering, p. 15. IEEE (1995)Google Scholar
- 13.Laplante, P.A.: Requirements Engineering for Software and Systems, 3rd edn. Auerbach Publications (2017)Google Scholar
- 15.Meyer, B.: The software knowledge base. In: Proceedings of the 8th International Conference on Software Engineering, pp. 158–165. IEEE Computer Society Press, August 1985Google Scholar
- 16.Meyer, B.: Multirequirements. Modelling and Quality in Requirements Engineering (Martin Glinz Festscrhift) (2013)Google Scholar
- 17.Van Lamsweerde, A.: Requirements Engineering: From System Goals to UML Models to Software, vol. 10. Wiley, Chichester (2009)Google Scholar
- 19.Wiegers, K., Beatty, J.: Software Requirements, 3rd edn. Microsoft Press (2014)Google Scholar