Software Function, Source Lines Of Code, and Development Effort Prediction: A Software Science Validation ALLAN J. ALBRECHT AND JOHN E.GAFFNEY,JR., MEMBER,IEEE.

Slides:



Advertisements
Similar presentations
The Assembly Language Level
Advertisements

Programming Types of Testing.
Chapter 1 - An Introduction to Computers and Problem Solving
Chapter 2 - Problem Solving
Chapter 2 - Problem Solving
The Little man computer
Software Effort Estimation based on Use Case Points Chandrika Seenappa 30 th March 2015 Professor: Hossein Saiedian.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
1 CHAPTER M4 Cost Behavior © 2007 Pearson Custom Publishing.
Estimating Software Size Part I. This chapter first discuss the size estimating problem and then describes the PROBE estimating method used in this book.
STATISTIC & INFORMATION THEORY (CSNB134)
Page 1 COCOMO Model The original COCOMO model was first published by Barry Boehm in 1981 at CSE Center for Software Engineering. This is an acronym derived.
Fundamentals of Statistical Analysis DR. SUREJ P JOHN.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
Computer Programming TCP1224 Chapter 2 Beginning the Problem-Solving Process.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Function Point Analysis What is Function Point Analysis (FPA)? It is designed to estimate and measure the time, and thereby the cost, of developing new.
Software Cost Estimation 1. APPROACHES Traditional: LOC estimation Modern: Functional Point Analysis 2.
Software cost estimation Predicting the resources required for a software development process 1.
6-1 Chapter 6 - Languages and the Machine Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring Computer.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 23 Instructor Paulo Alencar.
AEG recommendations on Non-life insurance services (Issue 5) Workshop on National Accounts December 2006, Cairo 1 Gulab Singh UN STATISTICS DIVISION.
Slides to accompany Weathington, Cunningham & Pittenger (2010), Chapter 3: The Foundations of Research 1.
Software Metrics (Part II). Product Metrics  Product metrics are generally concerned with the structure of the source code (example LOC).  Product metrics.
Control Structures (A) Topics to cover here: Introduction to Control Structures in the algorithmic language Sequencing.
5-1 Chapter 5 - Languages and the Machine Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles.
C++ Basics C++ is a high-level, general purpose, object-oriented programming language.
Irwin/McGraw-Hill © Andrew F. Siegel, 1997 and l Chapter 17 l Chi-Squared Analysis: Testing for Patterns in Qualitative Data.
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
Measure18 1 Software Measurement Halstead’s Software Science.
Chapter One An Introduction to Programming and Visual Basic.
Sampling Design and Analysis MTH 494 Lecture-22 Ossam Chohan Assistant Professor CIIT Abbottabad.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Improved Video Categorization from Text Metadata and User Comments ACM SIGIR 2011:Research and development in Information Retrieval - Katja Filippova -
540f07cost12oct41 Reviews Postmortem u Surprises? u Use white background on slides u Do not zip files on CD u Team leader should introduce team members.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
Copyright © 1998, Triola, Elementary Statistics Addison Wesley Longman 1 Assumptions 1) Sample is large (n > 30) a) Central limit theorem applies b) Can.
Chapter 2 - VB 2005 by Schneider- modified by S. Jane '081 Chapter 2 - Problem Solving 2.1 Program Development Cycle 2.2 Programming Tools.
LESSON 1 Introduction to Programming Language. Computer  Comprised of various devices that are referred to as HARDWARE.  The computer programs that.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
GEOMETRY LESSON Make a list of the positive even numbers. 2. Make a list of the positive odd numbers. 3. Copy and extend this list to show the.
1 A latent information function to extend domain attributes to improve the accuracy of small-data-set forecasting Reporter : Zhao-Wei Luo Che-Jung Chang,Der-Chiang.
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Cost9b 1 Living with Function Points Bernstein and Lubashevsky Text pp
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Cost23 1 Question of the Day u Which of the following things measure the “size” of the project in terms of the functionality that has to be provided in.
Operating System Interface between a user and the computer hardware
Lecture 2 Introduction to Programming
C++ Programming: From Problem Analysis to Program Design
Function Point Analysis
Lecture 17 Software Metrics
Software Development & Project Management
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Chapter 5: Software effort estimation- part 2
Software Metrics “How do we measure the software?”
Chapter 1 Introduction(1.1)
COCOMO Models.
Software Effort Estimation
Presentation transcript:

Software Function, Source Lines Of Code, and Development Effort Prediction: A Software Science Validation ALLAN J. ALBRECHT AND JOHN E.GAFFNEY,JR., MEMBER,IEEE published in November 1983 Presented By: Mohammod Saifur Rahman

The Problem: Predicting the size of a programming system and its development effort is one of the most important problems faced by the developers. The Solution: In this article, Albrecht claims that this prediction can be made by estimating the amount of functions a software is to perform. Albrecht then adds that this “amount of functions” can be estimated by the amount of data used or to be generated by the software.Introduction

The amount of function is measured by “Function Points”, which is a weighted sum of number of (1) inputs, (2) outputs, (3) master files and (4) inquiries provided to or generated by the software. Amount of function

Function points background 1)Albrecht has employed a methodology for validating estimates of the amount of work-effort (which he calls work-hours) needed to design and develop the software. 2)He listed and counted the number of external user inputs, inquires, outputs and master files to be delivered by the development project. 3)Each of these categories of input and output counted individually and weighted by numbers, which reflected the relative value of the function to the user/customer. 4)The weighted sum of inputs and outputs is called “Function Points”.

Reasons for using function points a)There is a high degree of correlation: - between function points and SLOC, and - between function points and work-effort to develop the software. b)The function points measure is thought to be more useful than SLOC as a prediction of work-effort because function points are relatively easily estimated from a statement of the requirements.

Reasons for using function points cont’d c)Also, unlike SLOC, function points can be developed at an early stage of the development process, because of the availability of needed information from the basic requirements and user’s external view. d)Function points can be used to develop a general measure of development productivity (e.g., function points/work-month, work hours/function point) that may be used to demonstrate productivity trends.

Types of work effort estimates a)Primary or Task Analysis Estimate: This is always based on an analysis of the tasks to be done. Thus it provides the project team with an estimate and a work plan. b)Formula Estimate: These estimates are based solely on counts of inputs and outputs of the program to be developed, and not on a detailed analysis of the tasks to be done. This article discusses this second type of estimates.

Software science background Halstead developed a Software Length Equation, to estimate the number of tokens or symbols in a program, as follows: N = n log 2 n + m log 2 m Where N is the number of tokens or symbols constituting a program, n is the operator vocabulary size, and m is the operand or data label vocabulary size. Thus the number of tokens in a program consisting of a several functions or procedures is best found by applying the size equation to each function procedure individually and summing the results.

Software science background cont’d Gaffney applied the software length equation to a single address machine in the following way: - A program consists of data plus instructions. - A sequence of instructions can be thought of as a string of tokens. The op.codes tokens may be referred to as operators and data label tokens as operands. - For e.g in the instruction “LA X”, which means load accumulator with the content of location X, “LA” is the operator and “X” is the operand.

Software science background cont’d Gaffeny analyzes that for single address machine level code, one would expect twice as many tokens (N) as instructions (I); that is: I = 0.5 N Gaffeny ‘s work presumed that the number of unique instruction types (n), or operator as well as the number of unique data labels (m) or operand vocabulary size used, was known.

Software science background cont’d However, the article states that in the previous equation, number of operators (n) need not be known, instead an average figure for n can be used, and thus only the number of data labels (m) will determine the number of instructions, hence the size of the software.

Software science background cont’d This statement is also supported by Christiansen’s claim that program size is determined by the data that must be processed by the program. Thus the data label (both inputs and outputs) size can be used to estimate the size of the software.

DP Service Project Data Table I presents data on 24 applications developed by DP services organization, as follows: 1. The counts of 4 types of external input/output (In, Out, File, Inquiry) for the applications as a whole. 2. The number of function points for each program. 3. The number of SLOC that implemented the function required. 4. The number of work hours required to design, develop and test the application.

Selection Of Estimating Formulas Using the DP Services data estimate formulas were explored as functions of 9 variates: 1. Function points, 2. Function Sort Content, 3. Function potential Volume, 4. Function Information Content, 5. I/O Count, 6. Sort Count, 7. Count Information Content, 8. Source Lines of COBOL, and 9. Source Lines Of PL/1

Selection of Estimating Formula Cont’d Albrecht uses the following average weights to determine Function points Number of inputs X 4 Number of Outputs X 5 Number of Inquiries X 4 Number of Master files x 10 As an example of the calculation, consider the data for the first application (in Table I). The number of function points calculated is equal to: F=(25 X4)+(150 x 5) +(75 X 4) +(60 x 10)=1750

Development And Application of Estimating Formulas In this section, the article provides a number of formulas for estimating the following: work hours and SLOC, as functions of function points. 1.Correlations were performed on the combinations of the 9 independent variates mentioned earlier. 2.The estimating model relating function points to PL/1 SLOC was found to be quite different from model of Cobol. More Cobol SLOC are required to deliver same amount of function points than PL/1!

Development And Application of Estimating Formulas cont’d 3.Also Twice as much work-effort is required to produce a SLOC of PL/1 as is required to produce that of Cobol. Therefore the article advises the following: Keep the languages (e.g. PL/1 or COBOL) separate in estimating models based on SLOC.

Validation The previous sections and related figure and tables in the article, developed several formulas and explored theirs consistency within the DP services data that were used to develop the formulas. These formulas then are also validated against three different development sites. Table V presents four formulas developed from the DP services data and the statistics of their validation on the data from the other three sites. The very high values of sample correlation between the estimated and actual SLOC for the 17 validation sites, listed in Table V (i.e. > 0.92) are most encouraging!

Conclusion  Both the development work-hours and application size in SLOC are strong functions of function points and input/output data item count  The observations suggest a two step estimate validation process: Step 1- Early in development cycle, use function points or I/O count to estimate the SLOC to be produced. Step 2- Use this early estimated SLOC to estimate the work effort.  Finally, The approach described in the article can provide a bridge between function points and SLOC until function points and software science have a broader supporting base of productivity data.

Thank You!