The Code and Fix model It is a simple two phase model. In first phase: code is developed In second phase: fix the code until the client is not satisfied. Then deliver the product to client. 1
Prototype Model It is employed when it is very difficult to obtain exact requirements from the customer. (Unlike in other models) An prototype is first made based on the initial requirements It is early approximation of the final project. 2
Process in prototype 3 Developer customer Identify very basic requirements Intitial Prototype Revise and enhancement revi ew Initially I/O not the security,eff,perf Input data format,msg,reports
Stake holders A person,group or organization that has interest or concern in an organization Stakeholders can affect or be affected by the organization's actions, objectives and policies. organization'sactionsobjectivespolicies Some examples of key stakeholders areexamples directors, employees, directorsemployees Government owners (shareholders) Governmentownersshareholders suppliers, unions,suppliersnions and the community from which the business draws its resources.communitybusinessdraws resources 4
Evolutionary Models: Prototyping 5 Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
Requirement gathering Quick design Build prototype Feedback from customer Customer/stake holder evolution of PT Design Codin g testin g maintenanc e
Throw away Prototype: Also called close-ended prototyping. Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the final delivered software. 7 Plan to throw one PT1 Brook comments
Prototype Model Advantage Reduce time and cost Improved and increased user involvement Effective for On-line System Prototype Model Disadvantage Insufficient analysis User confusion between PT and Final system Slow process Too much involvement of customer 8
Spiral Model 9
Another type of evolutionary model (When changes takes place frequently) Proposed by Barry Boehm in 1986 in his research paper “A Spiral Model of Software Development and Enhancement (IEEE).” It combines the strength of the previous models 10 Lineariterativeprototype Risk factor Uncertainty No risk handeling Spiral model
Evolutionary Models: The Spiral 11 p1 p2 p3 p4
12
Activities in Spiral Model in each loop 13 Finalizing objective Development Risk Analysis Planning Objectives are set for each level of loop Risks are identified Use a SDLC model Based on the review –a decision has to be taken whether to go through the lopp of sprial again
Risks involved in spiral model Skill or knowledge ( programming skill) Estimation and scheduling risk Customer risks (Sudden growth in requirements) Commercial risk( competing vendors) External risks(Flooding, earthquake, fire etc) Employee turnover (When a developers leaves,) etc 14
Evolutionary Models: The Spiral It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model and is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software intensive systems. Two main distinguishing features: one is cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions. A series of evolutionary releases are delivered. During the early iterations, the release might be a model or prototype. During later iterations, increasingly more complete version of the engineered system are produced. The first circuit in the clockwise direction might result in the product specification; subsequent passes around the spiral might be used to develop a prototype and then progressively more sophisticated versions of the software. Each pass results in adjustments to the project plan. Cost and schedule are adjusted based on feedback. Also, the number of iterations will be adjusted by project manager. Good to develop large-scale system as software evolves as the process progresses and risk should be understood and properly reacted to. Prototyping is used to reduce risk. However, it may be difficult to convince customers that it is controllable as it demands considerable risk assessment expertise. 15
Three Concerns on Evolutionary Processes First concern is that prototyping poses a problem to project planning because of the uncertain number of cycles required to construct the product. Second, it does not establish the maximum speed of the evolution. If the evolution occur too fast, without a period of relaxation, it is certain that the process will fall into chaos. On the other hand if the speed is too slow then productivity could be affected. Third, software processes should be focused on flexibility and extensibility rather than on high quality. We should prioritize the speed of the development over zero defects. Extending the development in order to reach high quality could result in a late delivery of the product when the opportunity niche has disappeared. 16
Advantage Introduces risk management Prototyping controls costs Evolutionary development Release builds for beta testing Good for large and mission-critical projects. Additional Functionality can be added at a later date. Disadvantage Lack of risk management experience Lack of milestones Management is dubious of spiral process Doesn’t work well for smaller projects. Prototype Vs Production 17
18 Software benchmarks are, for example, run against compilers or database management systems etc.compilersdatabase management systems