
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
Initial Amendment Date: | June 20, 2012 |
Latest Amendment Date: | June 20, 2012 |
Award Number: | 1218129 |
Award Instrument: | Standard Grant |
Program Manager: |
Sol Greenspan
sgreensp@nsf.gov (703)292-7841 CCF Division of Computing and Communication Foundations CSE Directorate for Computer and Information Science and Engineering |
Start Date: | September 1, 2012 |
End Date: | August 31, 2016 (Estimated) |
Total Intended Award Amount: | $250,000.00 |
Total Awarded Amount to Date: | $250,000.00 |
Funds Obligated to Date: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
1314 S MOUNT VERNON AVE WILLIAMSBURG VA US 23185 (757)221-3965 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
VA US 23187-8795 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | Software & Hardware Foundation |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
Two distinct milestones of any software development lifecycle are requirements gathering and acceptance testing, where a software product is verified against its requirements. Yet this verification is one of the most difficult tasks, since it involves bridging an abstraction gap between high-level descriptions of requirements and their low-level implementations in the source code. Determining how different requirements are covered by acceptance tests is very hard, since it means tracing each acceptance test to specific requirements. Many companies and organizations do not have or cannot invest significant resources into recovering links among requirements, acceptance tests and other artifacts. As a result, software development is not as efficient as it could be, lacking controls to steer the overall testing and bug-fixing effort, and involving extra work peripheral to the core tasks. The end result is a situation in which it is unclear how well software is tested and how much confidence stakeholders can have in it.
We are addressing this fundamental problem by defining and developing a new, integrated model for recovering traceability links using execution artifacts, diverse models, and requirements. We develop techniques for automatically generating additional test cases that execute untested code to recover additional traceability links and verify existing ones. To ensure that our approach is effective, we will perform rigorous case studies in real industrial scenarios to evaluate the model, techniques, and methodologies. As a result, the state-of-the-practice in software development will be improved that faces difficulties in ensuing that software products are tested fully with respect to their requirements. Among the broader impacts the project includes developing educational course content, involving underrepresented categories of students, producing software tools under open source licenses, and collaborating with industry to transfer technology.
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
Note:
When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external
site maintained by the publisher. Some full text articles may not yet be available without a
charge during the embargo (administrative interval).
Some links on this page may take you to non-federal websites. Their policies may differ from
this site.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
Requirements traceability is the ability to describe and follow the life of a requirement in both a forward and backward direction by defining relationships to related development artifacts. Test-Requirement Traceability (TRT) plays an increasingly important role in agile software development, especially in continuous delivery when software is tested and released frequently, at the end of each delivery iteration. Requirements are frequently modified, and many different software design and code artifacts are created and modified during these iterations to implement these requirements. Software release cycles in agile development can be as frequent as days, and releasing a new version of software with new artifacts in such a short period of time makes it difficult for software engineers to trace tests to requirements manually, since different software artifacts are created or modified repeatedly and they are tested at the end of each iteration.
To address this issue, the project formulated (1) a novel approach to bridging inherent abstraction gap that exists between evolving acceptance tests and requirements, (2) novel analysis techniques and algorithms that enable stakeholders to automatically recover traceability links between requirements and tests in the presence of incomplete semi-structured information and non-code artifacts, and (3) a suite of new tools that were be developed, evaluated, and made available to the scientific and industrial communities. Some of the broader impacts from this project include (1) improving the state-of-the-practice in software development that faces difficulties in ensuing that software products are tested fully with respect to their requirements, (2) demonstrating improved testing practices with our industry partners, (3) developing educational course content and piloting it in our courses as part of this research proposal, and (4) actively involving underrepresented categories of students in this research program.
The resulting work has been published in several high-quality software engineering conferences and journals (some gaining best paper recognition). A number of undergraduate and graduate students, including a minority doctoral student, were trained and became contributing members on this project. Several of these students co-authored and presented papers at international conferences. Multiple graduate-level theses were derived from this project. The students graduating from this program have secured full-time employment in academia and software industry. The gained scientific knowledge was integrated in multiple undergraduate and graduate classes at the host institutions, which broadens STEM education. ACM/IEEE Software Engineering Curriculum Guidelines identified software evolution among the ten key areas of SE education. A number of open-source software tools were developed and are made available publicly. The data repositories resulting from this project are made accessible to the scientific community and general public through the web sites of the two participating institutions. The project enhanced and strengthened a long-term professional collaboration not only between the two PIs at academic institutions, but also among the involved students. The computing infrastructure established during the course of the project permits the sustainability of its resources.
Last Modified: 11/21/2016
Modified by: Denys Poshyvanyk
Please report errors in award information by writing to: awardsearch@nsf.gov.