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.
Normal 0 false false false EN-US X-NONE X-NONE Requirements traceability is a critical element of any rigorous software development process. For example, the U.S. Food and Drug Administration (FDA) states that traceability analysis must be used to verify that the software design implements all of the specified software requirements, that all aspects of the design are traceable to software requirements, and that all code is linked to established specifications and established test procedures. Similarly, the Federal Aviation Administration (FAA) has established DO-178B as the accepted means of certifying all new aviation software, and this standard specifies that at each and every stage of development "software developers must be able to demonstrate traceability of designs against requirements." Despite this clear criticality, there is almost universal failure across both industry and government projects to implement consistent, successful, and cost-effective traceability. Traceability challenges encompass the creation and evolution of trace links as well as their usage. Without effective traceability in place, engineers building safety-critical systems, and managers coordinating complex systems, such as nationwide health-care management systems, are less able to understand the impact of design and coding decisions on their system level goals, and are less likely to build safe, secure, reliable, systems that deliver the needed functionality. To address these problems we focused on several aspects of the traceability challenge. First, we explored the use of strategic traceability plans, referred to as Traceability Information Models (TIMs). We developed exemplar TIMs for safety-critical systems, worked with certifiers from the FDA to evaluate actual TIM practices and shortcomings, proposed traceability remedies for manufacturers of software intensive safety-critical devices, and developed automated techniques for evaluating the current state of traceability in a project against safety-critical standards such as DO-178b. Second, we addressed the difficulties engineers, software developers, and other project stakeholders experience in using traceability effectively. In practice, we found that traceability is often tacked onto a project for certification purposes, and that traceability information is insufficiently integrated into the project environment to support active decision making. Given the complex nature of many trace queries, project stakeholders often lack the skills to retrieve the traces they need. To this end, we developed a visual traceability modeling language (VTML) which allows project stakeholders to specify trace queries in a visual and intuitive way. Our evaluations have shown that VTML is both easier to comprehend and easier to formulate than traditional SQL (Structured Query Language) and that it therefore increases the accessibility of trace information to project stakeholders. In ongoing efforts we are in the process of expanding this work by developing the infrastructure needed to support both written and spoken natural language trace queries. Third, we addressed the problem of trace query quality, for scenarios in which traceability is supported by automation using information retrieval techniques. Unlike the more common case of information search (i.e. in a standard search engine), a trace query is typically composed of the text of a regulatory code or a software requirement etc. For example, a project stakeholder might want to find out whether the product-level requirements cover all relevant regulatory codes, and therefore might issue a trace query for a specific regulatory code. The problem is that regulatory codes are often written in rather convoluted ways and contain superfluous text which creates significant noise in the query. We explored several different techniques for modifying the trace query. These included (1) using machine learning to learn completely new queries from a set of example trace links, (2) using web-search to augment the query with synonyms and other useful terms, and finally (3) using techniques borrowed from market-basket-analysis (i.e. people who buy beer and diapers, also tend to buy milk) to add and remove terms in order to create more succinct queries. All techniques were found to be effective in improving trace queries, with the first technique returning the best results. Finally, we began work on a specific aspect of traceability related to software architecture. This area of research directly addresses the "Traceability PLUS" aspect of our grant by examining ways in which traceability is used in practice, and by working towards solving a particular traceability problem. The software architecture of a system is critical to its success. It represents the core structure and key design decisions which strongly influence the system’s ability to deliver reliable, available, high-performance results. We developed architecture-centric traceability techniques that are designed to (1) monitor critical parts of the code, (2) keep developers informed of underlying design decisions, and finally, (3) to help prevent the pervasive problem of architectural decay. Much of our work is highlighted through the Center of Excellence for Software and Systems Traceability website at CoEST.org.