A vision paper [1] tegother with Jacob Krüger, Chenguang Zhu, Marsha Chechik, Thorsten Berger, and Julia Rubin, is accepted at the FSE’23 Ideas, Visions and Reflections track. A summary of the paper is below:
Intentions are fundamental in software engineering, but are typically only implicitly considered through various related abstractions, such as requirements, use cases, features, or issues. Specifically, software engineers develop and evolve a software system based on such abstractions of a stakeholder’s intention—something a stakeholder wants the system to be able to do. Unfortunately, existing abstractions are (inherently) limited when it comes to representing stakeholder intentions and are used for documenting only. So, whether a change in a system fulfills its underlying intention (and only this one) is an essential problem in practice that motivates many research areas (e.g., testing to ensure intended behavior, untangling intentions in commits). We argue that none of the existing abstractions is ideal for capturing intentions and controlling software evolution, which is why intentions are often vague and must be recovered, untangled, or understood in retrospect. In this paper, we reflect on the role of intentions in software engineering and sketch how improving their management may support developers. Particularly, per we argue that continuously managing and controlling intentions as well as their fulfillment has the potential to improve the reasoning about what stakeholder requests have been addressed, avoid misunderstandings, and prevent expensive retrospective analyses. To guide future research for achieving such benefits for researchers and practitioners, we discuss the relations of different abstractions to intentions and propose steps towards managing intentions.
References
- Krüger, J., Li, Y., Zhu, C., Chechik, M., Berger, T., & Rubin, J. (2023). A Vision on Intentions in Software Engineering. Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (FSE), 2117–2121.