Software Development Overview CPSC 315 – Programming Studio Spring 2013.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Software Processes.
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Modified by Randy K. Smith
Systems Analysis and Design in a Changing World, 6th Edition
CSE 470 : Software Engineering The Software Process.
CHAPTER TWO Object Oriented System Analysis and Design 1.
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.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Chapter 2 – Software Processes
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
AGILE Development Group KEVIN STEVEN EKAPUTRANTO RENDY WINARTA STEFANY TRIFOSA GLADYS NATALIA.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Method comparison: for Situational Method Engineering Mohssen Ali.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering MCS-2 Lecture # 6
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Systems Development Life Cycle
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Engineering cosc 4359 Spring 2017.
Software Development Overview
Software Development methodologies
Software Processes (a)
Software Processes.
Software Development Process
Computer Science Life Cycle Models.
Chapter 2 Software Processes
Lecture 2 Revision of Models of a Software Process
An Overview of Software Processes
Software Engineering Fundamentals
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Software Development methodologies
System Development Methods
Software Development Process
Software Development Overview
Presentation transcript:

Software Development Overview CPSC 315 – Programming Studio Spring 2013

Variety of Software Development Processes Traditionally covered in Software Engineering –This is just a very brief overview Many are not “clear cut” ideas –Often modified to incorporate ideas from other models; seldom used in “pure” form

Waterfall Model of Development The “traditional” software engineering approach Series of stages, each a process that converts one product to another Development “flows” from the top (early processes) through to the bottom

Waterfall Model Customer’s Needs Requirement Specification Executable Modules Design Specification Integrated Software Delivered Product New Requirements Requirement Engineering Design Programming Integration Delivery Maintenance

Waterfall Model Gets more complex –Feedback from later stages to earlier ones –Verification and Validation testing in each stage –Or, a separate testing stage after integration –Can extend to incorporate iterative approaches

Waterfall Model Good Points –Provides clear structured process, especially useful on large projects –Clear requirements, design at beginning can make things much easier and better later on –Tend to have good documentation throughout Bad Points –Can be tough to know requirements ahead of time –Difficult to evaluate how later parts of system will really work in practice –Requires more discipline by programmers to implement

Iterative Software Development Rather than produce a single product “all at once”, provide incremental improvements –Deliver pieces of the product at various times Time is planned to iterate on the design and implementation of the system Includes user analysis, feedback to improve

Iterative Approach Collect Requirements Test and Evaluate Plan and Design Implement Initial Idea Deliverable

Prototyping Fits into iterative approach Deliver early prototypes of the software –Not fully functional, or with poor functionality Prototypes should allow one to get user feedback –Allows revision of requirements, design Possible problems: –Can hide difficulties underlying the prototype –Can set expectations too high –Provides early design anchoring (less flexible)

Spiral Model Combines iterative and prototype approaches Starting from center, (basic requirements), a prototype is created in first iteration Each successive iterative cycle produces a newer, better prototype (spiraling out) When good prototype is found, freeze system

Cleanroom Development Couple iterative process with very detailed evaluation Every iteration gets tested on a very large test data set –Provides “hard” statistical data on how reliable the method is Measure whether iteration has introduced or reduced defects –Introducing defects indicates problem – go back to previous stage and start over

Formal Processes Some of these techniques have been collected into more formal descriptions –e.g. the Rational Unified Process – incorporates much of this, plus more; suite of software products to support Standards developed for specifying everything through many stages, such as requirements, processes, assessments

Rational Unified Process Image from:

Agile Software Methods Newer trend in software development Meant to contrast vs. “heavyweight” methods of software development –Heavyweight – Highly regimented methods, typified by the waterfall model –Agile designed to respond/change quickly, but involves much less long-term planning Many methods fall under the “Agile” heading –Extreme programming –Scrum –Plus, it overlaps with some ideas of iterative development

Agile Methods Tend to involve lots of collaboration Seem to work best with smaller, co-located teams Tend to be good for projects where requirements will shift during development Will be the focus of the next lecture

Other Processes Lots of other variations in development processes, often with different names: Wikipedia list: –Waterfall, Prototype Model, Incremental, Iterative, V-Model, Spiral, Scrum, Cleanroom, RAD, DSDM, RUP, XP, Agile, Lean, Dual Vee Model, TDD, FDD Many of these aren’t all that different from each other…