2 What 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!!
3 Software 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
4 Generic Framework activities CommunicationGet to know your Customer and their processesIdentify stakeholdersRequirement elicitation
5 Generic Framework activities PlanningPlan the workIdentify resourcesIdentify tasksSet the schedule
6 Generic Framework activities ModelingAnalysis of requirementsDesignBlue print for customer and developers communications
8 Generic View of SE SW Engineering is the: Analysis, Design, Construction,Verification and.Management of Software.
9 SW 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
10 Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models
11 SW 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.
12 SW 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
13 The 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.
14 Waterfall 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.
15 When to use the Waterfall Model Simple ProjectsLimited amount of timeRequirements are well understoodWe can use it for our Class Project.
16 Incremental 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
17 Incremental 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
18 The Incremental Model Communication Planning Modeling Construction Deployment
19 When 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
20 The 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
22 Evolutionary Process Models Core requirements are well understood but additional requirements are evolving and changing fastTime-to-MarketIterative – software gets more complex with each iterationPrototypeSpiralConcurrent
23 Evolutionary SW Process Models AdvantagesDo not require full knowledge of the requirementsIterativeDivide project into buildsAllows feedback, show user something soonerDevelop more complex systems
24 Prototyping 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.
26 When 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.
27 Prototype 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.
28 Spiral ModelIterative (like Prototype) and controlled (like waterfall) model.Software is developed using evolutionary releasesSoftware complexity increase with each release
29 Spiral 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.
31 When to Use the Spiral Model Very large projects.When technical skills must be evaluated at each step.
32 Component 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
33 CBDcomponent-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
34 Process ModelsAOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects
35 Unified 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
36 The Unified Process (UP) inceptionPhase 1Communication + PlanningPhase 2Planning + ModelingelaborationinceptionPhase 3Coding, unit test & integrate ComponentsresultPhase 4 Deployment