A proposal to support the extreme programming development methodology from the quality assurance point of view Authors: Calin Jebelean –

Slides:



Advertisements
Similar presentations
System Analysis & Design Methods V Extreme Programming XP/dX.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Ch 3 System Development Environment
© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos.
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Min Zhang School of Computer Science University of Hertfordshire
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
05/26/2004www.indyjug.net1 Indy Java User’s Group June Knowledge Services, Inc.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
CS 501: Software Engineering
Design Patterns Daniel McClain. Background What are they?  Way of recording solutions to recurring design problems History  “A Pattern Language: Towns,
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Design Pattern – Bridge (Structural) References Yih-shoung Chen, Department of Information Engineering, Feng Chia University,Taiwan, R.O.C. The Bridge.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
An Agile View of Process
Chapter 1 The Systems Development Environment
Chapter 9 – Software Evolution and Maintenance
1 PH Chapter 1 (pp. 1-10) GoF Composite Pattern (pp ) PH Ch 2 through Fundamentals (pp ) Presentation by Julie Betlach 5/28/2009.
The 2nd International Conference of e-Learning and Distance Education, 21 to 23 February 2011, Riyadh, Saudi Arabia Prof. Dr. Torky Sultan Faculty of Computers.
Proceedings of the 28th Annual International Computer Software and Applications Conference (2004) Ming Huo, June Verner, Liming Zhu, Muhammad Ali Babar.
Software Engineering Modern Approaches
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 4 Slide 1 Chapter 1 The Systems Development Environment.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Real Time Auction System Metex Systems Inc.. Inside the UML The Problem Auctioning in real time over the Web requires that many people connect and participate.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Behavioral Design Patterns Morteza Yousefi University Of Science & Technology Of Mazandaran 1of 27Behavioral Design Patterns.
1 Introduction to Software Engineering Lecture 1.
Detecting Patterns and Antipatterns in Software using Prolog Rules Alecsandar Stoianov, Ioana Sora Department of Computers Politehnica University of Timisoara,
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
3/5/2009Computer systems1 Agile Modeling and Prototyping Prototyping Agile Modeling a collection of innovative, user-centered approaches to systems development.
An Agile Method for E-Service Composition Author : Pouya Fatehi, Seyyed Mohsen Hashemi Department of Computer Software, Science and Research Branch, Islamic.
Course 2138 Empowering Agile Development With CaliberRM  Jerry D. Odenwelder Jr.  Principal Software Engineer.
05/26/2004www.indyjug.net1 Indy Java User’s Group May Knowledge Services, Inc.
F053-B © 2007 The MITRE Corporation. All rights reserved. Case # Approved for Public Release; Distribution Unlimited. Eric Shi H. Peter Stassen,
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Extreme Programming Based on and
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
CS251 – Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 و ابتغ فيما آتاك الله الدار.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
EXtreme Programming and Open Source engineering paradigm A comparison
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Project Management Software development models & methodologies
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Methodologies and Algorithms
Design Patterns: MORE Examples
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Introduction to Design Patterns
Agile Software Development
Introduction to Design Patterns
Design Patterns Introduction
Design Patterns.
DESIGN PATTERNS : Introduction
Appendix B Agile Methodologies
Requirements Engineering
Presentation transcript:

A proposal to support the extreme programming development methodology from the quality assurance point of view Authors: Calin Jebelean – Vladimir Cretu –

Introduction Quality New Requirements V1V2Vn-1Vn... System evolution Detection of design flaws System refactoring Software engineer

Detection of design flaws? “There is no perfect software design …” [Fowler,O’Cinneide] … but each software design can be improved Design flaw detection lies at the bottom of improving the quality of a software design Keywords

Refactoring? Altering the code of a software system towards improving its design, without affecting its observable behavior Design modification required by: the software development method (agile methods) the maintenance phase of system’s lifecycle the detection of design flaws Keywords

Modeling? Code analysis: difficult and less practical Solution: performing analysis on a simplified model of the software system Advantages: Simple analyses Language independence Drawbacks: Loss of information – can lead to lack of relevance Keywords

Adaptive development methodology Change should be embraced, not denied Some principles: Interpersonal communication between developers (pair programming) between developers and clients (on-site customer) Acceptance of changing requirements simple design refactoring Frequent release of functional software short releases Extreme programming

Simple design Iterative system evolution Adapting the design to accept a new feature vs. adapting the feature to the existing design Prediction is unnecessary

Extreme programming enhanced Using models of the system between consecutive releases Capturing the refactoring intention (Expert E) Evolving the system as recommended “by the expert”

A Visitor Recommendation System SSystem S’ Inspired from [MT04]

A Visitor Recommendation

An Abstract Factory Recommendation System SSystem S’ Inspired from [GHJV95]

An Abstract Factory Recommendation

Conclusions Automatic support provided to the extreme programming development methodology during the refactoring step is feasible More analyses can be thought of and implemented as part of the expert module E Future work Implement the expert module containing the two analyses at first Define a suitable language to describe such analyses and allow other software engineers to freely add other analyses to the expert module Conclusions and Future Work

[Bec99] K. Beck – Extreme programming explained: Embrace change, Addison-Wesley, 1999 [Fow00] M. Fowler – Refactoring: Improving the design of existing code, Addison-Wesley, 2000 [MT04] T. Mens, T. Tourwe – A survey of software refactoring, IEEE Transactions on Software Engineering, February 2004 [GHJV95] E. Gamma, R. Helm, R. Johnson, J. Vlissides – Design patterns: Elements of reusable object-oriented software, Addison-Wesley, 1995 Bibliography