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 • Compare and contrast waterfall and iterative life cycle models 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 Course Map Week 1 2 3 4 5 6 7 8 9 Content . Rational Unified Process . Extreme Programming Implementation . Tools, Training, Roles . CMM, Metrics . Selection & Evaluation Briefings (Term Papers) Assignments Quizzes Memorial Day Overview . Introduction . History 10 11 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 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: 1. 2. 3. 4. 5. Processes (what) Deliverables (what) Techniques (how) Roles (who) Estimating guidelines (how long) Core Concepts Broad categories of methods • • • • Structured methods Information engineering Object-oriented methods Lightweight/Agile methods Core Concepts Life cycle model • The iteration and control strategy adopted by a systems development organization • Examples - Waterfall - Iterative/Evolutionary/Spiral - Incremental Core Concepts The waterfall model is the granddaddy of life cycle models Core Concepts Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases 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 Version 1 A D I Version 2 A D I Version 3 A D I 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 Core Concepts RAD vs. Traditional Traditional Req’ts Analysis User Design Tech Design Construct RAD Req’ts User Design Construct Core Concepts Modeling/Diagramming Technique 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 (nonkey attribute dependent on another non-key attribute) 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 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) 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 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 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 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 Consultant Methodology Sold as Standalone Product? PricewaterhouseCoopers Summit Ascendant Yes Headstrong gantthead.com Yes Fujitsu Macroscope Yes Accenture Accenture Delivery Methods No AMS No EDS No IBM No Keane No Methodologies from Software Development Tool Vendors Customers are increasingly demanding (and receiving) process guidance from their tool vendors Vendor Methodology Notes Rational Software Rational Unified Process (RUP) • Many vendor and consulting partners Computer Associates CA ProcessContinuum • Focus on large accounts Allen Systems Group (ASG) Visual Process Client/Server Connection CS 10,000 • Easy to use Aonix Select ProcessDirector • Strong coverage of CBD Methodologies from Industry Consortia or Gurus There is a growing interest among large corporate shops in so-called “agile” methods from industry gurus Guru/Consortium Methodology Notes Kent Beck Martin Fowler Extreme Programming (XP) • Many vendor and consulting partners Alistair Cockburn Crystal • Focus on large accounts Jim Highsmith Adaptive software development Peter Coad Feature driven development Dynamic Systems Development Method (DSDM) Consortium DSDM • More RAD than agile • Used in Europe more than U.S. Key Trends: Content • • • • • • Component-based development Reuse Agile processes Development of mobile applications Development with/for web services Distributed development teams, especially offshore 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 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 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 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 Summary Timeline 1960 1970 1990 1980 2000 Mainframe Decentralized Tech era Distributed Internet Stage wise Life cycle model Meth approach Content Updates Waterfall Iterative/Incremental Structured Analysis/Design Information Engineering Object-Oriented A/D Agile • OLTP • Data mgmt • JAD • Prototyping • UI design • Bus process reengineering • Data/process distribution • CASE tools • Multimedia content mgmt • Quality • Network design/mgmt • Security Waterfall model System requirements Software requirements Analysis Program design Coding Source: Royce, W. "Managing the Development of Large Software Systems." Testing Operations Royce’s 5 Improvements to the Basic Process Improvement 1. 2. 3. 4. 5. Relevance today (H, M, L) Program design comes first System requirements Software requirements Preliminary program design Analysis Program design Coding Testing Operations Or, Architecture comes first System requirements Software requirements Architecture design/build Analysis Program design Coding Testing Operations Do it twice System requirements Software requirements Architecture design/build Analysis Preliminary design Analysis Program design Program design Coding Coding Testing Usage Testing Operations 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” 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 Protracted integration and late breakage Conventional application of the waterfall model typically results in late integration and performance showstoppers Late design breakage 100% Development progress (% coded) Integration begins Original target date Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998). Spiral Model Determine objectives, alternatives, constraints Evaluate alternatives, identify and resolve risks Plan next phases Develop verify next level product Spiral Model Planning and analysis Assessment Design Implementation Iterative Development Today’s version of the spiral model is iterative development with incremental delivery 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 Version 1 A D I Version 2 A D I Version 3 A D I 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? Summary Timeline 1960 1970 1990 1980 2000 Mainframe Decentralized Tech era Distributed Internet Stage wise Life cycle model Meth approach Content Updates Waterfall Iterative/Incremental Structured Analysis/Design Information Engineering Object-Oriented A/D Agile • OLTP • Data mgmt • JAD • Prototyping • UI design • Bus process reengineering • Data/process distribution • CASE tools • Multimedia content mgmt • Quality • Network design/mgmt • Security Structured Methods Approach Structured Analysis/Design Key ideas/frameworks Analysis: • Data flow diagrams • Entity-relationship diagrams • State-transition diagrams Design: • Structure charts • Coupling/Cohesion Gurus • • • • • • Key Players/Products • Yourdon, inc. • Softech • IBM Larry Constantine Ed Yourdon Chris Gane/Trish Sarson Tom DeMarco Peter Chen Paul Ward/Steve Mellor 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) employee_data employee_data employee_ data salary salary tax salary GET_DATA CALC_SALARY CALC_TAX tax PRINT_CHECK Program Graph employee_data PRINT_ PAYCHECK salary CALC_ SALARY taxes employee_ data READ_ DATA salary CALC_ TAXES 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 salary CALC_ TAXES Data Flow Diagram 1 Professor s tudent info Maintain students ass ignment info 3 D3 s tudent info Students ass ignment info D2 Maintain assignments Assignments ass ignment info c ompleted ass ignment 5 s tudent info D1 grade info Grades Grade assignment Student grade info 7 grade info Produce grade report grade report Entity Relationship Diagram Employee employee_id employee_name phone_num office_num Computer Model model_num manufacturer_name processor_type memory_amt Ass igned Has to Workstation serial_num purchase_date model_num employee_id is ins talled on Is an instanc e of Desc ribes c ontains Workstation Software package_id serial_num is is install_date ins talled on ass ociated with Software package_id purchase_date package_name package_version_num package_author results in pertains to Incident incident_num employee_id begin_timestamp end_timestamp problem_desc resolution_desc status_code serial_num package_id Information Engineering Approach Information Engineering Key ideas/frameworks • • • • Gurus • Clive Finkelstein • James Martin Key Players/Products • James Martin & Co./IEM • Texas Instruments/IEF • Knowledgeware/IEW Enterprise modeling Repository/Encyclopedia Automated Tools/Generators End user participation Information Engineering Scope PLANNING Enterprise ANALYSIS Business Area/System DESIGN Process/Subsystem CONSTRUCTION Program/Module Object-Oriented Methods Approach OO Analysis/Design Key ideas/frameworks • • • • • Unified Process/UML Use cases Inheritance Object/Class Modeling Reuse Gurus • • • • • Grady Booch Ivar Jacobson James Rumbaugh Sally Shlaer/Steve Mellor Peter Coad Key Players/Products • • • • Rational/RUP Object Management Group IBM Apple Agile Methods Approach Agile Key ideas/frameworks • • • • • Gurus • Kent Beck • Martin Fowler Key Players/Products • Agile Alliance Pair programming Continuous testing Short iterations Heavy user involvement Lightweight method 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 45 minutes Topics for April 14 • Read Kruchten, chapters 1, 2, 4 (see course map) • Assignment 1: Mapping symptoms to root causes to best practices