2What is SW Process?When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result.The ROAD MAP that you follow is the SW process.Process depends on the SW you are buildingWeb design vs. telephone switch!!
3Software Process Process defines who is doing: – What?,– When and how?– To reach a goalProcess defines tasks and activities within a scheduleResults– Programs– Documents– And dataSoftware process is a roadmap for high quality software
4Generic Framework activities CommunicationGet to know your Customer and their processesIdentify stakeholdersRequirement elicitation
5Generic Framework activities PlanningPlan the workIdentify resourcesIdentify tasksSet the schedule
6Generic Framework activities ModelingAnalysis of requirementsDesignBlue print for customer and developers communications
8Generic View of SE SW Engineering is the: Analysis, Design, Construction,Verification and.Management of Software.
9SW Process ModelsGuides the SW team thought a set of framework activities (process flow)LinearIncrementalevolutionaryIt is a set of activities required toDefine, design, implement, test and maintain a software product.A SW process model is chosen based on the nature of the project.Each process model prescribes a workflow for SE activities
10Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models
11SW Process Models It is a set of activities required to: Prescriptive process models advocate an orderly approach to software engineering.It is a set of activities required to:Define, design, implement, test and maintain a software product.A SW process model is chosen based on the nature of the project.
12SW Process Model Phases All models have phases and each phase has 3 components:Set of activities, this is what you do.Set of deliverables, this is what you produce.Quality control measures, this is what you use to evaluate the deliverables.The activities defines the process Framework, the generic set encompasses:Communication, planning, modeling, construction, and deployment
13The Waterfall ModelThis Model suggests a systematic, sequential approach to SW development that begins at the system level and progresses through analysis, design, code and testing.
14Waterfall Model Advantages Disadvantages EasyStructuredProvide a template into which methods for analysis, design, code, testing and maintenance can be placed.DisadvantagesSequential, does not reflect realityDoes not allow for feedbackDoes not produce a prototypeUser must wait until the end to see the final program.
15When to use the Waterfall Model Simple ProjectsLimited amount of timeRequirements are well understoodWe can use it for our Class Project.
16Incremental ModelsGoal to provide quick basic functionality to the usersProcess is not linearRequirements are well definedSoftware is completed in an increments fashionWill Study 2 models:Incremental ModelRAD
17Incremental ModelIt combines characteristics of the waterfall model and the iterative nature of the prototyping model.1st build is usually the CORE productEach increment “deliverable” may add a new functionality.This is repeated until the product is complete
18The Incremental Model Communication Planning Modeling Construction Deployment
19When to Use the Incremental Model When staffing is not available by deadline.When the software can be broken into increments and each increment represent a solution
20The Rapid Application Development RAD Model Builds on the Incremental model with emphases on short development cycle.In other words high speed waterfall modelComponents are build using this model as a fully functional units in a relatively short timeIt assumes that the system can be modularizedRAD will fail if you don’t have strong and skillful teamsHigh performance might be an issue
22Evolutionary Process Models Core requirements are well understood but additional requirements are evolving and changing fastTime-to-MarketIterative – software gets more complex with each iterationPrototypeSpiralConcurrent
23Evolutionary SW Process Models AdvantagesDo not require full knowledge of the requirementsIterativeDivide project into buildsAllows feedback, show user something soonerDevelop more complex systems
24Prototyping Model Start with what is known about requirements. Do a quick design.Build the prototype by focusing on what will be seen by the user.Use the prototype to show the user and help refining requirements.
26When to Use Prototype Model When the customer define general objectives for the SW but does NOT identify details about INPUT, OUTPUT, or processing requirements.The developer is unsure of the efficiency of an algorithm, human machine interaction, etc.
27Prototype Model Advantages Prototype is served as the machinery for identifying requirements.Is developed very quick.DisadvantagesCustomer might think that the prototype is the final product and forget lack of quality i.e PERFORMANCE, RELIABILITY.
28Spiral ModelIterative (like Prototype) and controlled (like waterfall) model.Software is developed using evolutionary releasesSoftware complexity increase with each release
29Spiral Model Consist of 6 task regions. Customer communication - the goal is to establish good communication between customer and developer.Planning - produce/adjust project plan.Risk analysis - assess management and technical risks.Engineering - build one or more representations of the application.Construction and release - - to construct, test, install and support the application.Customer evaluation – get customer feedback.
31When to Use the Spiral Model Very large projects.When technical skills must be evaluated at each step.
32Component based development The process to apply when reuse is a development objectiveEvolutionaryCOTS are used to build softwareSteps:Identify candidate componentsDesign each using and model or OO classesComponent integrationArchitectureTesting
33CBDcomponent-based development (CBD) model incorporates many of the iterative characteristics of the spiral model.The main difference is that in CBD the emphasis is on composing solutions from prepackaged software components or classes
34Process ModelsAOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects
35Unified Processa “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML)Tools are used to describe customer views (use cases)Used mainly for OO based methodologiesRuns in phases
36The Unified Process (UP) inceptionPhase 1Communication + PlanningPhase 2Planning + ModelingelaborationinceptionPhase 3Coding, unit test & integrate ComponentsresultPhase 4 Deployment