MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Program Comprehension Risks and Opportunities in Extreme Programming [3 citations — 0 self]

by Arie van Deursen ,  Mathematisch Centrum (smc ,  The Dutch Foundation
Add To MetaCart

Abstract:

We investigate the relationship between reverse engineering and program comprehension on the one hand, and software process on the other. To understand this relationship, we select one particular existing software process, extreme programming (XP), and study the role played in it by program comprehension and reverse engineering. To that end, we analyze five key XP practices in depth: pair programming, unit testing, refactoring, evolutionary design, and collaborative planning. The contributions of this paper are (1) the identification of promising research areas in the field of program comprehension; (2) the identification of new application perspectives for reverse engineering technology; (3) a critical analysis of XP resulting in research questions that could help resolve some of the uncertainties surrounding XP; (4) a process assessment framework for analyzing software processes from the comprehension and reverse engineering point of view. 1998 ACM Computing Classification System: D.2.9, D.2.2, D.2.5, D.2.7 Keywords and Phrases: Software process, reverse engineering, pair programming, unit testing, refactoring, evolutionary design, collaborative work. Note: Work carried out under projects SEN 1.1, Software Renovation and SEN 1.3, Domain-Specific Languages. 1.

Citations

815 Refactoring: improving the design of existing code – Fowler, Beck, et al. - 1999
788 Extreme Programming Explained: Embrace Change – Beck - 2000
385 Reverse engineering and design recovery: A taxonomy – Chikofsky, Cross - 1990
382 The Mythical Man-Month – Brooks - 1975
315 Managing the Software Process – Humphrey - 1989
220 The Rational Unified Process: An Introduction – Kruchten
165 Clone detection using abstract syntax trees – Baxter, Yahin, et al. - 1998
120 Test Infected: Programmers Love Writing Tests – Beck, Gamma - 1998
111 Strengthening the case for pair programming – Williams, Kesler, et al. - 2000
94 Planning Extreme Programming – Beck, Fowler
79 Program comprehension during software maintenance and evolution – Mayrhauser, Vans - 1995
72 The case for collaborative programming – Nosek - 1998
70 Analysing distributed cognition in software teams: a case study of team programming during perfective software maintenance – Flor, Hutchins - 1992
69 Program understanding: Challenge for the 1990’s – Corbi - 1989
68 Extreme Programming Installed – Jeffries, Anderson, et al. - 2001
58 Understanding Software Systems Using Reverse Engineering Technology – Müller, Wong, et al. - 1994
57 Pattern matching for clone and concept detection – Kontogiannis, Mori, et al. - 1996
56 Linux as a Case Study: its Extracted Software Architecture – Bowman, Holt, et al. - 1999
52 Building documentation generators – Deursen, Kuipers - 1999
52 Code Complete – McConnell - 1993
51 Pattern-based reverse-engineering of design components – Keller, Shauer, et al. - 1999
48 The costs and benefits of pair programming – Cockburn, Williams - 2000
42 Practical Software Maintenance, Best Practices for Managing Your Software Investments – Pigoski - 1996
38 Planning the Reengineering of Legacy Systems – Sneed - 1995
37 Software Process: A Roadmap – Fuggetta - 2000
33 A staged model for the software life cycle – Rajlich, Bennett - 2000
18 Reverse engineering: a roadmap – Müller, Jahnke, et al. - 2000
14 Episodes: A Pattern Language of Competitive Development – Cunningham - 1996
13 Reverse engineering processes, design document production, and structure charts – Benedusi, Cimitile, et al. - 1992
9 Refactoring test code – Deursen, Moonen, et al. - 2001
8 Is design dead – Fowler - 2001
5 Legacy to the extreme – Deursen, Kuipers, et al. - 2001
4 The Reverse Engineering Notebook – Wong - 1999
2 Comments on extreme programming – Humphrey