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

Slides:



Advertisements
Similar presentations
Effective Test Planning: Scope, Estimates, and Schedule Presented By: Shaun Bradshaw
Advertisements

CIS 376 Bruce R. Maxim UM-Dearborn
FPA – IFPUG CPM 4.1 Rules.
Software Process Models
Metrics for Process and Projects
Software Configuration Management
SE 555 Software Requirements & Specification Requirements Management.
Software project management (intro)
1 PROJECT SIZING AND ESTIMATING - EFFECTIVELY USING FUNCTIONAL MEASUREMENT Southern California Software Process Improvement.
Lecture 6 Estimation Estimate size, then Estimate effort, schedule and cost from size CS 540 – Quantitative Software Engineering.
CS 551 Estimation Fall December QSE Lambda Protocol Prospectus Measurable Operational Value Prototyping or Modeling sQFD Schedule, Staffing,
CS 540 – Quantitative Software Engineering
Lecture 5 Estimation-revised Estimate size, then Estimate effort, schedule and cost from size CS 551.
Software Process and Product Metrics
Copyright © The David Consulting Group, Inc. 1 UNDERSTANDING and EFFECTIVELY USING FUNCTIONAL MEASUREMENT Presented By The David Consulting Group.
Project Cost Estimation
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
1 Bonham, chapter 8 Knowledge Management. 2  8.1 Success Levels  8.2 Externally Focused KM  8.3 Internally Focused KM  8.4 PMO-Supported KM
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Software Cost Estimation 1. APPROACHES Traditional: LOC estimation Modern: Functional Point Analysis 2.
1 © Copyright Q/P Management Group, Inc. All Rights Reserved. Software Estimating with Functional Metrics Scott Goldfarb Q/P Management Group,
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Sizing Your Development Effort Using Function Point Analysis Mike Pasley Logic Central
Software Estimation How hard can it be? Peter R Hill.
Software cost estimation Predicting the resources required for a software development process 1.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
UKSMA 2005 Lessons Learnt from introducing IT Measurement Peter Thomas –
1 Estimation Function Point Analysis December 5, 2006.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 4 Software Metrics
Slide 1 Project Management Chapter 4. Slide 2 Objectives ■ Become familiar with estimation. ■ Be able to create a project workplan. ■ Become familiar.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Quality Software Project Management Software Size and Reuse Estimating.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
Estimating Software Projects & Activity Scheduling in the Dynamic, Multi-Project Setting: Choosing Heuristics Through Deterministic Simulation.
Function Point Analysis. Function Points Analysis (FPA) What is Function Point Analysis (FPA)? Function points are a standard unit of measure that represent.
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
Chapter 3: Software Project Management Metrics
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
Project, People, Processes and Products Project management skills – schedule, monitoring, risk management, … People management skills – delegation, mentoring,
Advanced Software Engineering Lecture 4: Process & Project Metrics.
9/8/99Lecture 51 CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 8, 1999 Marge Holtsinger.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
SCOPE DEFINITION,VERIFICATION AND CONTROL Ashima Wadhwa.
FUNCTION POINT ANALYSIS & ESTIMATION
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Develop Schedule is the Process of analyzing activity sequences, durations, resource requirements, and schedule constraints to create the project schedule.
Estimation Questions How do you estimate? What are you going to estimate? Where do you start?
Internal Logical Files (ILF) An internal logical file (ILF) is a user identifiable group of logically related data or control information maintained within.
THE FAMU-CIS ALUMNI SYSTEM
Alternative Software Size Measures for Cost Estimation
Project Management Chapter 3.
RET Rules One of the following rules applies when counting RETs:
Alternative Software Size Measures for Cost Estimation
Function Point.
Chapter 5: Software effort estimation- part 2
Software Metrics “How do we measure the software?”
COCOMO Models.
Software Sizing and Costing
Software Effort Estimation
Presentation transcript:

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

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?

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

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 ≈ x 4.63 ≈ 9 months

Productivity per staff-month: »50 NCSLOC for OS code (or real-time system) » NCSLOC for intermediary applications (high risk, on-line) » 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

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 NCSLOC/sm Code for reuse3 x code for customized

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

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

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?

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

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

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

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

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

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

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

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

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

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.

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

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

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

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”

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

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 Sub Performance Best Practices Industry Averages Organization Baseline

Rate of Delivery Function Points per Staff Month 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

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

Monitoring improvements Track Progress Rate of Delivery Function Points per Person Month Software Size Second year

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.

Change of scope InitialNew Estimate Function Points Effort (staff months)714+7 Schedule (months) Staffing Levels (FTE)33-0- Production Rate (FP/mo)99-0-

AdditionalAdditional Additional New FP Effort Cost $10k/sm Change in ScopeCount(staff mo.) ($000)___(months) Add Vendor Function Graphical Displays Banking System Mandatory Changes Total157$ 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

Computing Function Points See unctionpoints.htm

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