New models and patterns for traceability
Includes bibliographical references.
Traceability is a critical software engineering practice that manages activities across the product development lifecycle. It is the discipline of getting an entire organisation to work together to build better quality products. Traceability is also about relationships between traceability items, the management of change and requires good communication between personnel on matters that impact the system in any way. At the start of the 21st Century it is evident that there was a proliferation in new traceability research promoting techniques from a number of emerging research communities. However, some researchers still report that there are still many problems, in particular the lack of empirical data from small, medium and large organisations. In this study we address this shortcoming by performing two empirical studies. Firstly, we carry out a four year case study investigating traceability in a large multinational that develops complex enterprise systems. Ericsson's is a world leader in the development of large telecom's systems and is renowned for their mature development processes, tools and highly skilled staff. We examine the state of the art at Ericsson and the factors that influence traceability, paying particular attention to how these factors change during the study and the impact that these changes have on the traceability practices. Secondly, we execute an industrial survey across nineteen corporations to further our understanding of traceability in small and medium sized organisations. Using this empirical data as the major design inputs, we design and test a Traceability Framework consisting of three solution components namely, a TRAceability Model (TRAM), a TRAceability Process (TRAP) and Traceability Patterns. The TRAceability Model (TRAM) consists of semantic models, designed using a layered approach, with each layer presenting traceability semantics from different user perspectives. The TRAceability Process (TRAP) consists of process models also utilising a layered approach but in this case capturing process elements that can be used in the creation of a traceability process in a variety of different contexts. At the lowest layer the models represent the actual traceability situation in a project at Ericsson. While patterns are a widely accepted method for describing best practices and recurring problems in many aspects of software development, they have not been applied to the field of traceability. Structural patterns emerged from the semantic and process models. Furthermore, we utilise a pre-defined pattern template for formalising the findings of the empirical data and communicating the outcomes to different users. The three components together promote better communication, reusability and understandability of traceability concepts and practices.