- Slides: 10
Code Reuse as a Practice within Extreme Programming Gerald De. Hondt Kent State University Vijayan Sugumaran Oakland University
Purpose of this Research Propose a framework that will integrate the strengths of Code Reuse as a practice within the Extreme Programming methodology. Components developed according to the practices and values of XP will be more easily integrated into future development projects.
Collaboration and Communication Agile development is characterized by social inquiry, extensive collaboration and communication providing the basis for collective action (Cockburn and Highsmith, 2001; Cockburn, 2002; Highsmith, 2003). ® Reuse of software components provides an exceptional form of collaboration, cultivating superior methods and software throughout the organization. ® Organizations must invest in tools that support and facilitate rapid iterative development and versioning/configuration management (Nerur, Mahapatra, and Mangalaraj, 2005). ® ® Can be accomplished through investment in a suitable reuse strategy supporting agile development. Even with the most developed repository in place, organizational measures and strategies must be implemented to support the process, including training staff to make the most effective use of this corporate asset.
Extreme Programming and the Need for Integration ® Continuous code integration and refactoring improve the design and code (Nerur and Balijepally 2007). ® XP focuses on delivering the features the customer wants. ® Reusable components represent satisfied customer requirements. ® Refactoring and reuse of these components helps demonstrate understanding of customer requirements and places developers closer to a completed system.
Proposed Framework ® Identifies the synergy between Software Reuse and Refactoring in Extreme Programming. ® Common Goals: ® Developing high quality software. ® Minimizing time to market.
Reuse Practice Process Model ®Learning. Feedback Mechanism Learning Mechanism Component Search and Retrieval (Step 1) New System Requirements Repository Management (Step 4) Candidate Components ®Candidate Components Reuse ®Reuse Repository ®Repository Refactored Components Identify Components to Extend and Refactor (Step 2) Components for Refactoring Components for Customization Components Refactoring for®Refactoring ®Components for ®Refactor ®Components ®Extend/ ®Customize ®Components ®Generate Target Components ®(Step 3) Generate Target Components 3) Target Application Components
Steps in Proposed Framework Search and Retrieval 2) Identify Components to Extend and Refactor 3) Generate Target Components 1) a) b) 4) Extend/Customize Component Refactor Component Repository Management
Advantages and Caveats Extends Extreme Programming to include Software Reuse as a practice. ® Common Traits ® ® ® Reusable Components are “XP-Compliant”. Improved Software Quality ® ® Test Driven Development Collective Ownership Communication Refactoring focuses on the current project. Software Reuse focuses on future projects. Blending these approaches increases organizational learning and can provide a richer, more robust code base. Organizational Acceptance and Buy-In ® ® Incentives Process education
Summary and Future Work ® Summary Proposed model identifies synergy between Software Reuse and Refactoring. ® Framework integrates salient features of both methods. ® Allows XP to continue growth and development to meet the needs of the development community. ® ® Future Research Empirical validation through practical application. ® Investigate factors impacting organizational adoption. ® Enhancement of model based on practical implementation. ®