Software Engineering Process

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Iterative, Evolutionary, and Agile You should use iterative developmen only on projects that you want to succeed. - Martin Fowler.
National Association for Regulatory Administration September 13, 2011 IT’s NOT Like Building a House Mark Parker (800)
CS487 Software Engineering Omar Aldawud
Software Process Models
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Software Engineering Incorporating Interface Design Into Software Engineering.
Dr. Kivanc DincerCS319 Week 1 - Sept.12,20051 Chapter 4 INCEPTION IS NOT THE REQUIREMENTS PHASE Objectives Define the inception step. Motivate the following.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Chapter 2 The process Process, Methods, and Tools
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.
Software Engineering MCS-2 Lecture # 6
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
THE UNIFIED PROCESS UP Programming. What is the unified process  The Unified Process is a programming methodology that emphasizes the right blend of.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
CS 5150 Software Engineering Lecture 3 Software Processes 2.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Software Engineering Process Models Models for Guiding the Development of Software.
TPM and Manufacturing Agility
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
HO CHI MINH CITY NATIONAL UNIVERSITY HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY SYSTEM ANALYSIS AND DESIGN LECTURER: Nguyen Thanh Tung.
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Peter Varhol Solutions Evangelist
Appendix B Agile Methodologies
Software Engineering Process
SOFTWARE ENGINEERING - SOFTWARE LIFECYCLE MODELS
System Testing Antares Rocket Test Launch ( HQ) System Testing.
The Waterfall Methodology
Agile Familiarisation
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
Software Requirements
Iterative and Agile Development
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Software Requirements
Software Engineering Process
Chapter :Software Process Model
Software Process Models
Software Process Models
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
System Development Life Cycle
Software Processes Process should be
Software Engineering Process
Planning and Estimation.
Software Requirements
Appendix B Agile Methodologies
Software Requirements
Software Requirements
Planning and Estimation.
Presentation transcript:

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

SWEBOK Knowledge Areas 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 classic way: Waterfall (sequential) model But often a bad way… Requirements Design Implementation Verification Maintenance 60s and 70s-era advice http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

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

What could go wrong? Problem! Requirements Design Implementation Verification 6 months 6 months I don’t like it… Customer 3 months 60s and 70s-era advice 6 months Release! http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

Waterfall is often 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

What is software engineering more like? http://flic.kr/p/9xmccb Mass manufacturing? web app What is software engineering more like? New product development? http://flic.kr/p/edV9JR web app Each machine that comes off the assembly line is like a piece of software. This is obviously a false analogy.

Waterfall is a “defined” process control model (good for mass manufacturing) http://flic.kr/p/9xmccb Software devel. needs an “empirical” model (good for new product development) Each machine that comes off the assembly line is like a piece of software. This is obviously a false analogy. 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.

Requirements stabilize 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

Summary Software Engineering Process Waterfall Defined versus Empirical Iterative and Incremental http://flic.kr/p/aCLor3