Code Reuse as a Practice within Extreme Programming Gerald DeHondt Kent State University Vijayan Sugumaran Oakland University.

Slides:



Advertisements
Similar presentations
© 2004 Flashline Inc. The Seven Faces of Reuse Enterprise Architect Summit June 8, 2004 Charles Stack Founder and CEO Flashline, Inc. © 2004 Flashline.
Advertisements

Metrics and Databases for Agile Software Development Projects David I. Heimann IEEE Boston Reliability Society April 14, 2010.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Alternate Software Development Methodologies
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
Extreme Programming Collaboration in Software Development Process.
Software Engineering.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Agile Software Development
Indicator 3.07 Understand the nature of customer relationship management to show its contributions to a company.
Software Quality: An Overview From the Perspective of Total Quality Management By Kan, Basili and Shapiro.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Software engineering Process models Pavel Agejkin.
Adopting Agile for Enterprise Software Joe Bedell, Software Engineer Jason Breen, Software Engineer Peter Melko, Scrum Master June 15 th, 2015.
CIS 321—IS Analysis & Design
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Configuration Issues and Efforts for Configuring Agile Approaches-Situational based Method Engineering Rinky Dwivedi, Computer Engineering Department Delhi.
RAD Model BY - Dhivakaran.JM.
Software Engineering Modern Approaches
Ontologies Reasoning Components Agents Simulations The Eclipse Process Framework Breno Machado.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Agile Modeling Theory. 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
© 2013 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Achievement of an Integrated Applications Environment Enterprise.
One Body, Many Heads for Repository-Powered Digital Content Applications Hydra Europe Symposium, Trinity College, Dublin, 7 th April 2014 Chris Awre Head.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
STRATEGIC PLANNING Vandenberg Fire Department. Strategic Planning Is the set of actions and decisions made by management that lead to the development.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
An Integrated Approach Prepared By: AIMCORP-Automated Information Management Corporation.
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
An Agile Method for E-Service Composition Author : Pouya Fatehi, Seyyed Mohsen Hashemi Department of Computer Software, Science and Research Branch, Islamic.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
Organisational changes in migration to agile development strategies A review of: Challenges of migrating to agile methodologies Sridhar Nerur, Radha Kanta.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Chapter 3 Agile Development
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
What Is DevOps? DevOps is "a portmanteau of 'development' and 'operations'" and is "a software development method that stresses communications, collaboration,
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
Software Engineering (CSI 321) An Agile View of Process 1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
EXtreme Programming and Open Source engineering paradigm A comparison
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Martin Henning U.S. Federal Deposit Insurance Corporation Call Reporting Modernization Project Manager XBRL in Practice: Achieving Business Value.
Martin Henning Federal Deposit Insurance Corporation Call Reporting Modernization Project Manager XBRL in Practice: Achieving Business Value.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Project Management Software development models & methodologies
Embedded Systems Software Engineering
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Object oriented system development life cycle
Chapter 3: Agile Software Processes
Introduction to XP.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

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 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)

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

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.

Questions ?