Exploring the Relations between Code Cloning and Programming Languages
|
|
- Marian Logan
- 5 years ago
- Views:
Transcription
1 Exploring the Relations between Code Cloning and Programming Languages Ilca Webster Department of Computer Science York University 1. Introduction Copying code within a software system and adapting it to suit local needs is a common practice. Very similar sections of code are named clones. Cloning can be easier than sharing a common part of code from a library and does not affect the functionality of a system at all [1] but contributes to make further developments difficult and expensive. Detecting and characterizing software clones can help to minimize these impacts by explaining future software maintenance efforts [2]. Besides, it can be used to validate software evolution hypotheses [3]. Software clones have been the focus of research studies that generally address the construction of clone detection tools or the occurrence of clones (how, when and why they appear) [4]. This study discusses the occurrence of clones from the perspective of programming languages. It explores existing clones in software systems developed with programming languages that have similar syntactic characteristics: the object oriented languages C++ and Java. Four candidate software applications from a same domain were selected for this research. These applications are the clients Columba, IC , TTY-Grin and Ishmail. The first two were developed with Java while the second ones where developed with C++. The clone detection toolkit Gemini/CCFinder was applied to detect the clones in these
2 clients. Then, using CLICS (CLone Interpretation and Classification System) we explored and analyzed the documented cloning activity. The results shows the similarities among the software clones found in the candidate applications are not directly related to the programming languages used in their development. Characteristics of the application can lead to the existence of certain types of clones. These characteristics may indicate that development processes, rather than characteristics of programming languages, can better contribute to relate the presence of similar types of clones in different applications. This study is structured as follows. In the next section we discuss the proposed study in the context of software cloning and related work. Section 3 presents the tools and processes used to explore software clones. Section 4 describes the case studies. Section 5 presents a brief comparison between C++ and Java, the programming languages of the candidate applications used in our case studies. Section 6 covers the results and their analyses. The last section presents conclusions and suggestions for future work. 2. Proposed Study Copying code within a software system and adapting it to suit local needs through minor, non functional alterations, is a well known problem for evolving software systems leading to software clones. Similar portions of code are called software clones, and clone analysis is the research area that supports software cloning studies. Code cloning has been extensively used within the software development community. For example, for large and long term development systems it is estimated that 25 up to 30% of their modules may have been cloned [5]. These cases generally involve the copy of entire system modules and their slight modification to attend to local needs or the use of parts of modules in other modules.
3 Cloning does not affect the normal functioning of a system, but can contribute for further development to become very expensive. The main advantage of software cloning is the fast solution it provides to a problem. Copying and customizing part of the code does not require further negotiations with system designers and stakeholders. On the other hand, the copied code may contain unknown bugs and redundant parts that are not necessary. Besides, copied parts have to be maintained and modifications in an original part may also require the cloned part to be modified. These steps are time consuming and can lead to many other problems, especially in the absence of proper documentation. The identification of clones may reduce the effort devoted to test, maintain and evolve software systems by explaining future software maintenance efforts [2] and contributing to validate software evolution hypotheses [3]. Software clones have been the focus of several research studies. These studies often address the construction of clone detection tools and the occurrence of clones (how, when and why they appear) [4]. Within the category of studies addressing clones occurrence, very few discuss software clones from the perspective of programming languages. Among them, Dagenais et al. [6] study clones in large sets of object oriented software libraries and programs in two different programming languages: Java and Modula-3. In this study factors affecting clone detection accuracy and their frequency of occurrence are discussed and a comparison between systems written in both languages is presented. A previous study of Dagenais et al. [7] discusses the factors affecting the cloning detection accuracy and their frequence of occurrence. This study concentrates in a smaller set of object oriented software libraries and discusses the findings based on their architecture and on their development processes. Our study investigates the relation between software clones and the programming language used to develop a software system. Differently from the studies discussed above, we do not consider problems affecting the occurrence of clones. We concentrate our efforts in finding similarities and differences among software clones. The clone
4 detection tool CLICS provides the taxonomy of clones used to support finding these similarities and/or differences. More specifically, this study has the objectives of exploring differences and similarities between the code clones in the software applications studied, as well as to identify specific clone trends. Then we try to explain these similarities and differences based on characteristics of the programming languages used to develop our candidate applications. Given this studies characteristics, which were mentioned above, we can categorize it, according to Shaw [8], as a Generalization or Characterization research study. These types of studies intend to answer general questions with the objective of providing insights for future research. One of the common questions they aim to answer is: What are the varieties of X, how are they related? Following the same reasoning our study explores varieties of software clones in a set of candidate applications and their specific relations, using programming languages characteristics to facilitate the establishment of these relations. 3. Clone Detection Tools The first step of this study consists of detecting clones in the selected applications. For this purpose we used three different tools, which implement clone detection and classification techniques: Gemini, CCFinder and CLICS (CLone Interpretation and Classification System). Gemini/CCFinder is a Java based integrated environment for the analysis of code clones. CCFinder is a clone detection tool based on token-based representations of the source code [9]. It detects code clones from given source files and prints out data to a standard output that includes information about CCFinder, the paths of the input source files, locations at which the errors are reported and the maximal clone pairs [10].
5 Gemini is a GUI application that provides interactive code clone analysis in graphical mode [10]. It uses CCFinder internally to detect code clones and presents the results in the form of scatter plots and clone metric graphs. Source code and its respective clones and files can also be visualized, providing a documented activity of all the clones presented in a software system. CLICS (CLone Interpretation and Classification System) extends the work of Gemini/CCFinder. It provides a filtering mechanism for false matches and organizes the clones based on a taxonomy of clones. A detailed description of this taxonomy can be found in Kapser and Godfrey [11]. CLICS facilitates the removal of clones from the resulting set as well as the addition of files in the analysis without changing the detection results. Cloning relationships resulting from CLICS can be easily visualized and the clone statistics and classification that it provides contribute to richer analyses of software clones. Our study applied all these clone detection tools to the software application candidates described on the next section. The extraction process to obtain the final data involved three steps. First we used Gemini/CCFinder to detect code clones in the applications source code. The results for each application were stored in separated files. The second step involved loading each of these text files in CLICS. This tool decoded and organized the software clones for the candidate applications and produced, among other outputs, a summary of the findings. In a final step, this summary was manually further refined to facilitate its analysis. 4. Case Studies Four software applications were selected for the case studies: Columba, Ic , TTY- Grin and Ishmail. These are open source applications from the communications domain and are classified as clients or MUAs (mail user agents) under the development status production/stable. All these applications were developed with object-oriented
6 languages. Columba and Ic programming language is Java. TTY-Grin and Ishmail programming language is C++. Columba is an open source MUA that provides an easy to use graphical interface with wizards and is very similar to other popular clients. It is operational system independent and runs on every platform that supports Java. Its current version, 1.0 RC2, was entirely implemented with Java. IC is an operational system independent client written entirely in Java and based on the Java Mail API. It was designed for developers that want to make modifications and add new extensions. Each release of IC is distributed with its source code, allowing anyone to compile and build the application. The current version is TTY-Grin is a screen-orientated interactive news and client. It is a text based application that was entirely written in C++ to facilitate newsgroup and access for users of POSIX operational systems. This study used TTY-Grin current version, number 0.5.7a. Ishmail is a graphical client for Unix systems. Originally developed as a commercial product, its source code was released under the GNU (General Public License) on Ishmail s programming language is C++. This study used Ishmail version Considering the metric lines of code (LOC) as an indicator of the size of the applications, Ishmail and Columba are classified as the largest ones. These clients have 103,291 and 101,484 LOC respectively. Ic has 32,551 LOC and TTY-Grin is the smallest application, with 16,429 LOC. 5. A Comparison between Java and C++
7 Comparisons of characteristics of programming languages are generally highly influenced by the opinions of their authors. Objective information is not easily available. There are many different comparisons of C++ and Java within the computer science literature. The most common are non-quantitative and strongly based on the author viewpoint, for example [12]. A second group involves benchmarks measuring implementations of certain applications in each of these languages, for example [13], [14] and [15]. Benchmarks often compare one or more characteristics such as performance, memory consumption, etc. They are useful when the objective involves the selection of a programming language to develop programs similar to the samples used in the benchmark. If the samples are very simple and small they can however lead to uncertainty. A third group comparing C++ and Java involves empirical studies based on several large systems, for example [16], [17]. Larger samples can be prone to a lack of homogeneity because differences in their development processes. Studies based on controlled experimentation and focusing on constructs of the languages, such as [18] and [19] can provide more information independent of opinions. From an object oriented programming perspective, there are some significant differences between Java and C++. Writing about such differences could lead to a whole paper or even to a book if we have decided to use examples to discuss specific characteristics of each of these programming languages. To keep it simple a brief comparison between these languages is presented on Table 1. It is based on the references cited above and limits the scope to characteristics related to the syntax of both programming languages. Java is considered a pure object-oriented language while C++ is hybrid between procedural and object-oriented. Although some of Java rules and idioms are similar to rules and idioms in C++ and others are common to all object oriented languages, there
8 are completely Java specific rules and idioms. In general, Java shares many of the syntactical elements with C++ while avoiding its limitations. C++ Java Functions and Methods Can have stand-alone functions. Methods (functions) are part of the class to which they belong to. The main method can return a value. The main method cannot return a value. Optional function parameters. No optional method parameters. Data Structures Pointers. Reference types. typedef is used to define types. No typedef. String concatenation is done through a Has a built-in string concatenation library function. operator(+). Arrays are hybrid object. Arrays are instances of subclasses of class Object. Strings are null-terminated character Strings are objects. arrays. Object Oriented Programming Supports multiple inheritance. Does not support multiple inheritance. Templates are used as parameterized type. No parameterized type. No formal interface specifications. Supports formal interface specifications. Operator overloading. No operator overloading. Function overloading. No function overloading. No garbage collector mechanism. Objects Garbage collector mechanism for objects. must be deallocated from memory. Separate types are necessary for structs, All nonprimitive types are objects. unions, enums, and arrays. Supports dynamic binding for virtual All methods (except final methods) are functions only. dynamically bound. Table 1 C++ versus Java 6. Software Clones in Java and C++ This section shows the findings with their respective analyses. A general summary of cloning activity for all the candidate applications, which is generated by CLICS, can be found on Table 2. Detailed results involving clones by taxonomy and generation are then
9 presented and analyzed. Although object oriented refers to methods and not to functions, our analyses use these terms without distinction, because CLICS taxonomy refers to functions. Columba Ic TTY- Grin Ishmail Files in the analysis Lines of Code Function Regions Other Types of Regions Functions that have Clones % of Function Regions that have Clones Function Regions that have Same Region Clones % of Function Regions that have Same Region Clones Function Regions that have Clones to some other Function Region % of Function Regions that have Clones to some other Function Region Other Types of Regions with Clones Lines in the systems that are part of at least one Clone Files with Clones Average Length of a Clone Table 2: Profiles of cloning activity Table 3 shows the percentage of clones that occur in the same file, in the same directory but not in the same file, and in different directories for each of the applications. These results for all the applications indicate the highest percentages of software clones occur within the same directory but not in the same file and the lowest percentages occur within the same file. % of Clones Columba Ic TTY-Grin Ishmail Same File Same Directory Different Directories Table 3: Cloning activity by taxonomy Low percentages of clones within a same file seem to be common in object oriented applications. Specifically in the case of Java applications, there is a single file for each
10 class and its methods. Moreover, differently from C++, it does not support functional overloading. The combined name and parameter list for each method in a Java class must be unique. This could contribute to justify low percentages of Same File Clones for Columba and Ic . Because the highest percentages of software clones for all the software candidates are in the same directory, we decided to concentrate our analyses in this category. Our findings showed the highest percentages of software clones in the same directory but in different files for all the four applications are categorized as Function to Function Clones. The percentages of these clones for Columba, Ic , TTY-Grin and Ishmail are respectively 99.82%, 100%, 97.73% and 99.15%. CLICS subdivides Function to Function clones in Function Clones, Partial Function Clones, Cloned Function Body Clones and Cloned Blocks. Function Clones are functions that share a minimum of 60% of their code. Partial Function Clones are those were one function is a slightly copy of the other. Cloned Function Body Clones are functions where a smaller function was copied into a larger one and Cloned Blocks are blocks of code not large enough to be classified within any other Function to Function clone category. Exploring the subcategories of Function to Function clones, we obtained the results on Table 4. From this table we can see the highest percentages of clones within the same directory but in different files are Cloned Blocks for Ic and Ishmail and Function Clones for Columba and TTY-Grin. % of Clones Columba Ic TTY-Grin Ishmail Function Clones Partial Function Clones Cloned Function Body Cloned Blocks Table 4: Profiles of cloning activity in a same directory
11 An analysis of the code for Columba s Function Clones within the same directory but in different files showed these clones are generally part of classes belonging to the GUI (Graphical User Interface). An example can be found on Appendix 1. The duplicated code is generally an extension of a same major class. This type of clones could have been reduced with the use of interfaces. Arnold and Gosling [20] say: Any major class you expect to be extended, whether abstract or not, should be an implementation of an interface. Although this requires a little more work on your part, it enables a whole category of use that is otherwise precluded." It is interesting to note that Ic , the other Java application, has almost half of the percentage of Columba s Function Clones. Ic GUI was implemented with the JavaMail API [21]. This could have contributed to reduce the presence of these types of clones. The Function Clones within the same directory but in different files for TTY-Grin are generally clones of functions to organize the address book and newsgroups. An example can be found on Appendix 2. TTY-Grin is a text based application but these clones are part of the user interface. Although this client is a C++ application it is interesting to note the similarity with Columba, where a high percentage of Function Clones within the same directory are also part of the user interface. Ishmail is a specific case in the Function Clones scenario. When trying to identify possible reasons to explain its low percentage of Function Clones, we drew attention to the fact it is graphical client for Unix systems. Such applications usually present some particularities related to their development processes. Because the clients with a high percentage of Function Clones have the majority of these clones in the user interface we further investigated the development process for Ishmail GUI. In fact, it is not a pure C++ source code [23]. Ishmail s GUI was implemented with OSF/Motif and the X Window System. OSF/Motif is a graphical user interfaces for the X Window System, an open standard understood by many operating systems and used for drawing
12 graphical displays. It is based on IBM's Common User Access (CUA) specification which facilitates the migration of PC users to UNIX environments. Exploring Ishmail s Function Clones source code, we found out an interesting characteristic. Mostly of these clones are parts of functions that support editing user s preferences. These functions integrate with OSF/Motif s widgets. An example of Ishmail s Function Clones can be found on Appendix 3. Following the same reasoning adopted at the beginning of our analyses, because for Ic and Ishmail the highest percentage of clones within the same directory but in different files are Cloned Blocks, we decided to further explore this group. Cloned Blocks can exist in several spots in a function and can have different roles [11]. Due to these characteristics, CLICS taxonomy further subdivides this group into other subgroups. Table 4 depicts the percentages of different types of Cloned Blocks for Ic and Ishmail. Ic s highest percentage of Cloned Blocks belongs to the subcategory Initialization Clones while the highest percentage of Cloned Blocks for Ishmail are Less Simple Call Clones. % of Cloned Blocks Ic Ishmail Initialization Clones 45.98% 11.65% Finalization Clones 18.39% 13.87% Loop Clones 0.00% 2.59% Starting Loop Clones 1.15% 1.51% Partial Loop Clones 0.00% 0.36% Clone in Switches 0.00% 0.43% Conditional Clones 3.45% 10.06% Multi-Conditional Clones 1.15% 0.72% Partial Match Conditials 0.00% 3.09% Simple Call Clones 0.00% 12.44% Less Simple Call Clones 1.15% 14.81% Clone Islands 19.54% 13.59% Table 4: Profiles of Cloned Blocks Subcategory
13 Exploring Ishmail s source code for Less Simple Call Clones, we found out the majority of these clones are part of the GUI. They are within the code to create and manage GUI components, such as windows and its subcomponents, for example frames, buttons and boxes. Ic s Initialization Clones are part of private methods. An example can be found on Appendix 4. Java's private methods are accessible only by objects within the same class. A significant number of classes use very similar methods. Multiple inheritance could contribute to reduce the presence of this clones but it is not supported in Java. Table 4 also shows that within the subcategories of Cloned Blocks, there are high percentages of Finalization Clones and Clone Islands for both clients. The majority of Ishmail s Initialization Clones are part of methods to handle files while its Clone Islands are divided between methods related to the GUI and methods to handle files. The majority of Finalization Clones as well as Clone Islands for Ic are part of methods to establish contents of dialogue boxes. Finally, the lowest percentages of Cloned Blocks for Ic and Ishmail are Partial Loop Clones, and Clones in Switches. Partial Loop Clones are part of for, do/while and while iteration structures while Clones in Switches are clones of switch structures. These are the largest clients in terms of LOC. Avoiding iteration and switch structures is a common practice in large applications. This is because they usually require control of individual programming styles once they involve the work of multiple programmers. However polymorphism, which is a characteristic of object oriented languages, could explain the low presence of these types of clones in these applications. 7. Conclusions
14 Extracting information that could be very useful for future developments and maintenance is a challenging part of software clone research studies. This study explored differences and similarities in the occurrence of software clone within four client applications. Besides, it attempted to explain the findings based on characteristics of the programming languages C++ and Java, used to develop these applications. The results show no clone similarities between applications developed with a same programming language. On the other hand, because C++ and Java present some relevant syntactic differences when compared, we would expect to find out more clone differences between C++ applications and Java applications. However, the findings point to similarities with respect to the occurrence of certain types of clones between applications developed with C++ and applications developed with Java. As an exploratory study, we believe these results should further encourage future work to relate clone characteristics to development processes. In a previous study [22] we found they can explain the occurrence of clones more precisely. In general, object oriented programming language syntaxes are very complex, especially C++. This, added to the time needed to understand the source code, makes this kind of research very time consuming. Our suggestion is to realize smaller and more controlled experiments to relate programming language characteristics to CLICS taxonomy of clones. These experiments would focus only on the source code related to important components of the software architecture. Some of these study findings, based on our opinion, would be interesting subjects of further investigations. We found a high percentage of Function Clones related to the GUI in Columba, which is a Java application. Ic , which is the other Java application used an API and did not present a high occurrence of these types of clones. Exploring to which extent the use of libraries can contribute to reduce code clones would be a very interesting contribution to future developments.
15 References [1] Davey, N.; Barson, P.C.; Field, S.D.H., Frank, R.J. and Tansley, D.S.W.; The Development of a Software Clone Detector. Int. Jrnl. of Applied Software Technology, 1(3-4): , [2] Rysselberghe, Filip and Demeyer, Van Serge; Evaluating duplicated code detection techniques. In Evolution of Large-scale Industrial Software Applications (ELISA), pages 1--12, [3] G. Antonio, G. Casazza, M. Di Penta, and E. Merlo, "Modeling clones evolution through time series," in Proceedings of IEEE International Conference on Software Maintenance, (Florence, Italy), pp , Nov [4] Walenstein, Andrew; Lakhotia, Arun and Koschke, Rainer; The Second International Workshop on Detection of Software Clones: Workshop Report; ACM SIGSOFT Software Engineering Notes, Volume 29, Number 2, [5] Mayrand, J., Leblanc, C. and Merlo, E.M.; Experiment on the automatic detection of function clones in a software system using metrics. In International Conference on Software Maintenance, pp , Monterey, California, November [6] Dagenais, Michel; Patenaude, Jean-Francois; Merlo, Ettore and Lague, Bruno; Clones Occurrence in Java and Modula-3 Software Systems. In Advances in Software Engineering, pp , Springer-Verlag New York Inc., New York, NY, USA, [7] Dagenais, Michel; Merlo, Ettore; Lague, Bruno and Proulx, Daniel; Clones Ocurrence in Large Object Oriented Software Packages ; Proceedings of CASCON 98, Toronto, Ontario, Canada, [8] Shaw, Mary; What Makes Good Research in Software Engineering? invited presentation given at ETAPS 2002, Grenoble, France. [9] Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue; CCFinder: A multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 28(7): , July [10] Toshihiro Kamiya; CCFinder File Formats, Gemini/CCFinder documentation. Feb 29, [11] Kapser, Cory and Godfrey, Michael W., Toward a Taxonomy of Clones in Source Code: A Case Study, 2002, School of Computer Science, University of Waterloo. [12] Irimia, Andrei; Enhancing the introductory computer science curriculum: C++ or Java? ; Journal of Computing Sciences, Volume 17, Issue 2 (December 2001), pp , Publisher Consortium for Computing Sciences in Colleges, USA.
16 [13] Prechelt, Lutz; Technical opinion: comparing Java vs. C/C++ efficiency differences to interpersonal differences ; Communications of the ACM Volume 42, Issue 10 (October 1999), pp , ACM Press New York, NY, USA. [14] Lewis, J.P. and Neumann, Ulrich; Performance of Java versus C++ ; University of Southern California, Jan [15] Sangappa, Sudhir; Palaniappan, K. and Tollerton, Richard; Benchmarking Java against C/C++ for interactive scientific visualization, Proceedings of the 2002 joint ACM-ISCOPE conference on Java, pp , ACM Press, New York, NY, USA. [16] Mayrand, Jean; Patenaude, Jean-François; Merlo, Ettore; Dagenais, Michel and Laguë, Bruno; Software assessment using metrics: A comparison across large C++ and Java systems ; Annals of Software Engineering, Volume 9, Number 1 2, pp ; Kluwer Academic Publishers B.V.; March [17] Ferrett, L.K. and Offutt, J.; An empirical comparison of modularity of procedural and object-oriented software ; Proceedings of the Eighth IEEE International Conference on Engineering of Complex Computer Systems, [18] El Emam, K. Benlarbi, S. Goel, N. Melo, W. Lounis, H. Rai and S.N.; The optimal class size for object-oriented software IEEE Transactions on Software Engineering, Volume 28, Issue 5; May [19] Sinha, S. and Harrold, M.J.; Analysis and testing of programs with exception handling constructs IEEE Transactions on Software Engineering, Volume 26, Issue 9, pp , Sept [20] Ken Arnold and James Gosling, The Java Programming Language, Addison- Wesley, [21] Nourie, Dana; The Technologies Behind IC An Open-Source Project, Technical Papers, Sun Microsystems, Inc. June [22] Webster, Ilca; COS846 Assignment 2. [23] Ishmail website -
17 Appendix 1 Columba - Function Clones
18 Appendix 2 TTY-Grin - Function Clones
19 Appendix 3 Ishmail Function Clones
20 Appendix 4 Ic - Initialization Clones
Keywords Clone detection, metrics computation, hybrid approach, complexity, byte code
Volume 3, Issue 5, May 2013 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com An Emerging Approach
More informationRefactoring Support Based on Code Clone Analysis
Refactoring Support Based on Code Clone Analysis Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1 and Katsuro Inoue 1 1 Graduate School of Information Science and Technology, Osaka University, Toyonaka,
More informationKeywords Code cloning, Clone detection, Software metrics, Potential clones, Clone pairs, Clone classes. Fig. 1 Code with clones
Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Detection of Potential
More informationOn Refactoring for Open Source Java Program
On Refactoring for Open Source Java Program Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1, Katsuro Inoue 1 and Yoshio Kataoka 3 1 Graduate School of Information Science and Technology, Osaka University
More informationToward a Taxonomy of Clones in Source Code: A Case Study
Toward a Taxonomy of Clones in Source Code: A Case Study Cory Kapser and Michael W. Godfrey Software Architecture Group (SWAG) School of Computer Science, University of Waterloo fcjkapser, migodg@uwaterloo.ca
More informationDETECTING SIMPLE AND FILE CLONES IN SOFTWARE
DETECTING SIMPLE AND FILE CLONES IN SOFTWARE *S.Ajithkumar, P.Gnanagurupandian, M.Senthilvadivelan, Final year Information Technology **Mr.K.Palraj ME, Assistant Professor, ABSTRACT: The objective of this
More informationDetection and Behavior Identification of Higher-Level Clones in Software
Detection and Behavior Identification of Higher-Level Clones in Software Swarupa S. Bongale, Prof. K. B. Manwade D. Y. Patil College of Engg. & Tech., Shivaji University Kolhapur, India Ashokrao Mane Group
More informationThe goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.
Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which
More informationClone Detection using Textual and Metric Analysis to figure out all Types of Clones
Detection using Textual and Metric Analysis to figure out all Types of s Kodhai.E 1, Perumal.A 2, and Kanmani.S 3 1 SMVEC, Dept. of Information Technology, Puducherry, India Email: kodhaiej@yahoo.co.in
More informationAn Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques
An Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques Norihiro Yoshida (NAIST) Yoshiki Higo, Shinji Kusumoto, Katsuro Inoue (Osaka University) Outline 1. What
More informationAn Effective Approach for Detecting Code Clones
An Effective Approach for Detecting Code Clones Girija Gupta #1, Indu Singh *2 # M.Tech Student( CSE) JCD College of Engineering, Affiliated to Guru Jambheshwar University,Hisar,India * Assistant Professor(
More informationRelation of Code Clones and Change Couplings
Relation of Code Clones and Change Couplings Reto Geiger, Beat Fluri, Harald C. Gall, and Martin Pinzger s.e.a.l. software evolution and architecture lab, Department of Informatics, University of Zurich,
More informationOn Refactoring Support Based on Code Clone Dependency Relation
On Refactoring Support Based on Code Dependency Relation Norihiro Yoshida 1, Yoshiki Higo 1, Toshihiro Kamiya 2, Shinji Kusumoto 1, Katsuro Inoue 1 1 Graduate School of Information Science and Technology,
More informationVisualization of Clone Detection Results
Visualization of Clone Detection Results Robert Tairas and Jeff Gray Department of Computer and Information Sciences University of Alabama at Birmingham Birmingham, AL 5294-1170 1-205-94-221 {tairasr,
More informationCross Language Higher Level Clone Detection- Between Two Different Object Oriented Programming Language Source Codes
Cross Language Higher Level Clone Detection- Between Two Different Object Oriented Programming Language Source Codes 1 K. Vidhya, 2 N. Sumathi, 3 D. Ramya, 1, 2 Assistant Professor 3 PG Student, Dept.
More informationIdentification of Crosscutting Concerns: A Survey
Identification of Crosscutting Concerns: A Survey Arvinder Kaur University School of IT GGSIP, University, Delhi arvinder70@gmail.com Kalpana Johari CDAC, Noida kalpanajohari@cdacnoida.in Abstract Modularization
More informationEmpirical Study on Impact of Developer Collaboration on Source Code
Empirical Study on Impact of Developer Collaboration on Source Code Akshay Chopra University of Waterloo Waterloo, Ontario a22chopr@uwaterloo.ca Parul Verma University of Waterloo Waterloo, Ontario p7verma@uwaterloo.ca
More informationCloning by Accident?
Cloning by Accident? An Empirical Study of Source Code Cloning Across Software Systems Project Report for CS 846: Software Evolution and Design Winter 2005 By Raihan Al-Ekram, rekram@swag.uwaterloo.ca
More informationLecture 25 Clone Detection CCFinder. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Lecture 25 Clone Detection CCFinder Today s Agenda (1) Recap of Polymetric Views Class Presentation Suchitra (advocate) Reza (skeptic) Today s Agenda (2) CCFinder, Kamiya et al. TSE 2002 Recap of Polymetric
More informationcode pattern analysis of object-oriented programming languages
code pattern analysis of object-oriented programming languages by Xubo Miao A thesis submitted to the School of Computing in conformity with the requirements for the degree of Master of Science Queen s
More informationSearching for Configurations in Clone Evaluation A Replication Study
Searching for Configurations in Clone Evaluation A Replication Study Chaiyong Ragkhitwetsagul 1, Matheus Paixao 1, Manal Adham 1 Saheed Busari 1, Jens Krinke 1 and John H. Drake 2 1 University College
More informationA Novel Ontology Metric Approach for Code Clone Detection Using FusionTechnique
A Novel Ontology Metric Approach for Code Clone Detection Using FusionTechnique 1 Syed MohdFazalulHaque, 2 Dr. V Srikanth, 3 Dr. E. Sreenivasa Reddy 1 Maulana Azad National Urdu University, 2 Professor,
More informationEvaluating Software Maintenance Cost Using Functional Redundancy Metrics
1 Evaluating Software Maintenance Cost Using Functional Redundancy Metrics Takeo Imai, Yoshio Kataoka, Tetsuji Fukaya System Engineering Laboratory Corporate Research & Development Center Toshiba Corp.
More informationExtracting Code Clones for Refactoring Using Combinations of Clone Metrics
Extracting Code Clones for Refactoring Using Combinations of Clone Metrics Eunjong Choi 1, Norihiro Yoshida 2, Takashi Ishio 1, Katsuro Inoue 1, Tateki Sano 3 1 Graduate School of Information Science and
More informationToken based clone detection using program slicing
Token based clone detection using program slicing Rajnish Kumar PEC University of Technology Rajnish_pawar90@yahoo.com Prof. Shilpa PEC University of Technology Shilpaverma.pec@gmail.com Abstract Software
More informationMulti-Paradigm Approach for Teaching Programming
Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate
More informationSoftware Quality Analysis by Code Clones in Industrial Legacy Software
Software Quality Analysis by Code Clones in Industrial Legacy Software Akito Monden 1 Daikai Nakae 1 Toshihiro Kamiya 2 Shin-ichi Sato 1,3 Ken-ichi Matsumoto 1 1 Nara Institute of Science and Technology,
More informationA PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING
IADIS International Conference Applied Computing 2007 A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING Lau Sei Ping 1, Wee Bui Lin 2, Nurfauza bt Jali 3 Faculty of Computer Science and Information Technology
More informationAlgorithm to Detect Non-Contiguous Clones with High Precision
Algorithm to Detect Non-Contiguous Clones with High Precision Sonam Gupta Research Scholar, Suresh Gyan Vihar University, Jaipur, Rajasthan, India Dr. P.C. Gupta Department of Computer Science and Engineering
More informationCode duplication in Software Systems: A Survey
Code duplication in Software Systems: A Survey G. Anil kumar 1 Dr. C.R.K.Reddy 2 Dr. A. Govardhan 3 A. Ratna Raju 4 1,4 MGIT, Dept. of Computer science, Hyderabad, India Email: anilgkumar@mgit.ac.in, ratnaraju@mgit.ac.in
More informationHow are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects
How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects Yuhao Wu 1(B), Yuki Manabe 2, Daniel M. German 3, and Katsuro Inoue 1 1 Graduate
More informationISSN: (PRINT) ISSN: (ONLINE)
IJRECE VOL. 5 ISSUE 2 APR.-JUNE. 217 ISSN: 2393-928 (PRINT) ISSN: 2348-2281 (ONLINE) Code Clone Detection Using Metrics Based Technique and Classification using Neural Network Sukhpreet Kaur 1, Prof. Manpreet
More informationInternational Journal for Management Science And Technology (IJMST)
Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION
More informationRearranging the Order of Program Statements for Code Clone Detection
Rearranging the Order of Program Statements for Code Clone Detection Yusuke Sabi, Yoshiki Higo, Shinji Kusumoto Graduate School of Information Science and Technology, Osaka University, Japan Email: {y-sabi,higo,kusumoto@ist.osaka-u.ac.jp
More informationSoftware Clone Detection and Refactoring
Software Clone Detection and Refactoring Francesca Arcelli Fontana *, Marco Zanoni *, Andrea Ranchetti * and Davide Ranchetti * * University of Milano-Bicocca, Viale Sarca, 336, 20126 Milano, Italy, {arcelli,marco.zanoni}@disco.unimib.it,
More informationA Technique to Detect Multi-grained Code Clones
Detection Time The Number of Detectable Clones A Technique to Detect Multi-grained Code Clones Yusuke Yuki, Yoshiki Higo, and Shinji Kusumoto Graduate School of Information Science and Technology, Osaka
More informationClassification of Java Programs in SPARS-J. Kazuo Kobori, Tetsuo Yamamoto, Makoto Matsusita and Katsuro Inoue Osaka University
Classification of Java Programs in SPARS-J Kazuo Kobori, Tetsuo Yamamoto, Makoto Matsusita and Katsuro Inoue Osaka University Background SPARS-J Reuse Contents Similarity measurement techniques Characteristic
More informationInvestigation of Metrics for Object-Oriented Design Logical Stability
Investigation of Metrics for Object-Oriented Design Logical Stability Mahmoud O. Elish Department of Computer Science George Mason University Fairfax, VA 22030-4400, USA melish@gmu.edu Abstract As changes
More informationAl al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department
Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department 0901212 Python Programming 1 st Semester 2014/2015 Course Catalog This course introduces
More informationEvaluation and Design Issues of Nordic DC Metadata Creation Tool
Evaluation and Design Issues of Nordic DC Metadata Creation Tool Preben Hansen SICS Swedish Institute of computer Science Box 1264, SE-164 29 Kista, Sweden preben@sics.se Abstract This paper presents results
More informationMACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS
MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS N. Kannadhasan and B. Uma Maheswari Department of Master of Computer Applications St. Joseph s College of Engineering, Chennai,
More informationKClone: A Proposed Approach to Fast Precise Code Clone Detection
KClone: A Proposed Approach to Fast Precise Code Clone Detection Yue Jia 1, David Binkley 2, Mark Harman 1, Jens Krinke 1 and Makoto Matsushita 3 1 King s College London 2 Loyola College in Maryland 3
More informationSoftware Architecture Recovery based on Dynamic Analysis
Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box 68511 ZIP 21945-970 Rio de Janeiro
More informationJava Learning Object Ontology
Java Learning Object Ontology Ming-Che Lee, Ding Yen Ye & Tzone I Wang Laboratory of Intelligent Network Applications Department of Engineering Science National Chung Kung University Taiwan limingche@hotmail.com,
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationCOMPARISON AND EVALUATION ON METRICS
COMPARISON AND EVALUATION ON METRICS BASED APPROACH FOR DETECTING CODE CLONE D. Gayathri Devi 1 1 Department of Computer Science, Karpagam University, Coimbatore, Tamilnadu dgayadevi@gmail.com Abstract
More informationIJREAS Volume 2, Issue 2 (February 2012) ISSN: SOFTWARE CLONING IN EXTREME PROGRAMMING ENVIRONMENT ABSTRACT
SOFTWARE CLONING IN EXTREME PROGRAMMING ENVIRONMENT Ginika Mahajan* Ashima** ABSTRACT Software systems are evolving by adding new functions and modifying existing functions over time. Through the evolution,
More informationClone Analysis in the Web Era: an Approach to Identify Cloned Web Pages
Clone Analysis in the Web Era: an Approach to Identify Cloned Web Pages Giuseppe Antonio Di Lucca, Massimiliano Di Penta*, Anna Rita Fasolino, Pasquale Granato dilucca@unina.it, dipenta@unisannio.it, fasolino@unina.it,
More informationLecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)
Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.
More informationPerlDSM: A Distributed Shared Memory System for Perl
PerlDSM: A Distributed Shared Memory System for Perl Norman Matloff University of California, Davis matloff@cs.ucdavis.edu Abstract A suite of Perl utilities is presented for enabling Perl language programming
More informationChapter 1. Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More informationZjednodušení zdrojového kódu pomocí grafové struktury
Zjednodušení zdrojového kódu pomocí grafové struktury Ing. Tomáš Bublík 1. Introduction Nowadays, there is lot of programming languages. These languages differ in syntax, usage, and processing. Keep in
More informationJAVA An overview for C++ programmers
JAVA An overview for C++ programmers Wagner Truppel wagner@cs.ucr.edu edu March 1st, 2004 The early history James Gosling, Sun Microsystems Not the usual start for a prog.. language Consumer electronics,
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationA Novel Technique for Retrieving Source Code Duplication
A Novel Technique for Retrieving Source Code Duplication Yoshihisa Udagawa Computer Science Department, Faculty of Engineering Tokyo Polytechnic University Atsugi-city, Kanagawa, Japan udagawa@cs.t-kougei.ac.jp
More informationCourse Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++
Introduction to Programming in C++ Course Text Programming in C++, Zyante, Fall 2013 edition. Course book provided along with the course. Course Description This course introduces programming in C++ and
More informationEmpirical Evaluation and Critical Review of Complexity Metrics for Software Components
Proceedings of the 6th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Corfu Island, Greece, February 16-19, 2007 24 Empirical Evaluation and Critical Review of Complexity Metrics
More informationQuick Parser Development Using Modified Compilers and Generated Syntax Rules
Quick Parser Development Using Modified Compilers and Generated Syntax Rules KAZUAKI MAEDA Department of Business Administration and Information Science, Chubu University 1200 Matsumoto, Kasugai, Aichi,
More informationA Tagging Approach to Ontology Mapping
A Tagging Approach to Ontology Mapping Colm Conroy 1, Declan O'Sullivan 1, Dave Lewis 1 1 Knowledge and Data Engineering Group, Trinity College Dublin {coconroy,declan.osullivan,dave.lewis}@cs.tcd.ie Abstract.
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized
More informationFUNCTION CLONE DETECTION IN WEB APPLICATIONS: A SEMIAUTOMATED APPROACH
Journal of Web Engineering, Vol. 3, No.1 (2004) 003-021 Rinton Press FUNCTION CLONE DETECTION IN WEB APPLICATIONS: A SEMIAUTOMATED APPROACH FABIO CALEFATO, FILIPPO LANUBILE, TERESA MALLARDO Dipartimento
More informationScalable Coding of Image Collections with Embedded Descriptors
Scalable Coding of Image Collections with Embedded Descriptors N. Adami, A. Boschetti, R. Leonardi, P. Migliorati Department of Electronic for Automation, University of Brescia Via Branze, 38, Brescia,
More informationSoftware Language Engineering of Architectural Viewpoints
Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr
More informationSoftware Clone Detection. Kevin Tang Mar. 29, 2012
Software Clone Detection Kevin Tang Mar. 29, 2012 Software Clone Detection Introduction Reasons for Code Duplication Drawbacks of Code Duplication Clone Definitions in the Literature Detection Techniques
More informationExMAn: A Generic and Customizable Framework for Experimental Mutation Analysis 1
ExMAn: A Generic and Customizable Framework for Experimental Mutation Analysis 1 Jeremy S. Bradbury, James R. Cordy, Juergen Dingel School of Computing, Queen s University Kingston, Ontario, Canada {bradbury,
More informationChapter 1. Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More informationEclipse Support for Using Eli and Teaching Programming Languages
Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing
More informationDCC / ICEx / UFMG. Software Code Clone. Eduardo Figueiredo.
DCC / ICEx / UFMG Software Code Clone Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Code Clone Code Clone, also called Duplicated Code, is a well known code smell in software systems Code clones
More informationOntology Matching with CIDER: Evaluation Report for the OAEI 2008
Ontology Matching with CIDER: Evaluation Report for the OAEI 2008 Jorge Gracia, Eduardo Mena IIS Department, University of Zaragoza, Spain {jogracia,emena}@unizar.es Abstract. Ontology matching, the task
More informationCode Clone Analysis and Application
Code Clone Analysis and Application Katsuro Inoue Osaka University Talk Structure Clone Detection CCFinder and Associate Tools Applications Summary of Code Clone Analysis and Application Clone Detection
More informationA Comparison of Text-Categorization Methods applied to N-Gram Frequency Statistics
A Comparison of Text-Categorization Methods applied to N-Gram Frequency Statistics Helmut Berger and Dieter Merkl 2 Faculty of Information Technology, University of Technology, Sydney, NSW, Australia hberger@it.uts.edu.au
More informationEr. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma
International Journal Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 8 ISSN : 2456-3307 DOI : https://doi.org/10.32628/cseit183833 Impact
More informationEvaluating the Evolution of a C Application
Evaluating the Evolution of a C Application Elizabeth Burd, Malcolm Munro Liz.Burd@dur.ac.uk The Centre for Software Maintenance University of Durham South Road Durham, DH1 3LE, UK Abstract This paper
More informationChange Detection System for the Maintenance of Automated Testing
Change Detection System for the Maintenance of Automated Testing Miroslav Bures To cite this version: Miroslav Bures. Change Detection System for the Maintenance of Automated Testing. Mercedes G. Merayo;
More informationProblematic Code Clones Identification using Multiple Detection Results
Problematic Code Clones Identification using Multiple Detection Results Yoshiki Higo, Ken-ichi Sawa, and Shinji Kusumoto Graduate School of Information Science and Technology, Osaka University, 1-5, Yamadaoka,
More informationTo Enhance Type 4 Clone Detection in Clone Testing Swati Sharma #1, Priyanka Mehta #2 1 M.Tech Scholar,
To Enhance Type 4 Clone Detection in Clone Testing Swati Sharma #1, Priyanka Mehta #2 1 M.Tech Scholar, 2 Head of Department, Department of Computer Science & Engineering, Universal Institute of Engineering
More informationVisual Detection of Duplicated Code
Visual Detection of Duplicated Code Matthias Rieger, Stéphane Ducasse Software Composition Group, University of Berne ducasse,rieger@iam.unibe.ch http://www.iam.unibe.ch/scg/ Abstract Code duplication
More informationResearch Article Software Clone Detection and Refactoring
ISRN Software Engineering Volume 2013, Article ID 129437, 8 pages http://dx.doi.org/10.1155/2013/129437 Research Article Software Clone Detection and Refactoring Francesca Arcelli Fontana, Marco Zanoni,
More informationFrom Whence It Came: Detecting Source Code Clones by Analyzing Assembler
From Whence It Came: Detecting Source Code Clones by Analyzing Assembler Ian J. Davis and Michael W. Godfrey David R. Cheriton School of Computer Science University of Waterloo Waterloo, Ontario, Canada
More informationDetection of Non Continguous Clones in Software using Program Slicing
Detection of Non Continguous Clones in Software using Program Slicing Er. Richa Grover 1 Er. Narender Rana 2 M.Tech in CSE 1 Astt. Proff. In C.S.E 2 GITM, Kurukshetra University, INDIA Abstract Code duplication
More informationChapter 5. Names, Bindings, and Scopes
Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative
More informationAn approach to quantifying the run-time behaviour of Java GUI applications
An approach to quantifying the run-time behaviour of Java GUI applications Aine Mitchell, James F. Power Abstract This paper outlines a new technique for collecting dynamic trace information from Java
More informationPROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING
10.2478/cris-2013-0011 PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING NIKOLETTA MINAROVA 77 INTRODUCTION Since the first design concept of computers came into the world,
More informationA System of Patterns for Web Navigation
A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In
More informationAutomated Improvement for Component Reuse
Automated Improvement for Component Reuse Muthu Ramachandran School of Computing The Headingley Campus Leeds Metropolitan University LEEDS, UK m.ramachandran@leedsmet.ac.uk Abstract Software component
More informationINCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM
INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming
More informationTesting Component-Based Software
Testing Component-Based Software Jerry Gao, Ph.D. San Jose State University One Washington Square San Jose, CA 95192-0180 Email:gaojerry@email.sjsu.edu 1 Abstract Today component engineering is gaining
More informationPrinciples of Programming Languages. Lecture Outline
Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation
More informationProgrammers Life made easy through Smart Source Code Generator
International Journal of Engineering& Scientific Research Vol.5 Issue 4, April 2017, ISSN: 2347-6532 Impact Factor: 6.660 JournalHomepage:http://www.ijmra.us,Email:editorijmie@gmail.com Double-Blind Peer
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More informationLicense.
License This document is licensed under the terms of the Creative Commons Attribution-Noncommercial 3.0 Germany license. You are allowed to to Share to copy, distribute, and transmit the document to Remix
More informationDéjà Vu: A Hierarchical Case-Based Reasoning System for Software Design
Déjà Vu: A Hierarchical Case-Based Reasoning System for Software Design Barry Smyth Hitachi Dublin Laboratory Trinity College Dublin 2 Ireland. Tel. 01-6798911 Fax. 01-6798926 E-mail: bsmyth@vax1.tcd.ie
More informationQuantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study
Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study Jadson Santos Department of Informatics and Applied Mathematics Federal University of Rio Grande do Norte, UFRN Natal,
More informationAURA: A Hybrid Approach to Identify
: A Hybrid to Identify Wei Wu 1, Yann-Gaël Guéhéneuc 1, Giuliano Antoniol 2, and Miryung Kim 3 1 Ptidej Team, DGIGL, École Polytechnique de Montréal, Canada 2 SOCCER Lab, DGIGL, École Polytechnique de
More informationChapter 1 Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More informationSpecification-Based Testing 1
Specification-Based Testing 1 Stuart Anderson Overview 1 Basic terminology A view of faults through failure Systematic versus randomised testing A systematic approach to specification-based testing A simple
More informationSOFTWARE LAYERS AND MEASUREMENT
SOFTWARE LAYERS AND MEASUREMENT Jean-Marc Desharnais, Software Engineering Laboratory in Applied Metrics Denis St-Pierre, DSA Consulting Inc. Serge Oligny, Laboratoire de recherche en gestion des logiciels
More informationCCFinderSW: Clone Detection Tool with Flexible Multilingual Tokenization
2017 24th Asia-Pacific Software Engineering Conference CCFinderSW: Clone Detection Tool with Flexible Multilingual Tokenization Yuichi Semura, Norihiro Yoshida, Eunjong Choi and Katsuro Inoue Osaka University,
More informationObject-Oriented Software Engineering. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction
More information