• Tidak ada hasil yang ditemukan

of of of

N/A
N/A
Protected

Academic year: 2024

Membagikan "of of of"

Copied!
17
0
0

Teks penuh

(1)

Copyright is owned by the Author of the thesis. Permission is given for

a copy to be downloaded by an individual for the purpose of research and

private study only. The thesis may not be reproduced elsewhere without

the pennission of the Author.

(2)

A comparative case study

of

Programming language Expansion Ratios

A thesis presented in partial fulfilment of the requirements for the

degree of Master of Technology in Computing Technology at

Massey University

Lim, Ping

Hwee February 1989

(3)

Abstract

An effective size estimation tool must allow an estimate to be obtained early enough to be useful. Some difficulties have been observed in using the traditional lines of code (LOC) measure in software sizing, much of which is due to the need for more detailed design information to be available before an accurate estimate can be achieved. This does not allow the result to be obtained early in the software development process.

Moreover, the inherent language-dependency of LOC tends to restrict its use. An alternative measure using Function Point Analysis, developed by Albrecht, has been found to be an effective tool for sizing purposes and allows early sizing. However, the function point measure does not have a sufficient historical base of information for it to be used successfully in all cases with existing models of the software development process. Because lines of code already have a sense of "universality" as the de facto basic measure of software size, it can serve as a useful extension to function points.

Language Expansion Ratios are seen as the key in providing such an extension by bridging the gap between function point and lines of code. Several sizing models have made use of expansion ratios in an effort to provide an equivalent size in lines of code in anticipation of its use in productivity studies and related cost models. However, its use has been associated with ranges of variability. The purpose of this thesis is to study Language Expansion Ratios, and the factors affecting them, for several languages based on a standard case study.

This thesis surv~ys the prevailing issues of software size measurement and describes

,i .

I

the role and importance of language expansion ratios. It presents the standard case study used and the methodology for the empirical study. The experimental results of measurements of the actual system are analysed and these form the basis for appropriate conclusions on the validity and applicability of the expansion ratios studied.

(4)

This research si,ows that the use of Language Expansion Ratios is valid but it is

i

considered inadequate when applied in its present form. This was found to be due to the weighting factors associated with the appropriate function value obtained for the different functional categories of the system.

(5)

Acknowledgments

I wish to extend my gratitude to Professor Graham Tate for consenting to be my supervisor for this thesis. His direction has been very important to this work. I am also grateful for his careful review and comments of the entire content of this thesis.

His guidance and encouragement are very much appreciated.

I

A special thanks to Miss June Verner for her constant help and support during the course of this research. In particular, I wish to express my deep appreciation for her help in making the documentation facilities available to me.

Finally, I would like to express my gratitude to Miss Lili Ton for her help during the preparation of this thesis. Her efforts and patience in some of the typescripts and drawing of the many diagrams deserve my heart-felt thanks.

(6)

TABLE OF CONTENTS

Page

List of Figures ... v iii

List of Tables ... xi

CHAPTER 1 INTRODUCTION ... i

CHAPTER 2 SURVEY OF BACKGROUND INFORMATION ... 5

2. i Review of Software Metrics ... 6

2. i. i Size Metrics ... 7

2. i . i . i Line Count ... 8

2.i.i.2 TokenCount. ... i i 2.i.i.3 Function Count ... i 5 a. Function Point Analysis (FPA) ... i 5 b. MARK II Function Points ... 1 7 2. i . 2 Structure Metric ... 2 O 2. i .2. i Logic Structure ... 2 i 2.i.2.2 Data Structure ... 23

2. i .3 Composite Metrics ... 2 4 2. 2 Review of Software Sizing Models ... 2 5 2. 3 Need for Improved Sizing Mechanism ... 2 9 2. 4 Role of Language Expansion Ratios ... 3 i CHAPTER 3 OVERVIEW OF CASE STUDY

···35

3. i Research Objective ... 3 5 3.2 Case Study Specification - OveNiew ... 3 7 3. 3 Language Implementation ... 4 O

3 .3. i Advanced Revelation ... 4 i a. Tools That Build Tools ... 4 i b. Paint ... 4 2 c. Popup ... 4 2 d. Menus ... 4 2 e. R/Basic ... 4 2

V

(7)

Page f. Editor ... 4 3 g. Macros ... 4 3 h. The Command Level (TCL) ... 4 3 i. Operating System ... 4 3 3.3.2 lnformix 4GL ... 4 4 a. A Database Language ... 4 4 b. A Programming Language ... 4 4 c. Screen-Building Utility ... 4 5 d. Menu-Building Utility ... .4 5 e. Report Writer ... 4 5 3.3.3 Micro Focus Level II Cobol. ... .4 6 a. Level II Cobol Compiler ... 4 6 b. Animator ... 4 7 c. Forms-2 ... 4 7 d. Fileshare ... 4 7

CHAPTER 4

METHODOLOGY FOR EMPIR!C/l-.LSTUDY ··· ... m . . n

4. 1 Detailed Design and Implementation ... .4 8 4. 2 Size and CosVEffort Estimation ... 5 6 4. 3 Data Collection ... 5 9 4. 4 Software Measurement. ... 5 9 4. 5 Analysis of Data ... 6 1

CHAPTER 5

EXPERIMENTAL RES UL TS AND OBSERVATION ... 6 3 5.1 Regression Analysis of Empirical Data ... 6 4 5. 1 . 1 System ... 6 6 5.1.2 ModuleTypes ... 76 5.1.3 lnpuVUpdate Transactions ... 7 6 5.1.4 Reports ... 79 5.1 .5 Forms ... 8 O 5.1.6 External lnquiries ... 8 2 5. 1 . 7 Comparative Expansion Ratios ... 8 3 5. 2 System size and Effort - estimates vs actuals ... 8 8 5. 3 Comparison of Productivity Measures ... 9 1

vi

(8)

Page CHAPTER 6

SUMMARY AND CONCLUSIONS ... 9 5

List of References ... 1 0 1

Appendices Appendix Appendix Appendix Appendix

A B C D

···1 05

···1 06

···140

···169

···1 80

vii

(9)

Figure 1 2.2 3.1 .1 4.1 .1 4.1 .2

4.1 .3 4.1 .4 4.1 .5 4.1 .6 4.1 .7 4.4.1

5.1 .1 5.1 .2 5.1

.3

5.1

.4 5.1 .5

5.1

.6 5.1 .7

5.1 .8

6 .1 6.2

8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 81 .7 8.2 8.2.1 8.2.2 8.2.3

List of Figures

Page Control flow graph, G, with complexity, V(G)

=

5 ... 2 2 Multi-language sizing mechanism ... 3 3 Overview of Research ... 3 6 Inventory Control and Purchasing System (DFD0) ... 4 9 Modified State Transition Diagram - User-interface

for Inventory Control and Purchasing System ... 5

o

User-interface for System Start-up Menu ... 5 1 User-interface for Handling New Types of Stock Menu ... 5 1 User-interface for Monitoring Stock level Menu ... 5 3 User-interface for Purchase Order Processing and follow-up Menu ... 5 3 Incremental Development ... 5 8 Steps in the statistical analysis of data ... 6 2 Plot of lnformix (LOC) vs AREV (LOC) - System 1 ... 6 8 Plot of Cobol (LOC) vs AREV (LOC) - System 2 ... 6 9 Plot of Cobol (LOC) vs I nformix (LOC) - System 1 ... 6 9 Residuals plot for Inform ix vs AREV - System 1 ... 7

o

Residuals plot for Cobol vs AREV - System 1 ... 7 0 Plot of Intermix (LOC) vs AREV (LOC) - System 2 ... 7 3 Plot of Cobol (LOC) vs AREV (LOC) - System 2 ... 7 3 Plot of Cobol (LOC) vs Inform ix (LOC) - System 2 ... 7 4 Results of software size estimates ... 9 7 Results of Language Expansion Ratios for

Micro Focus Level II Cobol. ... 9 9 System Start-up (DFD1) ... 1 41 Process P1 ... 1 4 2 Process P2 ... 1 4 3 Process P3 ... 1 4 4 Process P4 ... 1 4 5 Process PS ... 1 4 6 Process P6 ... 1 4 7 Process P7 ... 1 4 8 New Types of Stock (DFD1) ... 149 Process PS ... 1 5 0 Process P9 ... 1 5 1 Process P10 ... 1 5 2

vi ii

(10)

Figure B.2.4 B.3 B.3.1 B.4 B.4.1 B.4.2 B.5 B.5.1 B.5.2 B.6 B.6.1 B.6.2 B.7 B.7.1 B.8 B.9 D.1 D.2 D.3 D.4 D.5 D.6 D.7

D.8

D.9

D.1 0

D.11

D.12

D.13

Page Process P11 ... 1 5 3 Monitoring Stock Levels (SOH) (DFD1) ... 1 5 4 Process P1 2 ... 1 5 5 Monitoring Stock Levels (DFD1) ... 1 5 6 Process P13 ... 1 5 7 Process P14 ... 1 5 8 Monitoring Stock Levels (DFD1) ... 1 5 9 Process Pi 5 ... ···.··· ... 1 6

o

Process P1 6 ... 1 6 1 Monitoring Stock Levels (DFD1) ... 1 6 2 Process P17 ... 1 6 3 Process Pi 8 ... 1 6 4 Purchase Order Processing and Follow-up ... 1 6 5 Process P20 ... 1 6 6 Purchase Order Processing and Follow-up (DFD1) ... 1 6 7 Purchase Order Processing and Follow-up (DFD1) ... 1 6 8 Plot of lnformix (LOC) vs AREV (LOC) - System 1 ... 1 81 Plot of Cobol (LOC) vs AREV (LOC) - System 1 ... 1 8 2 Plot of Cobol (LOC) vs Inform ix (LOC) - System 1 ... 1 8 3 Plot of lnformix (LOC) vs AREV (LOC) - System 2 ... 1 8 4 Plot of Cobol (LOC) vs AREV (LOC) - System 2 ... 1 8 5 Plot of Cobol (LOC) vs Inform ix (LOC) - System 2 ... 1 8 6 Plot of lnformix (LOC) vs AREV (LOC)

Input/update modules - System 1 ... 1 8 7 Plot of Cobol (LOC) vs AREV (LOC)

Input/update Modules - System 1 ... 1 8 8 Plot of Cobol (LOC) vs lnformix (LOC)

Input/update Modules - System 1 ... 1 8 9 Plot of lnformix (LOC) vs AREV (LOC)

Input/update Modules - System 2 ... 1 9 O Plot of Cobol (LOC) vs AREV (LOC)

Input/update Modules - System 2 ... 1 91 Plot of Cobol (LOC) vs lnformix (LOC)

Input/update Modules - System 2 ... 1 9 2 Plot of lnformix (LOC) vs AREV (LOC)

Module Types - System 2 ... 1 9 3

ix

(11)

Figure Page D.14 Plot of Cobol (LOG) vs AREV (LOG)

Module Types - System 2 ... 1 9 4 D.15 Plot of Cobol (LOG) vs lnformix (LOG)

Module Types - System 2 ... 1 9 5 D.16 Plot of lnformix (LOG) vs AREV (LOG)

Reports Modules - System 2 ... 1 9 6 D.17 Plot of Cobol (LOG) vs AREV (LOG)

Reports Modules - System 2 ... 1 9 7 D.18 Plot of Cobol (LOG) vs lnformix (LOG)

Reports Modules - System 2 ... 1 9 8 D.19 Plot of lnformix (LOG) vs AREV (LOG)

Forms Modules - System 2 ... 1 9 9 D.20 Plot of Cobol (LOG} vs AREV (LOG)

Forms Modules - System 2 ... 2

o o

D.21 Plot of Cobol (LOG) vs lnformix (LOG)

Forms Modules - System 2 ... 2 O 1 D.22 Plot of lnformix (LOG) vs AREV (LOG)

Menus - System 2 ... 2

o

2 D.23 Plot of Cobol (LOG) vs AREV (LOG)

Menus - System 2 ... 2 O 3 D.24 Plot of Cobol (LOG) vs lnformix (LOG)

Menus - System 2 ... 2 O 4

X

(12)

List of Tables

Table Page

5. 1 .1 Results of Statistical Analysis for System 2 ... 6 7 5. 1 . 2 Results of Statistical Analysis for System 1 ... 6 8 5. 1 .3 Input/Update Programs with File-to-File Operations ... 7 8 5. 1 .4 Summary of Language Expansion Ratios

based on Albrecht's Function Points ... 8 6 5.1 .5 Summary of Language Expansion Ratio

based on Symond's Mark II Approach ... 8 7 5. 2. 1 Estimated and Actual Effort in person-months ... 8 9 5 .3. 1 Summary of Development Efforts in person-hours ... 9 1 5 .3 .2 Milestone Time-log in person-hours ... 9 3 C.1 List of Programs ... , 70 C.2 Results of Function Point Analysis ... 1 7 1 C.3 Line count for System 1 ... 1 7 3 C.4 Line count for System 2 ... 1 7 4 C.5 Line count for Input/update module - System 1 ... i 7 5 C.6 Line count for Input/update - System 2 ... 1 7 6 C.7 Line count by Module Type Categories ... 1 7 7 C.8 Line count for Reports Module ... i 7 7 C.9 Line count for Menus Module ... 1 7 8 C.1 O Line count for Inquiry Module ... 1 7 8 C.11 Line count for Forms Module ... 1 7 9 D .1 Regression Analysis of plot in Fig. D.1 ... 1 8 1 D.2 Regression Analysis of plot in Fig. D.2 ... 1 8 2 D.3 Regression Analysis of plot in Fig. D.3 ... 1 8 3 D.4 Regression Analysis of plot in Fig. D.4 ... 1 8 4 D.5 Regression Analysis of plot in Fig. D.5 ... 1 8 5 D.6 Regression Analysis of plot in Fig. D.6 ... 1 8 6 D.7 Regression Analysis of plot in Fig. D.7 ... 187 D.8 Regression Analysis of plot in Fig. D.8 ... 1 8 8 D.9 Regression Analysis of plot in Fig. D.9 ... 1 8 9 D .1 O Regression Analysis of plot in Fig. D.10 ... 1 9 O D.11 Regression Analysis of plot in Fig. D.11 ... 1 91 D.12 Regression Analysis of plot in Fig. D.12 ... 192 D. 13 Regression Analysis of plot in Fig. D.13 ... 1 9 3

xi

(13)

Table D.14 D.15 D.16 D.17 D.18 D.19 D.20 D.21 D.22 D.23 D.24

Page Regression Analysis of plot in Fig. D.14 ... 1 9 4 Regression Analysis of plot in Fig. D.15 ... 195 Regression Analysis of plot in Fig. D.16 ... 1 9 6 Regression Analysis of plot in Fig. D.17 ... 1 9 7 Regression Analysis of plot in Fig. D.18 ... 1 9 8 Regression Analysis of plot in Fig. D.19 ... 1 9 9 Regression Analysis of plot in Fig. D.20 ... 2 O O Regression Analysis of plot in Fig. D.21 ... 2 O 1 Regression Analysis of plot in Fig. D.22 ... 2

o

2 Regression Analysis of plot in Fig. D.23 ... 2 O 3 Regression Analysis of plot in Fig. D.24 ... 2 O 4

Xii

(14)

CHAPTER 1

INTRODUCTION

The impact of the Software Crisis emanates from the realization of the importance which computerization has on society and industries. An overwhelming demand for software escalated to such an extent that traditional software development techniques could not cope. The problem related to the difficulty of establishing techniques for handling the growing size and level of complexity of software systems whose development schedules could not be accurately predicted.

The cost of software grows disproportionately with the other associated costs of computer systems and this upward trend is an issue of concern [DACS87,JONE86j. in the search for a solution to the software crisis, the field of Software Engineering was created in a deliberate attempt to use a combination of techniques, methods, and tools for producing economical software that is reliable and works efficiently.

An important aspect of Software Engineering has been the focus on software size estimation as a prerequisite for resource planning and scheduling in the software development process. The unpredictable nature of the software development process has prompted intense research in finding a way of making programs measurable and, hence, more predictable. Source lines of code (LOG) have been widely used for research studies involving size estimation. The count of the number of lines of code is said to be related to the size of the effort required in the development process. Several studies have been pursued to verify this.

1

(15)

The study by Walston and Felix [WALS77] discusses research into a method of estimating programming productivity by measuring the rate of production of lines of code by project and relating them to factors which might influence its behaviour.

Measurement data were collected from 60 projects in one organization and were maintained in a measurement database. Based on these data, productivity analysis of effort and product size shows a nearly first-power (or linear) relationship. In another study carried out in the Software Engineering Laboratory at the University of Maryland, Basili et al [BASl8i] examined the relationships among the various basic software development variables, such as size, effort, project duration etc. The analysis reveals a high probability of a relationship between total effort and delivered lines of source code. The relationship is nearly linear with a coefficient of determination of 0.93 at the 0.001 level of significance. This high correlation indicates a possibility of using source lines of code to predict the total effort required in a development project. This result was found to be consistent with the study by Walston and Felix [WALS77].

The validity of using source lines of code as a predictor of programming effort is also based on the assumption that it includes a measure of functional complexity. Although studies by [WALS77] and [BASl8i] indicate a linear relationship between source lines of code and effort, Basili et al [BAS18i] also stated that the assumption which relates the functional complexity to program size is subjective. The argument is that size may increase at an even greater rate as complexity increases. This follows the notion suggested by Brooks [BR0075] that man and month are not necessarily interchangeable as the result of increasing one may not directly cause the other to decrease. However, it can be acknowledged that the link between lines of code and effort prediction is a valid one, though more factors relating to complexity will have to be considered. Already, several cost models have used lines of code as the input parameter for cost and schedule estimates. Of the better known costs models are the COCOMO and SLIM models [BOEH84].

2

(16)

The biggest difficulty in using today's Software Cost models has been the problem of providing sound sizing estimates. Several methods of size measurement have been developed to depart from the usual lines of code measure for size estimation in an attempt to search for a better way to estimate software size early enough for it to remain useful. One such method that remains popular is the measure for function value developed by Albrecht called Function Point Analysis. Function Point Analysis has been quite successful and is adopted in several commercial software sizing models.

However, most of these models also provide an equivalent size in lines of code in anticipation of its use in productivity studies as well as with existing cost models. The use of an expansion ratio to convert from function points to lines of code has been recognized to contain ranges of variability due to the fact that it is obtained from different sources or based on different datasets. However, the expansion ratio remains useful in standardizing the basic unit of measure for quantifying software. The purpose of this thesis is to study Language Expansion Ratios, and the factors affecting them, for several languages based on a standard case study.

Chapter 2 provides a summary of the background information relating to the issues of software sizing. A review of software metrics and the problems associated with them are presented followed by a discussion of the subjectivity of sizing in existing size estimation models. It emphasizes the need for an improved size estimation method which can be applied to the wider range of programming languages and examines the role of language expansion ratios in providing such an extension to existing sizing methods.

Chapter 3 presents the research objective for this thesis and a brief outline of the system analysis and design specification of the case study used. The languages used in this study are presented with specific emphasis on their main development features.

3

(17)

Chapter 4 provides an outline of the methodology adopted for this empirical study. It describes the system development tasks involved in the implementation phase as well as the software development strategy used. The implementation phase includes detailed design and code implementation. Other implementation-related activities such as size and cost/effort estimation, data collection, software measurement and statistical analysis methods are also included as an overall base appropriate for the empirical study.

Chapter 5 presents the experimental results of the case study. It describes the detailed analysis of experimental data and discusses related observations associated with the results of the analysis.

Chapter 6 provides a summary and appropriate conclusions based on the empirical study conducted in chapter 5.

4

Referensi

Dokumen terkait

The use of Poker Aid in developing Think Pair Share Model: an Effort of Improving senior high school Students’ Interest in Learning History in Palu. The

An effort to remediate the soil health and to increase the productivity of paddy soils can be conducted by adopting organic based water used efficiency technology,

In terms of linguistic politeness, the directive speech acts in tembang (10) and (11)show a contradiction, meaning on one hand the use of statement sentence shows an effort

In the present study, an effort was made to estimate monthly Net Primary Productivity over Indian subcontinent using geostationary INSAT-3A CCD data and improved

The result shows that 98% of participants is in total agreement suggesting that Performance Expectancy is an important factor in regard to mobile application use Table 2.. Effort

The magnitude of avoided GHG emissions from the use of biomethane in Lusaka equals the GHG emissions from petrol consumption minus the GHG emissions from an equivalent energy from bio-

The study of the diversity and function of MA species is very important considering the impact of changes in land use on an ecosystem can reduce land productivity Moora et al., 2014;

Research the expansion of QRIS adoption in Managerial Implication Based on the obtained results in this study, it is found that performance expectancy, effort expectancy, social