1 / 16

Software Development Overview

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

butlerl
Télécharger la présentation

Software Development Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Development Overview CPSC 315 – Programming Studio Spring 2013

  2. 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

  3. 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

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

  5. 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

  6. 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

  7. 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

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

  9. 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)

  10. 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

  11. 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

  12. 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

  13. Rational Unified Process Image from: http://www.ibm.com/developerworks/library/ws-soa-term2/index.html

  14. 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

  15. 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

  16. 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…

More Related