Process models


Published on

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Process models

  1. 1. 1 Process Models Chapter 3
  2. 2. 2 A software life cycle is the series of identifiable stages that a software product undergoes during its lifetime. A software life cycle model is a descriptive and diagrammatic representation of the software life cycle. A life cycle model represents all the activities required to make a software product transit through its life cycle phases. It also captures the order in which these activities are to be undertaken. Different life cycle models may map the basic development activities to phases in different ways.
  3. 3. 3 Why do we require a life cycle model? The primary advantage is that it encourages development of software in a systematic and disciplined manner. When a software product is developed by a team, it is necessary to have a precise understanding among the team members as to – when to do what. Otherwise it may lead to confusions and project failure.
  4. 4. 4 The Waterfall Model Communicat ion Planning Modeling Const ruct ion Deployment analysis design code t est project init iat ion requirement gat hering estimating scheduling tracking delivery support f eedback
  5. 5. 5 1. Real project rarely follow sequential flow that the model proposes 2. Linear model can accommodate iteration, it does indirectly 3. Can cause confusion as the project team proceeds. 4. Difficult for the customer to state all requirement explicitly 5. Customer must have patience 6. Linear nature of water flow leads to “blocking state” 7. Leads the team member to wait until previous member finishes 8. Time spent waiting is more compared with time spent for productive work 9. It is inappropriate 10. Requirement is fixed and proceed in linear manner.
  6. 6. 6 Incremental Process Model analysis design code test System/information engineering analysis design code test analysis design code test analysis design code test increment 2 increment 3 increment 4 increment 1 delivery of 1st increment delivery of 2nd increment delivery of 3rd increment delivery of 4th increment calendar time
  7. 7. 7 Incremental Process Model Combines elements of the waterfall model applied in an iterative fashion. Incremental applies linear sequences as the calendar time progress. Limited software functionalities and expands functionalities in later software release.
  8. 8. 8 Increment Model  Each linear sequence produces a deliverable ‘increment’ of the software  Eg. Word processing software  First increment is often a core product  Basic requirements are addressed, but many supplementary remains undelivered.  Customers evaluate this core product and the next increment is planned based on suggestions and next set of features  The plan addresses the modification of core product and delivery of additional features and functionalities.  Process is repeated until complete product is produced.
  9. 9. 9 Increment Model Useful when  Staff is unavailable for complete implementation and deadline is tight  If core product is well received, additional staff can implement next increment  Increment can be planned to manage technical risks  Partial functionalities can be delivered to end – user without inordinate delay.
  10. 10. 10 RAD Model Communication team #3 60 - 90 days Planning Modeling Construction Testing Modeling Construction team #1 team #2 Modeling Construction
  11. 11. 11 RAD Model Rapid Application Development Model  It is incremental software development process. A short development cycle  It is “high speed” adaptation of linear sequential model.  Done by component based construction.  Requirements should be well understood and scope must be limited.  Enables development team to create “fully functional” system with short time period.
  12. 12. 12 RAD model Generic framework activities of RAD are :  Communication: What information is required, who generates it, who processes it, where does it go etc.  Planning: Multiple software team works in parallel on different functions.  Process modeling: 3 modeling - Business modeling - Data modeling - process modeling Construction : Code generation  Deployment : Is faster because of reusable components.
  13. 13. 13 RAD model Advantages of RAD model 1. Can be used for projects which can be modularized. 2. Separate RAD teams can work on different modules. 3. Overall time requirement is very less. Problems or disadvantages 1. Large manpower required to create large number of RAD teams. 2. Developers and customers must be committed to this type of model. Fast responses are required from both the parties. 3. Not useful for all types of systems i.e. if it is not possible to modularize. 4. Not useful when technical risks are high i.e. new software using new technology or new software has to work with existing hardware.
  14. 14. 14 Prototype Model Customer defines objective to software engineer, but not specifies input , process ,output requirements. Developer may be unsure about efficiency of algorithm, adaptability of OS, or human-machine interaction In this situation Prototype is best approach
  15. 15. 15 Evolutionary Process Model 1. These models are more suited to object oriented systems. 2. They are iterative. 3. They enable the software developer to develop increasingly more complex versions of the software 4. Like all complex systems, software evolves over a period of time and hence evolutionary models are more suited to software development. 5. Requirements change while software gets developed.
  16. 16. 16 Prototype Model Used as standalone Process model Used in all technique implemented in any process model Prototype paradigm assists software and customer to better understand and build the software when requirement is fuzzy
  17. 17. 17 Prototype Model Quick Model Communication Development Delivery & Feedback Construction of Prototype Modeling Quick design
  18. 18. 18 Prototype Model 1. Communication - Software Engineer and customer defines overall objective - Identifies requirements and outline area - Definition is mandatory 2. Quick plan is made 3. Quick design: A Prototype iteration is planned quickly and modeled 4. Design leads to constructing a prototype 5. Prototype deployed and delivered to end user Feedback is used to refine requirement for software  Iteration occurs as the prototype is tuned to satisfy customers need and developers to better understand which needs to be done.
  19. 19. 19 Prototype Model  Limitations  At the prototype level no focus on software quality or long-term maintainability  In order to make the prototype working quickly, the developer often makes implementation compromises and becomes familiar with these choices
  20. 20. 20 Spiral Model  Proposed by Boehm - Evolutionary software process model  Couples Iterative nature of prototyping + waterfall model  Potential for rapid development of increasingly more complete version of software  Spiral Model - software is developed in a series of evolutionary releases.  Early iteration - Paper model / prototype (trial product)  Later increasingly more complete version of engineering software is produced
  21. 21. 21 Spiral Model Divided into set of framework activities defined by software engineering team  Each Framework activities represents 1 segment of spiral path  As evolutionary process begins software performs activities implied by circuit around clockwise direction  Begins at center  Risk is considered at each revolution  Milestone: Combination of work product + conditions with spiral model in each evolutionary process
  22. 22. 22 Spiral Model Customer Communication Planning Construction & Release Customer Evaluation Engineering Risk Analysis
  23. 23. 23 Spiral Model  1st circuit – development of a product specification  2nd circuit – prototype (trial product)  3rd and rest – sophisticated versions of software  Each pass through planning : Adjustment of project plan is done  Cost & schedule: Adjusted based on feedback of customer after delivery  Project manager: Adjusts number of iteration to complete software
  24. 24. 24 Spiral Model I’st circuit - “concept development project” starts with core “New project development” -multiple iteration until project completes Last spiral - represents “project enhancement project”
  25. 25. 25 Spiral Model Advantage: • Realistic approach of development in large scale • Developer and customer satisfaction • Reacts to risk at evolutionary level • Uses prototype - Risk reduction mechanism • Enables developer to apply prototype in any stage • Stepwise approach • Direct consideration of technical risk at all step.
  26. 26. 26 Spiral Model Disadvantage:  Difficult to convince customers  Demands considerable risk assessment expertise  Model has not been used as widely as the linear sequential or prototype paradigm
  27. 27. 27 The Concurrent development model  This model is suited to all types of software but is generally used for client server applications  In real life the software development activities do not take place in sequence  Most activities will be going on concurrently but reside in different states.  The states will change when some event occurs  So in this model all the activities are shown along with their states at any point of time.  As time goes on the states of the activities will change.  It provides an accurate picture of the current state of a project.
  28. 28. 28 Concurrent development model Modeling activity Under revision None Under Development Awaiting Changes Done Under review Baselined
  29. 29. 29 The Concurrent development model Definition: It defines software engineering as a network of activities each in a different state, each dependent on one another and each going on concurrently.  Awaiting changes state – after the completion of the 1st iteration (communication activity)  None state – while initial communication is carried out (modeling activity)  Under development state – after the communication is completed.  Awaiting changes state – if any changes in the requirement must be made.
  30. 30. 30 Specialized Process Models Component Based model  Object oriented technologies are the base  Spiral model + prepackaged software components  The steps to determine the user requirements are same.  The steps involved in this model for the engineering activity are: 1. Examine data to be manipulated and the algorithms to manipulate. 2. Component integration is considered 3. A software architecture is designed to accommodate the components 4. Components are integrated into architecture 5. Comprehensive testing is conducted to ensure proper functionalities
  31. 31. 31 Component Based model  Steps  Identification of candidate classes  Find if the class exists  If exists, extract and reuse, else develop  Advantages of component reuse  Development cycle time is reduced by 70%  Cost decreased by 84%  Productivity increases  Faster development and testing  These results are a function of the robustness of the component library
  32. 32. 32 The Formal Methods Model A set of activities that leads to formal mathematical specification of computer software Enable a software engineer to specify, develop and verify a computer based system by applying a accurate mathematical notation Set theory and logic notations are used to create a clear statement of requirements They provide a mechanism for removing the difficulty during the development.
  33. 33. 33 The Formal Methods Model  This model can provide defect free software. Problems  Time consuming and expensive  Software developer must be trained before developing systems using formal methods  Difficult to communicate it to the users for technically unsophisticated customer  But, it can be very useful for developing safety critical software or where the cost of failure is very high.
  34. 34. 34 Assignment -2 Submission Date 22-7-08 1. What do you mean by SDLC? Why is it required? 2. Explain in detail about all the process models. Mention its advantages and disadvantages.