traceability: an overview advisor silvio lemos meira [email protected] student jorge mascena...

31
Traceability: An Overview Advisor Silvio Lemos Meira [email protected] Student Jorge Mascena [email protected]

Post on 20-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Traceability: An Overview

AdvisorSilvio Lemos Meira

[email protected]

StudentJorge [email protected]

Page 2: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Agenda

• Introduction• Software Maintenance• Change Impact• Traceability• Software Product Families• Summary

Page 3: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Introduction

• [Lago, 2004]•“In software product families, the full benefit of reuse can only be achieved if traceability of requirements to architecture, components and further down to source code is supported.”

Page 4: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Introduction

• Traceability has been generally associated to software maintenance•Source code change propagation

[Hassan, 2004] [Kowalczykiewicz, 2002] [Chen, 2001] [Eisenbach, 2001] [Gwizdala, 2003] [Zimmermann, 2004]

Page 5: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Introduction

• Traceability has been generally associated to software maintenance•Change impact analysis [Antoniol,

1999] [Elbaum, 1998] [Mockus, 2000] [Gall, 1999] [Bohner, 2002] [Clarke, 2003] [Briand, 2003] [Gold, 2003]

Page 6: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {History}

• [Kilpi, 1997]•“Software industry is developing

strongly towards becoming a product business.”

•“This lays increasing demands for the development of software product management process and its tool support in the companies“

Page 7: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {History}

• Attempts to manage software development complexity are paperwork-oriented [Kowalczykiewicz, 2002]•“US Dept. of Defense spends about

4% of its IT costs on traceability, getting inadequate value from that money”

• Tool support is restricted basically to version control systems [Kilpi, 1997]

Page 8: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {History}

• “Software maintenance is an important part of the software lifecycle, typically accounting for at least 50 percent of the total lifetime cost of a software system” [Gold, 2003]

Page 9: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {Types}

• The type of maintenance has effects on the cost of the change [Mockus, 2000] [Souza, 1998]

• Classifications vary, most common one•Corrective•Adaptive•Inspection•Perfective

Page 10: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {Types}

•Corrective changes are generally harder than other types [Mockus, 2000]

•Adaptive changes take most of the time during maintenance [Souza, 1998]

•Perfective and inspection changes usually have small impact [Souza, 1998]

Page 11: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Maintenance {Models}

•[Souza, 1998]•Quick-fix model is the most used one (no documentation update)

•Metrics-based impact analysis is rarely done

•Source code is the most used source of knowledge

•Most of the time is spent in change comprehension

Page 12: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Cycle}

•[Gwizdala, 2003] [Chen, 2001] Cycle of an incremental change•Change request (free text)•Concept location

•top-down•bottom-up•backward data flow•forward data flow

Page 13: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Cycle}

•[Gwizdala, 2003] [Chen, 2001] Cycle of an incremental change•Concept actualization (implementation)

•Incorporation (replacement of old version)

•Change propagation (keep code consistent)

Page 14: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Metrics}

•[Elbaum, 1998]•“The introduction of new code, however, is just as error prone a process as was the initial code generation”

•Metrics estimate code complexity and fault injection/removal rates

•“The general notion of software test is that the rate of fault removal will generally exceed the rate of fault injection”

Page 15: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Visualization}

•“In evolving through releases, developers modify system structure and properties. Tracking their historical evolution allows the programmer to document the events that influenced the system evolution and to identify the reasons for structural problems” [Gall, 1999]

Page 16: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Visualization}

•Version tracking visualization requires abstraction, navigation and automation [Antoniol, 1999]

•2-D and 3-D graphics are commonly used (time as the third dimension) in conjunction with color scales to alleviate the process of thinking of abstract information [Gall, 1999]

Page 17: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Comprehensibility}

•“The high cost and central role of comprehension within software maintenance has been recognized by many authors and has been attributed to software complexity” [Gold, 2003]

•Source code becomes more complex and documentation becomes outdated as software evolves.

Page 18: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Change Impact {Comprehensibility}

•[Gold, 2003] shows that it’s important to trace concepts to indicators in source code (comments, indentation, variable names, typical code fragments etc.) in order to improve comprehensibility

•Characterization of concept evolution•Add/Delete•Geometry•Assignment

Page 19: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Traceability {Level}

•Most research on traceability is focused on the source code level [Antoniol, 1999] [Hassan, 2004] [Chen, 2001] [Eisenbach, 2001] [Gwizdala, 2003] [Clarke, 2003]

•Recent work shifted focus to the whole development cycle [Briand, 2003] [Kowalczykiewicz, 2002] [Zimmermann, 2004]

•Traceability for product family development is the new trend [Lago, 2004]

Page 20: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Traceability {Change Propagation}

•“… a machine and a mind can beat a mind-imitating machine working by itself” [Chen, 2001]

•Change propagation tools help developers in finding ripple effects of changes•History-based [Hassan, 2004] [Zimmermann, 2004]

•Structure-based [Chen, 2001] [Eisenbach, 2001] [Gwizdala, 2003] [Briand, 2003]

•Protocol-based [Kowalczykiewicz, 2002]

Page 21: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Traceability {Change Propagation}

•Precision and recall are used to estimate the performance of change propagation detection methods

•Statistics and heuristics to prune false positives

Page 22: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Traceability {Change Propagation}

•May be used to prevent error caused by missing changes [Zimmerman, 2004]•Must keep false alarms at a low rate to avoid spoiling developers confidence on the tool

Page 23: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Product Families

•[Lago, 2004]•“The development of a product family is time-consuming and expensive, and repayment can happen only if its features, architecture and components are used several times…”

Page 24: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Product Families

•Still open issues•How to trace features all the way down to source code

•Be certain that a proper set of variable features are incorporated in a product

•Tool support is mandatory•Current notations don’t have tool support

Page 25: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Product Families

•Mapping features to an architectural style for a new product of the family

•Mapping features to components•Feature clustering reduces the number of combinations

•Product Family level•Product family feature map (PF FM)

Page 26: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Product Families

•Product level•Product feature map•Product component map (CM)

•Implementation level•COTS•Source code•Documentation

•Top-down and bottom-up traceability

Page 27: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Software Product Families

•Versioning still not supported•Relies on developer to populate the

families manually

Page 28: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

Summary

•Traceability is fundamental for maintenance and reuse (product families)

•Fully automated traceability is not practical

•Tool support still not a reality•Focus must shift from source code to

a broader context (top-down and bottom-up traceability)

Page 29: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

References

• [Kilpi, 1997] Kilpi, Tapani. New Challenges for Version Control and Configuration Management: A Framework and Evaluation. IEEE,1997.

• [Lago, 2004] P. Lago, E. Niemela, H. Van Vliet. Tool Support for Traceable Product Evolution. Proceedings on the Eigth European Conference on Software Maintanance and Reengineering. IEEE, 2004.

• [Hassan, 2004] Ahmed E. Hassan, Richard C. Holt. Predicting Change Propagation in Software Systems. Proceedings of the International Conference on Software Maintenance. IEEE, 2004.

• [Kowalczykiewicz, 2002] Krysztof Kowalczykiewicz, Dawid Weiss. Traceability: Taming uncontrolled change in software development. IV Krajowa Konferencja Inzynierii Oprogramowania. Poznan, 2002.

• [Chen, 2001] Kunrong Chen, Václav Rajlich. RIPPLES: Tool for Change in Legacy Software. 2001.

• [Eisenbach, 2001] Susan Eisenbach, Chris Sadler. Changing Java Programs. 2001.

Page 30: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

References

• [Gwizdala, 2003] Steve Gwizdala, Yong Jiang, Václav Rajlich. Jtracker: A Tool for Change Propagation in Java. Proceedings of the Seventh European Conference on Software Maintenance and Reengineering. IEEE, 2003.

• [Zimmermann, 2004] Thomas Zimmermann, Peter Weizgerber, Stephen Diehl, Andreas Zeller. Mining Version Histories to Guide Software Changes. Proceedings of the 26th International Conference on Software Engineering. IEEE, 2004.

• [Antoniol, 1999] G. Antoniol, G. Canfora, A. De Lucia. Maintaining Traceability During Object-Oriented Software Evolution: a Case Study. 1999.

• [Elbaum, 1998] Sebastian G. Elbaum, John C. Munson. Code Churn: A Measure for Estimating the Impact of Code Change. 1998.

• [Mockus, 2000] Audris Mockus, Lawrence G. Votta. Identifying Reasons for Software Changes Using Historic Databases. 2000.

• [Gall, 1999] Harald Gall, Mehdi Jazayeri, Claudio Riva. Visualizing Software Release Histories: the Use of Color and Third Dimension. 1999.

Page 31: Traceability: An Overview Advisor Silvio Lemos Meira srlm@cin.ufpe.br Student Jorge Mascena jccpm@cin.ufpe.br

References

• [Bohner, 2002] Shawn A. Bohner. Software Change Impacts: An Evolving Perspective. Proceedings of the International Conference on Software Maintenance. IEEE, 2002.

• [Clarke, 2003] Peter Clarke, Brian Malloy, Paul Gibson. Using A Taxonomy Tool To Identify Changes In OO Software. Proceedings of the Seventh European Conference On Software Maintenance And Reengineering. IEEE, 2003.

• [Briand, 2003] L. C. Briand, Y. Labiche, L. O’Sullivan. Impact Analysis and Change Management of UML Models. Proceedings of the International Conference on Software Maintenance. IEEE, 2003.

• [Gold, 2003] Nicolas Gold, Andrew Mohan. A Framework for Understanding Conceptual Changes in Evolving Source Code. Proceedings of the International Conference on Software Maintenance. IEEE, 2003.

• [Souza, 1998] Maria João Castro Souza, Helena Mendes Moreira. A Survey on the Software Maintenance Process. IEEE, 1998.