A FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING



Similar documents
MEASURING THE SIZE OF SMALL FUNCTIONAL ENHANCEMENTS TO SOFTWARE

Function Point Measurement from Java Programs

FIXED INCOME ATTRIBUTION

Full Function Points for Embedded and Real-Time Software. UKSMA Fall Conference

A performance analysis of EtherCAT and PROFINET IRT

Options on Stock Indices, Currencies and Futures

Derived Data in Classifying an EO

8. Exception Handling

Maintenance Scheduling Optimization for 30kt Heavy Haul Combined Train in Daqin Railway

Financial Services [Applications]

A NOVEL ALGORITHM WITH IM-LSI INDEX FOR INCREMENTAL MAINTENANCE OF MATERIALIZED VIEW

1. Overview of Nios II Embedded Development

Using quantum computing to realize the Fourier Transform in computer vision applications

Measuring Software Functionality Using Function Point Method Based On Design Documentation

Copyright 2005 IEEE. Reprinted from IEEE MTT-S International Microwave Symposium 2005

FUNCTION POINT ANAYSIS DETERMINING THE SIZE OF ERP IMPLEMENTATION PROJECTS By Paulo Gurevitz Cunha

8. Hardware Acceleration and Coprocessing

SIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAGEMENT SYSTEM

1. Overview of Nios II Embedded Development

FUNCTION POINT ANALYSIS: Sizing The Software Deliverable. BEYOND FUNCTION POINTS So you ve got the count, Now what?

How To Write A Paper On The Brain Reaction Index During Mental Calculation Rom The Ew

Integrated airline scheduling

User Guide. Introduction. HCS12PLLCALUG/D Rev. 0, 12/2002. HCS12 PLL Component Calculator

The Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy

2. Developing Nios II Software

APPLYING FUNCTION POINTS WITHIN A SOA ENVIRONMENT

Calculation of the Functional Size and Productivity with the IFPUG method (CPM 4.3.1). The DDway experience with WebRatio

Time-Optimal Online Trajectory Generator for Robotic Manipulators

7. Mentor Graphics PCB Design Tools Support

Using Productivity Measure and Function Points to Improve the Software Development Process

Analysis of Crosscutting across Software Development Phases based on Traceability

!!! Technical Notes : The One-click Installation & The AXIS Internet Dynamic DNS Service. Table of contents

How to Avoid Traps in Contracts for Software Factory Based on Function Metric

The Tangled Web of Agricultural Insurance: Evaluating the Impacts of Government Policy

Theoretical Computer Science

THE EFFECT OF THE SPINDLE SYSTEM ON THE POSITION OF CIRCULAR SAW TEETH A STATIC APPROACH

Introduction to Function Points

Call Tracking & Google Analytics Integration

2. Getting Started with the Graphical User Interface

Section II. Hardware Abstraction Layer

Mining the Situation: Spatiotemporal Traffic Prediction with Big Data

Pricing of Software Services

Frequency Range Extension of Spectrum Analyzers with Harmonic Mixers

A Specific Effort Estimation Method Using Function Point

A logistic regression approach to estimating customer profit loss due to lapses in insurance

The Calculation of Marginal Effective Tax Rates

Digital Systems Design Based on DSP algorithms in FPGA for Fault Identification in Rotary Machines

Combinational-Circuit Building Blocks

Rainfall generator for the Meuse basin

Fundamentals of Function Point Analysis

Research on On-card Bytecode Verifier for Java Cards

Working Paper What happened to foreign outsourcing when firms went online?

Mobile Applications, Function Points and Cost Estimating. Tammy Preuss International Cost Estimation & Analysis Association Conference June 11, 2013

THE MODELING AND CALCULATION OF SOUND RADIATION FROM FACILITIES WITH GAS FLOWED PIPES INTRODUCTION

An Epicor White Paper. Improve Scheduling, Production, and Quality Using Cloud ERP

Patch management is a crucial component of information security management. An important problem within

Staged Configuration Using Feature Models

Is the trailing-stop strategy always good for stock trading?

The Complex Step Method Applied to Waterflooding Optimization

Measuring ALL the Software not just what the Business Uses

FACTOR COMPONENTS OF INEQUALITY. Cecilia García-Peñalosa and Elsa Orgiazzi GINI DISCUSSION PAPER 12 JULY 2011 GROWING INEQUALITIES IMPACTS

Why SNAP? What is SNAP (in a nutshell)? Does SNAP work? How to use SNAP when we already use Function Points? How can I learn more? What s next?

UIC at TREC 2010 Faceted Blog Distillation

Analysis and Optimization of Mobile Business Processes

A LabVIEW Based Experimental Platform for Ultrasonic Range Measurements

UNIVERSITY OF MICHIGAN

University education in Italy

A Differential Evolution Approach for Software Testing Effort Allocation

Regulations on E-Commerce Consumer Protection Rules in China and Europe Compared Same Same but Different?

GUIDE TO LISTING ON NASDAQ OMX FIRST NORTH

Development and application of lightweight cloud platform workflow system

WASHINGTON, THURSDAY, MARCH 15, 2001

Counting Infrastructure Software

AM Receiver. Prelab. baseband

Social Interactive Media Tools and Knowledge Sharing: A Case Study

Automated Function Points in a Continuous Integration Environment (Agile AFP)

CREATING MENTOR NETWORKS IN THE OSCE REGION: A Practical Roadmap. Organization for Security and Co-operation in Europe

Risk Arbitrage Performance for Stock Swap Offers with Collars

A machine independent fortran data management software system for scientific and engineering applications

90 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 11, NO. 1, MARCH Proactive Workload Management in Hybrid Cloud Computing

An Expert Estimator Tool to Estimate Project Cost and Risk with early stage of function points

Effort and Cost Allocation in Medium to Large Software Development Projects

High School Students Who Take Acceleration Mechanisms Perform Better in SUS Than Those Who Take None

System-Level Security for Network Processors with Hardware Monitors

Factors Affecting the Adoption of Global Sourcing: A Case Study of Tuskys Supermarkets, Kenya

Course Information Form (CIF) - February QAP0021 Page 1 of 11

Abstract. Introduction

Accommodating Transient Connectivity in Ad Hoc and Mobile Settings

The top twenty Cloud companies in the UK

How to Avoid Traps in Contracts for Software Factory Based on Function Point Metric

Keeping the Dream Scholarship 2015 For 2014 Cal-SOAP Scholarship Recipients

New Trend In Classification Of Hazard Of Explosive Atmosphere In Laboratory Workplaces

BotCop: An Online Botnet Traffic Classifier

Sizing Logical Data in a Data Warehouse A Consistent and Auditable Approach

FAST Function Points. David Seaver Director Estimation and Measurement Fidelity Investments

Why focus on assessment now?

An Evaluation of Functional Size Methods and a Bespoke Estimation Method for Real-Time Systems

2D Shape Transformation Using 3D Blending

Exchange Rate Volatility and the Timing of Foreign Direct Investment: Market-seeking versus Export-substituting

Using COSMIC-FFP to Quantify Functional Reuse in Software Development

Transcription:

A FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING FROM SOURCE CODE Vinh T. Ho and Alain Abran Sotware Engineering Management Research Laboratory Université du Québec à Montréal (Canada) vho@lrgl.uqam.ca abran.alain@uqam.ca ABSTRACT The paper proposes a general ramework to build a model or automatic Function Point Analysis (FPA) rom the source code o COBOL system using program slicing technique. The COBOL system source code is scanned by the model to produce Function Point counts. The application s source iles are used to deine the application s boundary or the count. The model takes into account the structure o the COBOL language to identiy physical iles and transactions. Reserved words as FDs, ile input/output statements (READ and WRITE) and user interace and data manipulation statements (ACCEPT, DISPLAY and MOVE) are used as basic inormation or program slicing technique to identiy candidate physical iles and transactions. Some heuristic rules will be proposed in order to map candidate physical iles and transactions into candidate logical iles and transactions. These candidate iles and transactions are then assessed with regards to the IFPUG identiying rules in order to identiy data unction types and transactional unction types to be counted. The proposed ramework helps to build models or automating Function Point Analysis rom source code in compliance with the IFPUG Counting Practices Manual. I INTRODUCTION I.1 Automation o Function Points counting: scope and objectives Function Point Analysis (FPA) is the measurement o the unctional size o sotware. Function points are now being used or sotware quality studies, sotware contract management, business process re-engineering, and sotware portolio control (Jones, 1995). The latest release o the method is the version 4.1 o the Counting Practices Manual (IFPUG, 1999). The objectives o Function Point Analysis (IFPUG, 1994) are: to measure what the user requested and received, to measure independently o the technology used or implementation, to provide a sizing measure to support quality and productivity analysis, to provide a vehicle or sotware estimation, and to provide a normalization actor or sotware comparison. The process o Function Points counting is a multi-step manual process that requires a labor intensive and time consuming work and expertise o the counter. Moreover, it depends on availability and quality o documentation related to the application to be counted. It is very useul that some type o sotware support should be possible and available to count Function Points. Our research is interested in developing a tool that can automatically count Function Points rom the source code o COBOL systems. IFPUG deines automatic Function Point counting as: Where the system counts the unction points automatically based on stored descriptions o the application unctions, records the count and perorms appropriate calculations. The stored descriptions are reerred to as elements in the IFPUG case study no. 1 (IFPUG, 1994). The deinition emphasizes on the act that these elements must be stored on some computer-readable medium. Examples o descriptions in the case study no1 are: user requirements, database physical structure, interaces and reports layout. Application unctions represent a sub-set o all user requirements by representing the user practices and procedures that the sotware must perorm to ulill the users needs. Appropriate calculations are reerred to those based on the rules o the Counting Practices Manual. That is to obtain an accurate count with regards to the IFPUG Counting Practices Manual (IFPUG CPM). International Workshop on Sotware Measurement (IWSM 99) September 8-10, 1999 Lac Supérieur, Canada

I.2 Literature review on automatic Function Point counting rom source code The ability to count unction point directly rom source code is quite interesting or large organizations that spend the majority o their time maintaining sotware. One o the most pervasive problems while maintaining sotware systems is that most o the programs being maintained are poorly documented and unstructured. As a result, to manually apply Function Point Analysis to these programs would not be realistic in terms o time, cost and accuracy. However, there are ew attempts concerning automation o Function Point counting rom source code (Couturier, 1993; Mendes, 1996; Edge, 1997; April, 1997). In their theoretical research on automation o IFPUG unction point analysis method, Paton and Abran (1995) mentioned that the method lacks a ormal basis since the object to be counted is nowhere deined in a precise manner. It is clear rom the IFPUG CPM that the object to be counted must include such things as ile, records, ields, processes and that it must be known which process read and write which ields in which records in which iles. They proposed a ormal notation or the rules o unction point analysis. By breaking unction point counting process, they igured out 17 tasks in counting unction points. It is indicated that twelve tasks could be programmed while ive other tasks need user s judgment. In (Paton and Abran, 1997), a structured analysis o the counting rules was presented using the speciication techniques o decision tables or the tasks that could be automated. It is important to mention that all proposed decision tables are justiied by reerring to the IFPUG CPM. The analysis suggests the ollowing our applications: reviewing existing tools based on IFPUG CPM 4.0, building a validation protocol to acilitate the veriication o tools that claim to have automated the unction point counting process, extending the rules to include uncodiied practice used by expert counters, and building a tool with which a standard body can investigate the eect o changing rules. Although their research has not yet reach the construction o a prototype, their works are the irst detail theoretical research published in the literature concerning automation o unction point counting process. It is worth noting that their works ully support the IFPUG counting rules. Edge et al (1997) have proposed a model as a solution to the problem o automating a unction point approximation count or COBOL legacy system source code. As they indicated, an important dierence between this automated process and manual counting is that the automatic model cannot readily identiy individual logical transactions. It is mainly or this reason that the model output is termed a unction point approximation rather than a unction point count. This model addresses both IFPUG and Mk II unction point counting methods. Note that this work is still in progress. April et al (1997) have proposed that there would be a beneit in developing models that can be easily automated, in particularly that would take into account the CPM counting concepts and rules. The CPM rules are expressed in natural language and must be subject to ormal deinition in order to automate them. Based on the semiormal representation proposed by Paton and Abran (1995), they have put orward an extension o the ormalism to include a logical to physical translation. Using this logical representation, IFPUG counting rules could be ormalized while assuming that the primitives o the FPA (i.e. ile and process) were identiied. An example o ormalization o our CPM identiying rules associated to an external inquiry (EQ) was presented. Reverse engineering techniques will be used to identiy the primitives (i.e., ile and process) o the FPA rom the source code. This work is original in the sense that it proposed an approach or automation o unction point counting process that aims to ully support the IFPUG concepts and rules. While this approach appears as a promising research direction still a large amount o theoretical and practical works, as to reine the ormal representation and to select candidate reverse engineering techniques, need to be done beore a tool can be developed. Sotware reverse engineering technologies are a promising basis or building tools in order to automate Function Point counting rom source code. In the next section, we propose using program slicing technique to identiy automatically both data unction types and transactional unction types rom source code o COBOL system. 249

II AUTOMATIC FUNCTION POINT ANALYSIS USING PROGRAM SLICING TECHNIQUES II.1 IFPUG Function Point Counting Process The unction point measurement includes ive major visible externally components o sotware applications: inputs, outputs, inquiries, logical iles, and interaces. The Counting Practices Manual published by the IFPUG (IFPUG, 1994) provides a method with a set o rules to measure unctional size rom the user point o view. The method can be devised in ive major steps: determine the type o the count, identiy the boundary o the count, determine the unadjusted unction point count, determine the value adjustment actor, compute the inal adjusted count. Most counting time and eort are spent in the third step: determine the unadjusted unction point count (Fig. 1), especially to identiy data and transactional unction types. Once identiied the counting procedure is quite straightorward. Count Data Function Types Determine Type o Count Identiy Counting Boundry Count Transactional Function Types Determine Unadjusted Function Point Count Determine Final Adjusted Function Point Count Determine Value Adjustment Factors Figure 1. Function Point counting process (IFPUG, 1994) The CPM provides a set o rules to identiy each o ive major components that comprise an application: internal logical ile (ILF), external logical ile (ELF), external input (EI), external output (EO) and external inquiry (EQ). Our main interest is to propose a ramework based on program slicing techniques to identiy automatically data and transactional unction types rom source code. II.2 Background o program slicing technology Program slicing is a program-analysis technique that extracts rom program statements relevant to a particular computation. Such a particular computation is reerred as a slicing criterion and is typically speciied by a pair (program point, set o variables). The parts o a program that have a direct or indirect eect on the computation at a slicing criterion constitute the program slice with respect to that criterion. The task o computing program slices is called program slicing (Tip, 1995). For example, a slice can answer the question What program statements potentially aect the computation o variable v at statement s? (Binkley and Gallagher, 1996). There are various slightly dierent notions o program slices as well as a number o methods to compute slices (Tip, 1995). Two kinds o program slices: static and dynamic. The ormer is computed without making assumptions regarding a program s input whereas the latter relies on some speciic input cases. A backward slice o a program with respect to a set o program elements S is the set o all programs elements that might aect the values o the variables used at members o S. A orward slice with respect to S is the set o all program elements that might be aected by the computations perormed at members o S. A chop is a kind o iltered slice that answers questions o the orm Which program elements serve to transmit eects rom a given source element s to a given target element t? Applications o slicing include program understanding, debugging, testing, parallelizasion, re-engineering, maintenance, etc (Gramma Tech, 1998; Huang et al, 1998; Ning et al, 1994). II.3 A model or automatic Function Point counting Most works on automation o Function Point counting have taken a black box approach by which the counting process is not transparent to users. The counting tool reads some description o the system being counted and provides the 250

Function Point counts as inal output. For this research we adopt a white box approach and the counting process is thus transparent to users. This approach can help the users to assess whether the counting process is in compliance with the IFPUG rules. A model based on program slicing technique is proposed to derive Function Point counts rom source code o COBOL system (Fig. 1). In principle, the COBOL system source code is scanned by the model to produce Function Point counts. The application s source iles is used to deine the application s boundary or the count. The model takes into account the structure o the COBOL language to identiy physical iles and transactions. Reserved words as FDs, ile input/output statements (READ and WRITE) and user interace and data manipulation statements (MOVE, ACCEPT and DISPLAY) are used as basic inormation or program slicing technique to identiy candidate physical iles and transactions. Some heuristic rules will be proposed in order to map candidate physical iles and transactions into candidate logical iles and transactions. These candidate iles and transactions are then assessed with regards to the IFPUG identiying rules in order to identiy data unction types and transactional unction types to be counted. Determining contribution o these objects is thus straightorward to produce a inal adjusted Function Point counts. 251

COBOL Systems Source Code COBOL Parser (READ, WRITE, MOVE, DISPLAY, ACCEPT) Candidate Physical Objects (Files & Transactions) Heuristic Rules or Mapping Physical Objects to Logical Objects Candidate Logical Objects (Files & Transactions) Assessment o Candidate Objects Regarding IFPUG Identiying Rules Objects to be counted (Files & Transactions) Contribution o objects to be counted (Files &Transactions) Straightorward Calculation Based on IFPUG Rules or Evaluating Contribution (DETs & RETs) Final Adjusted Function Point Counts Figure 2. Proposed model or automatic FPA III IDENTIFYING DATA AND TRANSACTIONAL FUNCTION TYPES FOR FUNCTION POINT ANALYSIS III.1 Identiying Data Function Types From Data Division o the COBOL code and based on the level indicator FD and the level number 01, all physical iles, their records and data groups within records are identiied. The 252

record s name is then used to track READ, WRITE and REWRITE statements operated on these iles (and their Parent Procedures). Candidate physical iles are selected as Data Function Type being counted based on the ollowing criteria: A ile is an Internal Logical File (ILF) i it is updated (by WRITE and/or REWRITE statements) with inormation entered rom outside o the application (i.e., with ACCEPT statement). A ile is an External Interace File (EIF) i is operated in read-only mode (i.e. by READ statement). III.2 Identiying Transaction Function Types Candidate transactions are identiied using a ileoriented method. Based on the record and their data groups o the identiied logical iles, the model can supposedly track (with slicing technique) all procedures and/or statements operated on these iles. Note that procedures and statements are identiied or each logical ile respectively. The candidate transaction are then analyzed based on a ormal notation proposed in (Paton & Abran, 1995). An application is represented by process, user and date lows as in Figure 3. This representation was used to develop a classiying signature or transactional unction types o Function Point based on the CPM rules (Abran & Paton, 1997). The signature in Table 1 can be interpreted in the ollowing manner: A transaction that reads (i.e., with ACCEPT and/or READ statements) outside o the boundary but does not write (i.e., with WRITE and/or REWRITE statements) outside o the boundary is an External Input (EI). A transaction that writes (i.e., with DISPLAY statement) outside o the boundary but does not read outside o the boundary is an External Output (EO). A transaction that reads and writes outside o the boundary is an External Enquiry (EQ) i it reads inside o the boundary too. A transaction that carries on all our activities (read and write outside and inside o the boundary) is a Double transaction and must be decomposed as an External Input plus an External Output. Note that a low is assigned 1 in Table 1 i this low does exist. Otherwise it is assigned 0. p p Flow 1 Flow 2 p Flow 4 Flow 3 Users p Process File Data low Figure 3. A ormal representation o an application (Paton & Abran, 1995) 253

Table 1. Classiying signatures or transactional unction types Flow 1 Flow 2 Flow 3 Flow 4 EI 1 0 1 0 EO 0 1 0 1 EQ 1 1 0 1 EI + EO 1 1 1 1 IV CONCLUSION We propose a ramework that can be used to build a model or automatic Function Point counting in compliance to the IFPUG Counting Practices Manual. Slicing technique in reverse engineering is identiied as a principle program analysis technique which can help to develop a tool or automating Function Point Analysis rom source code o COBOL systems. In addition, the proposed model produces inormation that can be used to assess the uniqueness o iles and transactions while identiying iles and transactions or the Function Point count. It is important to note that the realization o the proposed model is highly dependent on the ability and the eiciency o the slicing tool being implemented. Continuing research will address design a prototype o a tool to automatically compute Function Point rom COBOL source codes. Another research direction is the empirical validation o the proposed model by comparing the count produced by the tool to that o a manual count. ACKNOWLEDGEMENT This work has been inancially supported by Bell Canada and the Natural Sciences and Engineering Research Council o Canada. REFERENCES 1. Abran, A. & K. Paton (1995). A Formal Notation or the Rules o Function Points Analysis. Research Report No 247, LRGL- UQAM. 2. Abran, A. & K. Paton (1997). Tool Builders Require Structured Rules Speciications or Building Accurate Automated FP Counting Tools. IFPUG Spring Conerence, Cincinnati. 3. Albrecht, A. J. (1988). Function Points Fundamentals. IBM: 22. 4. April, A., E. Merlo, et al. (1997). A Reverse Engineering Approach to Evaluate Function Point Rules. WCRE97 - Fourth Working Conerence on Reverse Engineering, CWI, Amsterdam, The Netherlands, IEEE Computer Society Press. 5. Bellay B. & Gall H. (1998). An Evaluation o Reverse Engineering Tool. Sotware Maintenance: Research and Practice, 10, 305-331. 6. Binkley, D. & Gallagher K. (1996). Program Slicing. In Advances in Computers, Volume 43, 1996. Marvin Zelkowitz, Editor, Academic Press San Diego, CA. 7. Couturier, G. W. (1993). Automatic unction point calculations in maintenance environment. Proceedings o the 31st Annual Southeast Conerence, Birmingham, AL, USA, ACM New York, NY, USA. 8. Edge, N., Finnie, G. Wittig, G. Automating Function Point Approximation Counts For COBOL Legacy. ACOSM 97, Australian Sotware Metrics Association, pp. 80-87. 9. GrammaTech (1998). CodeSurer Technology Overview: Dependence Graphs and Program Slicing. 10. Huang Hai et al. (1998). Business Rule Extraction Techniques or COBOL Programs. Sotware Maintenance: Research and Practice, 10, 3-35. 11. IFPUG (1994). Function Point Counting Practices Manual, Release 4.0. Westerville. Ohio, International Function Point Users Group. 12. Jones, C. (1998). Sizing Up Sotware. Scientiic American: 104-109. 254

13. Jones, E. L. (1995). Automated Calculation o Function Points. Proceedings or the 4th sotware engineering research orum, Boca Raton, Florida, SERF. 14. MacDonell, S. G. (1994). Comparative Review o Functional Complexity Assessment Methods or Eort Estimation. Sotware Engineering Journal: 107-116. 15. Mendes, O. (1996). Développement d'un protocole d'évaluation pour les outils inormatisés de comptage automatique de points de onction. Département Inormatique. Montréal, Université du Québec a Montreal: 430. 16. Ning J. Q et al. (1994). Automated Support or Legacy Code Understanding. Communication o the ACM, Vol. 37, 50-57. 17. Tip Frank (1995). A Survey o program slicing techniques. Journal o Programming Languages, 3, 121-189. 18. Wittig, G. E. (1995). Artiicial Neural Networks with Function Point Analysis or Sotware Development Eort Estimation. School o Inormation Technology, Bond University: 249. 19. Wittig, G. E. and G. R. Finnie (1994). Sotware Design or The Automation o Unadjusted Function Point Counting. Business Process Re-Engineering Inormation Systems Opportunities and Challenges. IFIP TC8 Open Conerence, Gold Coast, Qld., Australia. 255