Anda di halaman 1dari 7

INTERNATIONAL

International JOURNAL
Journal of Computer Engineering OFand
COMPUTER ENGINEERING
Technology (IJCET), &
ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME
TECHNOLOGY (IJCET)

ISSN 0976 – 6367(Print)


ISSN 0976 – 6375(Online) IJCET
Volume 4, Issue 5, September – October (2013), pp. 251-257
© IAEME: www.iaeme.com/ijcet.asp
Journal Impact Factor (2013): 6.1302 (Calculated by GISI) ©IAEME
www.jifactor.com

AN OPTIMIZATION OF EFFORT AND COST ESTIMATION BY CODE


REUSABILITY CONCEPT

Geetika Batra1, Kuntal Barua2


1
(M. Tech Scholar, Computer Science Dept, L.N.C. T Indore, India)
2
(Asst. Prof, Computer Science Dept L.N.C. T, Indore, India)

ABSTRACT

In software industry, a large amount of effort and cost is required to develop a solution for
real world problems; additionally the rework, changes and maintenance are some factors which
increase the project cost and efforts. Estimating cost and effort is a challenging and essential task. To
overcome this, code reusability concept is introduced, an important aspect of object oriented
programming by which piece of source code can be used in other software projects or in other time
to add new functionalities with minor or no alteration. In this paper, the proposed model is based on
the concept of estimation by analogy, which describes the comparison of proposed project to
previously completed similar projects that resides in code repository. Innovative idea of proposed
model, search and retrieval techniques, leads to achieve the result of code reusability to decrease the
cost and effort estimation.

Keywords: Cost estimation, Effort estimation, LOC, Project Management, Software engineering.

1. INTRODUCTION

Estimation is a frequent occurring and most challenging task for the software industries [5].
As, software possess the characteristics of increasing its cost and effort with time, it’s a tricky task
for calculation of cost and effort. Introducing the layered technology known as Software
Engineering is used for development of software which includes quality focus, process, methods and
tools. Development of software is a major activity which is achieved by the software development
life cycle (SDLC) [13]. A structured step by step for developing the information system. It includes
five phases that results to a desired product. After completion of the project, there are some escape
factors of the software industries like rework, project extension maintenance. These factors lead to
increase the time, complexity, cost and effort. To conquer through those factors reusability of codes
and component based model techniques can be used.

251
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

Software engineering is a complex domain and requirement of cost and effort estimation is
important for the software development. There are various methods through which the estimation
problem can be solved. Development of Cost models like COCOMO, PUTNAM, SEER-SEM,
CHECKPOINT [2][9] etc and many other methodologies were used, as it causes failure at some
point which clearly concludes that each methods have their own advantages and disadvantages. Each
and every model is not suitable every time. The concept of Object Oriented Programming i.e. code
reusability overcomes the failure of those methods.
The searching and retrieval of the old code from the code repository can be accomplished by
search engines, or some of the following techniques can be used like Cosine Similarity, Euclidean
distance, Levenshtein distance. Reusability is a great concept but not all components and methods
are available to reuse in the different conditions practically in real world applications, due to change
in requirement or environment [3]. Additionally the component based development provides the
reusability for reducing cost and effort during software development phases. But in practical there
very few components that are ready to directly use in other new projects due to the system
specifications and environmental variable. Thus, there is a requirement to develop a new concept that
search reusable code directly from old code repository, using developer’s guidelines and provide the
definition for method level codes that are directly implement on the new systems. The search in a
code repository by cosine similarity [11] where there is a measure of similar two strings is done,
which helps to reach our destination of searching matched codes from old repository.
This Paper includes the basic concepts of software effort estimation and project management
on the basis of cost estimation, Section 2, Literature Review gives the description of the existing
work and the problem description of that work. Section 3, consists of Problem Identification and its
solution, Section 4 includes the Proposed System Architecture ,Section 5 includes Implementation
process and lastly Conclusion & future work.

2. LITERATURE REVIEW

The different methods for estimation using different estimates model like parametric and non
parametric, concludes that estimation of effort is not exact science, methods need improvements
Many factors have impact on the software development process. These factors are not only technical,
human, but also political and their impact can never be fully predicted. These are only not
responsible as even insufficiently accurate estimates are far better than none [1]. The most common
and widely used effort estimation techniques and metrics used in both function oriented and object
oriented development environments concludes that complexity increases with time and which leads
the problem of cost and effort. It also concludes that not only the metrics which can responsible for
accurate prediction, but also it is how and when they are being used. [2]. Reuse of Web application
design is already being employed in practice by the larger development organizations. The
Conceptual approach to maximize design reuse in web application draws the conclusion to reuse the
development part also [3].An approach called Executable Examples Archive (Exemplar) for finding
highly relevant software projects from large archives of applications i.e. code reusability concept.
Conclusion drawn that call of Application Programming Interface can improved the performance of
search engine. As the above approach is based on the search engine [4].The overview of software
effort estimation using different techniques gives many suggestions and made comparison between
empirical and analogy based software effort estimation for better results. As for future work it is also
suggested that data mining techniques can be applied with analogy techniques to get the accurate
data set from large dataset and it will give a better results. [5]. the survey shows each methods and
techniques have their own pros and cons by the time. A new approach for optimization based on
fuzzy logic, analogy based reasoning and linguistic quantifiers is proposed to improve the
performance of the effort in software project when they are described in either numerical or

252
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

categorical data. As fuzzy analogy can be better for the cost estimation but it may be complex for
the code reusability [6].The search and retrieval technique can be effectively implemented by
Levenshtein distance which is a simple metric which can be an effective string approximation tool
[12]. As other technique Cosine Similarity, is a similarity between two vectors of an inner
product [11].
The study gives a clear understanding that various SDLC models when employed for
developing different software then they may generate successful results owing to the fact that
circumstances, resources, requirements, etc do vary for developer side as well as for client side[13].
The use of SDLC for the development is must, as the avoidance of it causes rework, never ending
projects, unclear requirements, bugs etc. In one of the research paper, describes the cost factors of
reusable components that divide the identifications and acquisition costs, modification costs, new
development costs, integration and testing costs, infrastructure costs. Analysis also includes that not
only one model, but more can be used for the code reusable estimation [15] Some of the research
questions are also answered by different surveys and by this survey it shows probably used methods,
where the project managers are unsuccessful to work etc the research questions are [14]:- a) To what
limit, software development projects diverge from the original plan, in terms of cost, functionality,
effort and schedule? b) Which methods are used to estimate software effort, and do these
systematically differ in accuracy? c) How important is accurate effort estimation perceived to be, and
to what extent is the level of accuracy considered a problem in the software industry? d) What are the
main causes for software projects to deviate from their original plan?

3. PROBLEM IDENTIFICATION

Software engineering is a composite province, where each and every product with the same
name can have different functional point of view, thus a huge amount of cost and efforts are required
to deal with them. As a result of study of research articles and papers we found the various methods
proposed and implemented to estimate the cost and efforts but too minor work is found under the
reduction of the cost and effort of the software development.
The concept of reusability becomes the solution, but with the big problem that all methods
and components cannot be used as by the time requirements and technology changes customers
needs new codes and design. Moreover the component based development also provides the
reusability for reducing cost and effort during software development phases, but practically there
very few components are used in other projects due to the system specifications and environmental
variable.

3.1 SOLUTION DOMAIN


The solution specified for the problems recognized in the real world and beyond the existing
solution for reducing cost and efforts in software development is.
1. Search of similar functionality and similar code size project from the old projects, which results
in similar cost and effort so as to reduce the both.
2. Search of Basic components like User defined components, Member functions and methods for
the new projects which help in reducing the effort and cost.
3. If Pre-Existing Code consist of x code lines and f functions, and after code analysis, if u
functions and methods are used then:

Percentage of Effort and cost reduced= (u/f)*100


4 Code search Engine will help to search the relevant class and methods for the new projects from
the code repository, so the cost and effort can be reduced.

253
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

5 After Implementation performance of search engine is measured over different parameters:


Accuracy, Error Rate, Memory Consumed, Search Time

3.1.1 SYSTEM FLOW


The above described problem can be solved by the proposal of a new semi-automatic
feedback basis code analyzer that helps to review how much code lines are reused and where the
code is written in old code. This system flow mentions the steps followed by the given solution
domain for the problem identification. Match the methods and classes from the old source code for
the new project is a challenging task. The significance of this diagram is that the work should be
done in a sequence so as to produce the desired output for that it should be completed by the
following steps:

Input Code for Analysis

Find all classes in source code

Find all Member function from


source code

Generate feedback Matrix by


Developer

Find Best match Member


Function according to need

Create list of Match Function

Fig 1. Shows the system control

4. PROPOSED SYSTEM ARCHITECTURE

The architecture proposed is a high level view for identification of the recognizable
functional utilization of the system which consumes more than one processing steps to observe the
user and previously written code behavior. The various subsystem involved in the proposed system is
given below.
• System code repository: It is a collection of different previously developed projects and source
codes with some additional information such as cost, time and numbers of functions which are
used for development. In this project we consider java classes for evaluation.
• User new project requirement: A new project that is required to develop, the developer team can
add different project modules and their related client information.
• Similar project from code repository: User must able to select previously written code form the
source code database and analyze them for finding the reusable codes.

254
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

• Functional Requirement: User inputs their specific requirement like access modifiers; return
types, number of arguments etc for search.
• Function Definition: According to the user input system search for most nearest code definitions
and list those function that are met actually required by the developer.
• Cost and effort estimation: The functions found in the previous code repository the cost and
effort are measured.

User New Project Requirements

Select Similar Projects from


Repository

Input Required Functional Source Code


requirements Repository

Find Function Definition

Estimate Cost and Effort

Fig 2 shows the proposed system architecture

5. IMPLEMENTATION

The proposed solution is based on the concept of cost estimation by analogy, using LOC as a
size metrics. According to it, the previous projects resides in database known as Code repository,
through search and retrieval technique required code can be traced from that repository. This idea
leads to cost and effort estimation of developing project. The following algorithm in the form of
formulas can be used for the reduction of cost using the concept of reusability. The steps are as
follows.
1) Let our code repository contains N number of projects and consider each project contains Xi code
lines. So, overall repository contains-

TCL  ∑

X  (1)
TCL=Total Code Lines

2) On other hand, the projects haves some initial cost at the time of deployment which is denoted by
C where,C= {C1,C2,C3…..Cn}
Thus, repository code having the total cost-

TCRP  ∑

C (2)
TCRP=Total Cost of Repository Project

255
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

3) Due to time effect each project is affected by a cost (as software cost always increases with time)
denoted by Tf where,Tf={t1, t2,t3,…..tn}
Thus, from equation (ii)

CT  ∑ 
  C  T (3)

CT = Total cost of project with time effect

4) Evaluate the cost of individual code lines from equations (i), (ii) and (iii)

  !" #


Lines Of Codes  (4)
$

5) Suppose, if we have Ru code to reuse them then

Estimated Cost in Reuse  R * + LOC (5)

By the above calculations, cost can be easily calculated for the proposed solution and
implementation part can run smoothly

6. CONCLUSION & FUTURE WORK

Software engineering is a kind of team work for finding real world optimum solution for any
existing problem. As previous source code analysis helps to improve or reduce the cost. And also
make efforts to make search accurate methods and function on previously developed projects by
using software reusability. The analogy based cost estimation with a relevant search code engine
similarity proves to be a most advantageous and efficient method for search codes and functions, by
which user are able to find most suitable codes to reduce the cost and effort estimation. As the Cost
and Effort depends on many factors, apart from the class and methods reusability. Others can be used
in future. Different techniques can be used for the search Engine, the future work in above
implementation is to use of cosine similarity for searching technique. The search engine can be based
on some more performance parameters.

REFERENCES

[1] Jovan Živadinović, Ph.D*,Zorica Medić,Dragan Maksimović,Aleksanda Damnjanović,


M.Sc,Slanana Vujčić ,”Methods of Effort Estimation in Software Engineering”, International
Symposium Engineering Management And Competitiveness 2011 (EMC2011) June 24-25,
2011, Zrenjanin, Serbia.
[2] Samaresh Mishra, Kabita Hazra, and Rajib Mall,”A Survey of Metrics for Software
Development Effort Estimation”, International Journal of Research and Reviews in Computer
Science (IJRRCS) Vol. 2, No. 5, October 2011, ISSN: 2079-2557.
[3] Daniel Schwabe and Luiselena Esmeraldo ,”Engineering Web Applications for Reuse”,
Catholic University of Rio de Janeiro (PUC) Gustavo Rossi and Fernando Lyardet La Plata
University 2001, IEEE.
[4] Collin McMillan, Member, IEEE, Mark Grechanik, Member, IEEE, Denys Poshyvanyk,
Member, IEEE, Chen Fu, Member, IEEE, and Qing Xie, Member, IEEE “Exemplar: A
Source Code Search Engine for Finding Highly Relevant Applications”, IEEE Transactions
on Software Engineering, vol. 38, no. 5, September/October 2012.

256
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print),
ISSN 0976 - 6375(Online), Volume 4, Issue 5, September - October (2013), © IAEME

[5] Rathi.J, Kamalraj. R, Karthik.S, “Survey on Effective Software Effort Estimation


Techniques”, International Journal of Advanced Research in Computer Engineering &
Technology. Vol I, Issue 8, Oct 2012.
[6] S.Malathi, Dr.S.Sridhar,”Optimization of Fuzzy Analogy in Software Cost Estimation Using
Linguistic Variables”, International Conference on Modeling, Optimization and Computing
(ICMOC -2012).
[7] Shruti Jain ,”Survey of Various Cost Estimation Techniques”, International Journal of
Advanced Research in Computer Engineering & Technology (IJARCET) Volume 1, Issue 7,
September 2012.
[8] S. Malathi, S. Sridhar, “Performance Evaluation of Software Effort Estimation using
Fuzzy Analogy based on Complexity”, International Journal of Computer Applications
(0975 – 8887) Volume 40– No.3, February 2012.
[9] Barry Boehma, Chris Abts and Sunita Chulani,“Software development cost estimation
approaches –A survey”, Annals of Software Engineering 10 (2000) 177–205.
[10] Hareton Leung, Zhang Fan “Software Cost Estimation”, Department of Computing The Hong
Kong Polytechnic University {cshleung, csfzhang}@comp.polyu.edu.hk.
[11] Ning Liu, Benyu Zhang, Jun Yan, Qiang Yang, Shuicheng Yan , Zheng Chen, Fengshan Bai,
Wei-Ying Ma “Learning Similarity Measures in Non-orthogonal Space” , CKIM’04, Nov 8-
13,2004, D.C, U.S.A at Microsoft Research Asia.
[12] Rishin Haldar and Debajyoti Mukhopadhyay , “Levenshtein Distance Technique in
Dictionary Lookup Methods: An Improved Approach” , Web Intelligence & Distributed
Computing Research Lab Green Tower, C-9/1, Golf Green, Calcutta 700095, India
Email:{rishinh,debajyoti.mukhopadhyay}@gmail.com.
[13] Vishwas Massey, Prof. K.J.Satao, “Comparing Various SDLC Models and The New
Proposed Model On The Basis Of Available Methodology “,International Journal of
Advanced Research in Computer Science and Software Engineering, Volume 2, Issue 4,
April 2012.
[14] Kjetil Moløkken and Magne Jørgensen ,”A Review of Surveys on Software Effort
Estimation” Simula Research Laboratory {kjetilmo,magnej}@simula.no.
[15] Mayank Mandloi, Prof. Sachin Patel, Prof. Rakesh Pandit, Cost Estimation Model for Reuse
Software, International Journal of Advanced Research in Computer Science and Software
Engineering, Volume 3, Issue 6, June 2013.
[16] Peram Subba Rao, Dr.K.Venkata Rao and Dr.P.Suresh Varma, “A Novel Software Interval
Type - 2 Fuzzy Effort Estimation Model using S-Fuzzy Controller with Mean and Standard
Deviation”, International Journal of Computer Engineering & Technology (IJCET),
Volume 4, Issue 3, 2013, pp. 477 - 490, ISSN Print: 0976 – 6367, ISSN Online: 0976 –
6375.
[17] Parul Gandhi and Pradeep Kumar Bhatia, “Evaluating Impact of Component Reusability with
New Hierarchical Cost Estimation Model”, International Journal of Computer Engineering &
Technology (IJCET), Volume 3, Issue 2, 2012, pp. 526 - 532, ISSN Print: 0976 – 6367,
ISSN Online: 0976 – 6375.

257

Anda mungkin juga menyukai