Institut Experimentelles Software Engineering Fraunhofer IESE Jörg Rech, Eric Ras, Andreas Jedlitschka Sauerwiesen 6 D-67661 Kaiserslautern Germany Experience-based.

Slides:



Advertisements
Similar presentations
9th October, 2001Confidential to Ian Mitchell1 XP – All the Rest Ian Mitchell, FNZCS.
Advertisements

Lecture # 2 : Process Models
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Workshop: Professional Development of Software Engineers Hazzan Orit Department of Education in Technology and Scinece Technion – Israel Institute of Technology.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
The Experience Factory May 2004 Leonardo Vaccaro.
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
COMPGZ07 Project Management Presentations Graham Collins, UCL
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
Current Trends in Systems Develpment
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
XP – Extreme Programming
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 6 Prototyping, RAD, and Extreme Programming Systems Analysis and Design Kendall & Kendall Sixth Edition.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
CSE 303 – Software Design and Architecture
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
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
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Advanced Software Engineering Dr. Cheng
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Software Development.
Appendix B Agile Methodologies
Extreme Programming.
Approaches to Systems Development
Waterfall and Agile Quality Techniques
What do you need to know about XP?
Coming up: What is Agile?
Refactoring.
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Presentation transcript:

Institut Experimentelles Software Engineering Fraunhofer IESE Jörg Rech, Eric Ras, Andreas Jedlitschka Sauerwiesen 6 D Kaiserslautern Germany Experience-based Refactoring for Goal- oriented Software Quality Improvement International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 1 Overview Setting the scene Introduction Overview Details Outlook & Summary

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 2 Extreme Programming XP XP as one example for agile SW development Essential values to be successful –Communication –Simplicity –Feedback –courage The 4 XP activities –CODING  coding as learning  coding as communication  code as end result  code as specification –Testing –Listening –Designing

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 3 The 12 XP practices The Planning Game — quickly determine scope of next release Small releases — put a simple system in production quickly then release new version on a short cycle Metaphor — guide development with a simple shared story Simple design — system should be as simple as possible, complexity should be removed if at all possible Testing — continually write unit tests, customers write functional tests Refactoring — restructure the system without changing behavior Pair programming — all code written with 2 programmer at 1 machine Collective ownership — anyone can change code anywhere anytime Continuous integration — integrate and build many times a day 40-hour week — work no more than 40h/wk as a rule On-site customer — include a real, live user on the team full time Coding standards — code in accord. to rules emphasizing communication

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 4 Refactoring as one key practices Refactoring –before changing the program: Is there a way of modifying the program to make adding this new feature easier? –after changing the program: Is there a way to make the program simpler? –you refactor only when the systems requires you to Refactoring is context sensitive –Don’t refactor everything (priorize and plan in order to reach specific quality-goals) –Metrics help to detect quality defects (but own competence for refactoring is needed) functionality quality

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 5 ISO 9126 Quality Factors ISO 9126 Portability Reliability Is the software easy to use Usability Functionality Maintainability Efficiency How reliable is the software How efficient is the software How easy is it to modify the software How easy is it to transfer the software to another environment Are the required functions available in the software

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 6 Introduction Problems today –Manual discovery of code smells is hard, esp. in large systems –Selection and planning of refactoring activities is unclear. –Application of refactorings is very subjective (heavily based on expertise) –Comprehension of experiences is typically complex in new environments or for new users. –Impact of refactoring activities on quality aspects is unclear Our approach –Experience based support of the refactoring and planning processes –A lightweight framework with semi-automated support for refactoring  Based on metrics to detect quality defects (code smells, antipatterns, …)  Using Knowledge Discovery (KDD) technology adapted for source code –Didactical augmentation of experiences for better comprehension

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 7 General Overview Defect removal Quality- Goals New experience former experience Experience - Management Experiential Learning

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 8 Process-Step: Refactoring Defect Discovery –What might be a threat to the software quality (e.g., maintainability, reusability, or performance)? Selection of Defects & Experiences –What should be refactored to reach specific quality goals? –What are the most important defects? –How do we remove these defects? Correction of defects –Based on augmented refactoring experience –Learn while refactoring Give feedback –Refactoring experience is collected –Provided experience is evaluated New: Use experience to categorize defects

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 9 Kolb’s Experiential Learning Phases 1: Concrete and Experience (Sensing / Feeling) 2: Reflection and Observation (Review & Watching) 3: Abstraction and Conceptualization (Thinking / Concluding) 4: Active Experimentation (Test Hypotheses & new Situation) Experiential Learning Phases e.g., Lessons Learned

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 10 Requirements for Micro-didactical Arrangements Requirements for the creation process: Consider different instructional design rules (ID-rules) (from ID Theories: e.g., elaboration theory, problem-based learning etc.) Consider different learning goals (according to Bloom taxonomy, [Bloom, 1956]) An ideal arrangement should: include each of the four learning phases anchor contextual knowledge (e.g., cases, experiences) with declarative (e.g., facts, definitions, process descriptions) and procedural knowledge (e.g., conditions and actions) facilitate self-directed learning support individual and social constructivism (e.g., by integrating Communities of Practice)

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 11 Process-Step Experiential Learning “Learning is considered to be a fundamental part of KM since employees must internalize (learn) shared knowledge before they can use it to perform specific tasks” [Rus and Lindvall, 2002, IEEE Software] Learning goals: e.g., “application” but comprehension is a prerequisite Most of us learn through reflection upon every day experience learning = Experience plus reflection [Dewey, 1938] Synonym (but less popular): experience-based learning

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 12 Simple Example: “Long Method” smell Long Method –Long methods are (typically) harder to understand than short ones and therefore make maintenance difficult. 1.Define Qualities: E.g., Maintainability and Reusability is relevant Performance is irrelevant 2.Analyze: Measuring LOC Method A: 300 LOC (e.g., write data to database) Method B: 400 LOC (e.g., standard RSA encryption algorithm) Method C: 500 LOC (e.g., sort algorithm) 3.Plan: Refactor method A and C but not method B (due to Reusability) 4.Refactor: Apply the “Extract Method” refactoring Reuse experiences from previous refactorings 5.Monitor: effects of refactorings on product quality 6.Report & Adapt: quality model (learn about refactoring effects)

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 13 Retrieving & Preprocessing Experience Filtering of Experiences to reduce number of hits –Experience Profile is matched against the query to retrieve cases of interest. –Activity profile is used to remove experiences irrelevant to activity / goal by using metadata from the experience profile and the query (or Workflow system). –Learner Profile is used to remove experiences incomprehensible by using metadata from the experience profile and the user profile (from a Skill Management system). Experiences Experience Profile Activity Profile Learner Profile Selected Experience Filter What do I need? What do I understand ? What do we have? Code Smells filtered result

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 14 Creation of Micro-didactical Learning Arrangement ID-Design Rules Library (PB) Selection of ID-Rules Selection of Learning Objective Bloom’s taxonomy for learning goals Knowledge Comprehension Application Synthesis Analysis Evaluation Selection of LE Learning Elements Base (LEB) Experience TypeLearner ProfileSE-Ontology Creation of MDA Instructional Design-Theories Learning Styles Selected Experience Micro-didactical Arrangement

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 15 Tool Basis: MASE MASE (a WIKI for Agile Software Engineering) –Standard JSP-WIKI (Pages, Blogs, News, …) –Planning of Iterations –Definitions of Tasks –User Stories Application –Freeform tool to note experiences –Metadata in pages used as experience profile –Basis for communication about refactoring Similar tools: –SnipSnap [ –xpWeb [

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 16 Outlook Discovery of quality defects –Investigation of metrics and rules for defect discovery  Development of a Metric-Defect Model –Investigation of the effect of defects on qualities (e.g., reusability)  Development of a Quality-Defect Model Knowledge presentation –Definition of ontologies for defects and correction experiences  Can we use clustering or information retrieval techniques for experiences? How effective are they?  What context information is required? –Development of techniques for the creation of experience arrangements Empirical evaluation

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 17 Summary Our approach –A lightweight framework with automated support for refactoring  Based on metrics to detect quality defects (code smells, antipatterns, …)  Using Knowledge Discovery (KDD) technology adapted for source code –Experience based support of the refactoring and planning processes –Didactical augmentation of experiences for better comprehension Benefits –Improved internalization of experience through experiential learning combined with experience management –Active support for the task at hand –Improved transferability of experience

Copyright © Fraunhofer IESE 2004 First International Workshop on Software Quality (SOQUA 2004) Erfurt, Germany, September 30, 2004 IESE —OverviewOverview —IntroductionIntroduction —ProcessProcess —OutlookOutlook —DiscussionDiscussion Outline Slide 18 The End Thank you for listening! Any questions or comments? Contact information: Jörg Rech (Refactoring, Code Retrieval, Code Mining) Eric Ras (Learning supported Software Engineering) Andreas Jedlischka (Decision Support) Address: Fraunhofer IESE Sauerwiesen 6 D Kaiserslautern Germany