EstimationRevised Lecture ScheduleRevised Exercise ScheduleObjectives for TodayImportance of EstimationsChallengesProblems with EstimationsGuiding PrinciplesComponents of an EstimationEstimating Development TimeEstimating Personnel CostEstimating EffortBasic Use of Estimation ModelsHow do you Build an Estimating Model?Calibrating an Estimation ModelTop-Down and Bottom-Up EstimationTop-Down versus Bottom-Up (cont’d)Estimation TechniquesExpert EstimatesLines of CodeFunction Point AnalysisSteps in Function Point AnalysisFunction TypesObject Model ExampleMapping Functions to Transaction TypesCalculate the Unadjusted Function Points14 General System Complexity FactorsCalculate the EffortExamplesAdvantages of Function Point AnalysisDisadvantages of Function Point AnalysisCOCOMO (COnstructive COst MOdel)Calculation of EffortCalculation of Effort in Basic COCOMOCalculation of Development TimeBasic COCOMO ExampleOther COCOMO ModelsSteps in Intermediate COCOMOCalculation of Effort in Intermediate COCOMOIntermediate COCOMO: 15 Cost driversCOCOMO IICOCOMO II (cont’d)COCOMO II: Added Cost driversAdvantages of COCOMOProblems with COCOMOOnline Availability of Estimation ToolsAdditional ReadingsSummaryAdditional SlidesGSC Factors in Function Point AnalysisGSC Factors in Function Point Analysis (cont’d)Function Points: Example of a GSC RatingCocomo: Example of Cost Driver RatingEstimation Technique used in the ExerciseSlide 55Example of Complexity and Multipliers (Non-exhaustive)L.W.F FactorBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1EstimationSoftware Engineering IIProject Organization & ManagementBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2Revised Lecture ScheduleApr 21: IntroductionApr 28: Basic ConceptsMay 5: Project CommunicationMay 13: Configuration ManagementMay 19: Build and Release ManagementMay 26: EstimationJune 02: No LectureJune 09: SchedulingJune 16: Guest lectureJune 23: Project OrganizationJune 30: Lifecycle ModelingJuly 7: Agile Project ManagementJuly 14 : Guest LectureJuly 21: Lecture ReviewJuly 30: ExamBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3Revised Exercise Schedule April 22: Icebreaker April 29: Software Project Management Plan (Homework 1: Write an SPMP) May 6: Project Agreement May 13: Software Configuration Management Plan (Homework 2: Write an SCMP) May 20: Continuous Integration (Hudson) May 29: Work Breakdown structures June 5: Estimation June 10: Scheduling June 24: Rationale Management July 1: Student presentations of SPMP July 8: Agile Project Management (Daily Scrum, Planning Poker)Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4Objectives for TodayBuild an understanding of…•Importance of estimations•Different estimation approaches (initial situation, expectations, top-down versus bottom-up…)•Advantages and disadvantages of different approaches•Common pitfallsBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5Importance of Estimations•During the planning phase of a project, a first guess about cost and time is necessary •Estimations are often the basis for the decision to start a project•Estimations are the foundation for project planning and for further actions Estimating is one of the core tasks of project management, but still considered as black magic !Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6Challenges•Incomplete knowledge about:•Project scope and changes•Prospective resources and staffing•Technical and organizational environment•Infrastructure•Feasibility of functional requirements•Comparability of projects in case of new or changing technologies, staff, methodologies•Learning curve problem•Different expectations towards project manager.Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7Problems with Estimations•Estimation results (effort and time) are almost always too high (for political / human reasons) and have to be adjusted in a structured and careful manner•Reviews by experts always necessary•New technologies can make new parameters necessary•Depending on the situation, multiple methods are to be used in combination.Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8Guiding Principles•Documentation of assumptions about•Estimation methodology•Project scope, staffing, technology•Definition of estimation accuracy •Increasing accuracy with project phases •Example: Better estimation for implementation phase after object design is finished•Reviews by experienced colleaguesBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9Components of an Estimation•Cost•Personnel (in person days or valued in personnel cost)•Person day: Effort of one person per working day•Material (PCs, software, tools etc.)•Extra costs (travel expenses etc.)•Development Time•Project duration•Dependencies•Infrastructure•Rooms, technical infrastructure, especially in offshore scenariosThis lectureLecture on Scheduling.Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10Estimating Development TimeDevelopment time often estimated by formula Duration = Effort / People Problem with formula, because:•A larger project team increases communication complexity which usually reduces productivity•Therefore it is not possible to reduce duration arbitrarily by adding more people to a project•In the lectures on organization and scheduling we take a more detailed look at this issue.Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11Estimating Personnel Cost•Personnel type: Team leader, application domain expert, analyst, designer, programmer, tester…•Cost rate: Cost per person per day•2 alternatives for cost rate:•Single cost rate for all types (no differentiation
View Full Document