Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson



Similar documents
Software Development Life Cycle Models - Process Models. Week 2, Session 1

Extreme Programming, an agile software development process

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

SOFTWARE PROCESS MODELS

3C05: Unified Software Development Process

Agile processes. Extreme Programming, an agile software development process

Extreme Programming, an agile software development process

Software Development Life Cycle (SDLC)

CS4507 Advanced Software Engineering

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

Software Project Management using an Iterative Lifecycle Model

Software Engineering

A Capability Maturity Model (CMM)

Software Process and Models

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Introduction to Agile Software Development

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Plan-Driven Methodologies

Software Development Methodologies

Agile So)ware Development

Quality Assurance Software Development Processes

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Software Development Process

Classical Software Life Cycle Models

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Using Use Cases on Agile Projects

The most suitable system methodology for the proposed system is drawn out.

An Iterative and Agile Process Model for Teaching Software Engineering

Comparing Agile Software Processes Based on the Software Development Project Requirements

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

EPL603 Topics in Software Engineering

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Agile Modeling: A Brief Overview

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Basic Trends of Modern Software Development

I219 Software Design Methodology

What CMMI Cannot Give You: Good Software

Agile Testing and Extreme Programming

Web Application Development Process

Agile Software Development Methodologies and Its Quality Assurance

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Development Methodologies

Agile with XP and Scrum

Chap 1. Introduction to Software Architecture

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Hamid Faridani March 2011

RUP and XP, Part I: Finding Common Ground

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Software Process for QA

To introduce software process models To describe three generic process models and when they may be used

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

CMMI - The AGILE Way By Hitesh Sanghavi

COMP 354 Introduction to Software Engineering

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Abstract. 1 Introduction

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Models of Software Development

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Software Life Cycles and Configuration Management

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

Modeling Web Applications Using Java And XML Related Technologies

Title: Topic 3 Software process models (Topic03 Slide 1).

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Comparison between Agile and Traditional software development methodologies

Agile Techniques for Object Databases

TOGAF usage in outsourcing of software development

RUP iteration planning

CSE 435 Software Engineering. Sept 16, 2015

Agile and Secure: Can We Be Both?

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Moving from a Plan Driven Culture to Agile Development

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Software Quality and Agile Methods

System development lifecycle waterfall model

Chapter 2 Software Processes

Java course - IAG0040. Unit testing & Agile Software Development

Engineering Process Software Qualities Software Architectural Design

RUP for Software Development Projects

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Agile Projects 7. Agile Project Management 21

software studio software development processes Daniel Jackson

Software Design Models, Tools & Processes *

Basic Unified Process: A Process for Small and Agile Projects

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Chapter 3. Technology review Introduction

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Object-oriented design methodologies

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Transcription:

Development Methodologies Development Methodologies Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2006: Methodologies 1 A methodology is a system of methods and principles used in a particular school of software design. There is a wide variety of published methodologies, and an even larger set of informal and/or company-specific methodologies. The most mature methodologies are often codified using specialist tools and techniques. All methodologies are controversial, because some people argue that any fixed methodology is an affront to a professional, creative, independent designer, while the rest argue about which methodology is best. SAPM Spring 2006: Methodologies 2 Example Methodologies In this course we will focus on three main methodologies: Hackers Types of Methodologies XP Adaptive SW development Milestone risk driven s Milestone plan driven s Inch pebble ironbound contract The Waterfall Model The Unified Process (UP) Extreme Programming (XP) (But we will mention many others, such as Cleanroom, DSDM, V-, Scrum, Crystal, etc.!) We will also discuss open-source design, which is more of a philosophical approach than a methodology like the others, but which has implications for methodology. SAPM Spring 2006: Methodologies 3 Agile methods Software CMM CMM Cowboy hacking and micromanaging are at the extremes of a continuum (Boehm 2002). Basic distinction: agile vs. heavyweight Agile methods are more fashionable to discuss, but it s hard to tell what people are actually using. SAPM Spring 2006: Methodologies 4

Plan-Driven Model: Waterfall (Royce 1970) Inspired by older engineering disciplines, such as civil and mechanical (e.g. how cathedrals are built) Development of a release is broken into phases, each of which is completed and signed-off before moving on. Waterfall Model of One Release System feasibility Validation Plans and requirements Validation Product design Verification Detailed design Verification When problems are found, must backtrack to a previous phase and start again with the sign-off procedures. Code Integration Unit test Product verification Much time and effort is spent on getting early phases right, because all later phases depend on them. Operation and maintenance System test Revalidation SAPM Spring 2006: Methodologies 5 SAPM Spring 2006: Methodologies 6 Problems with Waterfall Model In practice it is rarely possible to go straight through from requirements to design to implementation, without backtracking. There is no feedback on how well the system works, and how well it solves users needs, until nearly the very end. Large danger of catastrophic failure: Any error in key user requirements dooms entire process Big chance that the design is not actually feasible Big potential for unacceptable performance The Unified Process Typical heavyweight approach. Iterative modification of waterfall using ing to forestall backtracking: Component based Uses UML for all blueprints Use-case driven Architecture centric Iterative and incremental Details in Jacobson et al. (1998). SAPM Spring 2006: Methodologies 7 SAPM Spring 2006: Methodologies 8

Relatives of The Unified Process The IBM Rational Unified Process (RUP) is a commercial product and toolset, superseding: The Objectory Process The Booch Method The Object Modeling Technique The Unified Software Development Process (UP) is a published, non-proprietary method based on the RUP, but without specific commercial tools or proprietary methods. Phases of UP Each software release cycle proceeds through a series of phases, each of which can have multiple ing iterations: Inception : Produces commitment to go ahead (business case feasibility and scope known) Elaboration : Produces basic architecture; plan of construction; significan t risks identified; major risks addressed Construction : Produces beta-release system Transition : Introduces system to users SAPM Spring 2006: Methodologies 9 SAPM Spring 2006: Methodologies 10 WORKFLOWS Waterfall Iterations Within Phases PHASES Inception Elaboration Construction Transition Requirements 1 2 3 4 5 6 7 8 9 ITERATIONS Each phase can have multiple iterations Each iteration can include all workflows, but some are more heavily weighted in different phases Still hard to change requirements once implementation underway WORKFLOWS Requirements UP vs. Waterfall Cycle PHASES PHASES Inception Elaboration Construction Transition WORKFLOWS Requirements Inception Elaboration Construction Transition 1 2 3 4 5 6 7 8 9 ITERATIONS ITERATIONS SAPM Spring 2006: Methodologies 11 SAPM Spring 2006: Methodologies 12

The Product: A Series of Models specification realisation Deployment distribution Use Case implementation verification Use Cases A use case specifies a sequence of actions, including variants, that the system can perform and that yields an observable result of value to a particular actor. These drive: Requirements capture and design of how system realizes use cases Acceptance/system testing Planning of development tasks Traceability of design decisions back to use cases SAPM Spring 2006: Methodologies 13 SAPM Spring 2006: Methodologies 14 UP Example: 1 Initial use-case diagram: UP Example: 2 classes for withdrawing money: USE CASE MODEL ANALYSIS MODEL Customer Withdraw money Deposit money Withdraw money Withdraw money Transfer between accounts Cashier interface Withdrawal SAPM Spring 2006: Methodologies 15 SAPM Spring 2006: Methodologies 16

UP Example: 3 Collaboration diagram for withdrawing money: identify Customer Cashier interface request UP Example: 4 classes introduced for analysis classes: ANALYSIS MODEL Cashier interface Withdrawal dispense Withdrawal authorise Display sensor Withdrawal validate and withdraw Key pad Card reader DESIGN MODEL feeder Cash counter Client Transaction SAPM Spring 2006: Methodologies 17 SAPM Spring 2006: Methodologies 18 UP Example: 5 Class diagram which is part of the realization of the design : Customer Card reader Display Key pad feeder sensor Client Cash counter Transaction Withdrawal Customer UP Example: 6 Sequence diagram for part of the realization: Insert card Card reader Show request Display Specify PIN code Show request Specify amount Card inserted Key pad Ask for PIN code Ask amount PIN code Amount Client Cash counter Request for validation Request cash available Request withdrawal Transaction SAPM Spring 2006: Methodologies 19 SAPM Spring 2006: Methodologies 20

Assumptions of UP UP and other heavyweight methodologies concentrate on carefully controlled, up-front, documented thinking. Based on assumption that cost of making changes rises exponentially through the development stages. To minimize backtracking, establishes rigorous control over each stage. At each stage a acts as a proxy for the whole system, helping to bring out problems as early as possible (before they are set in code). Problems with UP Heavy training, documentation, and tools requirements learning and using UML, ing, process, tools, techniques. UML is not a native language for customers, and so they often cannot provide good feedback until system is implemented. Requirements are very difficu lt to change at later stages, if needed to match changes in business world, address new competition, or fix mistakes in requirements capture. SAPM Spring 2006: Methodologies 21 SAPM Spring 2006: Methodologies 22 Extreme Programming (XP) UP Cycle vs. XP Development What if it were possible to make the cost of change constant across all stages, so that design and requirements can be changed even at late stages? Inception PHASES Elaboration Construction Transition Inception PHASES Development Maintenance XP tries to prevent backtracking by keeping the system continuously flexible, eliminating the need for determining the final correct requirements and design before implementation. WORKFLOWS Requirements WORKFLOWS Requirements XP started the trend toward agile processes (like Scrum and Crystal), focusing on closely knit, fast moving design/coding teams and practices (Beck 1999). 1 2 3 4 5 6 7 8 9 ITERATIONS 1 2 3 4 5 6 7 8 RELEASES SAPM Spring 2006: Methodologies 23 SAPM Spring 2006: Methodologies 24

XP is Controversial An IBM Java poll on XP from www.xprogramming.com said roughly this: I ve tried it and loved it (51%) I ve tried it and hated it (8%) It s a good idea but it could never work (25%) It s a bad idea - it could never work (16%) Of course, the UP is widely resented as well... How XP Imposes Control Through a set of practices to which designers adhere (using whatever other compatible methods and tools they prefer). See: www.extremeprogramming.org/rules.html Not strongly influenced by a particular design paradigm (unlike UP). Does require a strongly held ( extreme ) view of how to approach design. We consider some key practices in the following slides. SAPM Spring 2006: Methodologies 25 SAPM Spring 2006: Methodologies 26 1. The Planning Process An XP project starts with a Planning Game. The customer defines the business value of desired user stories. The programmers provide cost estimates for implementing the user stories in appropriate combinations. No one is allowed to speculate about producing a total system which costs less than the sum of its parts. User Stories vs. Use Cases A user story meets a similar need as a use case, but is textual, not graphical, and is something that any customer can do without training in UML. A user story deliberately does not include all the possible exceptions, variant pathways, etc. that go into use cases. Short example: A bank customer goes up to an ATM and withdraws money from his or her account. SAPM Spring 2006: Methodologies 27 SAPM Spring 2006: Methodologies 28

2. On-site customer Someone who is knowledgeable about the business value of the system sits with the design team. 3. Small Releases Put a simple system into production early, implementing a few important user stories. This means there is always someone on hand to clarify the business purpose, help write realistic tests, and make small scale priority decisions. Re-release it as frequently as possible while adding significant business value (a set of important user stories) in each release. The customer acts as a continuously available source of corrections and additions to the requirements. E.g., aim for monthly rather than annual release cycles. The aim is to get feedback as soon as possible. SAPM Spring 2006: Methodologies 29 SAPM Spring 2006: Methodologies 30 4. Continuous ing Write the tests before writing the software. 5. Simple Do the simplest thing that could possibly work. Customers provide acceptance tests. Don t design for tomorrow you might not need it. Continuously validate all code against the tests. s act as system specific ation. Extra complexity added just in case will fossilize your design (e.g. your class hierarchies) and get into the way of the changes you will need to make tomorrow. SAPM Spring 2006: Methodologies 31 SAPM Spring 2006: Methodologies 32

6. Refactoring When tomorrow arrives, there will be a few cases where you actually have to change the early simple design to a more complicated one. Change cannot occur only through small, scattered changes, because over time such changes will gradually turn the design into spaghetti. To keep the design modifiab le at all stages, XP relies on continuous refactoring: improving the design without adding functionality. 7. Collective Ownership Anyone is allowed to change anyone else s code modules, without permission, if he or she believes that this would improve the overall system. To avoid chaos, collective ownership requires a good revision control (configur ation management) tool, but those are widely available. SAPM Spring 2006: Methodologies 33 SAPM Spring 2006: Methodologies 34 8. Coding Standard Since XP requires collective ownership (anyone can adapt anyone else s code) the conventions for writing code must be uniform across the project. This requires a single coding standard to which everyone adheres. 9. Continuous Integration Integration and full-test-suite validation happens no more than a day after code is written. This means that individual teams don t accumulate a library of possibly relevant but obscure code. Moreover, it enables everyone to freely modify code at any time, because they know that they have access to the latest design. SAPM Spring 2006: Methodologies 35 SAPM Spring 2006: Methodologies 36

10. Pair Programming All code is written by a pair of people at one machine. One partner is doing the coding The other is considering strategy (Is the approach going to work? What other test cases might we need? Could we simplify the problem so we don t have to do this? Etc.) This is unpalatable to some but appears vital to the XP method, because it helps make collective code ownership work. 11. 40-Hour week XP is intense so it is necessary to prevent burnout. ers are discouraged from working more than 40 hours per week. If it is essential to work harder in one week then the following week should drop back to normal (or less). SAPM Spring 2006: Methodologies 37 SAPM Spring 2006: Methodologies 38 Problems with XP Published interfaces (e.g. APIs): some code is not practical to refactor, because not all uses can be known, so that code must anticipate all reasonable tomorrows. Many programmers resist pair programming or other XP guidelines; teams are often spread geographically, and even at one site sharing a computer is often awkward. The customer isn t always available or willing, and may not be able to agree to an open-ended process. Over time XP has become more heavy weight, trying to incorporate new realizations, just as UP did. SAPM Spring 2006: Methodologies 39 Summary Methodologies: principled ways to manage large projects Waterfall works in other disciplines, where most of the work is on the physical implementation, but in SE all work is conceptual Unified Process constructs gradually more elaborate s to uncover risks and solidify requirements and design as early as possible Extreme Programming relies on continuous customer involvement, testing, and refactoring to deliver code early and continuously, minimizing risk of complete failure. SAPM Spring 2006: Methodologies 40

References Beck, K. (1999). Extreme Programming Explained. Reading, MA: Addison-Wesley. Boehm, B. (2002). Get ready for agile methods, with care. IEEE Computer, pp. 64 69. Jacobson, I., Booch, G., & Rumbaugh, J. (1998). The Unified Software Development Process. Reading, MA: Addison-Wesley. Royce, W. W. (1970). Managing the development of large software systems. In Proceedings of IEEE WESCON (pp. 1 9). SAPM Spring 2006: Methodologies 40