Role of Functional Clones in Software Development



Similar documents
Note to the Project Guides MSC (CS-FOSS) Final Semester Projects

ClonePacker: A Tool for Clone Set Visualization

Prediction of Heart Disease Using Naïve Bayes Algorithm

Industrial Application of Clone Change Management System

ABSTRACT I. INTRODUCTION

EXTENDED ANGEL: KNOWLEDGE-BASED APPROACH FOR LOC AND EFFORT ESTIMATION FOR MULTIMEDIA PROJECTS IN MEDICAL DOMAIN

Fahad H.Alshammari, Rami Alnaqeib, M.A.Zaidan, Ali K.Hmood, B.B.Zaidan, A.A.Zaidan

Multifunctional Barcode Inventory System for Retailing. Are You Ready for It?

Filtering Noisy Contents in Online Social Network by using Rule Based Filtering System

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

International Journal of Engineering Research-Online A Peer Reviewed International Journal Articles available online

ANALYSIS OF WEB LOGS AND WEB USER IN WEB MINING

A FRAMEWORK FOR MANAGING RUNTIME ENVIRONMENT OF JAVA APPLICATIONS

APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT

Enhanced Login Security Frequently Asked Questions

FRACTAL RECOGNITION AND PATTERN CLASSIFIER BASED SPAM FILTERING IN SERVICE

CSC408H Lecture Notes

Natural Language to Relational Query by Using Parsing Compiler

REUSING DISCUSSION FORUMS AS LEARNING RESOURCES IN WBT SYSTEMS

DATA MINING ANALYSIS TO DRAW UP DATA SETS BASED ON AGGREGATIONS

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

ANALYZING DATA USING TRANSANA SOFTWARE FOR INTERACTION IN COMPUTER SUPPORT FACE-TO-FACE COLLABORATIVE LEARNING (COSOFL) AMONG ESL PRE-SERVIVE TEACHER

Effective Data Retrieval Mechanism Using AML within the Web Based Join Framework

Preprocessing Web Logs for Web Intrusion Detection

A Quality Requirements Safety Model for Embedded and Real Time Software Product Quality

A UPS Framework for Providing Privacy Protection in Personalized Web Search

Clarifying a vision on certification of MDA tools

Agile Software Engineering, a proposed extension for in-house software development

A Systematic Review of Software Process Improvement by CMMI

Carpooling Application for Android Focusing on Authentication and Traffic Analysis

IMAV: An Intelligent Multi-Agent Model Based on Cloud Computing for Resource Virtualization

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)

Development of Integrated Management System based on Mobile and Cloud service for preventing various dangerous situations

Fault Localization in a Software Project using Back- Tracking Principles of Matrix Dependency

Digital Evidence Search Kit

Airline Flight and Reservation System. Software Design Document. Name:

DESKTOP BASED RECOMMENDATION SYSTEM FOR CAMPUS RECRUITMENT USING MAHOUT

Open Access Design of a Python-based Wireless Network Optimization and Testing System

An Implementation of Software Project Scheduling and Planning using ACO & EBS

Phone Pal: Remote Mobile Access through Short Message Service Prof. Mitul K. Patel 1 Gadhiya Janki D. 2

A Survey on Product Aspect Ranking

A Framework for Data Migration between Various Types of Relational Database Management Systems

A PRACTICAL APPROACH TO INCLUDE SECURITY IN SOFTWARE DEVELOPMENT

Digital Certificates (Public Key Infrastructure) Reshma Afshar Indiana State University

REAL-TIME ATTENDANCE AND ESTIMATION OF PERFORMANCE USING BUSINESS INTELLIGENCE

Application of Neural Network in User Authentication for Smart Home System

Help Desk Management System for PC Troubleshooting

ONLINE ORDERING BOOK SYSTEM: A CASE STUDY IN MALAYSIA HIGHER INSTITUTE

A Packaging Support System for Open Source Software

Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

Information Security in Big Data using Encryption and Decryption

Implementation of Botcatch for Identifying Bot Infected Hosts

Multimodal Biometric Recognition Security System

Karunya University Dept. of Information Technology

Business Banking Customer Login Experience for Enhanced Login Security

Impelling Heart Attack Prediction System using Data Mining and Artificial Neural Network

Visualization of Breast Cancer Data by SOM Component Planes

Monitoring Web Browsing Habits of User Using Web Log Analysis and Role-Based Web Accessing Control. Phudinan Singkhamfu, Parinya Suwanasrikham

SYSTEM DEVELOPMENT AND IMPLEMENTATION

CONFIOUS * : Managing the Electronic Submission and Reviewing Process of Scientific Conferences

All-in-One Asset Management Tool

Role of Cloud Computing in Big Data Analytics Using MapReduce Component of Hadoop

Bisecting K-Means for Clustering Web Log data

Exploring the Efficiency of Big Data Processing with Hadoop MapReduce

Vision Document Airline Reservation System

The Concept of Automated Process Control

Bellatrix CCM Sales Application User Manual

System Requirement Specification for A Distributed Desktop Search and Document Sharing Tool for Local Area Networks

Adaption of Statistical Filtering Techniques

How To Recognize Voice Over Ip On Pc Or Mac Or Ip On A Pc Or Ip (Ip) On A Microsoft Computer Or Ip Computer On A Mac Or Mac (Ip Or Ip) On An Ip Computer Or Mac Computer On An Mp3

CSSEA Helpdesk User Guide

Information Security for Modern Enterprises

Modeling and Design of Intelligent Agent System

Data Migration System in Heterogeneous Database Shinde Anita Vitthal 1, Thite Vaishali Baban 2, Roshni Warade 3, Krupali Chaudhari 4

Development of Integrated Management System based on Mobile and Cloud Service for Preventing Various Hazards

An Enhanced Framework For Performing Pre- Processing On Web Server Logs

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 1, March, 2013 ISSN:

ALIAS: A Tool for Disambiguating Authors in Microsoft Academic Search

Semantic Concept Based Retrieval of Software Bug Report with Feedback

DIGITAL RIGHTS MANAGEMENT SYSTEM FOR MULTIMEDIA FILES

Visual Structure Analysis of Flow Charts in Patent Images

Understanding Web personalization with Web Usage Mining and its Application: Recommender System

A Framework for Personalized Healthcare Service Recommendation

Measurement Information Model

The Dentist Online Reservation System Design and Implementation Web Based Application and Database Management System Project

Transcription:

ISBN 978-93-84468-20-0 Proceedings of 2015 International Conference on Future Computational Technologies (ICFCT'2015) Singapore, March 29-30, 2015, pp. 41-47 Role of Functional in Software Development Kavitha Esther Rajakumari 1, Dr.S.Srinivasan 2 1 Sathyabama University 2 Anna University Abstract: The software organizations have a great demand on producing quality software. The methodology used to produce quality software varies depending on the organization s time, cost and resource constraints. In most cases, as the need for quality arises cost and time also increases. An efficient technique helps to cope up with these constraints and deliver a quality software system. In this paper, a cost-effective method is proposed to produce quality software. This proposed method uses the concept of code clones to effectively develop quality software. Most of the surveys regarding code clones project its negative aspects, but here the positive side of it is focused. The results show that this method uses limited resources and also user-friendly. Keywords: Quality software, software development, code clones, functional clones. 1. Introduction Software engineering has three major tasks embedded in it. They are software development, software reuse and software maintenance. Developing quality software helps in the steady growth of an organization. The techniques and methods used by an organization in software development determine its economical growth. Some techniques help in developing quality software but very expensive. Some methods are complex which are too difficult to implement. Some are simple but time consuming. Some techniques make use of more resources which indirectly leads to lack of resources for other tasks. So choosing an appropriate method is very important in developing software. Most of the organizations are equipped with customized tools which help in software development. Some organizations especially small-scale industries are not able to face the challenge of producing quality products. Industries which have very limited resources are often considered as small-scale industries. The proposed method paves way for these types of organizations to carry out the development process successfully. In this paper, the proposed method makes use of code clones. Implementing this method is less expensive, affordable and meets the requirements of small-scale industries. Code clones are identical codes present in a software system. They are also known as duplicate codes. There are four types of code clones. Type-1 clones are the exact replica of the original code fragments. Type-2 clones are also identical to original fragments but names of variables, identifiers.etc are changed. Type-3 clones are ones were the original fragment is modified i.e. additional changes or deletions are done. Type-4 clones are functionally similar. In general, code clones are considered harmful which deteriorate the software s quality. But by careful analysis beneficial clones can be extracted which aid in improving the quality. 2. Literature Survey The survey based on software engineering and code clones are discussed in this section. Francesca and his team mates [1] have discussed about the various tools assist in detecting code clones. They consider clones as bad smells. James R Cordy and Chanchal K. Roy [2] have proposed a tool named DebCheck to detect code clones in open source software systems. Dongxiang and Miryung [3] have found that clones that stay in the program over a long period of time cannot be refactored as soon as it is detected. They have termed those code clones as long-lived clones. The authors have mentioned that clones are not necessarily harmful. http://dx.doi.org/10.17758/ur.u0315216 41

The need for a new software development approach was discussed by Rupinder and Dr.Jyotsna [4]. They have listed some of the major issues faced in software development such as over budget, premature termination of projects etc. The concept of sharing knowledge among the development team members is stated as the key process in software development by Sharon and Rory [5]. Jesper and his peer group [6] have indicated that component reuse and iterative processes increase adaptability to changing customer needs. The above discussions show that clones are identified as one of the bad smells present in the software. Therefore detecting and removing clones is one of the processes while developing software systems. Moreover the software development process should be fine tuned and must be able to overcome the drawbacks of the organization. Although the demerits of an organization have an impact on the products being developed, proper steps should be taken to maintain quality at an acceptable level. 3. Proposed Method The proposed method makes use of the data mining approach to extract functional clones. Among the available data mining algorithms, FP-Growth algorithm [7, 8] is used. Though it is an existing algorithm, it proves to be efficient when used in source codes. The input to the system can be any software application. The output gives the set of functional clones used in the software system. They are maintained in the database for future use. The proposed method consists of five steps, each of which is briefly given below. Input Selection: In this phase, the input to the system is selected. Mostly the real-time applications are taken so that harmful codes are less in number. Sometimes not-in-use applications are also taken as inputs. Not-in-use means old version application software which was once efficiently working but due to new version release has stopped functioning. Module Separation: Here the selected software application is separated into modules for further investigation. Each module becomes an input to the proposed system. The application as a whole is also possible to be given as an input but problem of segregating the detected functional clones evolves. As a result modules are taken as input so that classifying functional clones according to their usage will be a simple task. Functional Extraction: After module separation, functional clones from each module are extracted. Apart from library functions, functions that have occurred more than ones are considered as clones. Beneficial functions with more than five occurrences can be made as library functions for future use. Functional Categorization: In this phase the extracted functional clones are examined manually to check for harmful codes. If noxious codes are present within a function, those functions are removed. Based on the inspection of codes present inside a function, decision will be made either to reject or retain the function. Beneficial functions are retained and unproductive functions are discarded. Storage of Beneficial : In this step, the clones that were termed beneficial in the previous phase are stored separately in a database. The database must be highly secured in order to avoid inconsistency among the stored data. The developers alone have access to the database apart from the system administrator and project manager. This database helps in providing useful functional clones in software development, software reuse and software maintenance. Thus the proposed method assists in the software engineering process efficiently. It helps the developers to complete their project work within the stipulated period. This prospective achieves quality software development in an inexpensive means. So each time when a software is under development the programmer or the developer must keep in mind that while repeating certain codes or functions it should be reasonable and valuable to pave way for future usage. The concept of the proposed method is depicted below. http://dx.doi.org/10.17758/ur.u0315216 42

A Software Application Module 1 Module 2 Module n Extracting clones from Detection Detection Detection software modules Beneficial Harmful Discarded Storage of beneficial clones Beneficial Database Usage of beneficial clones Software Development Software Reuse Software Maintenance 4. Implementation Fig. 1: Block Diagram An application software is taken as the input for the proposed system. It asks for the user name and password for authentication purpose so that unauthorized person cannot access the system. This is shown in Fig.2. In Fig.3 browsing the input software is displayed. After entering the system, can browse any application software stored in the database. Here the Project Management System is taken as input. Fig. 2: Login Page http://dx.doi.org/10.17758/ur.u0315216 43

Fig. 3: Browsing the application s/w After the input software is given to the system, the application software is separated into modules. The Fig.4 below shows some of the modules and the relevant clones detected in each module. Each functional clones extracted from the modules are checked manually for their correctness. When each functional clone is clicked its relevant code is opened. Based on the codes, the usage of the clones are determined and categorized. This process is depicted in Fig.5. Fig. 4: Module separation and clone detection Fig. 5: Examination of codes of a functional clone http://dx.doi.org/10.17758/ur.u0315216 44

After categorization, the details of detected clones are displayed. Number of occurrences, line number, page number and the module in which it occurs etc, are given. These details provide the exact location of the extracted clones. These details are a great help when need to track the origin of clones in the future. This conceptualization is shown in Fig.6. Fig. 6: Functional clones description The figures 7 & 8 displayed below shows the software development process of inserting functional clones in a software under development wherever necessary depending on their usage. Fig. 7: Insertion of a functional clone during s/w development http://dx.doi.org/10.17758/ur.u0315216 45

Fig. 8: Codes of the inserted functional clone The last two figures 9 & 10 below exhibits the database where the beneficial clones are stored and maintained. Both the databases support the developer during software development. Fig. 9: Database of beneficial functional clones Fig. 10: Database of functional clone details http://dx.doi.org/10.17758/ur.u0315216 46

5. Conclusion and Future Work Code clones have their own advantages and disadvantages. But by careful analysis of detected clones, the beneficial clones are used for software development. Therefore the proposed method proves to be cost- effective and most likely to be used in small- scale industries. This method is user friendly, easy to implement and easy to configure depending on the requirements of the organization. In the future this method can be extended by adding various features according to the needs of the organization. 6. References [1] Francesca Arcelli Fontana, Marco Zanoni, Andrea Ranchetti and Davide Ranchetti, Software Clone Detection and Refactoring, ISRN Software Engineering, Volume 2013 (2013), Article ID 129437, 8 pages, January 2013. [2] C.K.Roy and J.R.Cordy, DebCheck: Efficient Checking for Open Source Code in Software Systems, in Proc.2011 IEEE 19 th International Conference on Program Comprehension, Kingston, ON, June 22-24, 2011. [3] Dongxiang Cai and Miryung Kim, An Empirical Study of Long-Lived Code, in Fundamental Approaches to Software Engineering, Springer Berlin Heidelberg, 2011, vol. 6603, pp. 432-446. [4] Rupinder Kaur and Dr. Jyotsna Sengupta, Software Process Models and Analysis on Failure of Software Development Projects, International Journal of Scientific & Engineering Research, vol. 2, issue 2, February 2011. [5] Sharon Ryan and Rory V. O Connor, Acquiring and Sharing Tacit Knowledge in Software Development Teams: An Empirical Study, Information and Software Technology, vol. 55, No. 9, pp. 1614-1624, September 2013. [6] Jesper Pedersen Notander, Martin Höst and Per Runeson, Challenges in Flexible Safety-Critical Software Development An Industrial Qualitative Survey, in Product-Focused Software Process Improvement, vol. 7983, pp. 283-297, 2013. [7] Ankita Parmar, Kamal Sutaria and Krutarth Joshi, An Approach for Finding Frequent Item Set Done By Comparison Based Technique, International Journal of Computer Science and Mobile Computing, vol. 3, pp. 996 1001, April 2014. [8] Abdullah Saad Almalaise Alghamdi, Efficient Implementation of FP Growth Algorithm-Data Mining on Medical Data, International Journal of Computer Science and Network Security, vol. 11, No.12, pp. 7-16, December 2011. http://dx.doi.org/10.17758/ur.u0315216 47