GGrantIndex
← Search

CAREER: Requirements at Development Time

$498,878FY2023CSENSF

Smith College, Northampton MA

Investigators

Abstract

When creating or maintaining software systems, developers must ensure that the working system aligns with the needs of users. These needs are documented as the "requirements" for the system. Thus, requirements engineering (RE) is the term used to describe the techniques and methods deployed to capture and concretely define users' needs. Software industry experts and academics agree that accurate and well-defined requirements are essential for the development of quality software; however, the rate of adoption of RE techniques is still low among practitioners and RE is still considered separately from software design and development. One of the objectives of this project is to create a framework that integrates RE techniques with development activities (e.g., coding, testing). By linking requirements with the documentation of development activities, researchers make it easier for developers to engage with the requirements for their project, to ensure that software developers remain faithful to the original goals and needs of their user base. While this framework will apply to all software development, this project focuses on the low-computation needs of small and independent software companies. Further, the project is designed to simultaneously improve both the teaching and practice of RE, as there are not enough individuals trained in RE, even with the expansion of the software workforce. A second objective of this project is to create educational methods that embed requirements within development activities in the classroom. By empowering future software developers with better access to the requirements they implement, this award aims to increase the adoption of RE by practitioners and students. The scientific objective of this award is to explore to what extent streamlining requirements management into existing development workflows will improve students' engagement with requirements in the classroom and achieve greater adoption of RE approaches among the software workforce. Researchers will create a framework that integrates software requirements into normal software development activities. This framework will be realized through the development of an open-source git-based solution consisting of three functions: importing and parsing natural language requirements, creating traceability links between requirements and git issues and pull requests, and engaging developers in a feedback loop to evaluate the requirement traces. The the resulting tool will create appropriate nudges for just-in-time checking of specification documents and validation of software changes. This project promises to improve practices in the field of requirements traceability and parsing by seeking a computationally efficient approach for incrementally creating traceability links between requirements and git development artifacts. The project will advance the field of requirements engineering education by embedding requirements within development activities in the classroom. Researchers will measure the impact of requirements considerations in the students' development process and the rate of students’ voluntary use of requirements to establish the effectiveness of RE activities and their impacts on software quality. By iteratively studying course projects, researchers will fine tune the git-based framework and mitigate any weaknesses. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →