Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
0Activity
×
0 of .
Results for:
No results containing your search query
P. 1
vol2no11_7

vol2no11_7

Ratings: (0)|Views: 80|Likes:
Published by managing_editor_cis
Journal of Computing
Journal of Computing

More info:

categoriesTypes, Research, Science
Published by: managing_editor_cis on Dec 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See More
See less

12/06/2011

pdf

text

original

 
 
VOL. 2, NO. 11, October 2011 ISSN 2079-8407
Journal of Emerging Trends in Computing and Information Sciences
 ©2009-2011 CIS Journal. All rights reserved.
http://www.cisjournal.org
 
598
A Study of Mining Software Engineering Data andSoftware Testing
T.Murali Krishna
1
, Devara Vasumathi
2
1.
 
 Lecturer, Department of Computer Science, College of Engineering & Technology, Jimma University, Jimma, Ethiopia
2.
 
 Associate. Professor, Department of Computer Science &Engineering, College of Engineering & Technology, Jawaharlal Nehru Technological University, Hyderabad, India.
1
2 
}
 
ABSTRACT
 
The primary goal of software development is to deliver Optimal Software, i.e., software produced at low cost, highquality & productivity and scheduled with in time. In order to achieve this optimal software, programmers generallyreuse the existing libraries, rather than developing similar code products right from the scratch. While reusing thelibraries, programmers are facing several changes such as many existing libraries are not properly documented andmany libraries contain large number of program interfaces (PIs) through which libraries expose their functionality.These challenges lead to certain problems that affect in producing optimal software. The problems such as reuse of existing libraries consumes more time, lack of knowledge on reusage of program interfaces and we can’t generateeffective test inputs during white box testing. The first two problems reduce the software productivity where as lastone affect on software testing.To resolve these problems, we propose a general framework called Netminer. Netminer contains a code searchengine. With the help of code search engine, we can search the available open source code over the internet. In theanalysis phase, Netminer automatically compares the specifications of program interfaces with relevant codeexamples that are available in the internet. In the next phase, Netminer applies data mining techniques on codeexamples that are collected and identify common patterns. The common patterns represent exact usage of programinterfaces.We propose some more approaches based on Netminer. Some approaches help programmers in effectively reusingprogram interfaces provided by existing libraries. Some approaches identify defects under analysis from the minedspecifications and some approaches help in generating test inputs by the use of static and dynamic test generation.Our research study shows that Netminer framework can be effectively used in software engineering for achievingoptimal software.
Keywords:
 
Software
 
 Engineering, Data Mining, Program Interface, Netminer, Algorithms.
 
1.
 
INTRODUCTION
 
What affects software productivity and how do weimprove it? This is a concern near and dear to those whoare responsible for researching and developing largesoftware system. The main aim of software developmentis to produce optimal software efficiently and effectively.In order to attain the optimal software, programmers reusethe existing libraries, rather than developing similar codefrom the scratch. These libraries include open sourcelibraries such as Eclipse or C#. From 1995 onwards, thereis a rapid growth in not only open source libraries but alsoin reuse of these open source libraries.It is observed from earlier researches, that morethan 40% of source files among the projects under analysisinclude the code from open source libraries. A newprogramming methodology by reusing libraries is calledOpportunistic Software Systems Development (OSSD).Using OSSD, programmers develop systems fromreadymade components by combining each other. Ratherthan developing similar code right from the beginning,OSSD reuses the existing libraries. Reuse of existinglibraries helps in reducing effort during softwaremaintenance and also increased software productivity.For the reuse of libraries, we considered ObjectOriented libraries where inheritance plays a vital role.The functionality of Object Oriented Libraries handledthrough an interface called Program Interface (PI). Inobject oriented languages PI is used to represent a set of classes and methods provided by libraries. For effectivereusing of existing libraries, programmers need theknowledge of how to use PIs. The following two
 
 
VOL. 2, NO. 11, October 2011 ISSN 2079-8407
Journal of Emerging Trends in Computing and Information Sciences
 ©2009-2011 CIS Journal. All rights reserved.
http://www.cisjournal.org
 
599
challenges are faced by programmers in understanding theusage of PIs.First, large number of existing libraries containsmany PIs. For e.g., C# library provides around 9000 PIclasses. These classes provide different functionalitiessuch as Stack, Queue, and Linked List etc. Out of allthese PIs some are important and some are more importantcompared to others. Programmers should have properknowledge about libraries. Otherwise they will faceproblems such as from where and how to start usinglibrary.Second, many existing libraries are outdated and ornot properly documented. For example, programmerreusing Eclipse library. Programming task is to write codeand convert into parse code in an editor.e.g. IEditorPart obj1 = …….IEditorInput obj2 = obj1.getEditorInput ();IWorkingCopyManager wcm = JavaUI.GetWorkingCopyManager ();ICompilationUnit cu = wcm.getWorkingCopy (obj2);A programmer unfamiliar to Eclipse may take longtime in reusing the existing libraries.
2.
 
PROBLEM
 
STATEMENT
Because of the above two factors , while in reusingthe existing libraries programmers face three majorproblems that affect in producing optimal software.While using PIs, programmers introduce defectsdue to lack of knowledge on how to reuse PIs. The mainreason for such defects is programmers to follow implicitprogramming rules. For e.g., both
next 
and
has next 
methods form implicit programming in Java utilitypackage.Proper documentation and sufficient examples playa vital role in understanding PIs. If programmers spendmore time in understanding PIs, software productivity willbe reduced which in turn affects producing optimalsoftware.While reusing libraries, programmers facechallenges in generating test inputs for the client codeduring white box generation technique. Test inputs needmethod sequences and exercise the code under test. Thesesequences go for branch testing that covers True or False.In general existing libraries contain sequences, whichinclude multiple classes. Hence it’s a challenging practiceto programmers to automatically generate methodsequences with multiple classes.
3.
 
3.
 
TECHNIQUES
 
FOR
 
SOLVING
 
THE
 
PROBLEM
In order to solve above problems and to produceoptimal software, we propose a general frame work calledNetminer. This Netminer contain new techniques such asinformation retrieval, program analysis, and softwaretesting. Netminer helps programmer by giving opensource code on the internet in reusing existing PIs. This isdone in analysis phase. Netminer then applies data miningtechniques on the relevant code examples that arecollected known as “Mining Software Engineering Data”(MSED).Fig. 1: Phase 1 of NetminerFig. 2: Phase 2 of NetminerWith the help of light weight analysis we canhandle large number of code examples.Fig. 3: Phase 3 of Netminer
Program
 
InterfaceCollects
 
Code
 
Examples
 
Code
 
Search
 
Engine
 
Analysis
 
Collect
 
code
 
examples
 
Light
 
weight
 
heuristic
 
based
 
program
 
analysis
 
Analyzed
 
code
 
examplesAnalyzed
 
code
 
examples
 
Pattern
 
candidatesData
 
Mining
 
Techniques
 
Common
 
Patterns
 
 
VOL. 2, NO. 11, October 2011 ISSN 2079-8407
Journal of Emerging Trends in Computing and Information Sciences
 ©2009-2011 CIS Journal. All rights reserved.
http://www.cisjournal.org
 
600
These common patterns represent likely uses of PIsamong all pattern candidates. In the last phase, Netmineruses mined PI specifications for getting optimal software.Netminer helps programmer in understanding how to usePIs by suggesting related PI specifications.In order to develop optimal software, Netmineruses the approaches such as PARSE web, spot web, staticverification and dynamic test generation.
Fig. 4:
FOUR PHASES OF NETMINER FRAMEWORK3.1 APPROACHES FOR BETTER PRODUCTIVITYTo help programmers in effectively reusing existinglibraries, we developed two approaches, called PARSEWeband SpotWeb based on NetMiner framework. These twoapproaches will help us to increase programmer’sproductivity.PARSEWeb: It accepts queries in the form of “source
destination” and mines frequent method sequencesthat accept an object of source type and produce an object of destination type. While programmers are writing code usingexisting libraries, the above two method sequences arehelpful to them.Eg Consider a programmer, who uses open sourceimplementation of Java Message Service PI1.1 specification.Programmer has an object of type
QueueConnectionFactory
and does not know how to writecode to get a
QueueSender
object, which required forsending messages. PARSEWeb approach helps theprogrammer in the following manner. The programmer firsttranslates the problem into a “
QueueConnectionFactory
 QueueSender”.Methods Sequences suggested by PARSEWeb
01:FileName: O_UserBean.java MethodName: ingest02:QueueConnectionFactory,createQueueConnection()Returntype: QueueConnection03:QueueConnection,createQueueSession(Boolean,Session.AUTO_ACKNOWLEDGE) Returntype:QueueSession04:QueueSession,CreateSender(Queue)Returntype:QueueSender
Equivalent Java code for method sequence suggestedby PARSEWeb
01:QueueConnectionFactory objqcf;02:QueueConnection objqucon =objqcf.createQueueConnection();03:QueueSession objqs =objqucon.createQueueSession(true,Session,AUTO_ACKNOWLEDGE);04:QueueSender objqusen = objqs.createSender(newQueue());
Fig. 5:
OVERVIEW OF PARSEWeb Approach
query
 
Code
 
Downloader
 
Code
 
Search
 
Engine
 
Open
 
Source
 
re ositprogrammer
 
Local
 
source
 
code
 
repositoryAnalyze
 
Phase
 
Method
 
sequencesFinal
 
Method
 
Sequences
 
Clustered
 
Method
 
sequencesQuery
 
Splitter
 
Mine
 
Phase
 
SE
 
task
 
Generate
 
candidates
 
Collect
 
SE
 
data
 
Develop
 
mining
 
al orithmApply
 
mining
 
results
 
Code
 
search
 
engine
 

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->