SE Lecture2 Chapter2

Embed Size (px)

DESCRIPTION

SE Chapter2

Citation preview

  • Software Development Process Model

  • Software Life Cycle PhasesRequirements, analysis, and design phase.System design phase.Program design phase.Program implementation phase.Unit testing phase.Integration testing phase.System testing phase.System delivery.Maintenance.

  • The software processA structured set of activities required to develop a software systemSpecificationDesignValidationEvolutionA software process model is an abstract representation of a process. It presents a description of a process from some particular perspective

  • Generic software process modelsThe waterfall or linear sequential modelSeparate and distinct phases of specification and developmentPrototype modelRequirements are not clearRapid Application Development (RAD) modelHigh speed adaptation of linear sequential model

  • Waterfall model(Winston Royce [Roy70])

  • Waterfall model phasesRequirements Gathering (analysis and definition)Planning (Estimation)Modelling (Design)Construction (Coding and testing)Integration and system testingDeployment (Operation, maintenance, feedback)

  • Waterfall model problemsInflexible partitioning of the project into distinct stagesThis makes it difficult to respond to changing customer requirementsTherefore, this model is only appropriate when the requirements are well-understood

  • V-model*

  • Prototyping Model (Paradigm)

  • Prototype ModelRequirements are not clearIteration occurs as the prototype is tuned to satisfy the needs of the customerPrototype serves as a mechanism for identifying software requirements

  • Evolutionary developmentExploratory development Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements Throw-away prototypingObjective is to understand the system requirements. Should start with poorly understood requirements

  • Evolutionary development

  • Evolutionary developmentProblemsLack of process visibilitySystems are often poorly structuredSpecial skills (e.g. in languages for rapid prototyping) may be requiredApplicabilityFor small or medium-size interactive systemsFor parts of large systems (e.g. the user interface)For short-lifetime systems

  • Process iterationSystem requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systemsIteration can be applied to any of the generic process modelsTwo (related) approachesIncremental developmentSpiral development

  • Incremental developmentRather 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 functionalityUser requirements are prioritised and the highest priority requirements are included in early incrementsOnce the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

  • Incremental ModelCalendar time

  • Incremental ModelDeliver the core product firstAdd on / refine featuresProvide a platform for evaluation by user

  • Incremental development advantagesCustomer value can be delivered with each increment so system functionality is available earlierEarly increments act as a prototype to help elicit requirements for later incrementsLower risk of overall project failureThe highest priority system services tend to receive the most testing

  • Spiral DevelopmentProcess is represented as a spiral rather than as a sequence of activities with backtrackingEach 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 requiredRisks are explicitly assessed and resolved throughout the process

  • Spiral model of the software process (Boehm 88)

  • Spiral model sectorsObjective settingSpecific objectives for the phase are identifiedRisk assessment and reductionRisks are assessed and activities put in place to reduce the key risksDevelopment and validationA development model for the system is chosen which can be any of the generic modelsPlanningThe project is reviewed and the next phase of the spiral is planned

  • Component Based Development ModelSuitable for re-usable object oriented classesApply characteristics of spiral model

    IdentifycomponentConstructnth intersystemLookupcomponentsin libraryExractcomponentsif availablePut newcomponentsin libraryBuildcomponentsif unavailable

  • Unified ProcessWork of Ivar Jacobson, Grady Booch and James Rumbaughuse case drivenarchitecture-centriciterative and incremental

  • Iterative Development Produces an Executable*

  • Initial and evolution cycles & Time*

  • Rational Unified Process (RUP)*

  • Rational Unified Process (RUP)*

  • Risk Profiles*

  • Reduce Scrap/Rework: Use an Iterative Process*

    *****