100 likes | 316 Views
Code Reuse as a Practice within Extreme Programming. Gerald DeHondt Kent State University Vijayan Sugumaran Oakland University. Purpose of this Research.
E N D
Code Reuse as a Practice within Extreme Programming Gerald DeHondt 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 Feedback Mechanism Identify Components to Extend and Refactor (Step 2) Component Search and Retrieval (Step 1) Candidate Components • Candidate Components New System Requirements Components for Refactoring Components for Customization Reuse Repository • Reuse • Repository Refactored Components Components for Refactoring • Components for Repository Management (Step 4) Extend/ Customize Components • Extend/ • Refactoring Refactor Components • Refactor • Customize • Components • Components Generate Target Components (Step 3) • Generate Target Components • (Step 3) Target Application Components
Steps in Proposed Framework • Search and Retrieval • Identify Components to Extend and Refactor • Generate Target Components • Extend/Customize Component • Refactor Component • Repository Management
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
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.