Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Software Processes.
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
Agile Architecture Prabhu Venkatesan for COMP-684.
Agile development By Sam Chamberlain. First a bit of history..
Anyone interested in this approach ? Over the past couple of years, I have developed PiVoT software to support the Agile development process. It emphasises.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
AGILE SOFTWARE DEVELOPMENT AYSE GUL YAMAN. Outline Traditional approach Agile Software Development Agile Values Agile Principles Limitations of Agile.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Agile Methods.
COMP 350: Object Oriented Analysis and Design Lecture 2
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
An Agile View of Process
Software SYSTEMS DEVELOPMENT
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.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
Chapter 4 Agile Development
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Project Workflow. How do you do it? -Discussion-
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
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.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Project Workflow.
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering Process
Agile Software Development
Software Processes.
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Software Processes.
Agile software development
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012

Announcements  (tentative) Course web page:  SoftwareDesignAndDevelopment SoftwareDesignAndDevelopment  Project teams should be formed by next week.  Last time, course motivation. software crisis, software development tasks.

= = = =Template follows= = = =  Short title (up to 40 characters):  Long title:  Contact person and their contact information:  Project description (paragraph):  Project deliverables:  Expected impact of the project:  Required skills of the team engaging in the project:  URLs to follow for additional information:  Type of project (web site, video, audio, computer security, data structure, game, database,...):

Discussion: Your Programming/System Development Experience  What is the biggest project you’ve been a part of?  How many lines of code was it (or other complexity measure) ?  Did you sit and think and draw a few diagrams before you started to code?  If it was a team project, how was your team experience?

Do We Need a Software Process Model?  Designing simple software (such as homework assignments) has two steps  1 Analysis - we think!  2 Design - we code!  However, in this class we consider software which is more complex  In terms of size of development team, having actual customers, and lines of code.

The Two-Step Methodology Has Benefits  All steps are creative  Programmers are happy doing them, unlike beaurocratic activities  Customers are happy to pay programmers to do this

But It Doesn’t Scale  Bigger development team means task needs to split up, in a way that they can be easily composed to form the resulting system  How do we ensure we know what the customer meant when they asked for feature X? How do we ensure we give them only what they pay for?  What about cross-cutting concerns, such as security, accountability, performance, upgradeablily etc?

What is a Software Process Model?  It determines the order of the stages involved in software development and evolution  It provides the answer to the following two questions?  What shall we do next?  How long shall we continue to do it?  First software process model: waterfall model

Software Process Models  Waterfall Model  Spiral Model  Agile Software Development Model

Waterfall Model

Additional Steps Are Necessary  System Requirements  Software Requirements  Analysis  Software Architecture  Design (Coding)  Testing  Maintenance

Good and Bad in the Waterfall Model?  The Good  Simple!!!  Plenty of documentation, which is good (allows for management of project)  In use since the 50s, and still in use for very large custom, built from scratch software projects.  The Bad  Testing is towards the end of the model, and it may expose fundamental problems, requiring rework  Customer is not involved

Questions  How can we do better? What model do you propose?

Evolutionary development  Exploratory development  Objective is to work with customers and to Evolutionary development evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer.  Throw-away prototyping  Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.

Evolutionary Development

Problems with Evolutionary development  Problems  Lack of process visibility;  Systems are often poorly structured;  Special skills (e.g., in languages for rapid prototyping) may be required.  Applicability  For small or medium-size interactive systems;  For parts of large systems (e.g., the user interface);  For short-lifetime systems.

The Spiral Model

The Spiral Model is Flexible  A series of iterations where  A system is prototyped  Risk is considered  Various documents are produced  At the end of each iteration you consider what you’ve accomplished and what is left to be done.

Agile Software Development Models  Some similarities to the spiral model  Trades-off long-term planning for quick adaptability  Proven to work on smaller software projects accomplished by small teams (<10 collocated developers)

Manifesto for Agile Software Development 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 in the items on the right, we value the items on the left more. 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 in the items on the right, we value the items on the left more.

Twelve principles underlie the Agile Manifesto:  1 Customer satisfaction by rapid, continuous delivery of useful software  2 Working software is delivered frequently (weeks rather than months)  3 Working software is the principal measure of progress  4 Even late changes in requirements are welcomed  5 Close, daily cooperation between business people and developers  6 Face-to-face conversation is the best form of communication (co- location)  7 Projects are built around motivated individuals, who should be trusted  8 Continuous attention to technical excellence and good design  9 Simplicity  10 Self-organizing teams  11 Regular adaptation to changing circumstances

Individual Presentations  Prepare quick (5-10 minute) presentations for next week on a particular agile method  SCRUM  Lean Software Development  Extreme Programming (XP)  Open Unified Process  Getting Real  etc.  Use google (or you other favorite way to obtain information) to teach us and convince us why a particular model is good.  Make slides, but not too many (generally, < 5)  Aim for clarity!!!! Don’t put up anything in a slide that you do not understand.