Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.

  • Published on
    03-Jan-2016

  • View
    212

  • Download
    0

Transcript

<p>PowerPoint Presentation</p> <p>Methodologies</p> <p>CC20O7N - Software Engineering 1ContentsWaterfall ModelEvolutionary ModelsIncremental DevelopmentCC20O7N - Software Engineering 122Waterfall Model - Basic</p> <p>CC20O7N - Software Engineering 133Waterfall Model Advantages &amp; DisadvantagesEasy to explain to the user (+)Stages and activities are well defined and thus to identify milestones (+)Helps to plan and schedule the projectVerification at each stage ensures early detection of errors / misunderstandingIt is easy to separate one stage from another (+)Documentation can easily be produced(+)It is totally unrealistic! (--------)CC20O7N - Software Engineering 1Waterfall Model - Enhanced</p> <p>CC20O7N - Software Engineering 154Waterfall Enhanced Advantages &amp; DisadvantagesIt is easy to identify milestones (+)It is easy to separate one stage from another (+)Software is properly documented (+)Premature requirements, design, etc. (-)It assumes that requirements can be precisely specified (-)It requires the customer to be patient (-)It is still unrealistic!CC20O7N - Software Engineering 1Prototyping ProcessEstablish prototype objectives Define prototype functionality Develop prototype Evaluate prototype Prototyping plan Outline definition Executable prototype Evaluationreport CC20O7N - Software Engineering 1Prototype (as a tool for requirements analysis) - BenefitsMisunderstandings between software developers and users identified as the system functions are demonstratedMissing user services may be detectedDifficult-to-use or confusing user services may be identified and refinedIncomplete/inconsistent requirements found as the prototype is developedA working, albeit limited, system is available quickly for demonstration to managementCC20O7N - Software Engineering 186Throw-Away Prototyping * At this point the prototype is thrown away!** Development phase of the actual systemEstablish outline spec.Design &amp; implement systemDevelop prototypeEvaluate prototypeSpecify system***Validate systemCC20O7N - Software Engineering 195Throw-Away Prototype - ProblemsSometimes the cost of prototype development represents an unacceptably large fraction of the total costCustomers are likely to force the developer to convert the prototype to the working system using a few fixes The developer may become familiar with the prototype and reluctant to discard itCC20O7N - Software Engineering 1107Evolutionary PrototypingDevelop abstract specification systemDeliver systemSystem adequate?NOYESDevelop abstract specificationDevelop abstract specificationBuild prototype Use prototype systemDeliver systemSystem adequate?NOYESCC20O7N - Software Engineering 1118Evolutionary Prototyping Advantages &amp; DisadvantagesSystems are developed and delivered rapidly (+)Costs are reduced (+)User involvement! (+)The development process is invisible to managers (+)Systems are usually poorly structured! (-)</p> <p>CC20O7N - Software Engineering 1PrototypingAdvantages of PrototypingUsers are actively involved in the developmentIt provides a better system to users, as users have natural tendency to change their mind in specifying requirements and this method of developing systems supports this user tendency.Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed.Errors can be detected much earlier as the system is mode side by side.Quicker user feedback is available leading to better solutions.DisadvantagesLeads to implementing and then repairing way of building systems.Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.</p> <p>CC20O7N - Software Engineering 1Incremental DevelopmentIntegrate incrementIntegrate incrementSystem complete?Designsystem architectureSpecifysystem incrementBuildsystem incrementValidate incrementDefinesystem deliverablesValidatesystemDeliver finalsystemYESNOReproduced from: SommervilleSystem complete?Designsystem architectureSpecifysystem incrementSpecifysystem incrementBuildsystem incrementBuildsystem incrementValidate incrementDefinesystem deliverablesValidatesystemDeliver finalsystemYESNOReproduced from: SommervilleCC20O7N - Software Engineering 1149Incremental Development Advantages &amp; DisadvantagesNo big bang effect (+)Attention on the essential features (+)Customers can use the partial software as soon as it is available (+)Early increments can provide a useful feedback (+)The requirements tend to constrained by the architecture (-)Problems with contracts (-)Difficult to map the customers requirements onto increments (-)Problems with basic facilities (-)</p> <p>CC20O7N - Software Engineering 1SummarySoftware life cycle models all of them include the main generic stageslogic of the software process is different in each The spiral model, which subsumes the other models, should be investigated by students.Object orientation emphasis on reusabilitysoftware development process will become one of assembly rather than one of creationCC20O7N - Software Engineering 11610</p>

Recommended

View more >