Not a scheduleProject Schedule for MI Uniform DatabasePlanningScopeHow to learn scopeExample ScopeSlide 7EstimationTask decompositionRUP Task decompositionRUP estimationFunctional DecompositionExample - in PHPExample - reusing OOPSLA systemSchedulingPlanning effort - COCOMOManaging a RUP projectIncremental planningScheduling in XPTracking in XPPlanning XP ProjectPlanning XPCharacteristics of XP PlanningOrderSlide 25Next timeCS427 8-1Not a schedulePreliminary It. Iter. 1 Iter. 2 Iter. 3 Iter. 7 Iter. 8 Iter. 9ElaborationInception Construction TransitionCS427 8-2Project Schedule for MI Uniform Database -Inception Phase (3 weeks) -Form the team. -Choose the software engineering process. -Choose the team members' roles. -Get requirements from customer. -First Iteration (3 weeks) -Decide database storage location. -Select database technology. -Design database. -Implement database. -Second Iteration (2 weeks) -Finalize requirements on interface to the database. -Design structure for interface. -Implement interface to database. -Third Iteration (3 weeks) -Test and debug software. -Design installer for programCS427 8-3PlanningMust know scopeRequires some analysis/designBased on historyAlways riskyCS427 8-4ScopeThe customer’s needsThe business contextThe project boundariesThe customer’s motivationThe likely paths for changeCS427 8-5How to learn scopeWork with customerAsk questionsWork on document togetherDefine problemPropose solutionsEvaluate potential solutionsSpecify first set of requirementsCS427 8-6Example ScopeBuild a web site for Journal of Pattern Languages of Programming. Customers are readers, authors, reviewers, editors. Purpose is to create a literature of pattern languages.Must register to read or post.Readers can see published papers (PDF and HTML), can comment on papers.CS427 8-7Authors can submit paper and can see status of paper.Reviewers can post reviews for papers they are reviewing and can see other reviewsEditors can see all status on all papersCS427 8-8EstimationDepends on scopeDecompose (functional or task)Based on historyUse at least two techniques“Estimation” is riskyCS427 8-9Task decompositionDepends on processXP is based on storiesRUP is based on use cases, architecture, componentsCS427 8-10RUP Task decompositionsystems analyst lists use casesuse case specifier describes them in detailarchitect selects the most importantuse-case engineer makes “realization”component engineer makes analysis classes and packages (groups of classes)… for design, implementation, and testingCS427 8-11RUP estimationMeasure amount of time needed to analyze, design, implement and test a use case.Given number of unanalyzed use cases, estimate total work needed to finish.Given number of analyzed use cases, estimate total work needed to finish.Given number of designed use cases, ...CS427 8-12Functional DecompositionDivide program into piecesEstimate the cost of each pieceLines of code / speed of developersFunction points / speed of developersMan-monthsCS427 8-13Example - in PHPRegistration - 2 man-weeksReaders - 1 man-weekAuthors - 1 man-weekReviewers - 3 man-weeksEditors - 6 man-weeksCS427 8-14Example - reusing OOPSLA systemLearning Java and servlets - 3 weeksChanging registration - 1 man-weekReaders - 1 man-weekEditors - 2 man-weeksCS427 8-15SchedulingPHP - 13 man-weeks / 2 people = 6.5 weeksOOPSLA - 3 weeks for learning + 4 man-weeks / 2 people = 5 weeksOther considerationsAnn and Bob really want to learn Java.Management wants to get into Java.CS427 8-16Planning effort - COCOMOGiven size of system, will predict effort.Size = KLOC, FP, otherEffort in man-months = 2.45 E (Size)PE is product of many factorsproduct complexitypersonnel experiencerequired reliabilityP is between 1.01 and 1.26CS427 8-17Managing a RUP projectPlanningRequirementsArchitectureTransitionIteration 3ElaborationIteration 1 Iteration 5ConstructionIteration 2 Iteration 7Iteration 4 Iteration 6InceptionCS427 8-18Incremental planningMake detailed plan for next iterationMake fuzzy plan for other phasesRepeatedly revise plansRUP has project plan and iteration planCS427 8-19Scheduling in XPZero’th iterationwrite storiesprototype until developers can estimatecreate “system metaphor”Set of stories, with estimate for eachProject velocity - how much work for iterationSchedule - tasks in each iterationCS427 8-20Tracking in XPIterations are fixed length (1,2,3 weeks)Length never varies; work varies.If developers need less or more work, they talk to customer to decide what to move.Project velocity determined by measuring amount of work done.CS427 8-21Planning XP ProjectDevelopers estimate storiesCustomer uses velocity to place stories in groups for each iterationCustomer gives one iteration of stories to developersActual number of stories done during iteration becomes the new velocity.CS427 8-22Planning XP Customer can report long-term schedule to his boss.Customer canadd storiesrevise, remove, reschedule storiesDevelopers only worry about stories in current iteration. (Except for estimation.)CS427 8-23Characteristics of XP PlanningRequires a few iterations to make good estimatesNext iterations are easier to predict than iterations that are far awayEasy to change schedule by changing storiesCS427 8-24OrderBuild system incrementallyWhich part is built first?If A depends on B, build B firstRisky part firstPart you know firstMost valuable to the customer firstCS427 8-25Is XP planning more incremental than RUP planning?How do you estimate in XP?How do you estimate in RUP?CS427 8-26Next timeRead chapter 11 of Hamlet and
View Full Document