Software Engineering Process

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

SDLC – Beyond the Waterfall
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Agile Software Development Matt Rice November 27, 2006.
Agile Programing Methods Drew Arrigoni. The Agile Manifesto ● Individual Interactions over Processes and Tools ● Working Software over Comprehensive Documentation.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
Current Trends in Systems Develpment
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
CS3100 Software Project Management Agile Approaches.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Dr. Rob Hasker. Should every project use Scrum?  When might Scrum not be an appropriate model?  What are some of its limitations? Hard to get the big.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Think Scrum, act Scrum Scrum Practitioner like a boss Thibault Clavier.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Agile/XP Introduction
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Methods SENG 301.
Software Development.
Agile Methodology and Scrum
AGILE SCRUM METHODOLOGY
Shifting to Agile: Are University Libraries Ready?
Flight Software Conference 2016
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
System Testing Antares Rocket Test Launch ( HQ) System Testing.
Agile Software Development
Software Requirements
Iterative and Agile Development
Software Requirements
Software Engineering Process
Agile Software Development Brian Moseley.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
CEN 4010 Intro to Software Engineering Professor Alex Roque
Tim Hirner - Flagship Speakers January 23, 2014
Agile Software Development
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Chapt 2 Iterative Evolutionary Agile.
Practical Software Engineering
Software Engineering Process
Software Requirements
Appendix B Agile Methodologies
Software Requirements
Software Engineering Process
System Development Methods
CSCI 360: Software Architecture & Design
Presentation transcript:

Software Engineering Process http://flic.kr/p/7u4Xr2 Software Engineering Process

4 SWEBOK KAs covered so far Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Today’s topic

Engineering software is a big job http://flic.kr/p/7GereG http://flic.kr/p/5w9rXP Variety of tasks: Requirements Verification (testing) Design Maintenance Implementation

Practical issue: What order should tasks be done in? That is, what process to use?

The old way: Waterfall (sequential) model Requirements Design Implementation Verification Maintenance 60s and 70s-era advice http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

Imagine this scenario What could go wrong? Requirements Design Implementation Verification 6 months 6 months 3 months What could go wrong? 60s and 70s-era advice 6 months Release! http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

Imagine this scenario Requirements Design Implementation Verification 6 months 6 months I don’t like it… 3 months 60s and 70s-era advice 6 months Release! http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

Using Waterfall turns out to be a poor practice High failure rates Low productivity High defect rates 45% of features in requirements never used Early schedule and estimates off by up to 400%

Why Waterfall doesn’t work False assumption: Specifications … … are predictable and stable … can be correctly defined at the start … have low change rates Actual stats: 25% of requirements changed 35% to 50% changed in large projects

Waterfall is a “defined” process control model (think mass manufacturing) http://flic.kr/p/9xmccb Software devel. needs an “empirical” model (think new product development) http://flic.kr/p/edV9JR

Basis of empirical process model… Feedback Adaptation

Iterative Development Process Planning Requirements Analysis Design Implementation Deployment Testing Evaluation Initial Planning

Iterative Development Process Planning Requirements Analysis Design Implementation Deployment Testing Evaluation Initial Planning Where are feedback & adaptation?

Iterative Development Process Planning Requirements Analysis Design Implementation Deployment Testing Evaluation Initial Planning Feedback Adaptation

Iterative and incremental development also called iterative and evolutionary Larman Figure 2.1

How long should iterations be? Short is good 2 to 6 weeks 1 is too short to get meaningful feedback Long iterations subvert the core motivation http://flic.kr/p/368zW7

Iterative and incremental development addresses the “yes…but” problem Yes, that’s what I asked for, but now that I try it, what I really need is something slightly different.

System converges over time Unstable requirements Requirements more stable Larman Figure 2.2

More benefits of iterative development Fewer defects Greater productivity Early mitigation of risk Early visible progress Meet real needs of stakeholders No “analysis paralysis” Iterative process improvement http://flic.kr/p/7fD777

Iterative and incremental development is a broad approach But how to operationalize? To help with that, there are more specific methods and practices In particular, there are agile methods

What is an agile method? Where does it come from? values, principles, more specific more general values principles practices Where does it come from? Agile values, principles Agile method values, principles, practices beget

Individuals and interactions over processes and tools Agile Values From the Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Individuals and interactions over processes and tools Can you think of a principle or practice that might be based on the agile values? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Examples of agile methods and their practices Scrum Common project workroom Self-organizing teams Daily scrum … Extreme programming (XP) Pair programming Test-driven development Planning game http://flic.kr/p/8Mbo3N

A word about agile modeling (quoting Larman) Experienced analysts and modelers know the secret of modeling: Thus, we favor hand-drawn diagrams over typeset ones The purpose of modeling (sketching UML, …) is primarily to understand, not to document. http://flic.kr/p/8HDojD

You know you’re doing agile wrong when you… http://flic.kr/p/6FJZDY You know you’re doing agile wrong when you… Define most requirements before starting design or implementation Spend days/weeks modeling before programming Believe that iterations should be 3 months Think you need to create many formal documents Try to plan project in detail from start to finish