Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 2 Estimation-revisited Estimate size, then Estimate effort, schedule and cost from size Reuse, reuse, reuse CS 552.

Similar presentations


Presentation on theme: "Lecture 2 Estimation-revisited Estimate size, then Estimate effort, schedule and cost from size Reuse, reuse, reuse CS 552."— Presentation transcript:

1 Lecture 2 Estimation-revisited Estimate size, then Estimate effort, schedule and cost from size Reuse, reuse, reuse CS 552

2 Time Staff-month T theoretical 75% * T theoretical Impossible design Linear increase Boehm: “A project can not be done in less than 75% of theoretical time” T theoretical = 2.5 * 3 √staff-months But, how can I estimate staff months?

3 Sizing Software Projects l Effort = (productivity) -1 (size) c productivity ≡ staff-months/kloc size ≡ kloc Staff months Lines of Code or Function Points 500

4 Understanding the equations Consider a transaction project of 38,000 lines of code, what is the shortest time it will take to develop? Module development is about 400 SLOC/staff month Effort = (productivity) -1 (size) c = (1/.400 KSLOC/SM) (38 KSLOC) 1.02 = 2.5 (38) 1.02 ≈ 100 SM Min time =.75 T= (.75)(2.5)(SM) 1/3 ≈ 1.875(100) 1/3 ≈ 1.875 x 4.63 ≈ 9 months

5 Productivity per staff-month: »50 NCSLOC for OS code (or real-time system) »250-500 NCSLOC for intermediary applications (high risk, on-line) »500-1000 NCSLOC for normal applications (low risk, on- line) »10,000 – 20,000 NCSLOC for reused code Reuse note: Sometimes, reusing code that does not provide the exact functionality needed can be achieved by reformatting input/output. This decreases performance but dramatically shortens development time. Bernstein’s rule of thumb

6 Productivity: Measured in 2000 Classical rates (customized)130 – 195 NCSLOC/sm Evolutionary or Incremental approaches (customized) 244 – 325 NCSLOC/sm New embedded flight software (customized) Reused Code 17 – 105 NCSLOC/sm 1000-2000 NCSLOC/sm Code for reuse3 x code for customized

7 Expansion Factor Technology Change: Regression Testing 4GLSmall Scale Reuse Machine Instructions High Level Languages Macro Assemblers Database Managers On-Line Dev PrototypingSubsec Time Sharing Object Oriented Programming Large Scale Reuse Order of Magnitude Every Twenty Years Each date is an estimate of widespread use of a software technology The ratio of Source line of code to a machine level line of code Trends in Software Expansion

8 QSE Lambda Protocol l Prospectus l Measurable Operational Value l Prototyping or Modeling l sQFD l Schedule, Staffing, Quality Estimates l ICED-T l Trade-off Analysis

9 Software Engineer’s Challenges l Is it feasible? l How much will it cost? l When will I get it? l What is the plan for producing it? l What is the basis for you answers?

10 Function Point Method l External Inputs l External Outputs l External Inquiries l Internal Logical Files l External Interface Files External Input External Inquiry External Output Internal Logical Files External Interface File Five key components are identified based on logical user view Application

11 Complexity Record Element Types Data Elements (# of unique data fields) or File Types Referenced Low Average High Low Average High Average High Components: Low Avg. High Total Internal Logical File (ILF) __ x 7 __ x 10 __ x 15 ___ External Interface File (EIF) __ x 5 __ x 7 __ x 10 ___ External Input (EI) __ x 3 __ x 4 __ x 6 ___ External Output (EO) __ x 4 __ x 5 __ x 7 ___ External Inquiry (EQ) __ x 3 __ x 4 __ x 6 ___ Total Unadjusted FPs Data Relationships Each identified component is assigned a Function Point size value based upon the make-up and complexity of the data 13 3 Calculations

12 When to Count CORRECTIVE MAINTENANCE PROSPECTUS ACHITECTURE TESTING DELIVERY REQUIREMENTS IMPLEMENTATION SIZING Change Request Change Request SIZING

13 Definition: Indicates the border between application and external systeems or users Functionality: What Does a User See? + Data going into an application -- inputs + Data coming out of an application -- outputs, inquiries + Data, inside or outside an application -- logical files Data Inputs Outputs Application References/Feeds Identify the counting boundary

14 An External Input (EI) processes data that comes from outside the application’s boundary. 1.0 Transaction ON-LINE ENTRY Multi-Screen UPDATE CUSTOMER INFORMATION CUSTOMER INFO FILE Definition of an input External Input

15 Definition of an output An External Output (EO) generates data that is sent outside the application boundary. END USER Summary SUMMARIZE CUSTOMER INFO 1.0 CUSTOMER INFO FILE External Output

16 Definition of an inquiry An External Inquiry (EQ) is an output that results in data retrieval. The result contains no derived data. DISPLAY CUSTOMER INFO 1.0 END USER Selected Customer Info CUSTOMER INFO FILE External Inquiry

17 Definition of a file An Internal Logical File (ILF) is a user-identifiable group of logically related data that is maintained within the boundary of the application. UPDATE CUSTOMER INFO 1.0 CUSTOMER INFO FILE END USER Customer Info Updated Customer Info Internal Logical File

18 Definition of a interface file An External Interface File (EIF) is a user-identifiable group of data referenced by the application, but maintained within the boundary of another application. UPDATES ZIP CODE TABLE END USER 1.0 VALIDATE ZIP CODE & UPDATE CUSTOMER INFO CUSTOMER INFO FILE UPDATES VALID ZIP CODES External Interface File

19 Case History: Prospectus for Plastic Molding Inc Provide a system to inventory and control plastic molds for a variety of customers. Please track molds on hand that can re reused, parts and customer’s bill of materials. Employees need to get data from the molds inventory and form the parts inventory. Customers need to be able to modify their bills of materials. Vendor supply system needs to input data and the system needs to supply parts lists for a mold to the Inventory Manager who may modify them. The system will ncrease mold reuse by 30%. The number of customers is growing. Please use a web-based SOA system that is extendable.

20 Use Cases l Actors Customer Employees Vendor System l Three Logical Files Parts List Mold List Bills of Materials Change Bill of Materials View Bill of Materials By Customer Create & Submit Parts List Change Bill of Materials Other Use Cases: 1. Parts update 2. Parts Inquiry 3. Mold Inquiry

21 Logical view EMPLOYEE LIST OF MOLDS WORK CENTERS PARTS PLANT MOLDS PLANT INFORMATION CENTER EMPLOYEE BILL OF MATERIALS PARTS LISTING INVENTORY MANAGER ORDER PARTS & CHANGE MOLD INVENTORY CUSTOMER can change BILL OF MATERIALS 2 External Inquiries 3 Internal Logical Files 1 External Output Interfaces VENDOR INFORMATION 2 External Input

22 Components:LowAvg.High Total Internal Logical File (ILF)0 x 7 2x10 1x 15 = 35 External Interface File (EIF) 0x 5 0x 70x 10 = 0 External Input (EI)0 x 30x4 2x 6 = 12 External Output (EO) 1x 40X 50x7 = 4 External Inquiry (EQ) 0x 3 2x 40x 6 = 8 Total 59 COMPONENTS ARE ASSESSED BASED UPON COMPLEXITY: Data Element Types (Fields or Attributes) File Types Referenced (ILFs or EIFs) Record Element Types (Data Sub-Groups) Function Point Count Complexity DETERMINE THE FUNCTION POINT COUNT

23 Downside l Function Point terms are confusing l Too long to learn, need an expert l Need too much detailed data l Does not reflect the complexity of the application l Does not fit with new technologies l Takes too much time l “We tried it once”

24 Risk factors Estimates will also vary based upon a variety of risk factors: Technology Applied such as tools, languages, reuse, platforms Process/Methodology including tasks performed, reviews, testing, object oriented Customer/User and Developer skills, knowledge, experience Environment including locations, office space System Type such as information systems; control systems, telecom, real-time, client server, scientific, knowledge-based, web Industry such as automotive, banking, financial, insurance, retail, telecommunications

25 Baseline current levels of performance PERFORMANCE PRODUCTIVITY CAPABILITIES PERFORMANCE SOFTWARE PROCESS IMPROVEMENT TIME TO MARKET EFFORT DEFECTS MANAGEMENT SKILL LEVELS PROCESS TECHNOLOGYPRODUCTIVITY IMPROVEMENT INITIATIVES / BEST PRACTICES RISKS MEASURED BASELINE 0.00 5.00 10.00 15.00 20.00 25.00 30.00 35.00 0100200400800160032006400 Sub Performance Best Practices Industry Averages Organization Baseline

26 Rate of Delivery Function Points per Staff Month 0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 024681012141618202224262830323436 Software Size Establish a baseline Performance Productivity A representative selection of projects is measured Size is expressed in terms of functionality delivered to the user Rate of delivery is a measure of productivity Organizational Baseline 9

27

28 Using the equations For a 59 funciton point project to be wirtten in C++, we need to write 59 x 53 = 3127 SLOC Effort = (productivity) -1 (size) c = [ 1/(.9 x 53 KSLOC/SM)] (3.127 KSLOC) 1.02 = 2.1 (3.127 ) 1.02 ≈ 7 SM

29 Monitoring improvements Track Progress Rate of Delivery Function Points per Person Month 0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 024681012141618202224262830323436 Software Size Second year

30 Feedback SIZE REQUIREMENT Analyst ESTABLISH PROFILE SELECT MATCHING PROFILE GENERATE ESTIMATE WHAT IF ANALYSIS ACTUALS Counter Project Manager SoftwarePM / User Metrics DataBase Plan vs. Actual Report Profile Size Time The estimate is based on the best available information. A poor requirements document will result in a poor estimate Accurate estimating is a function of using historical data with an effective estimating process.

31 Change of scope InitialNew Estimate Function Points60 120 Effort (staff months)714+7 Schedule (months) 3 5 +2 Staffing Levels (FTE)33-0- Production Rate (FP/mo)99-0-

32 AdditionalAdditional Additional New FP Effort Cost Schedule @ $10k/sm Change in ScopeCount(staff mo.) ($000)___(months) Add Vendor Function105502.0 Graphical Displays20.55.4 Banking System20.55.4 Mandatory Changes1110.2 Total157$70 3.0 mos. Communicating impact and options OPTIONS 1. Increase funding level and schedule 2. Simplify Function 2. Reduce functionality, or do not accept change 3. Trade off quality and maintenance costs for schedule 4. Delay delivery of change 5. Add one more person

33 Computing Function Points See http://www.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/artan/f unctionpoints.htm

34 Specification for CS 552 Development Plan l Project l Feature List l Development Process l Size Estimates l Staff Estimates l Schedule Estimates l Organization l Gantt Chart


Download ppt "Lecture 2 Estimation-revisited Estimate size, then Estimate effort, schedule and cost from size Reuse, reuse, reuse CS 552."

Similar presentations


Ads by Google