2Waterfall Model for Development Here, steps (phases) are arranged in linear orderA step take inputs from previous step, gives output to next step (if any)Exit criteria of a step must match with entry criteria of the succeeding stepIt follows ‘specify, design, build’ sequence that is intuitively obvious and appears natural
3Waterfall Model …Produces many intermediate deliverables, usually documentsStandard formats definedAct as ‘baseline’ used as reference (for contractual obligations, for maintenance)Important for quality assurance, project management, etc.It is widely used (with minor variations) when requirements are well understood
4Waterfall Model software part of some larger system system establish requirements for all elements of the system; assign some to softwareunderstand information domain, functions, performance and interfacing. Project plans madetranslate requirements into s/w architecture, data structures and procedural details. A ‘detailed design’ step can be addedprogrammingtest logic and function interfacessystemengineeringAnalysisProject planningdesigncodetesting &integrationInstallation &maintenancedeployment; make changes forErrors, performancechanges in requirement
5Deliverables in Waterfall Model Project plan and feasibility reportRequirements document (SRS : Software Requirement Specifications)System design documentDetailed design documentTest plans and test reportsSource codeSoftware manuals (user manual, installation manual)Review reports
6Cost/Effort Distribution ProblemdefinitionFeasibility studyAnalysisSystemdesignDetailedImplemen-tationMainten-anceTotal accumulated costCost/Effort DistributionAccumulated cost increases dramatically as programmers, operators, technical writers and computer time is committed.Cost of discovering and fixing errors also increases with steps
7Shortcomings of Waterfall Model Requirements may not be clearly known, especially for applications not having existing (manual) counterpartRailway reservation: manual system existes, so SRS can be definedOn-line container management for railways - newKnowledge management for a central bank – new
8Shortcomings …Requirements change with time during project life cycle itselfUsers may find solution of little useBetter to develop in parts in smaller increments; this is common for packages, system softwareConsidered documentation-heavy: so much documentation may not be required for all types of projects.
9Prototyping Model When customer or developer is not sure Of requirements (inputs, outputs)Of algorithms, efficiency, human-machine interactionA throwaway prototype built from currently known user needsWorking or even ‘paper’ prototype
10Prototyping …Quick design focuses on aspects visible to user; features clearly understood need not be implementedPrototype is tuned to satisfy customer needsMany iterations may be required to incorporate changes and new requirementsFinal product follows usual define-design-build-test life cycle
12Limitations of Prototyping Customer may want prototype itself !Developer may continue with implementation choices made during prototypingmay not give required quality, performance, ….Good tools need to be acquired for quick developmentMay increase project cost
13Iterative Development Useful for product development where developers define scope, features to serve many customersEarly version with limited feature important to establish market and get customer feedbackInitial version may follow any methodA list of features for future versions maintainedEach version is analyzed to decide feature list for next iteration
14Spiral Model Activities are organized in a spiral having many cycles Four quadrants in each cycle1. Determine objectives,Alternatives, constraints2. Evaluate alternatives,identify and handle risks4. Plan next step3. Develop the software
15Spiral Model …Prototyping, simulations, benchmarking may be done to resolve uncertainties/risksDevelopment step depends on remaining risks; e.g.,Do prototype for user interface risksUse basic waterfall model when user interface and performance issues are understood but only development risk remainsRisk driven : allows us mix of specification-oriented, prototype-oriented, simulation based or any other approach.
17Spiral Model Main characteristics: Also a hybrid model that support process iterationThe process is represented as a spiral, each loop in the spiral representing a process phaseFour sectors per loop: objective setting, risk assessment and reduction, development and validation, planningRisk is explicitly taken into consideration
18Spiral Model Advantages: Disadvantages: Applicability: Risk reduction mechanisms are in placeSupports iteration and reflects real-world practicesSystematic approachDisadvantages:Requires expertise in risk evaluation and reductionComplex, relatively difficult to follow strictlyApplicable only to large systemsApplicability:Internal development of large systems
19Project Management Process Runs in parallel to development processProject planning, monitoring and control are the basic goalsProject plan indicates how project will be executed successfullyWithout plan, there is no managementWithout measurement, not much planning possiblePlan allows progress to be measuredPlan produced before development begins and constantly updated
20Project Planning Prepare cost/effort estimation Based on project complexity, scope, productivity levels, other historical dataMany models availableSelect development process, define milestones and prepare scheduleKnow how effort is distributed over phases from historical dataDecide project staffingMake quality control plans: define reviews, inspections, testing strategies to detect/remove defects
21Project Monitoring and Control Plan defines various activities: many ways to represent: Gantt chart, time bar chart, PERT/CPM project activity networkShow activities, expected durations, resources allocatedCritical paths can be identified
22Project monitoring …Each development step gives information for tracking progress for identifying delays, bottlenecks, etc.Allows corrective action: add more resources reduce scope, re-negotiate cost/schedule, etc.
23SummaryChallenges in software development and need for ‘engineering’ approachStep-by-step methodology with specific deliverablesTypes of software processesFor development, for project management, …Precise definition of a stepWaterfall model : natural, widely followed in spite of its limitationsProject management – for planning, monitoring and control