Function Point Measurement from Java Programs
|
|
|
- Daniel Melvyn Bennett
- 9 years ago
- Views:
Transcription
1 Function Point Measurement from Java Programs Shinji Kusumoto, Masahiro Imagawa, Katsuro Inoue Graduate School of Engineering Science Osaka University Toyonaka, Osaka, Japan {kusumoto, imagawa, Shuuma Morimoto, Kouji Matsusita, Michio Tsuda Hitachi Systems & Services, Ltd Otaku, Tokyo, Japan {sh-morimoto, k-matsushita, ABSTRACT Function point analysis (FPA) was proposed to help measure the functionality of software systems It is used to estimate the effort required for the software development However, it has been reported that since function point measurement involves judgment on the part of the measurer, differences for the same product may occur even in the same organization Also, if an organization tries to introduce FPA, FP will have to be measured from the past software developed there, and this measurement is cost-consuming In this paper, we intend to examine the possibility to measure FP from source code automatically At first, we propose measurement rules to count data and transactional functions for object-oriented program based on IFPUG method and develop the function point measurement tool Then, we have applied the tool to practical Java programs in a computer company and examined the difference between the FP values obtained by the tool and those of an FP measurement specialist As the results, the number of data and transactional functions extracted by the tool is similar to ones by the specialist though for the classification of each function there is some difference between them 1 INTRODUCTION As the size and the complexity of software increase, it becomes increasingly important to develop high-quality software cost-effectively within a specified period In order to achieve this goal, the entire software development processes need to be managed based on an effective project plan In order to construct a distinct project plan, it is essential to estimate various undesirable phenomena which happened during the project and take measures to prevent them in advance The subjects of estimation in the area of software development are size, effort invested, development time, technology used and quality Particularly, development effort is the most important issue So far, several effort models Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee Copyright ACM $500 [3][4][14] have been proposed and most of them include software size as an important parameter In the models, LOC (lines of code) is often adopted as a measurement criterion However, using LOC for software size assessment has difficulties because the definition of LOC is very vague and LOC depends on the programming language Function point is a measure of software size that uses logical functional terms business owners and users more readily understand [2] Since it measures the functional requirements, the measured size stays constant despite the programming language, design technology, or development skills involved Also, it is available early in the development process, making its use opportune for planning design and development projects Up to the present, various FPA versions based on the Albrecht s version have been proposed The IFPUG (International Function Point Users Group) version [6], MarkII version [12] and COSMIC method [5] have been frequently used in software organizations Many studies on function points have been reported in conferences and journals[1][11] However, several unsolved problems still remain One of them is that differences for the same product may occur even in the same organization since function point measurement involves judgment on the part of the measurer [8] For example, Low and Jeffery [10] reported that a 30-percent variance was caused within one organization and more than 30-percent variance was caused across organizations In order to get a consistent value, it is important to automate the function point measurement[2] Also, if an organization tries to introduce FPA, FP will have to be measured from the past software developed there, and this measurement is cost-consuming We have been dealing with automatic function point measurement for object-oriented software[9][13] Through the studies, we have found that many organizations want to measure function point from source code Because sometimes there are some functional differences between requirements/design specification and source code and the actual functions are existed only in source code Also, organizations sometimes remain only source code In this paper, we intend to examine the possibility to measure function point from source code automatically and report the early results of this study At first, we propose measurement rules to count data and transactional functions for object-oriented program based on IFPUG method Then, we develop the function point measurement tool based on the rules Finally, we apply the tool to practical Java pro-
2 grams in a computer company and examined the difference between the FP values obtained by the tool and those of an FP measurement specialist As the results, the number of data and transactional functions extracted by the tool is similar to ones by the specialist though for the classification of each function there is some difference between them Section 2 briefly explains function point analysis Next, Section 3 proposes the rules to count data and transactional functions from object-oriented program Section 4 shows the function point measurement tool based on the proposed rules and Section 5 describes the case study Section 6 concludes the paper 2 FUNCTION POINT 21 Overview Function point measures the functionality provided by software It can be determined from the requirements specification, design specification and program code Unlike LOC, since function point measures functionality, it is said to be independent of the technology and language used for the software implementation Allan Albrecht first proposed original function point analysis [2] Albrecht s function point is computed by counting the following software characteristics: (1) External inputs and outputs, (2) User interactions, (3) External interfaces and (4) Files used by the system Each of them is then individually assessed for complexity and given a weighting value which varies from 3 (simple) to 15 (complex) Albrecht s function point has been widely used but it has some weakness Thus, many kinds of function point, such as IFPUG version[6], COSMIC method[5] 3D Function Points version[7], Feature Points version[7] and MarkII version[12], have been proposed In this paper, we address the IFPUG version since it provides the detail procedures and rules for function point counting compared to other versions 22 IFPUG version IFPUG version is a modified-version of the Albrecht s function point In the modification, the evaluation of the complexity of the software was objectively established and the rules of the counting procedures were also described minutely and precisely In the IFPUG version, the counting procedure of function point consists of seven steps[6], Step1: Determine the Type of Function Point Count, Step2: Identify the Counting Boundary, Step3: Count Data Function Types, Step4: Count Transactional Function Types, Step5: Determine the Unadjusted Function Point Count, Step6: Determine the Value Adjustment Factor and Step7: Calculate the Final Adjusted Function Point Count Here, we explain Step 2, 3, 4 and 5 to understand the proposed rules in Section 3 Step2 (Identify the Counting Boundary): A boundary indicates the border between the application or project being measured and the external applications or the user domain A boundary establishes which functions are included in the function point count Step3 (Count Data Function Types): Data function types represent the functionality provided to the user to meet internal and external data requirements Data function types are classified into the following two types: Internal logical file(ilf) and External interface file(eif) The definition of data functions are described as follows: Internal Logical File(ILF): (1)The group of data is user identifiable group of data (2)The group of data is maintained within the application boundary (3)The group of data identified has not been counted as an EIF for the application External Interface File(EIF): (1)The group of data is user identifiable group of data (2)The group of data is not maintained by the application being counted (3)The group of data identified has not been counted as an ILF for the application Here, the term file refers to a logically related group of data and not to the physical implementation of those group of data Then, assign each identified ILF or EIF a functional complexity based on the number of data element types (DETs) and record element types (RETs) associated with the ILF or EIF using the RET/DET complexity matrix(see Table 1) A data element type (DET) is a unique user recognizable, nonrecursive field on the ILF or EIF A record element type(ret) is a user recognizable subgroup of data elements within an ILF or EIF Table 1: RET/DET complexity matrix RET\DET Low Low Average 2-5 Low Average High 6- Average High High Step4 (Count Transactional Function Types): Transactional function types represent the functionality provided to the user for the processing of data by an application They are defined as the following three types: External input(ei), External output(eo) and External inquiry(eq) The definition of transactional functions are described as follows: External input(ei): An external input processes data or control information that comes from outside the application s boundary The external input itself is an elementary process External output(eo): An external output is an elementary process that generates data or control information sent outside the application s boundary External inquiry(eq): An external inquiry is an elementary process made up of an input-output combination that results in data retrieval The output side contains no derived data Here, derived data is data that requires processing other than direct retrieval and editing of information from internal logical files and/or external interface files No internal logical file is maintained during processing
3 Then, assign each identified EI or EO a functional complexity based on the number of file types referenced (FTRs) and data element types (DETs)A file type referenced is,(1) An internal logical file read or maintained by a function type, or (2) An external interface file read by a function type Also, assign each EQ a functional complexity based on the number of file types referenced (FTRs) and data element types (DETs) for each input and output component Use the higher of the two functional complexities for either the input or output side of the inquiry to translate the external inquiry to unadjusted function points For each of EI, EO and EQ, there is a FTR/DET complexity matrix Table 2 shows the FTR/DET complexity matrix for EI Table 2: FTR/DET complexity matrix of EI FTR\DET Low Low Average 2 Low Average High 3- Average High High Step5 (Determine the Unadjusted Function Point Count): As the result of Step3 and Step4, the counts for each function type are classified according to complexity and then weighted using the matrix The total of all the function types is the unadjusted function point count 3 PROPOSED FUNCTION POINT MEASURE- MENT RULES FOR OO PROGRAMS 31 Key Idea Here, we explain the key idea of the proposed function point measurement rules for object-oriented programs The proposed approach deal with the function point measurement based on IFPUG, the main process is extracting data functions and transactional functions from the target program It seems to be difficult to judge the types of functions only from the static information about source codes So, we use the dynamic information collected from the program execution based on a set of testcases which should correspond to all functions of the target program It is desirable that the testcases are used for acceptance test by the user because functions not used by the user (for example, functions used by only the developers for debug or maintenance activities) are not tested and such functions should not be counted as function point Also, since the testcases used in the acceptance test would be kept in the organization, this assumption is appropriate An example of the dynamic information collected from program execution is shown in Figure 1 In Figure 1, there are four classes 1 (A, B, C and D) It shows an interaction, which is a set of messages exchanged among the classes like a sequence diagram We call this kind of sequence as method 1 Actually, they are objects based on the classes Class in this paper is almost the same as object classa classd Figure 1: Example of dynamic information calling sequence By analyzing the contents of the messages and the type of the classes in the method calling sequence constructed by each testcase, we measure the function point In the following sections, we explain the details of counting data and transactional functions 32 Counting data function types We consider that some of the classes included in the target program are data functions because, in IFPUG, data functions are defined as the functionality provided to the user to meet internal and external data requirements From our previous experience[9][13], most classes (except actor classes) on the object-oriented requirements/design specification directly corresponded to data functions However, in the actual program even if it was developed based on the design specification, there are a lot of classes which are not appeared on the specification So, it is quite difficult to identify which classes should be corresponded to data functions Here, we assume that the function point analyst select the classes that would be the data functions from the program Then, the data functions are classified into two types: Internal Logical File (ILF) and External Input File (EIF) as follows: ILF: Among the classes selected as data function, during the program execution, the classes some of which methods are called with some arguments are regarded as ILF That is, we consider that the arguments represents the data and the methods update the data which the class obtains EIF: Among the classes selected as data function, other classes that are not regarded as ILF, are regarded as EIF Finally, we need to decide the complexity of the ILF/EIF based on the number of data element type(det) and the record element type(ret) DET is a unique user recognizable, nonrecursive field on the ILF or ELF and RET is a user recognizable subgroup of data elements within an ILF or EIF As described above, since classes in the program are corresponded to data functions, we define that DET is the number of simple variables (int, chat, boolean) in the class and RET is the number of the variables defined as the class type That is, class variables defined as class type is considered to be the meaningful group of data 33 Counting transactional function types In IFPUG, transactional functions are defined as the input/output processing, which updates or refers to the data function, from outside the application s boundary Regarding the classes as data functions, we consider that the method
4 classa Rule 1: External Input (EI) classa Bmethod Cmethod(X) x: User defined class Figure 2: Basic element Rule 2: External Output (EO) Transactional function (method calling sequence) classa classa (Halfway Cmethod Bmethod Figure 3: Identification of transactional function that updates or refers to the data in the class can be used to extract the transactional function Base on the idea, we define basic element in the method calling sequence Basic element is the sub-method calling sequence where a method, that is defined in a data function class, is called by other class as shown in Figure 2 At first, we collect the method calling sequence for all the testcases and the sequences are candidates of transactional function Next, to identify transactional function, we have to take account of the application boundary Here, we identify the class, whose methods are inevitably called when the user input some data into the program, as boundary class For example, GUI classes or Java Servlet classes would be the boundary classes Then, in a method calling sequence which starts when the method defined in the boundary class is called, and ends when the method call is finished, if the basic element is appeared, then the sequence is regarded as a transactional function(see Figure 3) If there exist transactional functions in which name of the called method, type and the number of the argument, the order of called are the same, they are regarded as the same transactional function Then, for each of the identified transactional functions, we classify them into three types: External Input(EI), External Output(EO) and External inquiry(eq) based on the proposed rules in Figure 4 In Rule 1, since the user-defined class is delivered to data function class as a argument, such sequence is regarded as EI In Rule 2, before delivering the return value to the boundary class from data function class, some class (called halfway, that are not identified as data function class, modifies the return value and delivers it to the boundary class In IFPUG, a processing in which data maintained by data function is processed and outputted to application boundary is regarded as EO Thus, such sequence is regarded as EO For the transactional functions that do not satisfy the Rules 1 and 2, we consider that they don t include renewal Figure 4: Rules for transactional functions of data function and output the processed data outside the application boundary So, they are regarded as EQ Finally, we need to decide the complexity of the EI/EO/EQ based on the number of data element type(det) and the types referenced record element type(ftr) DET is the number of data items which are comings and goings through application boundary and FTR is the number of data function updated or referred to in the transactional function In our proposed rule, since boundary classes are application boundary, we count DET as follows: EI: DET is the total number of the argument of the methods called by the boundary class in the processing of EI EO, EQ: DET is the total number of the return values of the methods called by the boundary class in the processing of EO If the return value is a class, then the number of variables defined in the class is also counted FTR is the number of data function appeared in the transactional function In the case that the same data function class is appeared repeatedly, it is counted just once 4 FUNCTION POINT MEASUREMENT TOOL Based on the proposed method, we have developed a function point measurement tool from Java programs The tool has developed on Windows2000 PC with Java Figure 5 shows the overview of the system It includes the following components: Syntax analyzer: It analyses the target program and accumulates the syntax information used in the FP calculation of it into syntax information file Executor: It executes the target program using a set of testcase, collects the information about program execution and accumulates it into execution log file FP calculator: It calculates the value of function point based on the data of syntax database, execution log
5 Java Source Code Tese case Syntax Analyser Executor Syntax information file Execution log file Deta function class Boundary class Figure 5: Overview of FP tool FP calculator FP results Table 4: Example of execution log file Begin SakayaSakaya1String Begin SoukoSouko2Stringint Begin HaisouHaisou0 End HaisouHaisou0 End SoukoSouko2Stringint End SakayaSakaya1String Sakaya Souko Haisou Sakaya(String) Souko(String,int) Haisou() Table 3: Format of syntax information file C Class name CV Class variable name Type DETflag M Method name MV Method variable name Type DETflag M MV database using the specified data function classes and boundary classes The format of the syntax information file is shown in Table 3 In Table 3, C means a label of the name of a class Then, CV means a label of the name, type, and a flag (DETflag) of each class variable defined in the class The flag (DETflag) is used to judge whether the variable is regarded as DET or RET Then, M means a label of the name of the method defined in the class MV means a label of the name, type, and a flag of each class variable defined in the method DETflag is also used to judge whether the variable is regarded as DET or RET Table 3 shows the information for just one class Actually, the information is described for all classes in the target program An example of the execution log file is shown in Table 4 In Table 4, the line labeled Begin indicates that the following method is called in the program execution and the line labeled End indicates that the following method execution is finished For example, the first line Begin SakayaSakaya1String means that a method Sakaya in a class Sakaya is called with one argument and the type of the argument is String Next, a method Souko in a class Souko is called with two arguments and the each type of the arguments is String and int Then, a method Haisou in a class Haisou is called with no arguments Finally, these methods are recursively finished Figure 6 shows Table 4 schematically Figure 6: Corresponding sequence to Table 4 5 CASE STUDY 51 Overview In order to evaluate the appropriateness of the proposed rules, we applied our tool to an application program developed in Hitachi Systems & Services Then, we compared the FP values obtained by our system to those obtained by the FP counting specialist The FP counting specialist counted the FP from requirements specifications of the application The target program is a typical Web application Since the application has been developed based on the object oriented approach and such kind of application would be developed repeatedly, we consider that it is appropriate for the case study The structure of the application is shown in Figure 7 Java program in the application server is the target program The size of the application is about 10K steps In order to measure function point by the tool, it is necessary to identify the data function classes in the program and boundary classes In this case study, we selected them as follows: Data function classes: The classes whose methods access and update the table of the database are selected as data function classes Boundary classes: Java Servlet classes except the classes for showing confirmation message and assistance for data input are selected as boundary classes Because in the target program, the screen for data input includes several sub-screens for data input assistance So, we consider that it is appropriate to select only the classes that implement the main screens for data input Table 5 shows the FP values calculated by the system and the function point specialist The size of the execution log files was 15MB As shown in Table 5, the values of unadjusted function point are quite similar (174 and 170) Based on Table 5, we analyze and examine the discuss the results
6 Application server Java program Database server Browser Web Server Java Servlet HTML classes for database access JDBC Oracle8i CSV Figure 7: Target application program Table 5: Result of FP classx classd Tool Specialist S1 Data Function Transactional Function FP ILF EIF EI EO EQ Analysis of data function It is not always possible to correspond the data functions on the requirements specification to ones on the program However, in this case study, by selecting the classes, that conceal the access to database, as data functions, both the number of data functions by the system (12=11+1) and the specialist (11=4+7) are quite similar It indicates that it would be possible to get the values of data functions from program that is similar to ones from requirements specification On the other hand, the classification result of data function types are different between the tool and the specialist The tool regarded most data functions as ILF The result is due to the fact that most methods in the data function class have arguments In the classification rule described in Section 32, such classes are regarded as ILF In order to cope with this problem, it is necessary to revise the classification rule The original rule is, among the classes selected as data function, during the program execution, the classes some of whose methods are called with some arguments are regarded as ILF It is conceivable to make conditions to the arguments For example, if the argument of the method in a class indicates the meaningful data, the class is regarded as ILF Also, it may be necessary to collect the detail information from program executions whether the data in the class is updated S2 classy classd Figure 8: Cause of classification error 53 Analysis of transactional function Both the number of transactional functions by the tool (22=9+13) and the specialist (20=6+14) are quite similar Each of the transactional functions counted by the specialist was also counted by the tool So, the tool counted two transactional functions excessively The reason is that we extracted the transactional function as the method calling sequence and if the same method calling sequence was extracted, then it was not counted as twice In this case, if the starting class of the calling sequence is not the same, they are decided as different functions Figure 8 shows an example of this case The method calling sequence S1 and S2 include the same sub-sequence (surrounded by a dotted line) However, the specialist judged such ones are essentially the same and he regarded them as one transactional function To cope with this problem, we need to improve the rules for transactional function For example, some calling sequences each of which includes the same sub-calling sequence, though the length of the sequence should be determined in some way, regard as the same one For some transactional functions that handle the PDF or CSV file, in counting DET, we did not count the inside of the files and so the value of DET becomes lower To cope with this problem, the syntax information file should include the detail information about the variables in the class 6 CONCLUSIONS We have intended to examine the possibility to measure
7 function point from source code automatically Here, we have proposed detailed function point measurement method for object-oriented program and developed the function point measurement tool Then, we have applied the tool to practical Java programs in a computer company and examined the difference between the function point values obtained by the tool and those of an function point measurement specialist As the results, we got the similar number of data and transactional functions However, in the classification of functions, there exists some differences between the tool and the specialist In the case study, the target Java program did not include EQ So, it is necessary to apply the proposed tool to other programs which include EQ Simultaneously, we are going to revise the rule of the classification of each function as described in Section 5 and pursuit the possibility of automatic function point measurement from source code International Symposium on Software Metrics, pp (1999) [12] C Symons: Software Sizing and Estimating John Wiley & Sons (1991) [13] T Uemura, S Kusumoto and K Inoue: Function point analysis for design specifications based on the Unified Modeling Language, Journal of Software Maintenance and Evolution, Vol 13, No 4, pp (2001) [14] C E Walston and C P Felix: A method of program measurement and estimation, IBM Systems Journal, 16(1), 54-73(1977) 7 ACKNOWLEDGMENTS This research was supported in part by Grant-in-Aid for Encouragement of Young Scientists (No: ), Japan Society for the Promotion of Science The tool used in the case study was developed by RISE(Research Institute of Software Engineering) under support from IPA s (Informationtechnology Promotion Agency) support program for young software researchers 8 REFERENCES [1] A Abran, P N Robillard: Function point analysis: An empirical study of its measurement processes, IEEE Transactions on Software Engineering, 22(12), pp (1996) [2] A J Albrecht: Function point analysis, Encyclopedia of Software Engineering, 1 John Wiley & Sons (1994) [3] V R Basili and K Freburger: Programming measurement and estimation in the Software Engineering Laboratory, Journal of Systems & Software, 2, pp (1981) [4] B W Boehm: Software Engineering Economics, Prentice-Hall(1981) [5] Common Software Measurement International Consortium, COSMIC-FFP Version 20 (2000) [6] IFPUG 2000 Function Point Counting Practices Manual, Release 41 International Function Points Users Group [7] C Jones: Applied Software Measurement, McGraw-Hill(1996) [8] B A Kitchenham: The problem with function points, IEEE Software, 14(2):, pp (1997) [9] S Kusumoto, K Inoue, T Kasimoto, A Suzuki, K Yuura and M Tsuda: Function Point Measurement for Object-Oriented Requirements Specification, Proc of International Computer Software and Applications Conference, pp (2000) [10] G C Low and D R Jeffery: Function points in the estimation and evaluation of the software process, IEEE Transactions on Software Engineering, 16(1), pp 64-71(1990) [11] C J Lokan: An empirical study of the correlations between function point elements, Proc of the 6-th
Fundamentals of Function Point Analysis
Fundamentals of Function Point Analysis By [email protected] Abstract Systems continue to grow in size and complexity. They are becoming more and more difficult to understand. Improvement of coding
Introduction to Function Points www.davidconsultinggroup.com
By Sheila P. Dennis and David Garmus, David Consulting Group IBM first introduced the Function Point (FP) metric in 1978 [1]. Function Point counting has evolved into the most flexible standard of software
Full Function Points for Embedded and Real-Time Software. UKSMA Fall Conference
Full Function Points for Embedded and Real-Time Software UKSMA Fall Conference London (UK) Oct. 30-31, 1998 Software Engineering Management Research Laboratory Université du Québec à Montréal & Software
APPLYING FUNCTION POINTS WITHIN A SOA ENVIRONMENT
APPLYING FUNCTION POINTS WITHIN A SOA ENVIRONMENT Jeff Lindskoog EDS, An HP Company 1401 E. Hoffer St Kokomo, IN 46902 USA 1 / 16 SEPTEMBER 2009 / EDS INTERNAL So, Ah, How Big is it? 2 / 16 SEPTEMBER 2009
Measuring Software Functionality Using Function Point Method Based On Design Documentation
www.ijcsi.org 124 Measuring Software Functionality Using Function Point Method Based On Design Documentation Anie Rose Irawati 1 and Khabib Mustofa 2 1 Department of Computer Science, University of Lampung
MEASURING THE SIZE OF SMALL FUNCTIONAL ENHANCEMENTS TO SOFTWARE
MEASURING THE SIZE OF SMALL FUNCTIONAL ENHANCEMENTS TO SOFTWARE Marcela Maya, Alain Abran, Pierre Bourque Université du Québec à Montréal P.O. Box 8888 (Centre-Ville) Montréal (Québec), Canada H3C 3P8
Derived Data in Classifying an EO
itip Guidance from the Functional Sizing Standards Committee on topics important to you Derived Data in Classifying an EO itip # 07 (Version 1.0 08/08/2014) itips provide guidance on topics important to
Calculation of the Functional Size and Productivity with the IFPUG method (CPM 4.3.1). The DDway experience with WebRatio
Calculation of the Functional Size and Productivity with the IFPUG method (CPM 4.3.1). The DDway experience with WebRatio This document contains material that has been extracted from the IFPUG Counting
FUNCTION POINT ANALYSIS: Sizing The Software Deliverable. BEYOND FUNCTION POINTS So you ve got the count, Now what?
FUNCTION POINT ANALYSIS: Sizing The Software Deliverable BEYOND FUNCTION POINTS So you ve got the count, Now what? 2008 Course Objectives The primary webinar objectives are to: Review function point methodology
Automated Function Points in a Continuous Integration Environment (Agile AFP)
3 International Conference on IT Data collection, Analysis and Benchmarking Florence (Italy) - October 19, 2015 Automated Function Points in a Continuous Integration Environment (Agile AFP) The Benefits
Function Points Analysis Training Course
Function Points Analysis Training Course Instructor: David Longstreet [email protected] www.softwaremetrics.com 816.739.4058 Page 1 www.softwaremetrics.com Longstreet Consulting Inc Table of Contents
Counting Infrastructure Software
Counting Infrastructure Software Dr. Anthony L Rollo, SMS Ltd, Christine Green EDS Many function point counters and managers of software counts believe that only whole applications may be sized using the
Software Cost Estimation: A Tool for Object Oriented Console Applications
Software Cost Estimation: A Tool for Object Oriented Console Applications Ghazy Assassa, PhD Hatim Aboalsamh, PhD Amel Al Hussan, MSc Dept. of Computer Science, Dept. of Computer Science, Computer Dept.,
EPL603 Topics in Software Engineering
Lecture 10 Technical Software Metrics Efi Papatheocharous Visiting Lecturer [email protected] Office FST-B107, Tel. ext. 2740 EPL603 Topics in Software Engineering Topics covered Quality
Sizing Logical Data in a Data Warehouse A Consistent and Auditable Approach
2006 ISMA Conference 1 Sizing Logical Data in a Data Warehouse A Consistent and Auditable Approach Priya Lobo CFPS Satyam Computer Services Ltd. 69, Railway Parallel Road, Kumarapark West, Bangalore 560020,
Using Entity-Relationship Diagrams To Count Data Functions Ian Brown, CFPS Booz Allen Hamilton 8283 Greensboro Dr. McLean, VA 22102 USA
Using Entity-Relationship Diagrams To Count Data Functions Ian Brown, CFPS Booz Allen Hamilton 8283 Greensboro Dr. McLean, VA 22102 USA Contents What Is an Entity-Relationship (E-R) Diagram? E-R Vocabulary
A Specific Effort Estimation Method Using Function Point
JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 27, 1363-1376 (2011) A Specific Effort Estimation Method Using Function Point BINGCHIANG JENG 1,*, DOWMING YEH 2, DERON WANG 3, SHU-LAN CHU 2 AND CHIA-MEI
A FRAMEWORK FOR AUTOMATIC FUNCTION POINT COUNTING
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) [email protected]
The IFPUG Counting Practices On-Going Effort in Sizing Functional Requirements. Janet Russac
The IFPUG Counting Practices On-Going Effort in Sizing Functional Requirements Janet Russac 2009 IFPUG s method for function point analysis is an ISO standard and must be conformant to ISO/IEC 14143-1:2007.
SIZING ANDROID MOBILE APPLICATIONS
SIZING ANDROID MOBILE APPLICATIONS GURUPRASATH S, CFPS Email: [email protected] Reviewed By: Purnima Jagannathan Prashanth CM Copyright 2011 Accenture All Rights Reserved. Accenture, its
Function Point Counting Practices Manual. Release 4.1.1
Function Point Counting Practices Manual Release 4.1.1 International Function Point Users Group (IFPUG) Function Point Counting Practices Manual Release 4.1.1 Chairperson, Counting Practices Committee
FUNCTION POINT ANAYSIS DETERMINING THE SIZE OF ERP IMPLEMENTATION PROJECTS By Paulo Gurevitz Cunha
FUNCTION POINT ANAYSIS DETERMINING THE SIZE OF ERP IMPLEMENTATION PROJECTS By Paulo Gurevitz Cunha Introduction In general, when we receive a request to implement a package, the first question that comes
Software Cost Estimation using Function Point with Non Algorithmic Approach
Global Journal of omputer Science and Technology Software & Data Engineering Volume 13 Issue 8 Version 1.0 Year 2013 Type: Double Blind Peer Reviewed International Research Journal Publisher: Global Journals
How to Determine Your Application Size Using Function Points
EMBARCADERO HO ME LOCATION ENGLISH LOG ON Watch, Follow, & Connect with Us Share This COMMUNITIES ARTICLES BLOGS RESOURCES DOWNLOADS HELP Conferences» 2004 BorCon» Best Practices How to Determine Your
Copyright 2014 Alvin J. Alexander All rights reserved. No part of this book may be reproduced without prior written permission from the author.
How I Estimate Software Development Projects How I Estimate Software Development Projects Copyright 2014 Alvin J. Alexander All rights reserved. No part of this book may be reproduced without prior written
Using Productivity Measure and Function Points to Improve the Software Development Process
Using Productivity Measure and Function Points to Improve the Software Development Process Eduardo Alves de Oliveira and Ricardo Choren Noya Computer Engineering Section, Military Engineering Institute,
FAST Function Points. David Seaver Director Estimation and Measurement Fidelity Investments 8-563-6753
FAST Function Points David Seaver Director Estimation and Measurement Fidelity Investments [email protected] 8-563-6753 Outline of the Presentation Overview of function points (IFPUG based Technique)
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?
1 Agenda 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? 2 Agenda Why SNAP? What is SNAP (in a nutshell)?
Measuring Change Requests to support effective project management practices.
Measuring Change Requests to support effective project management practices. Roberto Meli Abstract Some of the major reasons for software project failures relay in the area of the management of project
REVIEWS ON FUNCTIONAL SIZE MEASUREMENT IN MOBILE APPLICATION AND UML MODEL
REVIEWS ON FUNCTIONAL SIZE MEASUREMENT IN MOBILE APPLICATION AND UML MODEL Nur Atiqah Sia Abdullah 1, and Nur Ida Aniza Rusli 2 1 Universiti Teknologi MARA(UiTM), Malaysia, [email protected] 2 Universiti
How to Avoid Traps in Contracts for Software Factory Based on Function Metric
How to Avoid Traps in Contracts for Software Factory Based on Function Metric Claudia Hazan Serviço Federal de Processamento de Dados (SERPRO) SGAN Quadra 601 Modulo V Brasilia, DF, CEP: 70836-900 BRAZIL
SIZE & ESTIMATION OF DATA WAREHOUSE SYSTEMS
SIZE & ESTIMATION OF DATA WAREHOUSE SYSTEMS Luca Santillo ([email protected]) Abstract Data Warehouse Systems are a special context for the application of functional software metrics. The use of
PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING
PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING 03-23-05 Christine Green, PMI PMBOK and Estimating EDS, Delivery
Improvement of Software Quality and Productivity Using Development Tools
Improvement of Software Quality and Productivity Using Development Tools V Hideo Abotani V Tomoki Shiratori V Kouji Sasaki V Masaki Tonomura (Manuscript received March 24, 2006) Information systems, which
Define Activities Sequence Activities Estimate Activity Resources Estimate Activity Durations Develop Schedule Control Schedule
1 (Image) 2 The process required to manage timely completion of the project. Project time management start with planning by the project management team (not shown as a discrete process). In small project,
How to Estimate Software Size and Effort in Iterative Development 1 Aleš Živkovič, Marjan Heričko
How to Software Size and Effort in Iterative Development 1 Aleš Živkovič, Marjan Heričko University of Maribor, Faculty of Electrical Engineering and Computer Science, Smetanova 17, SI-2000 Maribor, Slovenia
Finding Code Clones for Refactoring with Clone Metrics : A Case Study of Open Source Software
THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE. Finding Code Clones for Refactoring with Clone Metrics : A Case Study of Open Source Software Eunjong CHOI,
IPA/SEC Data entry form Version 3.0 for IPA/SEC White Paper 20xx on software development projects in Japan
IPA/SEC Data entry form Version 3.0 for IPA/SEC White Paper 20xx on software development projects in Japan Information-Technology Promotion Agency, Japan(IPA) Software Engineering Center(SEC) Contents
Software Development: Tools and Processes. Lecture - 16: Estimation
Software Development: Tools and Processes Lecture - 16: Estimation Estimating methods analogy method direct estimating method Delphi technique PERT-type rolling window Constructivist Cost Model (CoCoMo)
A Comparative Evaluation of Effort Estimation Methods in the Software Life Cycle
DOI 10.2298/CSIS110316068P A Comparative Evaluation of Effort Estimation Methods in the Software Life Cycle Jovan Popović 1 and Dragan Bojić 1 1 Faculty of Electrical Engineering, University of Belgrade,
ALGORITHM OF SELECTING COST ESTIMATION METHODS FOR ERP SOFTWARE IMPLEMENTATION
ERP, implementation, cost estimation Przemysław Plecka *, Krzysztof Bzdyra ** ALGORITHM OF SELECTING COST ESTIMATION METHODS FOR ERP SOFTWARE IMPLEMENTATION Abstract The article discusses the problem of
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
Hathaichanok Suwanjang and Nakornthip Prompoon
Framework for Developing a Software Cost Estimation Model for Software Based on a Relational Matrix of Project Profile and Software Cost Using an Analogy Estimation Method Hathaichanok Suwanjang and Nakornthip
Comparing Methods to Identify Defect Reports in a Change Management Database
Comparing Methods to Identify Defect Reports in a Change Management Database Elaine J. Weyuker, Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 (weyuker,ostrand)@research.att.com
Agile Project Management
Boehm Page 1 Raymond E Boehm Software Composition Technologies Abstract- This presentation will educate measurement professionals to the real issues surrounding agile development. It gives an overview
Workflow Automation and Management Services in Web 2.0: An Object-Based Approach to Distributed Workflow Enactment
Workflow Automation and Management Services in Web 2.0: An Object-Based Approach to Distributed Workflow Enactment Peter Y. Wu [email protected] Department of Computer & Information Systems Robert Morris University
From Object Oriented Conceptual Modeling to Automated Programming in Java
From Object Oriented Conceptual Modeling to Automated Programming in Java Oscar Pastor, Vicente Pelechano, Emilio Insfrán, Jaime Gómez Department of Information Systems and Computation Valencia University
DETERMINING THE SIZE OF ERP IMPLEMENTATION PROJECTS. Paulo Gurevitz Cunha EDS EDS --Electronic Data Systems Data Engineering West,
IFPUG-September 2004 DETERMINING THE SIZE OF ERP IMPLEMENTATION PROJETS Paulo Gurevitz unha EDS EDS --Electronic Data Systems Data Engineering West, Denver, O O USA USA ommunications Industry Solution
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Function Point Modeler Enterprise Edition A Software Lifecycle Management Tool
White Paper Function Point Modeler Enterprise Edition A Software Lifecycle Management Tool Writer: CFPS M.E. Dipl.-Ing. M. Öztürk, Update: 01 March 2011 Introduction The Purpose of this paper is to give
Intelligent Human Machine Interface Design for Advanced Product Life Cycle Management Systems
Intelligent Human Machine Interface Design for Advanced Product Life Cycle Management Systems Zeeshan Ahmed Vienna University of Technology Getreidemarkt 9/307, 1060 Vienna Austria Email: [email protected]
The software maintenance project effort estimation model based on function points
JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE J. Softw. Maint. Evol.: Res. Pract. 2003; 15:71 85 (DOI: 10.1002/smr.269) Research The software maintenance project effort estimation
Standardization of Development Process and Additional Efforts Focusing on Web Application Development
Standardization of Development Process and Additional Efforts Focusing on Web Application Development V Ryoko Saito V Satoru Okiyama V Fusami Hirai (Manuscript received March 14, 2006) In this time of
Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development
Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,
A Meeting Room Scheduling Problem
A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 [email protected] http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
Agile Estimating: My DPS Dissertation
Agile Estimating: My DPS Dissertation Raymond Boehm New York City SPIN Meeting October 11, 2006 Presentation Outline o Agility o Estimation Estimating Software Size Estimating Effort and Schedule o Estimating
FUNCTION POINT ESTIMATION METHODS: A COMPARATIVE OVERVIEW
FUNCTION POINT ESTIMATION METHODS: A COMPARATIVE OVERVIEW Roberto Meli, Luca Santillo Data Processing Organization, http://web.tin.it/dpo E-Mail: [email protected] - [email protected] ABSTRACT The
Software Metrics in Static Program Analysis
www.redlizards.com Software Metrics in Static Program Analysis ICFEM, 11/18/2010 Andreas Vogelsang 1, Ansgar Fehnker 2, Ralf Huuck 2, Wolfgang Reif 3 1 Technical University of Munich 2 NICTA, Sydney 3
Does function point analysis change with new approaches to software development? January 2013
Does function point analysis change with new approaches to software development? January 2013 Scope of this Report The information technology world is constantly changing with newer products, process models
A Survey on Product Aspect Ranking
A Survey on Product Aspect Ranking Charushila Patil 1, Prof. P. M. Chawan 2, Priyamvada Chauhan 3, Sonali Wankhede 4 M. Tech Student, Department of Computer Engineering and IT, VJTI College, Mumbai, Maharashtra,
SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007
SOFTWARE ESTIMATING RULES OF THUMB Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 Abstract Accurate software estimating is too difficult for simple rules of thumb. Yet in spite
A Project Estimator Tool: for Software Estimation using Neuro-Fuzzy
A Project Estimator Tool: for Software Estimation using Neuro-Fuzzy Anita Verma 1,Sachin Patel 2 and Ajay Jaiswal 3 1,2 RGPV,Bhopal University, Patel College of Science and Technology, Indore(M.P.),India
EXTENDED ANGEL: KNOWLEDGE-BASED APPROACH FOR LOC AND EFFORT ESTIMATION FOR MULTIMEDIA PROJECTS IN MEDICAL DOMAIN
EXTENDED ANGEL: KNOWLEDGE-BASED APPROACH FOR LOC AND EFFORT ESTIMATION FOR MULTIMEDIA PROJECTS IN MEDICAL DOMAIN Sridhar S Associate Professor, Department of Information Science and Technology, Anna University,
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i $Q2UDFOH7HFKQLFDO:KLWHSDSHU 0DUFK Secure Web.Show_Document() calls to Oracle Reports Server 6i Introduction...3 solution
Software Visualization Tools for Component Reuse
Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New
Software Testing Strategies and Techniques
Software Testing Strategies and Techniques Sheetal Thakare 1, Savita Chavan 2, Prof. P. M. Chawan 3 1,2 MTech, Computer Engineering VJTI, Mumbai 3 Associate Professor, Computer Technology Department, VJTI,
Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.
Do you know? "7 Practices" for a Reliable Requirements Management by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd. In this white paper, we focus on the "Requirements Management,"
New Web Application Development Tool and Its MDA-Based Support Methodology
New Web Application Development Tool and Its MDA-Based Support Methodology V Yasuyuki Fujikawa V Takahide Matsutsuka (Manuscript received February 11, 2004) Web applications are ubiquitous on the Internet,
An Online Automated Scoring System for Java Programming Assignments
An Online Automated Scoring System for Java Programming Assignments Hiroki Kitaya and Ushio Inoue Abstract This paper proposes a web-based system that automatically scores programming assignments for students.
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
SQLMutation: A tool to generate mutants of SQL database queries
SQLMutation: A tool to generate mutants of SQL database queries Javier Tuya, Mª José Suárez-Cabal, Claudio de la Riva University of Oviedo (SPAIN) {tuya cabal claudio} @ uniovi.es Abstract We present a
MK II FUNCTION POINT ANALYSIS COUNTING PRACTICES MANUAL
United Kingdom Software Metrics Association (UKSMA) MK II FUNCTION POINT ANALYSIS COUNTING PRACTICES MANUAL Version 1.3.1 Mk II FPA Input Process Output Simple in concept, easy to apply, aligned with modern
DIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
Appendix G Technical Methodology and Approach Document
Appendix G Technical Methodology and Approach Document Technical Methodology and Approach Document CWS/CMS Technical Architecture Alternatives Analysis (TAAA) California Health and Human Services Agency
Requirements Engineering Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1
Requirements Engineering Processes Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1 Objectives To describe the principal requirements engineering activities and their relationships
Accounting for Non-Functional Requirements in Productivity Measurement, Benchmarking & Estimating
Accounting for Non-Functional Requirements in Productivity Measurement, Benchmarking & Estimating Charles Symons President The Common Software Measurement International Consortium UKSMA/COSMIC International
Extending Function Point Estimation for Testing MDM Applications
Cognizant 20-20 Insights Extending Function Point Estimation for Testing Applications Executive Summary Effort estimation of testing has been a much debated topic. A variety of techniques are used ranging
Toward a community enhanced programming education
Toward a community enhanced programming education Ryo Suzuki University of Tokyo Tokyo, Japan [email protected] Permission to make digital or hard copies of all or part of this work for
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Effort and Cost Allocation in Medium to Large Software Development Projects
Effort and Cost Allocation in Medium to Large Software Development Projects KASSEM SALEH Department of Information Sciences Kuwait University KUWAIT [email protected] Abstract: - The proper allocation
Principles and Software Realization of a Multimedia Course on Theoretical Electrical Engineering Based on Enterprise Technology
SERBIAN JOURNAL OF ELECTRICAL ENGINEERING Vol. 1, No. 1, November 2003, 81-87 Principles and Software Realization of a Multimedia Course on Theoretical Electrical Engineering Based on Enterprise Technology
