Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu Universidade Nova de Lisboa (

Size: px
Start display at page:

Download "Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu Universidade Nova de Lisboa ("

Transcription

1 Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa ( QUASAR Research Group ( Abstract Anorexia versus Bulimia Overview of heavy-weight methodologies Origins of light-weight methodologies The Agile Manifesto Agility example: XP The dark side of the light Planned (RUP) vs Agile (XP) When to be agile? Fernando Brito e Abreu 2 1

2 Anorexia versus Bulimia Anorexic (thin) project / Light-weight / Agile Project run unconstrained Total freedom for artists Unpredictable deliverables Bulimic (fat) project / Heavy-weight / Planned Highly constrained project e.g. following DoD Mil. Std 2167A High organizing overheads Very well defined deliverables Fernando Brito e Abreu 3 Examples Plan-driven methodologies Heavy-weight methodologies CMM, ISO9000-3, ISO12207, PSP, TSP, ISO15504 (SPICE), RUP, CMMi, Fat? Bulimic? Agile software development Light-weight methodologies Extreme Programming (XP), Scrum, Feature-Driven Development (FDD), Adaptive Software Process, Crystal Light Methodologies, Dynamic Systems Development Method (DSDM), Lean Development Thin? Anorexic? Fernando Brito e Abreu 4 2

3 Overview of heavy-weight methodologies Processes and tools Comprehensive documentation Contract negotiation Following a plan On projects with more than 250 people, methodology will have almost no impact on success or failure politics will dominate. Jim Highsmith Fernando Brito e Abreu 5 CMM - Capability Maturity Model See details on this model on another slides collection! Optimizing (5) Process change management Technology change management Defect prevention Managed (4) Software Quality management quality management Quantitative Process measurement process management and analysis Initial (1) Defined (3) Peer reviews Intergroup coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Repeatable (2) Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management Fernando Brito e Abreu 6 3

4 CMMI - CMM Integrated Maturity Levels See details on this model on another slides collection! Process Area 1 Process Area 2 Process Area n Specific Goals Generic Goals Common Features Commitment to Perform Ability to Perform Directing Implementation Verifying Implementation Specific Practices Generic Practices Fernando Brito e Abreu 7 ISO/IEC See details on this model on another slides collection! Measurement Framework Capability Levels Process Attributes Rating Scale Capability Dimension Capability Scale ISO Process Assessment Model Process Dimension ENG.1 CUS.2 ORG.3.. n Process Entities (process areas) + Indicators per Process Entity Fernando Brito e Abreu 8 4

5 Rational Unified Process (RUP) Some history Performance Testing Business Engineering Data Engineering 1997 Requirements College 1996 OMT approach IBM - Rational Unified Process v2003 Rational Unified Process 5.0 Rational Objectory Process 4.1 Rational Objectory Process 4.0 UML 1.2 Objectory UI Design Change & Configuration Management SQA Process UML 1.0 UML 0.5 OOSE 1995 Rational Approach Objectory Process 3.8 Fernando Brito e Abreu 9 Rational Unified Process (RUP) Model-based development Use-Case Model Specified by Realized by Analysis Model Distributed by Design Model Implemented by Deployment Model Implementation Model X OK Verified by X OK X OK Test Model Fernando Brito e Abreu 10 5

6 Rational Unified Process (RUP) Who, What, How, When Workflow (When) (Who) (How) (What) Fernando Brito e Abreu 11 Origins of light-weight methodologies Project Start Planned Result Final Result Fernando Brito e Abreu 12 6

7 Origins of light-weight methodologies Agility The ability to both create and respond to change in order to profit in a turbulent business environment Companies need to determine the amount of agility they need to be competitive Chaordic (ex: agile view) Exhibiting properties of both chaos and order The blend of chaos and order inherent in the external environment and in people themselves, argues against the prevailing wisdom about predictability and planning Things get done because people adapt, not because they slavishly follow processes An agile view is a chaordic view Fernando Brito e Abreu 13 The Agile Manifesto subscribers Alistair Cockburn Andrew Hunt Arie van Bennekum Brian Marick Dave Thomas James Grenning Jeff Sutherland Jim Highsmith Jon Kern Ken Schwaber Kent Beck Martin Fowler Mike Beedle Robert C. Martin Ron Jeffries Steve Mellor Ward Cunningham Fernando Brito e Abreu 14 7

8 The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value on the items on the right, we value the items on the left more. [Feb 2001] Fernando Brito e Abreu 15 Individuals and interactions over processes and tools Promote teambuilding and mutual trust Build projects around motivated individuals Give team members the environment and support they need, and trust them to get the job done Adopt a barely sufficient methodology the conventions we agree to Processes are described in manuals; practices are what happen in reality Fernando Brito e Abreu 16 8

9 Working software over comprehensive documentation Our highest priority is to satisfy the customer through early and frequent delivery of valuable software Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter time scale Working software/product is the primary measure of progress Fernando Brito e Abreu 17 Customer collaboration over contract negotiation Set an open tone with the customer(s) organization(s) Adopt collaborative values and principles Business people and developers work together daily throughout the project Fernando Brito e Abreu 18 9

10 Responding to change over following a plan Being agile means accepting that outcomes are not predictable and that processes are not repeatable Welcome changing requirements, even late in development Agile processes harness change for the customer s competitive advantage Agility is about adaptability rather than predictability Fernando Brito e Abreu 19 Case Study: Extreme Programming (XP) 10

11 XP principles and planning Basic principles Very short cycles Intense feedback Networked communication Planning practices User stories Release planning Iteration planning On site customer Fernando Brito e Abreu 21 XP Schedule Fernando Brito e Abreu 22 11

12 XP product build philosophy Principles Build the complete product, all the time One button builds everything, including Product executables Installation materials Test harness and test components Generated documentation Benefits Easy to manage Easy to add new team members Integrates well with testing environment Fernando Brito e Abreu 23 Agility example: XP Fernando Brito e Abreu 24 12

13 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 25 Pair programming Method: Two programmers sit at one workstation Each programmer take turns driving Short lived pairs to avoid vices Benefits: Avoids loosing focus and drifting away Transmits knowledge to the team Trains newbies Fernando Brito e Abreu 26 13

14 Pair programming research findings Pairs use no more man-hours than singles Pairs create fewer defects Pairs create fewer lines of code Pairs enjoy their work more Source: Laurie Williams Fernando Brito e Abreu 27 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 28 14

15 Test-first design aka Test-Driven Development (TDD) Principles All code must have tests, with the test created first Unit tests are executed during the automated build When a bug is found, new tests are created All unit tests must pass before code can be released Benefits Provides constant visibility into areas of the system at risk The result is rapid progress and a system that always works better than it did the previous version We end up with a rich suite of regression tests! Fernando Brito e Abreu 29 Test first design Progress in tiny (5 min) cycles Write a test case Write the code that passes it Repeat until program does what you want Use a unit testing framework e.g. Junit ( uses a green bar sign to mean that the code has passed all tests Fernando Brito e Abreu 30 15

16 Example 1st step: Write the tests public void testcreatefuelingstationvisit() { Date date = new Date(); double fuel = 2.0; // 2 gallons. double cost = 1.87*2; // Price = $1.87 per gallon int mileage = 1000; // odometer reading. double delta = ; //fp tolerance } FuelingStationVisit v = new FuelingStationVisit( date, fuel, cost, mileage); assertequals(date, v.getdate()); assertequals(1.87*2, v.getcost(), delta); assertequals(2, v.getfuel(), delta); assertequals(1000, v.getmileage()); assertequals(1.87, v.getprice(), delta); Fernando Brito e Abreu 31 Example 2nd step: Write the code public class FuelingStationVisit { public FuelingStationVisit(Date date, double fuel, double cost, int mileage) { itsdate = date; 3rd step: Run the tests! itsfuel = fuel; itscost = cost; itsmileage = mileage; } } public Date getdate() {return itsdate;} public double getfuel() {return itsfuel;} public double getcost() {return itscost;} public double getprice() {return itscost/itsfuel;} public int getmileage() {return itsmileage;} Fernando Brito e Abreu 32 16

17 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 33 Refactoring After getting something to work we refactor Refactoring must progress incrementally in tiny steps improve internal code structure, namely by reducing its complexity not alter the external behavior of the software components (this is guaranteed by running all the tests Refactoring techniques redistribute classes, variables and methods in order to facilitate future adaptations and extensions remove all duplications make the code as expressive as possible (e.g. forcing naming conventions) make the code as simple as possible Fernando Brito e Abreu 34 17

18 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 35 Continuous integration Daily builds are for wimps Build, end to end, at every check in Check in frequently Build and test time must be very fast Put resources on speeding build time Put resources on speeding test time Wimp: A person who lacks confidence, is irresolute Fernando Brito e Abreu 36 18

19 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 37 Collective ownership Anyone can improve any part of the code at any time No one acts as the gatekeeper for any part of the code This includes schemas and libraries and everything else that s different Fernando Brito e Abreu 38 19

20 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu 39 Coding standard Group of conventions that everyone agrees to Emerges over time Continuously evolves The team rules Fernando Brito e Abreu 40 20

21 XP programming practices Pair programming Test-first design Refactoring Continuous integration Collective ownership Coding standard 40 hour week Fernando Brito e Abreu hour week You can t do your best when you are tired When you don t do your best, you make messes Messes slow everyone down So you must be rested Occasionally, you may work one week of moderate overtime Fernando Brito e Abreu 42 21

22 Fernando Brito e Abreu 43 The dark side of the light... XP Considered Harmful... for Reliable SW Development [Gerold Keefer, 2002] The embrace change value... The practice of refactoring... The simplicity value... The practice of pair programming Fernando Brito e Abreu 44 22

23 Planned (RUP) vs Agile (XP) RUP XP Business Modeling Req. Management Analysis & Design Implementation Test Deployment CCM Project Management Environment Coding Testing Listening Designing Fernando Brito e Abreu 45 Planned (RUP) vs Agile (XP) Process Disciplines Business Modeling Requirements Analysis and Design Implementation Test Deployment Supporting Disciplines Configuration Mgmt Management Environment Phases Inception Elaboration Construction Preliminary Iteration(s) Iter. #1 Iter. #2 XP-Window Iter. #n Iter. #n+1 Iterations Iter. #n+2 Transition Iter. #m Iter. #m+1 Fernando Brito e Abreu 46 23

24 When to be agile? Problems characterized by change, speed, and turbulence are best solved by agility. Accelerated time schedule combined with significant risk and uncertainty that generate constant change during the project Is your project more like drilling for oil or like managing a production line? Oil exploration projects need agile processes Production-line projects are often well-served by rigorous methodologies Fernando Brito e Abreu 47 When to be agile? Important questions How close are the views and values expressed in the Agile Manifesto to: your customer s views and values? your project s views and values? your organization s views and values? your personal views and values? If the answer if not positive for all of this questions, then there is a high failure probability for agility Fernando Brito e Abreu 48 24

25 References [Acton2002] [Ambler????] [Beck2000] Agile Software Development, Dottie Acton, Lockheed Martin Mission Systems Agile Modeling: Effective Practices for Extreme Programming and the Unified Process, Scott Ambler Extreme Programming Explained: Embrace Change, Kent Beck, Addison Wesley [Charette????] Foundations of Lean Development: The Lean Development Manager s Guide, Vol 2, Robert Charette [Cockburn2002]Agile Software Development, Alistair Cockburn, Pearson Education, Inc, Boston, MA [Fowler2000] Refactoring: Improving the Design of Existing Code, Martin Fowler et al., Addison-Wesley [Highsmith2000] Adaptive Software Development: a Collaborative Approach to Managing Complex Systems, Jim Highsmith, Dorset House Publishing, New York [Highsmith2002] Agile Software Development Ecosystems, Jim Highsmith [Jeffries????] Extreme Programming Installed, Ron Jeffries & Ann Anderson, Addison- Wesley [Kruchten2000] The Rational Unified Process: an Introduction, 2nd Edition, Philippe Kruchten, Addison-Wesley [McCabe2003] Agile Development, Rich McCabe [Palmer????] A Practical Guide to Feature-Driven Development, Stephen Palmer & John Felsing [Rising2000] The Scrum Software Development Process for Small Teams, Rising, L. & N. S. Janoff, IEEE Software [Schwaber2002] Agile Software Development with Scrum, Ken Schwaber & Mike Beedle, Prentice-Hall Fernando Brito e Abreu 49 25

Revolutionising the Government Intranet with Drupal. Ian Laslett Adelphi Digital

Revolutionising the Government Intranet with Drupal. Ian Laslett Adelphi Digital INTRODUCTION Revolutionising the Government Intranet with Drupal Ian Laslett Adelphi Digital The problem Intranets struggle to deliver a clear purpose in a crowded land of collaboration tools, social media

More information

COPYRIGHTED MATERIAL. Index

COPYRIGHTED MATERIAL. Index BINDEX 08/25/2011 13:31:44 Page 233 Index A Acceptance testing, 131 extreme, 184, 186 Agile development, 175 manifesto, 176 table-methodologies, 177 Agile testing, 175, 178 Application server, 205 Automated

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

Testing in Agile Software Development

Testing in Agile Software Development Testing in Agile Software Development T 76.5613, Software Testing and Quality Assurance Slides by Juha Itkonen Lecture delivered by 4.10.2006 V-model of testing Benefits of the V-model Intuitive and easy

More information

The Scaled Agile Framework

The Scaled Agile Framework The Scaled Agile Framework Foundations of the Scaled Agile Framework (SAFe) SDJug Oct. 15, 2013 2008-2013 Leffingwell, LLC, and Scaled Agile, Inc. All rights reserved. Armond Mehrabian Enterprise Agile

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

Adopting Agile Practices

Adopting Agile Practices Adopting Agile Practices Ian Charlton Managing Consultant ReleasePoint Software Testing Solutions ANZTB SIGIST (Perth) 30 November 2010 Tonight s Agenda What is Agile? Why is Agile Important to Testers?

More information

Introduction to Extreme Programming

Introduction to Extreme Programming Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Robert Martin, Object Mentor Ron Jeffries,et.al. 12/3/2003 Slide Content by Wake/Metsker 1

More information

Testing in the Agile World

Testing in the Agile World Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline

More information

CS 485 Advanced Object Oriented Design. Spring 2017

CS 485 Advanced Object Oriented Design. Spring 2017 CS 485 Advanced Object Oriented Design Spring 2017 Version Control Assignment 1 will be distributed Friday You MUST use version control Subversion via Zeus (as in CS 300) https://ankhsvn.open.collab.net/

More information

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process Agile Accessibility Ensuring accessibility throughout the Agile development process Presenters: Andrew Nielson, CSM, PMP, MPA Ann Marie Davis, CSM, PMP, M. Ed. Cammie Truesdell, M. Ed. Overview What is

More information

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing Extreme Programming CS 6704, Spring 2002 By Roy Tan and Jiang Shu Contents What is Extreme Programming (XP)? When to use XP? Do we need yet another software methodology? XP s rules and practices XP s relation

More information

XP Evolution Rachel Davies

XP Evolution Rachel Davies XP Evolution Rachel Davies Sept 10, 2005 2005 Agile Experience Ltd. 1 What is XP? 1.eXtreme Programming (XP) is so named because it raises practices that improve code quality to extreme levels 2. XP is

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

Designed in collaboration with Infosys Limited

Designed in collaboration with Infosys Limited Proposal for Introduction of New Industry Course in Engineering Curriculum Agile Software Development - Deliver Software Better Everyday Designed in collaboration with Infosys Limited Version 1-2016 Contents

More information

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects Activities Common to Software Projects Software Life Cycle Mark van den Brand Requirements and specification Domain analysis Defining the problem Requirements gathering Obtaining input from as many sources

More information

Test Driven Development. René Barto SES Agile Development - Test Driven Development

Test Driven Development. René Barto SES Agile Development - Test Driven Development Test Driven Development René Barto SES Agile Development - Test Driven Development 27-09-2006 Contents About Myself About SES Agile Development A Typical Developer s Day Test Driven Development Questions

More information

Evaluation of Commercial Web Engineering Processes

Evaluation of Commercial Web Engineering Processes Evaluation of Commercial Web Engineering Processes Andrew McDonald and Ray Welland Department of Computing Science, University of Glasgow, Glasgow, Scotland. G12 8QQ. {andrew, ray}@dcs.gla.ac.uk, http://www.dcs.gla.ac.uk/

More information

Testing Agile Projects Stuart Reid

Testing Agile Projects Stuart Reid ing Agile Projects Stuart Reid ing Solutions Group 117-119 Houndsditch London EC3A 7BT UK sreid@ing-solutions.com www.ing-solutions.com Stuart Reid, 2011 Scope Agile Manifesto and Principles An Agile Development

More information

Optimize tomorrow today.

Optimize tomorrow today. Applying Agile Practices to Improve Software Quality Name: Arlene Minkiewicz Chief Scientist 17000 Commerce Parkway Mt. Laurel, NJ 08054 arlene.minkiewicz@pricesystems.com Phone: 856 608-7222 Agenda Introduction

More information

Ready for Scrum? Steve Hutchison DISA T&E

Ready for Scrum? Steve Hutchison DISA T&E Ready for Scrum? Steve Hutchison DISA T&E Presentation Tasks Backlog In Progress Done Scrum Overview Role of Testing in Scrum Agile Testing Summary 2 Scrum Overview Software development framework focused

More information

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Extreme Programming is... Lightweight software development method used for small to medium-sized

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering II. Agile Development 1. Motivation Conceive Design Implement Operate Why What How 3 Co-evolution What should the software do? WHAT HOW

More information

Systems Analysis and Design in a Changing World, Fourth Edition

Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping Coping with change Change is inevitable in all large software projects. Business changes lead to new and changed system requirements New technologies open up new possibilities for improving implementations

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 10 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Principles of good design: layered architecture Software Development Processes

More information

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Introduction To Software Development CSC Spring 2019 Howard Rosenthal Introduction To Software Development CSC 295-01 Spring 2019 Howard Rosenthal Course References Materials for this course have utilized materials in the following documents. Additional materials taken from

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary

More information

Best Practices for Collecting User Requirements

Best Practices for Collecting User Requirements Federal GIS Conference February 9 10, 2015 Washington, DC Best Practices for Collecting User Requirements Gerry Clancy Glenn Berger Requirements Provide direction for program success Why Requirements are

More information

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues Founda'ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals Define agile as both a set of itera.ve process prac.ces and a business approach for aligning customer needs with

More information

Agile Model Driven Development (AMDD)

Agile Model Driven Development (AMDD) Agile Model Driven Development (AMDD) Scott W. Ambler Practice Leader Agile Development, IBM Modeling is an important part of all software development projects because it enables you to think through complex

More information

Lecture 7: Software Processes. Refresher: Software Always Evolves

Lecture 7: Software Processes. Refresher: Software Always Evolves Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)

More information

David Bernstein Five Development Practices Essential for Scrum Teams

David Bernstein Five Development Practices Essential for Scrum Teams David Bernstein Five Development Practices Essential for Scrum Teams 1 Welcome! I m David Scott Bernstein Software developer since 1980 Trained 8,000 developers since 1990 Published author since 2015 Website:

More information

Software Development Process Models

Software Development Process Models Software Development Process Models From classical notions to more agile approaches th@cs.toronto.edu, BA8134 Code & Fix or Cowboy Coding 1) Write program 2) Test and fix program Problems: program users

More information

Software Engineering

Software Engineering Software Engineering A systematic approach to the analysis, design, implementation and maintenance of software. Software Development Method by Jan Pettersen Nytun, page 1 Software Engineering Methods Most

More information

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz ESE Introduction Lecturer Assistants Lectures Exercises WWW Prof. Oscar Nierstrasz scg.unibe.ch/oscar Erwann Wernli Aaron

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

Agile Software Development A Planned, Story-Driven, Test-Based, Tool-Supported Process for Well-Designed Software. Philip Mayer

Agile Software Development A Planned, Story-Driven, Test-Based, Tool-Supported Process for Well-Designed Software. Philip Mayer Agile Software Development A Planned, Story-Driven, Test-Based, Tool-Supported Process for Well-Designed Software Philip Mayer Origins of Agile Before and around the year 2000 Dissatisfaction with heavyweight

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of

More information

Test Driven Development TDD

Test Driven Development TDD Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,

More information

Architects: Anchors or Accelerators to Organizational Agility?

Architects: Anchors or Accelerators to Organizational Agility? Architects: Anchors or Accelerators to Organizational Agility? Jim Highsmith 1 SketchBook Pro Everything evolves Two week iterations, Fixed deadline Envision-Evolve, Not Plan-Do Release 2.0 Adaptability

More information

כללי Extreme Programming

כללי Extreme Programming פיתוח מער כות תוכנה מבוססות Java כללי Extreme Programming אוהד ברזילי ohadbr@tau.ac.il Based on: K. Beck: Extreme Programming Explained. E. M. Burke and B.M. Coyner: Java Extreme Programming Cookbook.

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: XP 1 extreme Programming (XP) Developed by Beck in 1996. The first authentic XP book appeared in 1999, with a revised

More information

defined. defined. defined. defined. defined. defined. defined. defined. defined.

defined. defined. defined. defined. defined. defined. defined. defined. defined. Table of Contents Week 1 Software Development... 2 Software Eng Life-Cycle Development Phases... 2 Methodologies... 2 Week 2 - XP, Scrum, Agile... 3 Extreme Programming (XP)... 3 Values of XP Programming...

More information

Requirements and Design Overview

Requirements and Design Overview Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions

More information

Processes, Methodologies and Tools. Fall 2005

Processes, Methodologies and Tools. Fall 2005 Processes, Methodologies and Tools 1 Who am I? Name: Experience: working with Ada and C/C++ since 1983, with Java since 1996. Application domains: system software, embedded systems, satellites data management

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 9: Layered Architecture Persistency Layer; Software Development Process Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap

More information

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis Software Quality in a Modern Development Team Presented by Timothy Bauguess and Marty Lewis High-Quality Software Who benefits? End users Development Stakeholders Components of Software Quality Structural

More information

Requirements and User-Centered Design in an Agile Context

Requirements and User-Centered Design in an Agile Context Requirements and User-Centered Design in an Agile Context The Volvo Group Business Areas AB Volvo Volvo Trucks Renault Trucks Mack Trucks Nissan Diesel Buses Construction Equipment Volvo Penta Volvo Aero

More information

K Kantor, Jeff Use Case Driven Testing, 249

K Kantor, Jeff Use Case Driven Testing, 249 Index A A & D modeling need for updating diagrams rapidly, 232 actors overview, 43 using interaction design to identify, 196 AD (Agile Database Techniques), 18 adaptive planning agile projects and, 10

More information

Agile Testing Course: 15 16/11

Agile Testing Course: 15 16/11 Agile Testing Dr. Ronen Bar-Nahor ronen@agilesparks.com 1 AgileSparks We help companies improve by Adopting agile principles and practices. We provide training and coaching to all organizational levels,

More information

02161: Software Engineering I

02161: Software Engineering I 02161: Software Engineering I Week 9: Version Control, Software Development Process, and Project Introduction Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring

More information

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015 xtreme Programming (summary of Kent Beck s XP book) 1 Contents The software development problem The XP solution The JUnit testing framework 2 The Software Development Problem 3 Risk Examples delivery schedule

More information

An Introduction to Unit Testing

An Introduction to Unit Testing An Introduction to Unit Testing Brian Henderson Programmer Analyst, Collaborative Data Services bhenders@fhcrc.org CDS Seminars & Training Classes CDS Brownbag seminars Nov 28 th - SharePoint Tips & TricksSharePoint

More information

Testing. in A Large scale agile Development Environment

Testing. in A Large scale agile Development Environment Testing in A Large scale agile Development Environment Content/agenda 1. Introduction 2. Agile on a large scale 3. Testing in a large scale agile environment 4. Conclusion Testing in large scale Agile

More information

Extreme programming XP 6

Extreme programming XP 6 Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other

More information

COMP 354 TDD and Refactoring

COMP 354 TDD and Refactoring COMP 354 TDD and Refactoring Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course Web Site: http://users.encs.concordia.ca/

More information

Review Software Engineering October, 7, Adrian Iftene

Review Software Engineering October, 7, Adrian Iftene Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved. Agile vs Fragile - The need for Automation in Agile Susmit Bhattacharya, Solution Architect, Asia Pacific 2017 Tricentis GmbH. All Rights Reserved. Years Months Months Weeks Delivery Cycle Time Weeks Days

More information

Best Practices for Final Year Projects

Best Practices for Final Year Projects City University of Hong Kong Software Engineering Best Practices for Final Year Projects by Dr. Andy Chun, Hon Wai Subject Group Leader for SE Department of Computer Science Software Engineering Best Practices

More information

2014 Intelliware Development Inc.

2014 Intelliware Development Inc. What You ll Learn in this Presentation: The basics of user stories. How user stories fit into the overall Agile planning process. How to write a user story. A story card example 2 Why is it so Difficult

More information

Test-Driven Development Metodology Proposal for Web Service Choreographies

Test-Driven Development Metodology Proposal for Web Service Choreographies Test-Driven Development Metodology Proposal for Web Service Choreographies Felipe M. Besson, Pedro M. B. Leal, Fabio Kon Department of Computer Science Institute of Mathematics and Statistics University

More information

Introduction to Software Engineering (ESE : Einführung in SE)

Introduction to Software Engineering (ESE : Einführung in SE) Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz Selected material courtesy of Prof. Serge Demeyer, U. Antwerp ESE Introduction Lecturers Assistants Lectures Exercises

More information

Kanban One-Day Workshop

Kanban One-Day Workshop Kanban One-Day Workshop Copyright Net Objectives, Inc. All Rights Reserved 2 Copyright Net Objectives, Inc. All Rights Reserved 3 Lean for Executives Product Portfolio Management Business Product Owner

More information

A Proposal to Develop a Testing Framework for Agile Software Process

A Proposal to Develop a Testing Framework for Agile Software Process C.G. Anupama, Rashi Nair and Soumi Roy ISSN : 0974 5572 International Science Press Volume 9 Number 40 2016 A Proposal to Develop a Testing Framework for Agile Software Process C.G. Anupama a Rashi Nair

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based

More information

Getting a Quick Start with RUP

Getting a Quick Start with RUP Getting a Quick Start with RUP By: Doug Rosenberg and Jeff Kantor, ICONIX Software Engineering, Inc. Abstract Many people want the rigor of an industrial-strength process like the RUP but aren't quite

More information

The Process of Software Architecting

The Process of Software Architecting IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,

More information

XP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg

XP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg XP: Planning, coding and testing Annika Silvervarg Practice Planning game Goal: schedule the most important tasks Which features to implement in what order Supports: simple design, acceptance testing,

More information

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer How technical excellence helps in LeSS adoption Anton Bevzuk Dodo Pizza Chief Agile Officer The plan Why engineering practices? Deep dive into Pair Programming Test Automation Continuous Integration Q&A

More information

l e a n Lean Software Development software development Faster Better Cheaper

l e a n Lean Software Development software development Faster Better Cheaper software development Lean Software Development Faster Better Cheaper mary@poppendieck.com Mary Poppendieck www.poppendieck.com Characteristics of Lean Companies: 1. They don t call themselves Lean The

More information

AgileTool - Managing requirements in Agile WWW projects

AgileTool - Managing requirements in Agile WWW projects AgileTool - Managing requirements in Agile WWW projects Mike Arvela 1, Matias Muhonen 1, Matias Piipari 2, Timo Poranen 3, and Zheying Zhang 3 1 Ambientia Ltd., Visamäentie 35, FI-13100 Hämeenlinna, Finland

More information

A Sophisticated Study on Best Practices of Agile Software Testing

A Sophisticated Study on Best Practices of Agile Software Testing A Sophisticated Study on Best Practices of Agile Software Testing Harish R Madhu B K Lokesha V GSSIT, Bangalore, GSSIT, Bangalore, Acharya Institute of Technology, Karnataka, India Karnataka, India Bangalore,

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

Mensch-Maschine-Interaktion 1

Mensch-Maschine-Interaktion 1 1 Mensch-Maschine-Interaktion 1 Chapter 10 (July 21st, 2011, 9am-12pm): User-Centered Development Process Overview Introduction Basic HCI Principles (1) Basic HCI Principles (2) User Research & Requirements

More information

Introduction to. and. Scott W. Ambler Source Documents

Introduction to. and. Scott W. Ambler Source Documents Introduction to and Scott W. Ambler scott.ambler@ronin-intl.com Copyright 2001-2002 Scott W. Ambler 1 Source Documents www.agilemodeling.com The Agile Modeling Workshop Course Notes (www.ronin-intl.com)

More information

Extreme Programming practices for your team. Paweł Lipiński

Extreme Programming practices for your team. Paweł Lipiński Extreme Programming practices for your team Paweł Lipiński whoami ~15 years as a developer, ~11 years in Java programming, consulting, training, auditing, architecturing, coaching, team leading Formal

More information

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? A few observations, opinions, pros & cons COMP 320 / 420 Spring, 2018 Mr. Weisert Where did the UML come from? Object-oriented

More information

The Need for Agile Project Management

The Need for Agile Project Management The Need for Agile Project Management by Mike Cohn 21 Comments originally published in Agile Times Newsletter on 2003-01-01 One of the common misperceptions about agile processes is that there is no need

More information

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010 PACIFIC NW 28TH ANNUAL SOFTWARE QUALITY CONFERENCE October 18th 19th, 2010 Conference Paper Excerpt from the CONFERENCE PROCEEDINGS Permission to copy, without fee, all or part of this material, except

More information

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative

More information

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information

CISC 322 Software Architecture

CISC 322 Software Architecture CISC 322 Software Architecture UML - The Unified Modelling Language Nicolas Bettenburg 1 DEFINITION The Unified Modelling Language (UML) is a graphical language for visualizing, specifying, constructing,

More information

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go

More information

Agile Modeling (AM) Overview

Agile Modeling (AM) Overview Agile Modeling (AM) Overview Scott W. Ambler Senior Consultant, Ronin International www.ronin-intl.com/company/scottambler.html Copyright 2001-2004 Scott W. Ambler 1 Recommended Resources www.agilemodeling.com

More information

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time! Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time! Today s Topics How the Tester s Role Changes in Agile Testing in

More information

Software Engineering with Objects and Components Open Issues and Course Summary

Software Engineering with Objects and Components Open Issues and Course Summary Software Engineering with Objects and Components Open Issues and Course Summary Massimo Felici Software Engineering with Objects and Components Software development process Lifecycle models and main stages

More information

Agile Development

Agile Development Agile Development 12-04-2013 Many flavors: Waterfall, Spiral Rapid Application Development (DSDM) Xtreme Programming (XP, an agile methodology) Usability Engineering Model, Star Iteration is done throughout

More information

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming Slide 1 Lesson Objectives Understand major activities of software projects Understand the place of these in different lifecycle models

More information

Test-driven development

Test-driven development Test-driven development And how we do it at WIX Mantas Indrašius Software Engineer WIX.COM Agenda Tests overview Test-driven development (TDD) The Bowling Game demo Kickstarting a project using TDD How

More information

Incremental Programming

Incremental Programming Journal of Computer Science and Information Technology June 2015, Vol. 3, No. 1, pp. 35-41 ISSN: 2334-2366 (Print), 2334-2374 (Online) Copyright The Author(s). All Rights Reserved. Published by American

More information

Software Architecture

Software Architecture Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning

More information

Software Development. Modular Design and Algorithm Analysis

Software Development. Modular Design and Algorithm Analysis Software Development Modular Design and Algorithm Analysis Functional Decomposition Functional Decomposition in computer science, also known as factoring, refers to the process by which a complex problem

More information

18-642: Software Development Processes

18-642: Software Development Processes 18-642: Software Development Processes 9/6/2017 Coding Is Essentially 0% of Creating Software http://e.ubmelectronics.com/2013embeddedstudy/index.html 2 Old-School Waterfall Development Cycle Bugs SPECIFY

More information

SE420 - Software Quality Assurance

SE420 - Software Quality Assurance SE420 - Software Quality Assurance http://dilbert.com/strips/comic/2006-01-29/ Lecture 3 Unit Testing, Part-2 January 21, 2019 Sam Siewert Reminders Assignment #2 Posted Thursday [Unit Re-Use] Explore

More information

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1. XP: Planning, coding and testing Annika Silvervarg Planning XP planning addresses two key questions in software development: predicting what will be accomplished by the due date determining what to do

More information