Traceability plays an important role in the development and assurance of software systems that permeate our society. It helps to assure that an as-built system correctly implements all requirements by supporting change impact assessment, re-engineering of applications, and other critical software engineering activities. Although previous work has focused on delivering point solutions that address specific traceability issues, this research will develop a new, powerful traceability model, Traceability+, that will deliver value-added traceability services designed to support diverse stakeholders as they perform critical software engineering activities. To accomplish this, the investigators will develop a new traceability query language and associated query mechanism, identify stakeholders' traceability-related needs, develop traceability services to meet those needs, build a knowledge base of traceability tasks and related queries, and handle varied data formats. If successful, the research could transform the community?s understanding of traceability and its benefits across the software engineering lifecycle. The evaluation of the proposed framework and dissemination of results is enhanced by having industry personnel actively participate as senior staff on the project and by an already-established Center of Excellence for Software Traceability.

Project Report

Society is ever more reliant on software systems to perform important tasks, perhaps protecting human life and the environment. We refer to such systems as safety- or mission-critical. For example, a pacemaker has software that helps it perform required pacing of the heart. The tasks of these systems are defined in safety standards and subsequently requirements. These requirements must be fully realized by the code that developers write. In addition, it is important that the code be tested to ensure that the requirements or safety standards have been met. To accomplish this, we must know how these various items (we call them artifacts) relate to each other. We need to know that a specific safety standard (such as "the pacemaker will only pace the heart if an event has been detected" – a made up example) has been described as a software requirement (such as "the pacemaker will pace the heart within 10 milliseconds of a detected heart event" – a made up example) and is implemented in the code and then tested by a test case (image1). We call the relationships between these items trace links (image6). We use traceability techniques to generate such links in an automated fashion. Analysts must vet the links generated by automated tools in the case of these critical software systems. There has been research undertaken to automatically generate trace links between software artifacts. These techniques suffer from some accuracy issues, and there has been a lack of adoption or use of these techniques. Also, when software developers or other practitioners use the techniques, they often fail to keep their trace links up to date. Changes occur frequently in software projects, and the value of trace links is lost when outdated. Our work on this grant set out to help add value to the trace links for practitioners. Specifically, we sought to understand the different types of practitioners who use trace links so that we could best address their traceability needs. An example of such a practitioner or stakeholder is a safety analyst. A safety analyst has the job of making sure that a safety-critical product, such as a pacemaker, has met all the safety standards before it is approved for use. The safety analyst would thus use the trace links to ensure that all safety standards have been implemented and that the test cases for all requirements have passed. Our work looked at a number of different types of stakeholders and developed techniques to assist them with their work. Our research also looked at how practitioners work with automated trace link generation tools to decide which links they will keep as trace links (image2). This is akin to a person surfing the web and deciding which returned web pages are actually of interest based on the search string submitted. We also undertook various studies to empirically validate our work. As part of this grant, we sought to provide training opportunities for students and others, as well as to develop materials that could be used after the grant ends. We address these different areas below. The grant provided advances in these areas to assist practitioners with their work: Developed a technique for analysts who must determine if requirements have been satisfied (image3) by other software artifacts (such as low level requirements, design, etc.) Developed numerous enhanced techniques for generating trace links (using methods such as simple swarm, pheromone swarm, reinforcement learning (image4), semantic role enhanced queries) Developed a thesaurus building tool to enhance trace link generation Developed a tool to assist with analyzing a trace matrix Developed an enhanced tracing tool to study how analysts work with suggested or candidate trace links (image5) The grant provided broader outcomes through information dissemination, training, professional development, and outreach: Developed data sets that can be used by other researchers (www.coest.org) Developed a video demonstration of the tracing tool (www.youtube.com/watch?v=y4IN_NuGy0o) Trained numerous undergraduates to perform research and to understand tracing Hosted a professor from a regional comprehensive university for a one semester sabbatical to learn more about tracing and attendant research Supported improved diversity in our field by working with many students or visitors from underrepresented groups Presented at the Independent Verification and Validation workshop each year to keep practitioners apprised of our work Documented our work in many peer reviewed publications and presented our work at international conferences Graduated three PhD students who worked in the research areas mentioned above and were supported by the grant Developed a course on software and system traceability Our findings on the analyst in tracing could have future broader societal implications to decision support tools where the tool's output is advice and humans make a final decision, such as tools for: timing of buying/selling stock, selecting modules to refactor, selecting modules to test first, managing any type of portfolio (investments, properties).

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
0811140
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2008-08-01
Budget End
2013-07-31
Support Year
Fiscal Year
2008
Total Cost
$281,700
Indirect Cost
Name
University of Kentucky
Department
Type
DUNS #
City
Lexington
State
KY
Country
United States
Zip Code
40506