L2 l3 l4 software process models

  • View
    1.118

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Text of L2 l3 l4 software process models

  • *Rushdi Shams, Lecturer, Dept of CSE, KUET, BangladeshEinstein looked for a simplified definition of nature as he believed that God is not complex or arbitrary. No such belief will work for Software Engineers as Software Engineering is complex and arbitrary Fred BrooksLecture 2, 3 and 4Software Process

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • The software processA structured set of activities required to develop a software systemSpecification;Design;Validation;Evolution.A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Generic software process modelsThe waterfall modelSeparate and distinct phases of specification and development.Evolutionary developmentSpecification, development and validation are interleaved.Component-based software engineeringThe system is assembled from existing components.They are not mutually exclusive- used together, often

    *Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model phasesRequirements analysis and definitionConsultation with system userSystem and software designSystem design partitions the requirements to hardware or software systemssoftware design involves indentifying and distributing software abstractions.Implementation and unit testingUnit testing involves verifying that each unit meets its specification*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model phasesIntegration and system testingTesting as a complete system. Software is delivered to customerOperation and maintenanceLongest software life cycle phase. Involves correcting errors that were not discovered early, improvement of system units and evolutionRushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model benefitsThe result of each phase is one or more approved documentsFits with other process modelsRushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model problemsInflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements.The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. One phase has to be complete before moving onto the next phase- that is absent in reality where overlapping is common.

    *Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Waterfall model problemsProne to Software freeze, problems are left for later resolution, ignored or programmed around.May result inefficient software and badly structured design

    *Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Evolutionary developmentBased on the idea of developing an initial implementationExposing this to the user for commentsRefining and retuning through many versions until an adequate system is developed.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Evolutionary developmentExploratory development Objective is to work with customersto evolve a final system from an initial outline specification. Should start with well-understood requirements add new features as proposed by the customer.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Evolutionary developmentThrow-away prototypingObjective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Evolutionary development*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Evolutionary developmentProblemsLack of process visibility;Systems are often poorly structured;Special skills (e.g. in languages for rapid prototyping) may be required.ApplicabilityFor small or medium-size interactive systems;For parts of large systems (e.g. the user interface);For short-lifetime systems.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Component-based software engineeringBased on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.Happens when people working on project know of designs or code which is similar to that requiredThis approach is becoming increasingly used as component standards have emerged.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Component-based software engineeringProcess stagesComponent analysisWhat components are required, what are availableRequirements modificationNot exactly what you need is found, so would you use that or modify your requirements?System design with reuseDesign the system in a way so that others are able to reuse your systemDevelopment and integrationCombining all of the reusable components

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Benefits of CBSEQuick developmentLow costRushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*Drawbacks of CBSEMostly never meets requirementsNeeds expert knowledge on component analysis, reusability and integrationLess innovationMore or less depends on the pros and cons of the components.

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Reuse-oriented development*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Incremental deliveryAn in-between approach that combines waterfall and evolutionary modelRather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.User requirements are prioritised and the highest priority requirements are included in early increments.Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Incremental deliveryRushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh*

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Incremental development advantagesCustomer value can be delivered with each increment so system functionality is available earlier.Early increments act as a prototype to help elicit requirements for later increments.Lower risk of overall project failure.The highest priority system services tend to receive the most testing.User engagement with the systemAccelerated delivery of customer services*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Incremental development disadvantagesIncrements should be relatively small (20,000 LoCs)Each increment should provide system functionalityDifficult to map customers requirements onto increments of right sizeHard to identify common facilities that are needed for all increments*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Incremental development disadvantagesProgress can be hard to judge and problems hard to find because there is no documentation to demonstrate what has been done.The normal contract may include a specification; without a specification, different forms of contract have to be used.Without a specification, what is the system being tested against?Continual change tends to corrupt software structure making it more expensive to change and evolve to meet new requirements.

    *Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Spiral developmentProcess is represented as a spiral rather than as a sequence of activities with backtracking.Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.Risks are explicitly assessed and resolved throughout the process.*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Spiral model of the software process*Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

    Rushdi Shams, Lecturer, Dept of CSE, KUET, Bangladesh

  • Spiral model sectorsObjective settingSpecific objectives for the phase are identified.Risk assessment and reductionRisks are assessed and activities put in place to reduce the key risks.Development and validationA development model for the system is chosen which can be any of the generic models.PlanningThe project is revie