Software Process Models

Similar documents
11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Manifesto for Agile Software Development

Introduction to Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development

Software Processes. Agile Methods

Agile Project Management with Scrum

Agile Project Management By Mark C. Layton

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

Agile Development with C#

Agile Software Development

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Agile Development Overview

CSE 435 Software Engineering. Sept 16, 2015

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

SCEA 2010 EST06. Estimating Issues Associated with Agile. Bob Hunt. Galorath Incorporated

Agile Software Development in the Large

Agile on huge banking mainframe legacy systems. Is it possible?

How To Understand The Limitations Of An Agile Software Development

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

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

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

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

werteorientierte Unternehmenskultur

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Software Development Life Cycle (SDLC)

LEAN AGILE POCKET GUIDE

Rapid Software Development

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

History of Agile Methods

SOFTWARE PROCESS MODELS

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

COMP 354 Introduction to Software Engineering

Agile Beyond The Team 1

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

A Capability Maturity Model (CMM)

Agile Projects 7. Agile Project Management 21

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Extreme Programming, an agile software development process

Agile Project Management

Software Development Methodologies

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

Development. Lecture 3

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

Agile Processes and Distributed Projects: Dream or Nightmare?

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Agile QA s Revolutionary Impact on Project Management

Agile Software Development. Mohsen Afsharchi

Software Development Process

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Extreme Programming, an agile software development process

Advanced Software Engineering. Software Development Processes

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Agile Software Development

ITSM Agile Intro Feb 5, 2015

Neglecting Agile Principles and Practices: A Case Study

Exception Handling. development.

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Comparing Scrum And CMMI

Governments information technology

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Software Development with Agile Methods

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Creating a High Maturity Agile Implementation

AGILE BUSINESS INTELLIGENCE

Aristotle in an Agile World. By Ben Allen

A Viable Systems Engineering Approach. Presented by: Dick Carlson

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

An Ideal Process Model for Agile Methods

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

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

The Agility of Agile Methodology for Teaching and Learning Activities

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Comparison and problems between Traditional and Agile software development methods

An Agile Project Management Model

A Survey on Efficient Agile Development Methods

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Quality Assurance Software Development Processes

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

AGILE vs. WATERFALL METHODOLOGIES

White Paper IT Methodology Overview & Context

Should NASA Embrace Agile Processes?

Agile So)ware Development

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

Agile and PRINCE2 And how they integrate. enterprise.bcs.org

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market

Agile development. Pedro Cabalar. Departamento de Computación Facultad de Informá;ca University of Corunna, SPAIN

Agile software development and its' suitability to distributed project

Agile with XP and Scrum

Information Management for National Guard Agribusiness Development Teams: An Agile Development Case Study

Transcription:

Software Process Models CS314 SUDIPTO GHOSH What is a process model? Software process models are general approaches for organizing a project into activities. Help the project manager and his or her team to decide: What work should be done; In what sequence to perform the work. The models should be seen as aids to thinking, not rigid prescriptions of the way to do things. Each project ends up with its own unique plan. 2 1

Opportunistic approaches Also called build-and-fix Without specifications or any attempt at design Build and rework as many times as necessary 3 Problems with opportunistic approaches is what occurs when an organization does not follow good engineering practices. It does not acknowledge the importance of working out the requirements and the design before implementing a system. The design of software deteriorates faster if it is not well designed. Since there are no plans, there is nothing to aim towards. There is no explicit recognition of the need for systematic testing and other forms of quality assurance. The above problems make the cost of developing and maintaining software very high. 4 2

Waterfall model The classic way of looking at software engineering that accounts for the importance of requirements, design and quality assurance. The model suggests that software engineers should work in a series of stages. Before completing each stage, they should perform quality assurance (verification and validation). The waterfall model also recognizes, to a limited extent, that you sometimes have to step back to earlier stages. 5 Limitations of the waterfall model The model implies that you should attempt to complete a given stage before moving on to the next stage Does not account for the fact that requirements constantly change. It also means that customers can not use anything until the entire system is complete. The model makes no allowances for prototyping. It implies that you can get the requirements right by simply writing them down and reviewing them. The model implies that once the product is finished, everything else is maintenance. 6 3

Phased-release model It introduces the notion of incremental development. After requirements gathering and planning, the project should be broken into separate subprojects, or phases. Each phase can be released to customers when ready. Parts of the system will be available earlier than when using a strict waterfall approach. However, it continues to suggest that all requirements be finalized at the start of development. 7 Rapid prototyping Rapid prototype = Working model that is functionally equivalent to part of the product Specs will be correct if the client is satisfied with prototype Lessons what-not-to-do are learned during the assembling of the prototype. Speed is of essence Prototype is thrown away Rapid Prototype Verify Specification Phase Verify Design Phase Verify Changed Requirements Verify Implementation Phase Test Integration Phase Test Operations mode Retirement 8 4

Spiral model It explicitly embraces prototyping and an iterative approach to software development. Start by developing a small prototype. Followed by a mini-waterfall process, primarily to gather requirements. Then, the first prototype is reviewed. In subsequent loops, the project team performs further requirements, design, implementation and review. The first thing to do before embarking on each new loop is risk analysis. Maintenance is simply a type of on-going development. 9 Concurrent engineering It explicitly accounts for the divide and conquer principle. Each team works on its own component, typically following a spiralor evolutionary approach. There has to be some initial planning, and periodic integration. 10 5

Unified process Focus of this book Sample UP Disciplines Business Modeling Requirements Design Implementation Test Deployment Configuration & Change Management Project Management Environment A four-week iteration (for example). A mini-project that includes work in most disciplines, ending in a stable executable. Iterations Note that although an iteration includes work in most disciplines, the relative effort and emphasis change over time. This example is suggestive, not literal. Source: Larman s textbook on Applying UML and Patterns 11 The agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Source: http://agilemanifesto.org/principles.html 12 6

The agile manifesto (contd) Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 13 Agile processes Minimize risk by focusing on small increments of work. Typical cycle time: 1 week 1 month. Priorities re-evaluated after each cycle. Aim is for flexibility agility. Example agile processes: Scrum (We will watch videos on Scrum next time) Extreme Programming COPYRIGHT JAMES M. BIEMAN 2004-2016 1-14 7

Extreme Programming (XP) Incremental iterative development aimed for small improvements in each cycle. Continuous unit and regression testing. Pair programming. On-site customer as part of the development team. Refactoring. Simplicity don t do more than necessary. COPYRIGHT JAMES M. BIEMAN 2004-2016 1-15 Lots of Interest in XP, but Detailed specifications and designs are not written up: UML diagrams are done on the white board and not saved as documentation. Code is the only documentation. A customer representative is part of the project team. Programmers work in pairs. Design activity takes place on the fly. Start with the simplest solution; add complexity only when required due to test failures. May not be suitable for large projects. COPYRIGHT JAMES M. BIEMAN 2004-2016 1-16 8

Software engineering teams Software engineering is a human process. Choosing appropriate people for a team, and assigning roles and responsibilities to the team members, is therefore an important project management skill Software engineering teams can be organized in many different ways 17 Team types Egoless team: In such a team everybody is equal, and the team works together to achieve a common goal. Decisions are made by consensus. Most suited to difficult projects with many technical challenges. Chief programmer team: Midway between egoless and hierarchical. The chief programmer leads and guides the project. He or she consults with, and relies on, individual specialists. Hierarchical manager-subordinate structure: Each individual reports to a manager and is responsible for performing the tasks delegated by that manager. Suitable for large projects with a strict schedule where everybody is well-trained and has a welldefined role. However, since everybody is only responsible for their own work, problems may go unnoticed. 18 9

Capability Maturity Model Integrated (CMMi) Source: Wikipedia: https://en.wikipedia.org/wiki/capability_maturity_model_integration 19 10