Error Propagation in Large Software Projects

Size: px
Start display at page:

Download "Error Propagation in Large Software Projects"

Transcription

1 Error Propagation in Large Software Projects M. Faisal Shehzad, M. IkramUllah Lali, M. Idrees and M. Saqib Nawaz Department of Computer Science & IT, University of Sargodha, Sargodha, Pakistan Abstract. In software development, various debugging techniques are used to remove errors that are found in the program. However, in some situations, errors still remain in the code after debugging process. Also, debugging provides no mechanism to find out pattern of bugs in different versions of the project. In this article, our focus is to find the reasons why these errors propagate in different releases of the software and how the developers can focus on it. We focused on extending debugging process by including the functionality of mining software repositories in order to find out those patterns of errors. Source code as per revision of the projects can be found on the central servers. Our job is to investigate how these errors propagate between different revisions of project and to apply the software mining techniques on the repositories to extract the useful information to detect real defects in projects and finding the pattern of errors that propagate in different revisions of projects. Keywords: Software Development Software Repository Data Mining Error Propagation Eclipse CVS Source Code Revisions. 1 Introduction Software development refers to activities performed to develop software. There are different stages in software development that can be organized in the form of System Development Life Cycle (SDLC). SDLC consist of different phases that include planning, analysis, design, implementation, testing, software deployment and maintenance. Different models are introduced to represent the activities of software development such as Water Fall model, Spiral model, Rapid Application Development (RAD) model and Agile SDLC model [1]. Software engineering is a combination of different techniques and tools and a systematic, disciplined and quantifiable approach that helps in developing cost effective, reliable and quality software in time according to the users requirements [2]. Different process models in software engineering are used for requirement gathering, analysis of requirement and architecture, testing and maintenance [1]. A major area of software engineering that is now in focus is repository mining [3]. Many researchers and developers are using software repositories to extract and analyze source code. Software repositories are the storage locations for software products. A large amount of data is stored in repository. As the software development is performed, data about the software and its releases is stored in central repositories. Software repositories are valuable source of information for tracking the elements of defects in software products. Concurrent Versions System (CVS) [5] is a free version control in the software development field. Eclipse [6] is a popular and widely used open source framework tool and application. Knowledge discovery or data mining is a technique of analyzing data from different perspective and generating a summarized and useful form of information. Data mining provide different tools for analyzing data from multiple dimensions, categories or from different angles to construct and identify the relationships between data elements [7]. Usually data mining is applied to find out patterns and trends about data and helps in decision making about business. In broader sense, we can say that data mining provides the patterns and associations between different data components in large data storage such as a large database [8]. Data

2 2 M. Faisal Shehzad et al. mining is also used for knowledge discovery from large databases using historical patterns and identifying future trends [9]. Debugging process came soon after the development of programming languages [26]. From the beginning of debugging to the present day, researchers and developers have proposed a surplus of tools to find errors in the programs. Although different debugging tools are commonly used and are very effective but they are really missing one specific area that we are talking about, is the repository mining. In this technique, we analyze different releases of the same project to see the errors that were not caught by debugging tools and we will use this idea along with existing debugging rules to further investigate these type of errors and the pattern of their propagation. 1.1 Related Work Software maintenance is the process of modifying a software system or component after delivery in order to correct reported bugs and errors, to improve performance of the software or to adapt the changing environment as well as due to other attributes [2]. Different static analysis tools are available that verify the properties of produced code and are available as part of development tools. Moreover, some tool like Lint or Metal searches for patterns to flag common errors [3], but they can produce false positive which frustrate customers. Benton and Fischer [10] introduced a framework named as DIMPLE for Java, that provides not only representation of byte code in database of relations but also a declarative domain specific language of analysis as queries over the database. Error propagation is properly understandable only when all the code in all the releases of the softwares are available for inspection. In program analysis, the main task is to analyze the errors. Once an error is understood we may rewrite, reset or can find its propagation [22]. Change propagation is the reason of error propagation. Change propagation means changes required to other components of the software system to ensure the consistency of assumptions in a software system after a particular change in the software [11]. In 1972, Parnas [23] introduced a technique of information hiding in designing systems that was used for the change propagation. Technique based on Aspect Oriented Programming (AOP) encapsulates concepts which cross-cut the structures [24]. In [25], they designed a tool named C-REX for the extraction of data from the repositories. Gall et al. [12] in their article proposed a technique named as CAESAR for the pattern detection. Co-change is one of the most frequently used techniques for mining version archives. Zimmermann et al. [9] used annotation graph for mapping co-changed lines at line level. The article introduced an algorithm named as GNU s diff for finding difference between different version of the same software [9]. A tool named as CVSSearch was proposed and developed by Chen et al. [13]. This tool annotates the source code with the help of log messages. Data mining techniques are also applied by Zimmermann et al. [14] and Ying et al. [15] in their papers, to map co-changes in the related methods and files of the revision. Mapping the lines of different revisions is the main focus now a days. In [9], they introduced an annotation graph for mapping lines. This graph considers each part as one element of a single revision and the nodes are created as single line and edges as origin of line from one revision to other revision due to addition or modification or due to deletion. Our focus is also on mapping lines in different revision but instead of using annotation graph, we have developed our own technique with the help of annotation graph for mapping the lines. 1.2 Overview Much has been written about mining the software repositories to extract useful information for various purposes. But the area that has not been focused too much is the analysis of software repositories for tracking bugs that propagate from version to version and cause the failure of projects. In section 2, CVS and eclipse repositories are analzed for research work.

3 Error Propagation in Large Software Projects 3 In order to analyze software repositories, it is necessary to first extract raw data from the version control and problem tracking systems. But these systems are designed for keeping the specific purpose in mind and are not useful to analyze the exact patterns of defects. In section 3, we present our methodology to analyze software repositories in order to find out not only the error propagation but also their patterns. In Section 4, error pattern recognition and propagation of errors is discussed. In section 5, conclusions are drawn. Main activities in this work involve extraction of code from the eclipse project. Extracted code is then explored at line level and its mapping to previous revisions to find errors that not only propagate in different files of a project but also in different releases of the files in the project. Finally the pattern of errors that propagate are categorized in this work. 2 Concurrent Versions System and Eclipse Repository CVS (Concurrent Versions System) [5] is a tracking system for all the modification and work done in source code. It is used to keep track of all changes in different versions of the software release and synchronize changes by multiple developers in source code. Its structure is combination of directories in a hierarchy which contain source code for revision files. It is based on two main components: repository and working directory. The repository contains historical data about different versions of the same project. Developers can take source code of a revision for editing and developing new version of the file in working directory and then can upload again that code in repository [14]. As the developers modify the code of a revision, add some code, delete some code or may found some errors in the previous version and save changes in the source code, it will be called a new revision and a number like will be assigned to that file. This file is also saved in the repository and it is a different version of a file. The most latest and current revision is called as head revision. We can use log command on root directory of the project in the repository and can extract all information that are available in repository. Eclipse [6] is a popular and widely used open source framework tool and application. It provides Java integrated development environment as well as advance design techniques and implementation. It is an open source but publically licensed and have a lot of extension that can be added by different developers [19]. Eclipse provides intellectual property, development process, IT infrastructure and eco-systems. Our focus is on IT infrastructure as it maintains open source projects and code repositories. Eclipse is continuously evolving to include more sophisticated applications and tools [20]. To develop Java applications, JDT provides plug-in tools, eclipse plug-in s and different editors, refactoring tools, builders, wizards and advance techniques for software developments. The JDT project consist of 5 components APT (Java 5.0 Annotation processing infrastructure), Core (Java IDE headless infrastructure), Debug (Debug support for Java), Text (Java editing support) and UI (Java IDE user interface). Debug component is selected for this study. Debug component of JDT support in code running and debugging. It is compatible with Java virtual machine and can work independent of language by the platform debugger [21]. 3 Methodolgy Historical repositories contains large amount of source code. Projects can be selected form these repositories. Selection of the projects depends upon some factors such as maturity, acceptability, well documentation and supporting community of the projects [20]. Eclipse repositories contain more code, patches, traces and a large numbers of projects as well as it is open source and easily available, so eclipse project named as org.eclipse.jdt.core is selected for data extraction.

4 4 M. Faisal Shehzad et al. 3.1 Data Extraction and Preparation Data extraction is performed on two most important software repositories: eclipse and CVS repositories. Revisions data is taken from CVS [19]. MYSQL database is used to store revisions data. A Java source code named as log parser program is used to store revisions data into MySQL database. This program inserts data into two tables. One of the tables store data of RCS files and its related data. Second table is used to store revision logs of these RCS files. MySQL command CONSOL is used for querying, importing and exporting data. Org.eclipse.jd.core repository contains various directories and we have selected the 5 directories for extraction of difference files. These directories are ant, antadapter, batch, codeassist and compiler. Data extracted form eclipse repository is stored in MySQL database. We have different files in database that contain the different information about the revision files. The first file extracted from eclipse repository is rcsfilesjdtcore log. This file has the log information about the the revision files. The details of the dataset are given in the table 1. The attributes of this file are also given in table 1. These attributes provide us the detailed information of the revision file. But we have to find the difference between different revisions of the same file. Table 1: Data Set with Label and Revision Files Label Decsription Rcscode Revision file id Rf, Wf Revision file repository file and Work file Wfd Work file detailed path Tr Total number of revisions of each file Rev Revision number Date, Time Date and time of revision performed Author, State Which author performed the revision and state of revision Lines0, Lines1 Starting and ending line number for that revision Branches Origin of that revision Des Description of that revision Bug, Bug id Bug reported and id of that bug Change id Change hunk representing the difference area in two files Change code Actual code changed in that revision Loc Total lines of code in each revision To find the difference between revision files, we have created a file named as files log. This file will help us in finding the difference between revision from the CVS repositoties. We have used the files log for finding the difference between revision of the same file. 3.2 Total Lines of Code in each Revision and Source Code Files CVS commands only provide the difference code in only the last revision of the file. This information is not sufficent for our analysis. So we have find the total number of lines of code in each file so that we can extract all code in each revision of the file. We found total lines of code in each revision from eclipse repository by searching through each file. Now we have information about the total lines of code in each revision. We can extract the source code files of each revision. Source code in all the files have been extracted revision wise. Now this source code is available for mapping the lines in different releases. These files are transformed into a database for performing different operation on the source code.

5 Error Propagation in Large Software Projects Reading the diff Hunks In order to map the lines in different revision of the file, we used an algorithm named as GNU s diff. This program find the textual difference between two revisions of the file, the last revision and its previous revision. The program provides the regions of difference where two files differ. This point is named as hunk. The pattern of this command is (e.g 2d5,6). Here integer before d character represents the latest revisions line number and after d represents the previous revisions line numbers. Character c represents the type of change made in this region. Figure 1 shows hunk of two revisions. Fig. 1: Hunk information for two revisions The hunk command provides three type of information. Addition in the revision means some line have added in the next current revision of the file. For example 5a11 means that line 11 was inserted in revision 1.12 of the file. Deletion in revisions such as 5d11 shows that line 5 was deleted in the revision Modification of lines such as 5c6 represents that line 6 has been modified in the current revision. Hunk such as 5,6 c 7,8 represents that line 5 to 6 in revision 1.11 are modified and now these are 7 to 8 lines in 1.12 revision. At this stage we are able to find the difference between all the revisions of the same file. On the bases of these results we can find the propagation of errors and patterns of errors. 4 Error Propagation and Error Patterns Error propagation in large software projects can be found only by thorough study of source code in all revisions of all the files in a project. SCM and other software repositories contains source code of projects file wise as well as revision wise. But these repositories have limited functionality of data comparison at revision level. They only provide the difference of last two revisions only. This information in not sufficient for finding the propagation of errors in all revesion. We have downloaded the source code of all files revision wise form the eclipse repository org.eclipse.jdt.core and store that code in database for further process. Errors may be propagated in different revisions of the file. Eclipse log file provides only the change hunks, having information about the changed area in the two revisions of the file. The data set used for finding the propagation of errors is given in table 2. In table 2, we can see that we have some information of author, error and error id. This information is helpful for finding the propagation of errors. We can identify the error in a file

6 6 M. Faisal Shehzad et al. Table 2: Data Set with Label and Revision Files Label Decsription Rcscode Revision file id File name, Revision no Name of file and revision number of the file Date, Time Date and time at which line or file is modified Author, Status Author of file changed and status of the change Line0 Line change range in previous revision Line1 Line change range in next revision Description Brief description of change Error, Error id Actual Error and error id with reference to file Change id Hunk change between revisions Change code Code in which changes has done by error information provided in log file. How to find error propagation is the question to be answered. To find the propagation of error, we collected the source code. Figure 2 shows the sample code in a file. Fig. 2: Source code sample File in the figure 2 contains only the information about the source code lines of the single file. To identify the propagation, we have to map all the files. For example, we have a line number 2 in revision 1.12 and we want to map that file in all revisions, then we have to map it with line number 2 of 1.11 and up to version 1.1 of the same file. We map each line of the revision with each line of the previous to find the propagation of errors. Now we can perform different analysis on the data set. After manually analyzing the source code at all revisions, we have found 8 similarities of errors in the different releases of the file. These errors represents syntax error, semantic error, logical error or complie type error that occur during the software development process. After analyzing these errors, we have found that these error have been propagated in different revisions of the files as well as in different files of the project and these errors are categorized as follows:

7 Error Propagation in Large Software Projects 7 Input Output Exception Handling Error: Input Output (I/O) exceptions generally occur while reading or writing to a file. This must be handled carefully. During string matching and lines mapping, we have found the missing I/O exception throws. This errors is found in 4 files of different revision. This error indicate missing exception handling or throwing of exception in these files. As this error found in the different revisions and files of the the same project, we can say that errors propagate in different revisions of the same project. Figure 3 shows this error with their file name and related revisions. In ClassPathDirectory.java file at line 14 in revision 1.32, exception handling is added in source code which was missing in version Similary this error found in FileSystem.java at line 53 and other 2 files in figure also indicate this error is found in their revisions. So we can say that generally this type of error propagate in different revision. Fig. 3: Missing exception handling String Literal and NON-NLS Comments: In eclipse framework, NON-NLS are used to represent string literals. The main idea behind NON-NLS is that User Interface (UI) messages should not be treated as string literal. Similarly some strings like regular expressions should not be treated as UI messages. So NON-NLS comments are added with string literal. Any NON-NLS comments without string literal is considered as warning and may produce errors. During string matching, the pattern of this type of error is found in 52 different source files and in different revisions of these file. This also proves the propagation of same error in different releases as well as in different files of the same project. Unnecessary Duplicated Entries: In eclipse framework and in Java, we have two path for any entry to be specified. One is class path and other is source path. Source path is searched for source and class path is searched for binaries. Both of these must be preserved, but generally programmers keep one of them. This may leads to errors. The same situation has been found in 5 different files. The authors are unnecessary duplicating entries in a class. Same type of error found in all the files shows that error propagate in different files. Reading Directory Path Error: In eclipse, it is found that source code may be reading files from different directories at different locations. Directory path must be normalized for

8 8 M. Faisal Shehzad et al. reading and writing to files. If the source code is not supporting the character operations, errors are produced. The same error has been found in 4 different files and in different revisions of theses files. This error represents compile type nature of error. Absolute Targeted Path not Followed: Absolute path and normalized path are two different approaches used in Java. Absolute path may be different in different platform. This may lead not to follow the targeted path in source code. This type of error is found in 4 files of the same directory but in different regions of theses file. This error represents that the path that was indicated in source code in not being honored. Missing Encoding Scheme: As different encoding scheme are available and Java source code must support these encoding scheme. If the source code is reading a file that is not supported by Java then this may produce errors. This type of error is found in two files but in different revisions of the files. It is an error of missing encoding scheme for these files. Figure 4 shows that error found in JDTCompilerAdapter.java at revision 1.69 is repeated in revision Similarly error found in Main.java in revision is repeated again in revision This indicates that same error was repeated in revisions of same file. Fig. 4: Missing encoding schemas Empty String Constants: Constants in Java by nature are single static reference to instances in a thread. String are generally enclosed in ( ). When the compiler parse the code and ( ) appeared in code then the compiler will consider it as a string. Strings are also defined in this manner. How the compiler will not read and treat a string constant just like a string? There is no proper way for this. When this confusion arises, the parser will not parse properly and lead to errors. This type of error is found in 52 files of the same project. As in these files, string and string constants are declared in the same way. The parser may generate the unexpected result. This error exist in different revision of files. Local Variable Scope: Local variable have scope limited to function in which they are declared. In class inheritance, a child class can access the variables that are declared in

9 Error Propagation in Large Software Projects 9 the parent class. If variables in the parent class are declared as private or protected, then child class cannot access these variables or can have limited access. During lines mapping in different revisions, we have observe a pattern where local variable are accessed multiple times in protected mode. It may produce error. This error was found in 8 files. In some files, this error is repeated multiple times. This indicate that errors propagate in different revisions as well as in different files. Figure 5 shows some files having same type of error. Fig. 5: Local variables scope 5 Conclusion In this work, a new approach for finding the evolution of lines as per revision is proposed. This work also addresses the different categories of errors on the basis of dependencies and the error propagation. An eclipse repository org.eclipse.jdt.core is selected for source code extraction. Source code from all revisions of all files is extracted for miming. The work done includes exploring the file at line level and its mapping to previous revisions in order to find errors propagation in different files in a project as well as in different releases of the files in the project. Finally the pattern of errors that propagate is discussed in this work. Data mining is very effective tool for analyzing the source code as per revision but it is an expensive and time consuming process. In future, we will address the factors given below. Enhancing Mining Performance: Finding the error pattern and their propagation requires more time and is extensive. Finding other optimization techniques for pattern recognition will be focused as compared to existing history information techniques. Plug-in Support: The future need is to add this technique in the form of plug in. We will focus on designing plug in to support development tools for the exploration of evolution of line and annotation of lines. Automation of Error Pattern Detection: During the study, it was difficult to detect patterns of errors on the basis of similarity. As tools did not support much in this respect. Our focus in future will be to automate this process. Actual Origin of Lines: In this study we have focused on line number in different revision. Future work will focus on how to apply origin analysis algorithm to find the actual origin of line. This will provide the more close result for line mapping.

10 10 M. Faisal Shehzad et al. References 1. Roger S. Pressman. Software Engineering: A Practitioners Approach, 7 th edition. McGraw-Hill Publishers, IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard, September Jim Whitehead and Thomas Zimmermann. Introduction to the Special Issue on Mining Software Repositories (MSR). Empirical Software Engineering, 17[4-5]: , August Keith H. Bennett and Rajlich. Software Maintenance and Evolution: A Roadmap. In Proceedings of the Conference on The Future of Software Engineering, pp , NY, USA, ACM, Harald Gall, Mehdi Jazayeri and Jacek Krajewski. CVS Release History Data for Detecting Logical Couplings. In Proceedings of the 6 th International Workshop on Principles of Software Evolution, pp , IEEE Computer Society, Eclipse Foundation. About the Eclipse Foundation, 19th July Jiawei Han, Michelline Kamber and Jian Pei. Data Mining: Concepts and Techniquese, 3 rd edition. Morgan Kaufmann Publishers, Bill Palace. Data Mining: What is Data Mining? 15th September Thomas Zimmermann, Sunghun Kim, Andreas Zeller, and E. James Whitehead Jr. Mining Version Archives for Co-changed Lines, William C. Benton and Charles N. Fischer. Interactive, Scalable, Declarative Program Analysis: From Prototype to Implementation. In proceedings of the 9 th ACM SIGPLAN International Conference on Principles and Practice of Declerative Programming, pp , NY, USA, Ahmed E. Hassan and Richard C. Holt. Predicting Change Propagation in Software Systems. In Proceedings of the 20 th IEEE International Conference on Software Maintenance, pp , IEEE Computer Society, Washington, DC, USA, Harald Gall, Karin Hajek and Mehdi Jazayeri. Detection of Logical Coupling Based on Product Release History. Technical Report, University of Zurich, Annie Chen, Eric Chou, Joshua Wong, Andrew Y. Yao, Qing Zhang, Shao Zhang, and Amir Michail. CVSSearch: Searching Through Source Code using CVS Comments. In IEEE International Conference on Software Maintenance, pp , Thomas Zimmermann, Peter Weissgerber, Stephan Diehl and Andreas Zeller. Mining Version Histories to Guide Software Changes. IEEE Trans. on Software Engineering, 31[6]: , Annie T. T. Ying, Gail C. Murphy, Raymond Ng, and Mark C. Chu-Carroll. Predicting Source Code Changes by Mining Change History. IEEE Transactions on Software Engineering, 30[9]: , Sunghun Kim, Kai Pan and E. James Whitehead. When Functions Change their Names: Automatic Detection of Origin Relationships. In Proceedings of 12 th Working Conference on Reverse Engineering, IEEE Computer Society, pp , Michael W. Godfrey and Lijie Zou. Using Origin Analysis to Detect Merging and Splitting of Source code Entities. IEEE Transactions on Software Engineering, 31[2]: , Ranjith Purushothaman and Dewayne E. Perry. Toward Understanding the Rhetoric of small Source Sode Changes. IEEE Transactions on Software Engineering, 31[6]: , Eclipse Foundation. Eclipse Projects, 14th June J. Gonnet. Data Mining within Eclipse: Building a Data Mining Framework with Weka and Eclipse: Diploma Thesis. University of Zurich, Department of Informatics, Eclipse Foundation. Eclipse Debug Project, 14th June Douglas Thain and Miron Livny. Error Scope on a Computational Grid: Theory and Practice. In Proceedings of the 11 th IEEE Symposium on High Performance Distributed Computing, IEEE Computer Society, pp , David Lorge Parnas. A Technique For Software Module Specification with Examples. j-cacm, 15: , Tzilla Elrad, Robert E. Filman and Atef Bader. Aspect-Oriented Programming: Introduction. Commun. ACM, 44[10]:29-32, Ahmed E. Hassan and Cahmed E. Hassan. Mining Software Repositories to Assist Developers and Support Managers. Technical Report, University of Waterloo, Chris Parnin and Alessandro Osro. Are Automated Debugging Techniques Actually Helping Programmers? In proceedings of the 2011 International Symposium on Software Testing and Analysis, pp , 2011.

A Study on Inappropriately Partitioned Commits How Much and What Kinds of IP Commits in Java Projects?

A Study on Inappropriately Partitioned Commits How Much and What Kinds of IP Commits in Java Projects? How Much and What Kinds of IP Commits in Java Projects? Ryo Arima r-arima@ist.osaka-u.ac.jp Yoshiki Higo higo@ist.osaka-u.ac.jp Shinji Kusumoto kusumoto@ist.osaka-u.ac.jp ABSTRACT When we use code repositories,

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition

More information

Improving Evolvability through Refactoring

Improving Evolvability through Refactoring Improving Evolvability through Refactoring Jacek Ratzinger, Michael Fischer Vienna University of Technology Institute of Information Systems A-1040 Vienna, Austria {ratzinger,fischer}@infosys.tuwien.ac.at

More information

Towards a Taxonomy of Approaches for Mining of Source Code Repositories

Towards a Taxonomy of Approaches for Mining of Source Code Repositories Towards a Taxonomy of Approaches for Mining of Source Code Repositories Huzefa Kagdi, Michael L. Collard, Jonathan I. Maletic Department of Computer Science Kent State University Kent Ohio 44242 {hkagdi,

More information

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies Diego Cavalcanti 1, Dalton Guerrero 1, Jorge Figueiredo 1 1 Software Practices Laboratory (SPLab) Federal University of Campina

More information

Mining Frequent Bug-Fix Code Changes

Mining Frequent Bug-Fix Code Changes Mining Frequent Bug-Fix Code Changes Haidar Osman, Mircea Lungu, Oscar Nierstrasz Software Composition Group University of Bern Bern, Switzerland {osman, lungu, oscar@iam.unibe.ch Abstract Detecting bugs

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

Bug Inducing Analysis to Prevent Fault Prone Bug Fixes

Bug Inducing Analysis to Prevent Fault Prone Bug Fixes Bug Inducing Analysis to Prevent Fault Prone Bug Fixes Haoyu Yang, Chen Wang, Qingkai Shi, Yang Feng, Zhenyu Chen State Key Laboratory for ovel Software Technology, anjing University, anjing, China Corresponding

More information

Predicting Source Code Changes by Mining Revision History

Predicting Source Code Changes by Mining Revision History Predicting Source Code Changes by Mining Revision History Annie T.T. Ying*+, Gail C. Murphy*, Raymond Ng* Dep. of Computer Science, U. of British Columbia* {aying,murphy,rng}@cs.ubc.ca Mark C. Chu-Carroll+

More information

Study of Procedure Signature Evolution Software Engineering Project Preetha Ramachandran

Study of Procedure Signature Evolution Software Engineering Project Preetha Ramachandran Study of Procedure Signature Evolution Software Engineering Project Preetha Ramachandran preetha@soe.ucsc.edu 1.0 Introduction Software evolution is a continuous process. New features are frequently added,

More information

Visualizing the evolution of software using softchange

Visualizing the evolution of software using softchange Visualizing the evolution of software using softchange Daniel M. German, Abram Hindle and Norman Jordan Software Engineering Group Department of Computer Science University of Victoria dmgerman,abez,njordan

More information

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University Predicting Bugs by Analyzing History Sunghun Kim Research On Program Analysis System Seoul National University Around the World in 80 days Around the World in 8 years Predicting Bugs Severe consequences

More information

JDT Plug in Developer Guide. Programmer's Guide

JDT Plug in Developer Guide. Programmer's Guide JDT Plug in Developer Guide Programmer's Guide Table of Contents Java Development Tooling overview...1 Java elements and resources...1 Java elements...1 Java elements and their resources...3 Java development

More information

Managing Open Bug Repositories through Bug Report Prioritization Using SVMs

Managing Open Bug Repositories through Bug Report Prioritization Using SVMs Managing Open Bug Repositories through Bug Report Prioritization Using SVMs Jaweria Kanwal Quaid-i-Azam University, Islamabad kjaweria09@yahoo.com Onaiza Maqbool Quaid-i-Azam University, Islamabad onaiza@qau.edu.pk

More information

Empirical Study on Impact of Developer Collaboration on Source Code

Empirical 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 information

Bug Driven Bug Finders

Bug Driven Bug Finders Bug Driven Bug Finders Chadd C. Williams Department of Computer Science University of Maryland chadd@cs.umd.edu Abstract We describe a method of creating tools to find bugs in software that is driven by

More information

Log System Based on Software Testing System Design And Implementation

Log System Based on Software Testing System Design And Implementation 4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Log System Based on Software Testing System Design And Implementation Yan Liu1, a, Dahai Jin1,

More information

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING Pardeep kaur 1 and Er. Rupinder Singh 2 1 Research Scholar, Dept. of Computer Science and Engineering, Chandigarh University, Gharuan, India (Email: Pardeepdharni664@gmail.com)

More information

Mining Software Repositories for Software Change Impact Analysis: A Case Study

Mining Software Repositories for Software Change Impact Analysis: A Case Study Mining Software Repositories for Software Change Impact Analysis: A Case Study Lile Hattori 1, Gilson dos Santos Jr. 2, Fernando Cardoso 2, Marcus Sampaio 2 1 Faculty of Informatics University of Lugano

More information

Identifying Changed Source Code Lines from Version Repositories

Identifying Changed Source Code Lines from Version Repositories Identifying Changed Source Code Lines from Version Repositories Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta RCOST Research Centre on Software Technology Department of Engineering - University

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

Churrasco: Supporting Collaborative Software Evolution Analysis

Churrasco: Supporting Collaborative Software Evolution Analysis Churrasco: Supporting Collaborative Software Evolution Analysis Marco D Ambros a, Michele Lanza a a REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Analyzing the evolution

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

Mining Software Repositories. Seminar The Mining Project Yana Mileva & Kim Herzig

Mining Software Repositories. Seminar The Mining Project Yana Mileva & Kim Herzig Mining Software Repositories Seminar 2010 - The Mining Project Yana Mileva & Kim Herzig Predicting Defects for Eclipse [Zimmermann et al.] SCM Repository Predicting Defects for Eclipse [Zimmermann et al.]

More information

Mining Crash Fix Patterns

Mining Crash Fix Patterns Mining Crash Fix Patterns Jaechang Nam and Ning Chen Department of Computer Science and Engineering The Hong Kong University of Science and Technology China {jcnam,ning@cse.ust.hk ABSTRACT During the life

More information

Evolizer A Platform for Software Evolution Analysis and Research

Evolizer A Platform for Software Evolution Analysis and Research Evolizer A Platform for Software Evolution Analysis and Research Michael Würsch, Harald C. Gall University of Zurich Department of Informatics software evolution & architecture lab Friday, April 23, 200

More information

Aspect Refactoring Verifier

Aspect Refactoring Verifier Aspect Refactoring Verifier Charles Zhang and Julie Waterhouse Hans-Arno Jacobsen Centers for Advanced Studies Department of Electrical and IBM Toronto Lab Computer Engineering juliew@ca.ibm.com and Department

More information

IBM Best Practices Working With Multiple CCM Applications Draft

IBM Best Practices Working With Multiple CCM Applications Draft Best Practices Working With Multiple CCM Applications. This document collects best practices to work with Multiple CCM applications in large size enterprise deployment topologies. Please see Best Practices

More information

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference Imran Majid and Martin P. Robillard School of Computer Science McGill University Montreal, QC, Canada {imajid, martin} @cs.mcgill.ca

More information

Improving Origin Analysis with Weighting Functions

Improving Origin Analysis with Weighting Functions Improving Origin Analysis with Weighting Functions Lin Yang, Anwar Haque and Xin Zhan Supervisor: Michael Godfrey University of Waterloo Introduction Software systems must undergo modifications to improve

More information

PIP: Progressive Implementation Pattern

PIP: Progressive Implementation Pattern PIP: Progressive Implementation Pattern Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Intent Tame complexity and improve development productivity. Reduce the impact

More information

Refactoring Practice: How it is and How it Should be Supported

Refactoring Practice: How it is and How it Should be Supported Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case

More information

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018 News in RSA-RTE 10.2 updated for sprint 2018.18 Mattias Mohlin, May 2018 Overview Now based on Eclipse Oxygen.3 (4.7.3) Contains everything from RSARTE 10.1 and also additional features and bug fixes See

More information

Inheritance Metrics: What do they Measure?

Inheritance Metrics: What do they Measure? Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All

More information

AURA: A Hybrid Approach to Identify

AURA: 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 information

3 Prioritization of Code Anomalies

3 Prioritization of Code Anomalies 32 3 Prioritization of Code Anomalies By implementing a mechanism for detecting architecturally relevant code anomalies, we are already able to outline to developers which anomalies should be dealt with

More information

Introduction: Manual Testing :

Introduction: Manual Testing : : What is Automation Testing? Use of Automation. Where do we use. Tools that Do Automation. Web Applications vs Standalone Applications. What is selenium? How selenium works. Manual Testing : HTML: Detailed

More information

jcel: A Modular Rule-based Reasoner

jcel: A Modular Rule-based Reasoner jcel: A Modular Rule-based Reasoner Julian Mendez Theoretical Computer Science, TU Dresden, Germany mendez@tcs.inf.tu-dresden.de Abstract. jcel is a reasoner for the description logic EL + that uses a

More information

Index. Symbols. /**, symbol, 73 >> symbol, 21

Index. Symbols. /**, symbol, 73 >> symbol, 21 17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

Soar IDE. Keith Knudsen, Mike Quist, Dave Ray & Bob Wray May 24, 2007

Soar IDE. Keith Knudsen, Mike Quist, Dave Ray & Bob Wray May 24, 2007 Soar IDE Keith Knudsen, Mike Quist, Dave Ray & Bob Wray {knudsen,ray,quist} @soartech.com May 24, 2007 Soar Editors and Development Environments A (very incomplete) list of development support tools for

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Mining Sequences of Changed-files from Version Histories

Mining Sequences of Changed-files from Version Histories Mining Sequences of Changed-files from Version Histories Huzefa Kagdi, Shehnaaz Yusuf, Jonathan I. Maletic Department of Computer Science Kent State University Kent Ohio 44242 {hkagdi, sdawoodi, jmaletic}@cs.kent.edu

More information

Eclipse Support for Using Eli and Teaching Programming Languages

Eclipse 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 information

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Module Road Map. 7. Version Control with Subversion Introduction Terminology Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology

More information

Archiving and Maintaining Curated Databases

Archiving and Maintaining Curated Databases Archiving and Maintaining Curated Databases Heiko Müller University of Edinburgh, UK hmueller@inf.ed.ac.uk Abstract Curated databases represent a substantial amount of effort by a dedicated group of people

More information

Association Rules Mining using BOINC based Enterprise Desktop Grid

Association Rules Mining using BOINC based Enterprise Desktop Grid Association Rules Mining using BOINC based Enterprise Desktop Grid Evgeny Ivashko and Alexander Golovin Institute of Applied Mathematical Research, Karelian Research Centre of Russian Academy of Sciences,

More information

Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions

Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions Yungbum Jung, Hakjoo Oh, and Kwangkeun Yi Seoul National University {dreameye, pronto, kwang}@ropas.snu.ac.kr ABSTRACT

More information

Filtering Bug Reports for Fix-Time Analysis

Filtering Bug Reports for Fix-Time Analysis Filtering Bug Reports for Fix-Time Analysis Ahmed Lamkanfi, Serge Demeyer LORE - Lab On Reengineering University of Antwerp, Belgium Abstract Several studies have experimented with data mining algorithms

More information

Automatized Generating of GUIs for Domain-Specific Languages

Automatized Generating of GUIs for Domain-Specific Languages Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,

More information

Workspaces and Experimental Databases: Automated Support for Software Maintenance and Evolution

Workspaces and Experimental Databases: Automated Support for Software Maintenance and Evolution Workspaces and Experimental Databases: Automated Support for Software Maintenance and Evolution Gail E. Kaiser* Columbia University Department of Computer Science New York, NY 10027 (212) 280-3856 Dewayne

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

A Comparative Study on Different Version Control System

A Comparative Study on Different Version Control System e-issn 2455 1392 Volume 2 Issue 6, June 2016 pp. 449 455 Scientific Journal Impact Factor : 3.468 http://www.ijcter.com A Comparative Study on Different Version Control System Monika Nehete 1, Sagar Bhomkar

More information

Imagine you ve written a piece of code but then accidentally deleted and lost it.

Imagine you ve written a piece of code but then accidentally deleted and lost it. Why Refactor? Imagine you ve written a piece of code but then accidentally deleted and lost it. Questions: How much time would it take you to reconstruct from scratch what you had the same amount, or more,

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

Quantifying 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 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 information

Understanding Semantic Impact of Source Code Changes: an Empirical Study

Understanding Semantic Impact of Source Code Changes: an Empirical Study Understanding Semantic Impact of Source Code Changes: an Empirical Study Danhua Shao, Sarfraz Khurshid, and Dewayne E. Perry Electrical and Computer Engineering, The University of Texas at Austin {dshao,

More information

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21 CVS Computer Science and Engineering College of Engineering The Ohio State University Lecture 21 CVS: Concurrent Version System Classic tool for tracking changes to a project and allowing team access Can

More information

Compilers and Interpreters

Compilers and Interpreters Overview Roadmap Language Translators: Interpreters & Compilers Context of a compiler Phases of a compiler Compiler Construction tools Terminology How related to other CS Goals of a good compiler 1 Compilers

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

Mind Q Systems Private Limited

Mind Q Systems Private Limited Software Testing Tools Introduction Introduction to software Testing Software Development Process Project Vs Product Objectives of Testing Testing Principals Software Development Life Cycle SDLC SDLC Models

More information

Automatic Identification of Bug-Introducing Changes

Automatic Identification of Bug-Introducing Changes Automatic Identification of Bug-Introducing Changes Sunghun Kim 1, Thomas Zimmermann 2, Kai Pan 1, E. James Whitehead, Jr. 1 1 University of California, Santa Cruz, CA, USA {hunkim, pankai, ejw}@cs.ucsc.edu

More information

Mining Change and Version Management Histories to Evaluate an Analysis Tool Extended Abstract

Mining Change and Version Management Histories to Evaluate an Analysis Tool Extended Abstract Mining Change and Version Management Histories to Evaluate an Analysis Tool Extended Abstract Danhua Shao, Sarfraz Khurshid and Dewayne E. Perry Empirical Software Engineering Lab (ESEL) Electrical and

More information

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner Task-Oriented Solutions to Over 175 Common Problems Covers Eclipse 3.0 Eclipse CookbookTM Steve Holzner Chapter CHAPTER 6 6 Using Eclipse in Teams 6.0 Introduction Professional developers frequently work

More information

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912)

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912) ARM DS-5 Version 5.12 Using Eclipse Copyright 2010-2012 ARM. All rights reserved. ARM DUI 0480L () ARM DS-5 Using Eclipse Copyright 2010-2012 ARM. All rights reserved. Release Information The following

More information

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis Advanced Logic Programming Summer semester 2012 R O O T S Chapter 3. Logic-based Analysis Interactive Development Assistants Logic-based Representation Logic-based Analysis Logic-based Transformation Motivation

More information

WinCvs Version 1.1. Users Guide. Don Harper

WinCvs Version 1.1. Users Guide. Don Harper WinCvs Version 1.1 Users Guide Don Harper June 1, 1999 Copyright 1999 Don Harper Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission

More information

Dynamic Data in terms of Data Mining Streams

Dynamic Data in terms of Data Mining Streams International Journal of Computer Science and Software Engineering Volume 1, Number 1 (2015), pp. 25-31 International Research Publication House http://www.irphouse.com Dynamic Data in terms of Data Mining

More information

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about?

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about? Just Enough Eclipse What is Eclipse(TM)? Eclipse is a kind of universal tool platform that provides a feature-rich development environment. It is particularly useful for providing the developer with an

More information

1. Introduction. 2. Technology concepts

1. Introduction. 2. Technology concepts 1 Table of Contents 1. Introduction...2 2. Technology Concepts...3 2.1. Sharding...4 2.2. Service Oriented Data Architecture...4 2.3. Aspect Oriented Programming...4 3. Technology/Platform-Specific Features...5

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Specification and Automated Detection of Code Smells using OCL

Specification and Automated Detection of Code Smells using OCL Specification and Automated Detection of Code Smells using OCL Tae-Woong Kim 1, Tae-Gong Kim 2 and Jai-Hyun Seu 3 School of Computer Engineering, Inje University, Obang-dong 607, Gimhae, Gyeong-Nam, Korea

More information

AN IMPROVISED FREQUENT PATTERN TREE BASED ASSOCIATION RULE MINING TECHNIQUE WITH MINING FREQUENT ITEM SETS ALGORITHM AND A MODIFIED HEADER TABLE

AN IMPROVISED FREQUENT PATTERN TREE BASED ASSOCIATION RULE MINING TECHNIQUE WITH MINING FREQUENT ITEM SETS ALGORITHM AND A MODIFIED HEADER TABLE AN IMPROVISED FREQUENT PATTERN TREE BASED ASSOCIATION RULE MINING TECHNIQUE WITH MINING FREQUENT ITEM SETS ALGORITHM AND A MODIFIED HEADER TABLE Vandit Agarwal 1, Mandhani Kushal 2 and Preetham Kumar 3

More information

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead What s new in CDT 4.0 and beyond Doug Schaefer QNX Software Systems CDT Project Lead 2007 by QNX Software Systems; made available under the EPL v1.0 October 10, 2007 Where it all began From: "John Duimovich"

More information

Infor LN Studio Application Development Guide

Infor LN Studio Application Development Guide Infor LN Studio Application Development Guide Copyright 2016 Infor Important Notices The material contained in this publication (including any supplementary information) constitutes and contains confidential

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Mini Project Report One

Mini Project Report One Mini Project Report One Christoph Csallner September 29, 2003 This project has been sponsored by Professor Dr. Mary Jean Harrold and Dr. Saurabh Sinha of the Aristotle Research Group at Georgia Tech. 1

More information

CVS Application. William Jiang

CVS Application. William Jiang CVS Application William Jiang CVS Brief CVS (Concurrent Versions System), is an open-source version control system. Using it, we can record the history of our source files, coordinate with team developing,

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

A free continuous code review plug in for Eclipse

A free continuous code review plug in for Eclipse A free continuous code review plug in for Eclipse Mario Bernhart, Christoph Mayerhofer, Thomas Grechenig Vienna University of Technology, Vienna/Austria www.inso.tuwien.ac.at/projects/reviewclipse/ What

More information

EMF Europa Simultaneous Release

EMF Europa Simultaneous Release EMF 2.3.0 Europa Simultaneous Release 6 June, 2007 Release Review revision 2.3.1 17 January, 2007 1 Europa Simultaneous Release 2007 by IBM Corporation, made available under the EPL v1.0 EMF - Europa Release

More information

CVSSearch: Searching through Source Code using CVS Comments

CVSSearch: Searching through Source Code using CVS Comments CVSSearch: Searching through Source Code using CVS Comments Annie Chen, Eric Chou, Joshua Wong, Andrew Y. Yao, Qing Zhang, Shao Zhang, Amir Michail School of Computer Science and Engineering University

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Lecture 3 Guiding Software Development

Lecture 3 Guiding Software Development Lecture 3 Guiding Software Development Where do you go next? Mentoring! Evolutionay Coupling Research Hypothesis Evolutionay Coupling erose Reengineering of Software Evolution Tom Zimmermann Saarland University

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Lecture 2 Pre-processing Concurrent Versions System Archives

Lecture 2 Pre-processing Concurrent Versions System Archives Lecture 2 Pre-processing Concurrent Versions System Archives Debian Developer Coordinates Distributed Development Distributed Development I hope no one else is editing the same parts of the code as I am.

More information

How Often and What StackOverflow Posts Do Developers Reference in Their GitHub Projects?

How Often and What StackOverflow Posts Do Developers Reference in Their GitHub Projects? How Often and What StackOverflow Posts Do Developers Reference in Their GitHub Projects? Saraj Singh Manes School of Computer Science Carleton University Ottawa, Canada sarajmanes@cmail.carleton.ca Olga

More information

Portions adapted from A Visual Guide to Version Control. Introduction to CVS

Portions adapted from A Visual Guide to Version Control. Introduction to CVS Portions adapted from A Visual Guide to Version Control Introduction to CVS Outline Introduction to Source Code Management & CVS CVS Terminology & Setup Basic commands Checkout, Add, Commit, Diff, Update,

More information

MODEL VERSIONING IN CONTEXT OF LIVING MODELS

MODEL VERSIONING IN CONTEXT OF LIVING MODELS MODEL VERSIONING IN CONTEXT OF LIVING MODELS Waqar Mehmood and Arshad Ali Department of Computer Science, COMSATS Institute of Information Technology, Wah Campus. ABSTRACT In this paper we present an approach

More information

Grid Resources Search Engine based on Ontology

Grid Resources Search Engine based on Ontology based on Ontology 12 E-mail: emiao_beyond@163.com Yang Li 3 E-mail: miipl606@163.com Weiguang Xu E-mail: miipl606@163.com Jiabao Wang E-mail: miipl606@163.com Lei Song E-mail: songlei@nudt.edu.cn Jiang

More information

Business Processes and Rules: Siebel Enterprise Application Integration. Siebel Innovation Pack 2013 Version 8.1/8.

Business Processes and Rules: Siebel Enterprise Application Integration. Siebel Innovation Pack 2013 Version 8.1/8. Business Processes and Rules: Siebel Enterprise Application Integration Siebel Innovation Pack 2013 September 2013 Copyright 2005, 2013 Oracle and/or its affiliates. All rights reserved. This software

More information

Inter-Project Dependencies in Java Software Ecosystems

Inter-Project Dependencies in Java Software Ecosystems Inter-Project Dependencies Inter-Project Dependencies in Java Software Ecosystems in Java Software Ecosystems Antonín Procházka 1, Mircea Lungu 2, Karel Richta 3 Antonín Procházka 1, Mircea Lungu 2, Karel

More information

Flint - Eclipse Based IDE User Manual

Flint - Eclipse Based IDE User Manual 1 E M B I E N T E C H N O L O G I E S Flint - Eclipse Based IDE User Manual Embien Technologies No 3, Sankarapandian Street, Madurai, India 625017 www.embien.com 2 3 Table of Contents 1 Introduction...

More information

Sociotechnical Information From Software Repositories

Sociotechnical Information From Software Repositories Sociotechnical Information From Software Repositories Marco Aurélio Gerosa UNIVERSITY OF SÃO PAULO, BRAZIL UFU November/ Repositories of repositories 250K projects 93K projects 1 million users 11.3 million

More information

Commit Guru: Analytics and Risk Prediction of Software Commits

Commit Guru: Analytics and Risk Prediction of Software Commits Commit Guru: Analytics and Risk Prediction of Software Commits Christoffer Rosen, Ben Grawi Department of Software Engineering Rochester Institute of Technology Rochester, NY, USA {cbr4830, bjg1568}@rit.edu

More information

Visualization of Clone Detection Results

Visualization 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 information

Are Refactorings Less Error-prone Than Other Changes?

Are Refactorings Less Error-prone Than Other Changes? Are Refactorings Less Error-prone Than Other Changes? Peter Weißgerber University of Trier Computer Science Department 54286 Trier, Germany weissger@uni-trier.de Stephan Diehl University of Trier Computer

More information