Software Development Process Models Balasankar C S1 M.Tech CSE 1 / 24
Software Development Process Models Activities directly related production design, coding, testing Specifies major development & quality control activities Core of the software process Different Models Waterfall Model Prototyping Iterative Development Timeboxing Model 2 / 24
Waterfall Model Linear Proposed Royce Feasibility Analysis Requirement Analysis Project Planning Design Coding Integration Testing Installation Regular Operation and Maintenance 3 / 24
Waterfall Model [contd.] 4 / 24
Waterfall Model [contd.] Have some important consequences Certification Mechanism Distinguish between end of one phase & beginning of next Usually verification & validation means ensure output of a phase is consistent with its output Also, output of phase consistent with overall requirements Each phase products form of documents 5 / 24
Waterfall Model [contd.] General set of documents Requirements document Project Plan Design Documents Test plan and reports Final Code Software Manuals Review reports, status reports etc. 6 / 24
Waterfall Model [contd.] Advantages Simplicity Cleanly divided phases Easy to administer Contractual Setup Disadvantages Assumes requirements can be frozen Choosing of hardwares early Technology changes Heavy risk Ambiguity for the user until the end Requirement of Documents 7 / 24
Prototyping Counter 2 limitations of Waterfall Model Instead of freezing a throw-away prototype understand requirements Prototype - steps same not formally or thoroughly Client gets the feel of the system Stable requirements changes less frequently 8 / 24
Prototyping [contd.] 9 / 24
Prototyping [contd.] Requirement analysis feasible low cost Only important features included Standard features not implemented to be thrown out Minimal Documentation needed Reduced testing 10 / 24
Prototyping [contd.] Some cases cost with prototyping < cost without Experience in prototype reduces cost of later phases Stable requirements Less development time Lest costs Well suited projects with requirements hard to determine & less confidence in stated requirements Reduces some types of risks 11 / 24
Iterative Development Counter 3 rd llimitations of Waterfall Model Software developed in increments Each increment add functional capability until fully implemented Extensions & modifications each step Easier testing simple to test increments Increments provide feedback to client easier determination of final requirements Example Iterative Enhancement Model 12 / 24
Iterative Development [contd.] 13 / 24
Iterative Development [contd.] Simple initial implementation Project Control List All tasks to obtain final implementation Ordered Each step remove one task design, implement, test analyze update list 3 phases Design, Implementation, Analysis Iteration List Empty Final Implementation 14 / 24
Iterative Development [contd.] Another model Spiral Model Activities organized as a spiral many cycles Each cycle Identification of objectives, different alternatives, constraints evaluate alternatives based on objectives and constraints Develop strategies to resolve uncertainties & risks Software Development Next stage planned Evaluation Based on risk perception Strategy development benchmarking, simulation, prototyping 15 / 24
Iterative Development [contd.] 16 / 24
Iterative Development [contd.] Versonized products Initially basic functionalities Additional features based on feedbacks from users, technology changes, business changes etc Next version Customized software development No "complete" requirements rapidly changing technology Customers need to see some products before investing more 17 / 24
Timeboxing Model Parallelism between different iterations speed up developments New iteration begins before system from current iteration is released parallel development Reduce average delivery time But, iterations must be structured properly Teams organized suitably 18 / 24
Timeboxing Model [contd.] Basic unit of development time box fixed duration Requirements/features that can fit selected Each time box divided to sequence of stages Each stage performs specific task produce clearly defined output Timeboxing requires Each stage has approximately same duration Dedicated team for each stage 19 / 24
Timeboxing Model [contd.] Stages with equal durations & dedicated teams pipelining of different iterations 20 / 24
Timeboxing Model [contd.] If time box size = T, first software delivery after T days If n stages, subsequent deliveries take place after every T/n days Reduced time Increased throughput But more resources (teams) Efficiently increasing manpower to reduce time 21 / 24
Timeboxing Model [contd.] Well suited for projects with large number of features and short amount of time Features should have ability to be grouped flexibly to form meaningful deliveries Not suitable for projects can't partition overall developments Different iterations require different stages Features cannot be combined to meaningful deliveries 22 / 24
Comparison of Models 23 / 24
THANK YOU! QUESTIONS??? 24 / 24