Presentation is loading. Please wait.

Presentation is loading. Please wait.

SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development.

Similar presentations


Presentation on theme: "SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development."— Presentation transcript:

1 SE 548 IŞIL ÖZTÜRK

2  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development project.  Software Development Life Cycle (SDLC) can also be called as process model.  In order to ensure the quality of the product selecting the right process is important.

3  There are varierty of soft.process models : a) Linear or Sequential Models * Waterfall Model * V shaped waterfall Model b) Incremental Models c) Evolutionary Models * Prototype Model * Spiral Model d) Agile Models * Extreme Programming

4 Linear or Sequential Models : Sequential approaches (e.g. waterfall model, V-model) refer to the completion of the work within one cycle. One stage needs to be completely finished before the next stage can start. a) Waterfall Model : It is the classical model of Software engineering model.In the Waterfall, the phases are carried out in sequence. Only one phase is carried out at a time and it is not possible to go back after completing the stage.

5 Advantages of Waterfall Model: 1)It is easy to understand, and easy to use 2)It provide structure to inexperienced staff 3) Works well on mature products and weak teams 4) It is document driven process model,based on published documentation standards. 5) Works well when quality is more important than cost or timing. 6) Sets requirements stability. 7) Identifies deliverables and milestones.

6 Disadvantages of Waterfall Model: 1)All requirements must be known upfront and these are stable however in evolutionary models requirements evolve over the time. 2) Software is delivered late in project, discovery of serious errors delayed. 3) Unlike to spiral model,difficult to integrate risk Management 4) Difficult and expensive to make changes to documents. 5) Due to administration, costly for small teams and projects.

7 6) Unlike evolutionary and incremental models there is a little opportunity for customer to preview the system. When to use the Waterfall Model ?  Requirements are very well known  Product definition is stable  Technology is understood  New version of an existing product  Porting an existing product to a new platform ROLES:all roles are needed for a software project development in waterfall model. due to sequence of activities and dependencies, some team members often have to wait for input from other team members.

8 b) V shaped Model:  It is the variant of the Waterfall model and it emphasizes the verification and validation of the product at each phase. This is the major difference to the Waterfall Model.  testing is emphasized in this model more than the waterfall model.

9 Advantages of V Model : 1)simple and easy to use 2) Each phase has specific deliverables. 3) Emphasize planning for verification and validation of the product in early stages of product development 4) Higher chance of success over the waterfall model due to the early development of test plans during the life cycle. 5)It works well for small projects where requirements are easily understood.

10 Disadvantages of V model : 1)Does not easily handle dynamic changes in requirements as incremental and evolutionary models does. 2) Very inflexible like the waterfall model. 3) Unlike spiral model it does not contain risk analysis activities 4) Does not handle iterations or phases 5) no early prototypes of the software are produced.

11 When to use the V-Shaped Model?  For systems requiring high reliability – hospital patient control applications  All requirements are known up-front  Unlike incremental models it must be used when solution and technology are known  When it can be modified to handle changing requirements beyond analysis phase  ROLES:The main roles in the V-model are project leader, quality manager, configuration management representative and controller. Other roles are the usual candidates like system analysts, programmers, etc.

12 Incremental models: Incremental models emphasize phased development by offering series of linked mini-projects and these are referred as increments, releases or versions.  Most of the requirements is known and so requirements for the next increment is known

13  In the incremental models each release adds more functionality to the each new increment.  multiple mini-cycles running in parallel.  First increment is the core product which provides basic requirements.  It is combination of linear and parallel process flow. (Due to delivery of increments is planned as calendar time progresses)

14 Advantages of incremental models: 1)The customer receives working software before the end of the project. 2)satisfying some of the stakeholder’s early, and this provides visible signs of progress but it is not possible in the sequential models. 3) The cost expended before some functionality is delivered to the customer is less compared to the Waterfall model

15 4) As functionality is incremented in steps, testing also becomes easy. 5) Risk of failure of a product is decreased as users start using the product early. Product Requirements Testing Coding Increment Design Testing Coding Increment Design Testing Coding Increment Design

16 Disadvantages of incremental model : 1)Requires good planning and design 2) Requires early definition of a complete and fully functional system (to allow for the definition of Increments) 3) Total cost of the complete system is not lower

17 4) Requires careful management to ensure quality of the each increment. 5) Resources also need to be carefully managed to ensure that each increment is delivered on time

18 When to use the Incremental Model ?  Risk, funding, timing, program complexity, or need for early realization of benefits.  Unlike sequential models most of the requirements are known earlier but are expected to evolve over time  A need to get basic functionality to the market early  long time development projects  Unlike sequential models it must be used on a project with new technology.

19 Evolutionary Process Model:Evolutionary process models produce an increasingly more complete version of the software with each iteration.  software’s requirements and design must be completed before subsequent lifecycle phases started. This is the poorness of the Waterfall model’s

20  In Evolutionary Development, unlike Incremental Development, the requirements for the next increment are not known until the previous increment has gone into operation and been evaluated.

21  New versions evolving requirements. ROLES:Due to continuous communication,all roles are needed in every iteration in the model. a) Structured Evolutionary Prototyping Model :  Evolutionary Prototyping is very similar to Evolutionary Development.  The stakeholder requirements for the software are uncertain at the start of the lifecycle.  Developers build a prototype during the requirements phase

22  Developers refine the prototype Advantages : 1)Customers can “see” the system requirements as they are collected. 2) Developers learn from customers Requirement Analysis Quick Design Prototype Implementation Testing Deliver Final Product

23 3) A more correct end product 4) Allows for flexible design and development 5) Unexpected requirements accommodated Disadvantages: 1)The customer may want the prototype to be delivered. 2) Process may continue forever 3) Bad reputation for “quick-and-dirty” methods When to use Structured Evolutionary Prototyping?  Requirements are unstable  Short-lived demonstrations  New, original development  When requirements clarification stage of a waterfall model

24 b)Spiral Model :The Spiral model is also one of the popular evolutionary process model used by the industry.  Unlike waterfall and v-shaped models it is used for large size projects.  The model focuses on minimizing the risk through the use of prototype.  The model is divided into four quadrants, each with a specific purpose. Each spiral represents the progress made in the project.

25 Advantages of spiral model : 1)The model tries to resolve all possible risks involved in the project starting with the highest risk. 2)Critical high-risk functions are developed first 3) End users get a chance to see the product early in life cycle. 4)Provides early indication of important risks, without much cost 5) as product is refined for each phase, the model ensures a good quality product.

26 6) The design does not have to be perfect 7) Spiral model is generally used for large projects with medium to high risk Disadvantages: 1)As risk decreases, cost tends to increase 2) The model requires expertise in risk management and excellent management skills. 3) The model is not suitable for small projects as cost of risk analysis may exceed the actual cost of the project. 4) Spiral may continue indefinitely 5) Time spent for evaluating risks too large for small or low-risk projects

27 When to use Spiral Model?  When costs and risk evaluation is important  For medium to high-risk projects  Long-term project commitment unwise because of potential changes to economic priorities  Users are unsure of their needs  Requirements are complex  Significant changes are expected ROLES:As different activities are performed during various cycles the abilities of the people needed vary from quadrant to quadrant and from cycle to cycle.

28  Agile Models : Focused on to deliver relevant working business applications quicker and cheaper.  The application is typically delivered in incremental (or evolutionary or iterative) fashion.  The delivered increments tend to be small and limited to short delivery periods to ensure rapid completion

29 a)Extreme Programming :  It is the most widely usage of the agile models.  collective ownership and process that avoids long working hours.  ROLES:XP teams consist of two to ten people these team members include a manager who is the team leader, programmers and always a customer representative (i.e. a future user, to answer questions and set priorities) Two programmers always work together on one computer, called pair programming.

30 Waterfall vs. Spiral Model Model ComplexitySimple, linear sequence of phases Complex, iterative model; many integrated tasks ManagementDocument driven Risk driven Quality ControlNatural milestone after each phase Continuous evaluation, integrated into the model Customer interaction No RiskHigh (late feedback) Low (risk analysis is integrated in the model) UsabilitySmall and/or low risk projects Large projects Waterfall ModelSpiral Model

31 Comparison of Software Development Life Cycles:A Multiproject Experiment – written by 2006 Oddur Benediktsson,Darren Dalcher, Helgi Thorbergsson It describes an experiment in which 55 student-developers working in fifteen software teams developed comparable software products using four different development approaches (V-model,incremental, evolutionary and Extreme Programming). And it shows time spent on project on the basis of different process models.

32 According to experiment they found:

33  The requirements stage in the V-model consumed more time than the requirements activities in Incremental and Xp models.  XP only consumed a minor proportion of the effort during the requirements (and design) activities compared to the other models.  The effort of the Waterfall teams dominated the requirements, design and even the programming activities.  XP teams took the lead in terms of hours spent in testing and code correction.  Integration and testing required relatively little effort from the Waterfall teams (and Incremental teams),due to the level of detailed planning and additional time spent during the earlier stages of requirements and design. (indicates early discovery of errors)

34 THANK YOU..


Download ppt "SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development."

Similar presentations


Ads by Google