1 / 68

CS121: Software Development Fall 2011

CS121: Software Development Fall 2011. mae. Facetious View of SD. Today . Importance of software development Software methodologies Overview of course. Panic: Due in next 7 Days . GLEC choice. We need software to …. Customer. Developer. Here it is …. Customer. Developer.

marlow
Download Presentation

CS121: Software Development Fall 2011

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. CS121: Software DevelopmentFall 2011 mae

  2. Facetious View of SD

  3. Today • Importance of software development • Software methodologies • Overview of course

  4. Panic: Due in next 7 Days • GLEC choice

  5. We need software to …. Customer Developer Here it is … Customer Developer “Software Development” …later in themillennium…

  6. Key Processes • Requirements • Design • Implementation • Testing

  7. We need software to …. Customer Developer Here it is … Customer Developer “Software Development” …later in themillennium… It broke! Customer Developer

  8. Key Processes • Requirement • Design • Implementation • Testing • Maintenance – every system I have worked on spent most of its software time in maintenance and modification

  9. Key Processes • Requirements • Design • Implementation (focus of CS70) • Testing • Maintenance

  10. Why study software development? • Society has become increasingly dependent on software systems. • How many software systems do you interact with every day?

  11. Why study software development? • Society has become increasingly dependent on software systems. • Failures in software systems can be costly and dangerous.

  12. Expedia Maps: I need to go to the airport (1999) 10 mi.

  13. Output reported in The Risks Digest     Oct. 1, 1999 Excerpts from Expedia Maps directions: From: Laurel, Maryland To: Baltimore-Washington International Airport, Maryland Driving Distance: 5865.1 miles Time: 9 day(s) 3 hour(s) 22 minute(s) Time (hour:minute) Instruction 0:00 Depart Laurel, Maryland 1:01 Entering Delaware 1:17 Entering New Jersey 3:24 Entering New York 3:51 Entering Connecticut 5:51 Entering Massachusetts 7:29 Entering New Hampshire 7:44 Entering Maine 12:20 Entering New Brunswick 20:20 Take the North Sydney-Argentia Ferry 34:32 Entering Newfoundland 36:35 Turn left onto Local road(s) (4543.1 mi) 219:22 Arrive Baltimore-Washington International Airport, Maryland

  14. Why study software development? • Society has become increasingly dependent on software systems. • Failures in software systems can be costly and dangerous

  15. Therac-25 • Linear accelerators create high- energy beams that can destroy tumors with minimal impact on the surrounding healthy tissue • Therac 25 was the first linear accelerator with dosage controlled solely by software (as opposed to hardware)

  16. 1983: Pre-release Safety Analysis • Programming errors have been reduced by extensive testing on a hardware simulator and under field conditions on teletherapy units. Any residual software errors are not included in the analysis.(testing does not guarantee correctness....) • Program software does not degrade due to wear, fatigue, or reproduction process. • Computer execution errors are caused by faulty hardware components and by "soft" (random) errors induced by alpha particles and electromagnetic noise.

  17. and then … • 1983: First Therac 25 installed • 1985-1987: Six massive-overdose accidents due to “software error” are reported. Overdoses caused severe burns and death. • 1987: Recalled for extensive design changes, including hardware to safeguard against software errors in dosage.

  18. Why study software development? • Society has become increasingly dependent on software systems. • Failures in software systems can be costly and dangerous • Software design/development is HARD!

  19. FAA • 1981: FAA announced plans to modernize air-traffic control. • 1985: IBM awarded contract. System estimate to have 1.5 million lines of code, cost$2.5 billion, and be deployed by 1991. • 1987: Revised cost $4.3 billion, deployment slipped to 1995. • 1994: FAA decided that the project would never be completed, and cancelled it. Net loss$1.5 billion

  20. Stats on software projects J. Johnson, “Creating Chaos,” American Programmer, July 1995 • 31.1% are canceled before they are finished • 52.7% overrun their cost estimates by at least 189% • 33.3% overrun their time estimates by 100%-200% • 94% of all projects do a “restart”

  21. Is there hope? Software engineering: tools, techniques, and principles to promote software quality software engineering is an evolving field – why?

  22. Historical Perspective 1950s this is how to do it Code and fix

  23. Historical Perspective 1950s

  24. Historical Perspective 1950s 1970s that was soooooo wrong, but now we know, this is how to do it waterfall

  25. Essential Processes of Software Development • Requirements • Design • Implementation • Testing • Maintenance – many times totally different group

  26. Software Life Cycle Model How to organize the key processes of software development

  27. Waterfall Model – 1950’s .. 1970’s with feedback Requirements Design Implementation Test

  28. What is wrong with waterfall? • Initial requirements are speculative

  29. Requirements Frederick P. Brooks Jr. in “No Silver Bullet”: “The hardest single part of building a software system is deciding precisely what to build.”

  30. Requirements Frederick P. Brooks Jr. in “No Silver Bullet”: “No other part of of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.”

  31. 1992 Iowa State study of safety-critical errors in software systems for Voyager and Galileo: The majority of safety-critical software errors were not caused in the design or implementation process. They were due to errors in the requirements specification. The systems as specified were flawed.

  32. Requirements • Customer’s don’t usually know what they want/need • Even if they do know what they want/need, they are likely to change their minds • Customers cannot clearly specify what they need even if they know....

  33. Growth in requirements % increase in requirements during project life Source: Applied Software Measurement, Capers Jones, 1997. Based on 6,700 systems.

  34. What is wrong waterfall? • Initial requirements are speculative • Initial designs are speculative • Final system satisfies no one...

  35. Design Design Methods: Seeds of Human Futures (Jones, 1970) “The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct.”

  36. What is wrong with waterfall? • Initial requirements are speculative • Initial designs are speculative • Speculative decisions compound

  37. Complexity vs. Productivity SLOC/Person Month Source: Measures For Excellence, Putnam, 1992. Based on 1,600 systems.

  38. What is wrong with waterfall? • Initial requirements are speculative • Initial designs are speculative • Speculative decisions compound • As a result we build the wrong thing that doesn’t work or doesn’t work like envisioned by the customer

  39. Historical Perspective 1950s 1970s 1990s Don’t bite off more than you can chew.

  40. Iterative Models In each iteration: • Identify the objectives of the iteration • Design a solution to achieve the objectives • Implement the solution • Test the implementation Each iteration is a mini-waterfall process.

  41. Boehm Spiral Model • Iterations: .5 – 2 years • Risk analysis • Prototype-based Boehm (1988) was first to clearly articulate the advantages of iterative development.

  42. RUP Life Cycle Phases Processes Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows … Configuration Mgmt Management Environment Iterations Preliminary Iteration(s) Iter.#1 Iter.#2 Iter.#n Iter.#n+1 Iter.#n+2 Iter.#m Iter.#m+1 RUP – Rational Unified Process Iterations within phases

  43. Agile principles • Working software, delivered regularly, is the primary measure of progress • High standards of excellence; test regularly and re-factor/redesign when necessary • Customer involvement is critical • Simplicity; just-in-time design/development • Adaptability; embrace change • Small, cross-functional, self-organizing teams of professionals

  44. Scrum Model A small group is responsible for picking up the ball and moving it toward the goal.

  45. Extreme Programming

  46. Do agile methods work? 16% 29% 18% 31% 53% 53% 2004 1994 Standish CHAOS survey

  47. Software projects come in all shapes and size some are easy, many hard

  48. Harder • Large • Open-ended, poorly understood • Cutting edge technology • Inexperienced personnel • Stringent requirements Easier • Small • Well defined • Ready-to-use tools, packages • Experienced personnel • Flexible requirements

  49. Objectives of CS121 • Understand the problems • Understand the various solutions to the problems • Practice applying the solutions to a particular problem • Prepare for Clinic and jobs

  50. Project You will work in teams to design and develop an educational computer game for teachers at various middle schools (6th .. 8th grade)

More Related