1 / 55

SE 470 Software Development Processes

SE 470 Software Development Processes. James Nowotarski 07 April 2003. Today’s Objectives. Understand leading methodology philosophies, movements, products, and gurus of the past, present, and future Understand distinguishing characteristics of structured methods and information engineering

Antony
Download Presentation

SE 470 Software Development Processes

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. SE 470Software Development Processes James Nowotarski 07 April 2003

  2. Today’s Objectives • Understand leading methodology philosophies, movements, products, and gurus of the past, present, and future • Understand distinguishing characteristics of structured methods and information engineering • Compare and contrast waterfall and iterative life cycle models

  3. Today’s agenda Topic Duration • Week 1 Recap 15 minutes • Marketplace Snapshot 30 minutes • Summary of market developments 15 minutes *** Break 15 minutes • Frameworks, Philosophies, Gurus 75 minutes • Quiz #1 30 minutes

  4. Course Map Overview . Introduction . History Content . Rational Unified Process . Extreme Programming Implementation . Tools, Training, Roles . CMM, Metrics . Selection & Evaluation Briefings (Term Papers) 1 2 3 4 5 6 7 8 9 10 11 Week Memorial Day Assignments Quizzes

  5. Today’s agenda Topic Duration • Week 1 Recap 15 minutes • Marketplace Snapshot 30 minutes • Summary of market developments 15 minutes *** Break 15 minutes • Frameworks, Philosophies, Gurus 75 minutes • Quiz #1 30 minutes

  6. Core Concepts In SE 470, we will use the terms method and Methodology interchangeably • method/Methodology • A systematic way of doing something • Typically consists of these key content pieces: • Processes (what) • Deliverables (what) • Techniques (how) • Roles (who) • Estimating guidelines (how long)

  7. Core Concepts • Broad categories of methods • Structured methods • Information engineering • Object-oriented methods • Lightweight/Agile methods

  8. Core Concepts • Life cycle model • The iteration and control strategy adopted by a systems development organization • Examples • Waterfall • Iterative/Evolutionary/Spiral • Incremental

  9. Core Concepts The waterfall model is the granddaddy of life cycle models

  10. Version 1 A D I Version 2 A D I Version 3 A D I Core Concepts Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases

  11. Version 1 A D I Version 2 A D I Version 3 A D I Core Concepts Incremental life cycle models advocate delivering the end product piecemeal

  12. Core Concepts • Routes • A “route” is a preconfigured specialization of a methodology, depending on a variety of factors: • custom vs. packaged solution • degree of project team distribution • project team size • technology platform • application type • Examples • Custom Client/Server: Large Project • Custom Client/Server: Small Project • Rapid Application Development (RAD) • Packaged Systems Development • Data Warehouse • SAP implementation

  13. Traditional User Design Tech Design Req’ts Analysis Construct RAD User Design Req’ts Construct Core Concepts RAD vs. Traditional

  14. Core Concepts Modeling/Diagramming Technique

  15. Core Concepts Normalization (Process Technique) 1NF = No repeating groups 2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key) 3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)

  16. Core Concepts Capability Maturity Model (CMM) • A framework for: • Judging the maturity of an organization’s software processes • Identifying key practices required to increase the maturity of these practices • Levels of maturity Optimizing Level Managed Level Defined Level Repeatable Level Initial Level

  17. Common Drivers Behind Methodology Adoption • Project failure leads to realization that “we need a more formal process” • Codify best practices, so as to increase predictability and reliability of software development process • especially as IT organization grows • Continued pressure on time to market and quality (web services) • Certification (e.g., Capability Maturity Model) • Desire to stay current and/or sustain/develop competitive edge • Need to support distributed development teams (multi-site and/or multi-organization)

  18. Today’s agenda Topic Duration • Week 1 Recap 15 minutes • Marketplace Snapshot 30 minutes • Summary of market developments 15 minutes *** Break 15 minutes • Frameworks, Philosophies, Gurus 75 minutes • Quiz #1 30 minutes

  19. What does a methodology product consist of? • Content • building blocks (processes, deliverables, etc.) • pre-defined routes • Delivery vehicle (e.g., browser) • Tools for authoring and publishing content • Tools for applying the methodology to a specific project • project planning and estimating tools • process management tools • project management tools • Deliverable templates tightly coupled with a development and/or execution platform • Training and support • Maintenance

  20. Methodology Marketplace No single vendor dominates this market • Rational Software is collecting a fair amount of mindshare • 3 key categories to consider: • methodologies developed and delivered by consultants • methodologies from software tool vendors • methodologies from industry consortia or other groups • Tremendous variability among the products • Content • Delivery vehicles • Integration with development tools

  21. Methodologies Developed and Delivered by Consultants Consulting firms methodologies have greatest depth and breadth of content, but not all sell their methodology as a standalone product

  22. Methodologies from Software Development Tool Vendors Customers are increasingly demanding (and receiving) process guidance from their tool vendors

  23. Methodologies from Industry Consortia or Gurus There is a growing interest among large corporate shops in so-called “agile” methods from industry gurus

  24. Key Trends: Content • Component-based development • Reuse • Agile processes • Development of mobile applications • Development with/for web services • Distributed development teams, especially offshore

  25. How Does a Methodology Stay Fresh? • Experience • New technologies that cause changes in development processes • Consortia/Gurus • Academics “ . . . those looking for true best practices and leading edge methodologies should turn to the consulting industry rather than tool or software vendors” -- Giga Information Group

  26. Today’s agenda Topic Duration • Week 1 Recap 15 minutes • Marketplace Snapshot 30 minutes • Summary of market developments 15 minutes *** Break 15 minutes • Frameworks, Philosophies, Gurus 75 minutes • Quiz #1 30 minutes

  27. Factoid • Fastest-growing jobs: Software application engineers (7.2% a year through 2010), Computer support specialists (7.0%), Software systems engineers (6.6%), Systems administrators (6.2%), Personal and home care aides (5.0%), Security guards (3.1%), Customer service reps (2.8%) • Source: Business 2.0, March 2003

  28. Today’s agenda Topic Duration • Week 1 Recap 15 minutes • Marketplace Snapshot 30 minutes • Summary of market developments 15 minutes *** Break 15 minutes • Frameworks, Philosophies, Gurus 75 minutes • Quiz #1 30 minutes

  29. Summary Timeline 1960 1970 1990 2000 1980 Mainframe Tech era Decentralized Distributed Internet Stage wise Life cycle model Waterfall Iterative/Incremental Structured Analysis/Design Meth approach Information Engineering Object-Oriented A/D Agile Content Updates • OLTP • UI design • Bus process reengineering • Data/process distribution • CASE tools • Data mgmt • JAD • Prototyping • Multimedia content mgmt • Network design/mgmt • Quality • Security

  30. Waterfall model System requirements Software requirements Analysis Program design Coding Source: Royce, W.  "Managing the Development of Large Software Systems." Testing Operations

  31. Royce’s 5 Improvements to the Basic Process

  32. Program design comes first System requirements Software requirements Preliminary program design Analysis Program design Coding Testing Operations

  33. Or, Architecture comes first System requirements Software requirements Architecture design/build Analysis Program design Coding Testing Operations

  34. Do it twice System requirements Software requirements Architecture design/build Analysis Preliminary design Program design Analysis Program design Coding Coding Testing Testing Usage Operations

  35. Why do it twice? “Without this first pass, the project manager is at the mercy of human judgment. With this first-pass ‘simulation,’ he can at least perform experimental tests of some key hypotheses and scope down what remains for human judgment, which in the case of computer program design . . . is invariably and seriously optimistic”

  36. Problems with the Waterfall Process Many of the problems attributed to the Waterfall Process are really problems with the way it was applied, not as it was intended • Problems • Protracted integration and late design breakage • Focus on fully elaborated documents and review meetings for early requirements and design phases • Late risk resolution • Adversarial stakeholder relationships • Requirements-driven functional decomposition

  37. Protracted integration and late breakage Conventional application of the waterfall model typically results in late integration and performance showstoppers Late design breakage 100% Integration begins Development progress (% coded) Original target date Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998).

  38. Spiral Model Determine objectives, alternatives, constraints Evaluate alternatives, identify and resolve risks Plan next phases Develop verify next level product

  39. Spiral Model Design Planning and analysis Assessment Implementation

  40. Version 1 A D I Version 2 A D I Version 3 A D I Iterative Development Today’s version of the spiral model is iterative development with incremental delivery

  41. Version 1 A D I Version 2 A D I Version 3 A D I Incremental Delivery Today’s version of the spiral model is iterative development with incremental delivery

  42. Small Group Activities • Compare/Contrast Waterfall and Spiral/Iterative/Incremental • How are they different? • How are they similar? • When to use waterfall? • When to use spiral/iterative/incremental?

  43. Summary Timeline 1960 1970 1990 2000 1980 Mainframe Tech era Decentralized Distributed Internet Stage wise Life cycle model Waterfall Iterative/Incremental Structured Analysis/Design Meth approach Information Engineering Object-Oriented A/D Agile Content Updates • OLTP • UI design • Bus process reengineering • Data/process distribution • CASE tools • Data mgmt • JAD • Prototyping • Multimedia content mgmt • Network design/mgmt • Quality • Security

  44. Structured Methods

  45. employee_data salary tax employee_data employee_ data salary tax salary GET_DATA CALC_TAX PRINT_CHECK CALC_SALARY Structure Chart PROCESS_PAYROLL for each employee get_data(:employee_data) calc_salary(employee_data:salary) calc_tax(salary:tax) print_check(employee_data, salary, tax)

  46. Program Graph employee_data PRINT_ PAYCHECK salary CALC_ SALARY taxes employee_ data READ_ DATA CALC_ TAXES salary

  47. Program Graph Big idea: As a prelude to creating a design, represent the basic computational requirement for the system to be designed in more abstract terms, i.e., in terms of data flow employee_data PRINT_ PAYCHECK salary CALC_ SALARY taxes employee_ data READ_ DATA CALC_ TAXES salary

  48. Data Flow Diagram

  49. Entity Relationship Diagram

  50. Information Engineering

More Related