Download presentation
Presentation is loading. Please wait.
Published byGwendoline Chapman Modified over 9 years ago
1
Code Reuse as a Practice within Extreme Programming Gerald DeHondt Kent State University Vijayan Sugumaran Oakland University
2
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.
3
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.
4
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.
5
Proposed Framework Identifies the synergy between Software Reuse and Refactoring in Extreme Programming. Common Goals: Developing high quality software. Minimizing time to market.
6
Reuse Practice Process Model Component Search and Retrieval (Step 1) Reuse Repository Extend/ Customize Components Learning Feedback Mechanism Candidate Components Refactor Components Components for Refactoring Generate Target Components (Step 3) Identify Components to Extend and Refactor (Step 2) Repository Management (Step 4) Reuse Repository New System Requirements Components for Customization Extend/ Customize Components Target Application Components Refactored Components Components for Refactoring Learning Feedback Mechanism Candidate Components Refactor Components Components for Refactoring Generate Target Components (Step 3)
7
Steps in Proposed Framework 1) Search and Retrieval 2) Identify Components to Extend and Refactor 3) Generate Target Components a) Extend/Customize Component b) Refactor Component 4) Repository Management
8
Advantages and Caveats Extends Extreme Programming to include Software Reuse as a practice. Common Traits Test Driven Development Collective Ownership Communication Reusable Components are “XP-Compliant”. Improved Software Quality 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
9
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.
10
Questions ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.