Juergen Rilling

Juergen Rilling
Concordia University Montreal · Department of Computer Science and Software Engineering

Ph.D.

About

127
Publications
33,620
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,436
Citations
Introduction
Juergen Rilling currently works at the Department of Computer Science and Software Engineering, Concordia University Montreal. Juergen does research in Software Engineering. His current projects include 'Tracing Security Vulnerabilities' and Global Source code analysis

Publications

Publications (127)
Article
Full-text available
The use of external libraries in today’s software projects allows developers to take advantage of features provided by such application programming interfaces (APIs) without having to reinvent the wheel. However, APIs have also introduced new challenges to the software engineering community (e.g. API incompatibilities, software vulnerabilities, and...
Article
Context In recent years, crowd-based content in the form of instructional screencast videos has gained popularity among software engineers. For organizations to remain competitive in attracting and retaining their workforce, they must accommodate the use of such crowd-based documentation content. Objective We conduct a user survey to gain insights...
Chapter
Identifying similarities in source code is the main challenge for reuse, plagiarism, and code clone detection. Code clone search has emerged as a new research branch in clone detection, aiming to provide similarity search functionality for code snippets. While clone search shares its fundamentals with clone detection, both its objective and require...
Article
Full-text available
Crowd-based multimedia documents such as screencasts have emerged as a source for documenting requirements, the workflow and implementation issues of open source and agile software projects. For example, users can show and narrate how they manipulate an application’s GUI to perform a certain functionality, or a bug reporter could visually explain h...
Article
Full-text available
The globalization of the software industry has led to an emerging trend where software systems depend increasingly on the use of external open-source external libraries and application programming interfaces (APIs). While a significant body of research exists on identifying and recommending potentially reusable libraries to end users, very little i...
Article
Full-text available
Continuous Integration (CI) frameworks such as Travis CI, automatically build and run tests whenever a new commit is submitted/pushed. Although there are many advantages in using CI, e.g., speeding up the release cycle and automating the test execution process, it has been noted that the CI process can take a very long time to complete. One of the...
Article
Full-text available
Crowd-based multi-media documents such as screencasts have emerged as a source for documenting requirements of agile software projects. For example, screencasts can describe buggy scenarios of a software product, or present new features in an upcoming release. Unfortunately, the binary format of videos makes traceabil-ity between the video content...
Conference Paper
Crowd-based multi-media documents such as screencasts have emerged as a source for documenting requirements of agile software projects. For example, screencasts can describe buggy scenarios of a software product, or present new features in an upcoming release. Unfortunately, the binary format of videos makes traceability between the video content a...
Article
Context: Source code reuse has been widely accepted as a fundamental activity in software development. Recent studies showed that StackOverflow has emerged as one of the most popular resources for code reuse. Therefore, a plethora of work proposed ways to optimally ask questions, search for answers and find relevant code on StackOverflow. However,...
Article
Full-text available
Stack Overflow relies on the crowd to construct quality developer-related knowledge. To determine what developers use this knowledge for, researchers analyzed 1,414 Stack Overflow-related code commits. The developers used this knowledge to support development tasks and collect user feedback. The researchers also studied Stack Overflow posts' helpfu...
Conference Paper
Full-text available
Despite the globalization of software development, relevant documentation of a project, such as requirements and design documents, often still is missing, incomplete or outdated. However, parts of that documentation can be found outside the project, where it is fragmented across hundreds of textual web documents like blog posts, email messages and...
Article
Recent years have witnessed rapid advances in the use of contextual information in ubiquitous and ambient computing. Such information improves situated cognition and awareness as well as stakeholders’ usage experience. While domains such as Web 3.0 - the next generation of the web - have made context-awareness a main requirement of their solution s...
Article
The introduction of the Internet has revolutionized not only our society but also transformed the software industry, with knowledge and information sharing becoming a central part of software development processes. The resulting globalization of the software industry has not only increased software reuse, but also introduced new challenges. Among t...
Article
While source code clone detection is a well-established research area, finding similar code fragments in binary and other intermediate code representations has been not yet that widely studied. In this paper, we introduce SeByte, a bytecode clone detection and search model that applies semantic-enabled token matching. It is developed based on the i...
Conference Paper
Full-text available
Over the last decade, contextual modeling has gained on importance due to the wide spread introduction of ubiquitous and mobile computing. Common to these systems is that they integrate contextual information to improve situated cognition and awareness as well as stakeholders' usage experience with these systems. While domains such as the next gene...
Article
Full-text available
Working code examples are useful resources for pragmatic reuse in software development. A working code example provides a solution to a specific programming problem. Earlier studies have shown that existing code search engines are not successful in finding working code examples. They fail in ranking high quality code examples at the top of the resu...
Article
Full-text available
There has been an ongoing trend toward collaborative software development using open and shared source code published in large software repositories on the Internet. While traditional source code analysis techniques perform well in single project contexts, new types of source code analysis techniques are ermerging, which focus on global source code...
Article
Full-text available
An important software engineering artifact used by developers and maintainers to assist in software comprehension and maintenance is source code documentation. It provides the insight needed by software engineers when performing a task, and therefore ensuring the quality of this documentation is extremely important. In-line documentation is at the...
Conference Paper
Full-text available
On behalf of the SCAM 2013 Conference and Program Committee, we would like to welcome you to the capital of Dutch industrial design, i.e., Eindhoven, the Netherlands, for the 13th IEEE International Working Conference on Source Code Analysis and Manipulation, co-located with the 29th IEEE International Conference on Software Maintenance (ICSM 2013)...
Conference Paper
Full-text available
Regardless of system type, testing is a key aspect of any software product and its development process. In this research, we investigate the use of clone detection techniques towards recommending test case templates to developers and maintainers. We introduce a novel recommendation approach that supports developers by deriving new unit test cases b...
Conference Paper
Full-text available
The financial community assesses and analyzes fundamental qualities of stocks to predict their future performance. During the analysis different external and internal factors are considered which can affect the stock price. Financial analysts use indicators and analysis patterns, such as such as Moving Averages, Crossover patterns, and M-Top/W-Bott...
Conference Paper
Full-text available
We introduce semantic-enabled clone detection, as an approach that emphasizes on importance of the token semantics during the pattern matching for clone detection. This approach can be realized using Semantic Web and its support for knowledge modeling. While the Semantic Web has found wide acceptance in various application and research domains, it...
Conference Paper
Full-text available
Software Clones are identical or similar pieces of code, models or designs. In this, the 7th International Workshop on Software Clones (IWSC), we will discuss issues in software clone detection, analysis and management, as well as applications to software engineering contexts that can benefit from knowledge of clones. These are important emerging t...
Conference Paper
Full-text available
The Microsoft .NET framework and its language family focus on multi-language development to support interoperability across several programming languages. The framework allows for the development of similar applications in different languages through the reuse of core libraries. As a result of such a multi-language development, the identification a...
Conference Paper
Full-text available
For decades stock market traders make financially critical buy/sell decisions depending on external and internal factors affecting the price of individual stocks. Moving Averages combined with technical analysis patterns are some of the most basic and widely used indicators to support buy/sell decisions. In this research, we present a novel cross-d...
Conference Paper
Full-text available
Quality has become a key assessment factor for organizations to determine if their software ecosystems are capable to meet constantly changing environmental factors and requirements. Many quality models exist to assess the evolvability or maintainability of software systems. Common to these models is that they, contrary to the software ecosystems t...
Conference Paper
Full-text available
There has been an ongoing trend towards open and shared source code that is published on the Internet in large software repositories to support collaborative development processes. While traditional source code analysis techniques perform well in single project contexts, new types of global source code analysis techniques are slowly introduced to a...
Conference Paper
Full-text available
In our research, we have focused on mining software repositories to support software engineering development and code clone search. We developed Doppel-Code, a clone visualization tool to aid searching for code clones across 18 000 open source projects. For clone visualization, we take into account clone impact - both globally and locally - to furt...
Conference Paper
Full-text available
SeByte is a semantic clone detection tool which accepts Java bytecode (binary) as input. SeByte provides a complementary approach to traditional pattern-based source code level clone detection. It is capable of detecting clones missed by existing clone detection tools since it exploits both pattern and content similarity at binary level.
Article
Full-text available
The mining of software repositories involves the extraction of both basic and value-added information from existing software repositories. The repositories will be mined to extract facts by different stakeholders (e.g. researchers, managers) and for various purposes. To avoid unnecessary pre-processing and analysis steps, sharing and integration of...
Article
Full-text available
In this poster, we review the limitations open source licences introduce to the application of Linked Data in Software Engineering. We investigate whether open source licences support special requirements to publish source code as Linked Data on the Internet.
Article
Full-text available
This paper presents an Eclipse plug-in that provides source code similarity search over source code available on the Internet. We show how our Linked Data repository (SeCold) and scalable clone search approach (SeClone) can provide the enabling technology for an open Internet-scale similarity search service.
Article
Full-text available
While finding clones in source code has drawn considerable attention, there has been only very little work in finding similar fragments in binary code and intermediate languages, such as Java bytecode. Some recent studies showed that it is possible to find distinct sets of clone pairs in bytecode representation of source code, which are not always...
Article
Full-text available
In this research, we present a novel approach that allows existing state of the art clone detection tools to scale to very large datasets. A key benefit of our approach is that the improved tools scalability is achieved using standard hardware and without modifying the original implementations of the subject tools. We use a hybrid approach comprisi...
Article
Full-text available
In this paper we discuss a new application of Semantic Web and Artificial Intelligence in software analysis research. We show on a concrete example - clone detection for object-oriented source code that transitivity closure computation can provide added value to the clone detection community. Our novel approach models the domain of discourse knowle...
Conference Paper
Full-text available
Finding lines of code similar to a code fragment across large knowledge bases in fractions of a second is a new branch of code clone research also known as real-time code clone search. Among the requirements real-time code clone search has to meet are scalability, short response time, scalable incremental corpus updates, and support for type-1, typ...
Conference Paper
Full-text available
Given the ongoing trend towards the globalization of software systems, open networks, and distributed platforms, validating non-functional requirements and quality becomes essential. Our research addresses this challenge from two different perspectives: (1) the integration of knowledge and tool resources through Semantic Web technologies as part of...
Conference Paper
Full-text available
The Semantic Web is slowly transforming the Web as we know it into a machine understandable pool of information that can be consumed and reasoned about by various clients. Source code is no exception to this trend and various communities have proposed standards to share code as linked data. With the availability of large amounts of open source code...
Conference Paper
Full-text available
Real-time code clone search is an emerging family of clone detection research that aims at finding clone pairs matching an input code fragment in fractions of a second. For these techniques to meet actual real world requirements, they have to be scalable and provide a short response time. Our research presents a hybrid clone search approach using s...
Conference Paper
Full-text available
Software engineers need to be able to create, modify, and analyze knowledge stored in software artifacts. A significant amount of these artifacts contain natural language, like version control commit messages, source code comments, or bug reports. Integrated software development environments (IDEs) are widely used, but they are only concerned with...
Article
Full-text available
Linked Data is designed to support interoperability and sharing of open datasets by allowing on the fly inter-linking of data using the basic layers of the Semantic Web and the HTTP protocol. In our research, we focus on providing a Uniform Resource Locator (URL) generation schema and a supporting ontological representation for the inter-linking of...
Conference Paper
Full-text available
Ontology population from text is becoming increasingly important for NLP applications. Ontologies in OWL format provide for a standardized means of modeling, querying, and reasoning over large knowledge bases. Populated from natural language texts, they offer significant advantages over traditional export formats, such as plain XML. The development...
Conference Paper
Full-text available
An important software engineering artefact used by develop- ers and maintainers to assist in software comprehension and maintenance is source code documentation. It provides insights that help software engi- neers to eectively perform their tasks, and therefore ensuring the quality of the documentation is extremely important. Inline documentation i...
Article
Full-text available
Software development and evolution are highly distributed processes that involve a multitude of supporting tools and resources. Knowledge relevant to these resources is typically dispersed over a wide range of artifacts, representation formats, and abstraction levels. In order to stay competitive, organizations are often required to assess and prov...
Article
Full-text available
The ability to search for source code on the Internet has proven to be essential for many common software development and maintenance tasks. However, available code search engines are typically limited to lexical searches and do not take in consideration the underlying semantics of source code such as the program structure or language. Especially o...
Conference Paper
Full-text available
Available code search engines provide typically coarse-grained lexical search. To address this limitation we present SE-CodeSearch, a Semantic Web-based approach for Internet-scale source code search. It uses an ontological representation of source code facts and analysis knowledge to complete missing information using inference engine. This approa...
Article
Full-text available
For software products to succeed they have to sati sfy customer expectations, including usability aspects of the so ftware. Early during the development cycle important design decisions are made for projects that are typically on restricted schedules and budgets. Ther e is a need to support this decision making process, by empowering the decision m...
Article
Full-text available
This paper gives a brief overview of the International Workshop on Semantic Technologies in System Maintenance. The paper describes a numnber of semantic technologies (e.g., ontologies, text mining, and knowledge integration techniques) and identifies diverse tasks in software maintenance where the use of semantic technologies can be beneficial, su...
Article
There is a general consensus on the importance of good Requirements Engineering (RE) for achieving high quality software. The modeling and analysis of requirements have been the main challenges during the development of complex systems. Although semi-formal, scenario driven approaches have raised the awareness and use of requirement engineering tec...
Conference Paper
Full-text available
Over the last decades, software engineering processes have constantly evolved to reflect cultural, social, technological, and organizational changes, which are often a direct result of the Internet. The introduction of the Web 2.0 resulted in further changes creating an interactive, community driven platform. However, these ongoing changes have yet...
Conference Paper
Full-text available
Software development and maintenance are highly distributed processes that involve a multitude of supporting tools and resources. Knowledge relevant to these resources is typically dispersed over a wide range of artifacts, representation formats, and abstraction levels. In order to stay competitive, organizations are often required to assess and pr...
Article
Full-text available
Maintaining a large software system is an inherently difficult task that often involves locating and comprehending system features prior to performing the actual maintenance task at hand. Feature location techniques were introduced to locate the source code components implementing specific software features. Common to these approaches is that they...
Article
Full-text available
Although a significant body of research in the area of formal verification and model checking tools of software and hardware systems exists, the acceptance of these tools by industry and end-users is rather limited. Beside the technical problem of state space explosion, one of the main reasons for this limited acceptance is the unfamiliarity of use...
Conference Paper
Full-text available
With the ongoing trend towards the globalization of software systems and their development, components in these systems might not only work together, but may end up evolving independently from each other. Modern IDEs have started to incorporate support for these highly distributed environments, by adding new collaborative features. As a result, ass...
Conference Paper
Full-text available
Decomposing a software system into smaller, more manageable clusters is a common approach to support the comprehension of large systems. In recent years, researchers have focused on clustering techniques to perform such architectural decomposition, with the most predominant clustering techniques relying on the static analysis of source code. We arg...
Article
Full-text available
Nowadays, software development and maintenance are highly distributed processes that involve a multitude of supporting tools and resources. Knowledge relevant for a particular software maintenance task is typically dispersed over a wide range of artifacts in different representational formats and at different abstraction levels, resulting in isolat...
Article
From a maintenance perspective, only software that is well understood can evolve in a controlled and high-quality manner. Software evolution itself is a knowledge-driven process that requires the use and integration of different knowledge resources. The authors present a formal representation of an existing process model to support the evolution of...
Conference Paper
Full-text available
System evolution depends greatly on the ability of a maintainer to locate source code that is specific to feature implementation. Existing feature location techniques require either exercising several features of the system, or rely heavily on domain experts to guide the feature location process. In this paper, we present a novel approach for featu...
Conference Paper
Full-text available
This paper gives a brief overview of the international workshop on semantic technologies in system maintenance. It describes a number of semantic technologies (e.g., ontologies, text mining, and knowledge integration techniques) and identifies diverse tasks in software maintenance where the use of semantic technologies can be beneficial, such as tr...
Article
Full-text available
Traceability links provide support for software engineers in understanding relations and dependencies among software artefacts created during the software development process. The authors focus on re-establishing traceability links between existing source code and documentation to support software maintenance. They present a novel approach that add...
Article
Full-text available
Documents written in natural languages constitute a major part of the artefacts produced during the software engineering life cycle. Especially during software maintenance or reverse engineering, semantic information conveyed in these documents can provide important knowledge for the software engineer. A text mining system capable of populating a s...
Conference Paper
Full-text available
The process of evaluating, classifying, and assigning bugs to programmers is a difficult and time consuming task which greatly depends on the quality of the bug report itself. It has been shown that the quality of reports originating from bug trackers or ticketing systems can vary significantly. In this research, we apply Information Retrieval (IR)...
Article
Full-text available
Semantic web technologies have previously been applied to reduce both the abstraction and semantic gap existing among software engineering artifacts such as source code and bug reporting systems. In this research we extend the use semantic web technologies to assess the quality of bug reports stored and managed by bug trackers, such as Bugzilla or...
Conference Paper
Full-text available
This paper introduces a set of novel metrics-based prediction models that allow stakeholders and user interface designers to assess, compare and choose among alternative designs in early development stages. Most of the existing usability evaluation methods require a fully functional prototype. Tests are also mostly conducted after the development a...
Conference Paper
Full-text available
Modification analysis is an essential phase of most software maintenance processes, requiring decision makers to perform and predict potential change impacts, feasibility and costs associated with a potential modification request. The majority of existing techniques and tools supporting modification analysis focusing on source code level analysis a...
Conference Paper
Full-text available
Scenario-driven requirement specifications are widely used to capture and represent functional requirement. More recently, the Use Case Maps language (UCM), being standardized by ITU-T as part of the User Requirements Notation (URN) has gained on popularity within the software requirements community. UCM models focus on the description of functiona...
Conference Paper
Full-text available
Software visualization is one of the enabling techniques to provide support during software maintenance activities. Software maintenance is a multidimensional problem domain which involves the integration, abstraction and analysis of different knowledge resources and artifacts. Maintainers are typically left with no guidance on how these existing a...
Conference Paper
Full-text available
Software maintainers routinely have to deal with a multitude of arti- facts, like source code or documents, which often end up disconnected, due to their different representations and the size and complexity of legacy systems. One of the main challenges in software maintenance is to establish and maintain the semantic connections among all the diff...
Conference Paper
Full-text available
Modification analysis is part of most maintenance processes and includes among other activities, early prediction of potential change impacts, feasibility studies, cost estimation, etc. Existing impact analysis and regression testing techniques being source code based require at least some understanding of the system implementation. In this researc...
Conference Paper
Full-text available
Software systems have become more complex, with myriad features and multiple functionalities. A major challenge in developing and maintaining such complex software is to identify potential conflicts among its features. Feature interaction analysis becomes progressively more difficult as software's feature combinations and available scenarios increa...
Conference Paper
Full-text available
Documents written in natural languages constitute a major part of the software engineering lifecycle artifacts. Especially during soft- ware maintenance or reverse engineering, semantic information conveyed in these documents can provide important knowledge for the software engineer. In this paper, we present a text mining system capable of pop- ul...
Conference Paper
Full-text available
Feature location has long been recognized as an important reverse engineering activity to identify the implementation of a given system functionality in the source code. In this paper, we present a simple yet powerful approach for solving the feature location problem based on impact analysis. The presented approach combines two different sources of...
Conference Paper
Full-text available
Understanding a large software system can be made easier if the system is decomposed into smaller and more manageable clusters; software engineers can focus on analyzing only the subsystems needed to solve the maintenance task at hand. There exist several software clustering techniques, among which the most predominant ones are based on the analysi...
Conference Paper
Full-text available
In this paper, we present a formal process model to support the comprehension and maintenance of software systems. The model provides a formal ontological representation that supports the use of rea- soning services across different knowledge resources. In the presented approach, we employ our Description Logic knowledge base to support the mainten...
Conference Paper
Full-text available
A challenge of existing program comprehension approaches is to provide consistent and flexible representations for software systems. Maintainers have to match their mental models with the different representations these tools provide. In this paper, we present a novel approach that addresses this issue by providing a consistent ontological represen...
Article
Full-text available
Comprehension is an essential part of software evolution. Only software that is well understood can evolve in a con-trolled manner. In this paper, we present a formal process model to support the comprehension of software systems by using Ontology and Description Logic. This formal represen-tation supports the use of reasoning services across diffe...
Conference Paper
Full-text available
Scenario-driven requirement specifications are widely used to capture and represent functional requirements. Use Case Maps are being standardized as part of the User Requirements Notation (URN), the most recent addition to ITU-T’s family of languages. UCM models,focus on the description of func- tional requirements and high-level designs at early s...
Conference Paper
Full-text available
There exists a large variety of techniques to detect and correct software security vulnerabilities at the source code level, including human code reviews, testing, and static analysis. In this article, we present a static analysis approach that supports both the identification of security flaws and the reasoning about security concerns. We introduc...
Conference Paper
Full-text available
Changing customer needs and technology are driving factors influencing software evolution. Consequently, there is a need to assess the impact of these changes on existing software systems. For many users, technology is no longer the main problem, and it is likely to become a progressively smaller problem as standard solutions are provided by techno...
Conference Paper
Full-text available
Changing customer needs and computer technology are the driving factors influencing software evolution. There is a need to assess the impact of these changes on existing software systems. Requirement specification is gaining increasingly attention as a critical phase of software systems development process. In particular for larger systems, it quic...
Conference Paper
Full-text available
Scenario-driven requirement specifications are widely used to capture and represent functional requirements. Use Case Maps (UCM) is being standardized as part of the User Requirements Notation (URN), the most recent addition to ITU–T’s family of languages. UCM models allow the description of functional requirements and high-level designs at early s...
Article
Graphic visuals derived from reverse engineered source code have long been recognized for their impact on improving the comprehensibility of structural and behavioral aspects of large software systems and their source code. A number of visualization techniques, primarily graph-based, do not scale. Some other proposed techniques based on 3D metaphor...
Conference Paper
Full-text available
The increasing size and complexity of software systems introduces new challenges in comprehending the overall structure of programs. Modeling languages and notations were introduced to provide abstractions from existing source code during forward engineering. However, these same modeling techniques and notations fail during source code reverse engi...
Conference Paper
Full-text available
Scenario-driven requirement specifications are widely used to capture and represent functional requirements. Use case maps (UCM) is being standardized as part of the user requirements notation (URN), an addition to ITU-T's family of languages. UCM models allow the description of functional requirements and high-level designs at early stages of the...
Conference Paper
Full-text available
We present a framework of program slicing based coupling measurements to evaluate software quality. The proposed framework combines the well-known coupling measurement, CBO (coupling between object classes), RFC (response from classes), and MPC (message passing coupling), with slicing based source code analysis. The proposed measures are implemente...
Conference Paper
Full-text available
Requirement Specification is gaining increasingly attention as a critical phase of software systems development. As requirement descriptions evolve, they quickly become error-prone and difficult to understand. Therefore, the development of techniques and tools to support requirement specification development, understanding, testing, maintenance and...
Article
Full-text available
Program Slicing is a well-known decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. In this paper, we present two novel predicate-based dynamic slicing algorithms for message passing programs. Unlike more traditional slicing criteria that focus...
Article
Full-text available
In recent years software usability has become a major research theme in the software engineering community. Up to now, only a few software quality models address the usability evaluation and measurement in a detailed and structured way. The International Organization for Standardization (ISO) developed a variety of models to measure software usabil...
Conference Paper
Full-text available
Software development is driven by software comprehension. Controlling a software development process is dependent on controlling software comprehension. Measures of factors that influence software comprehension are required in order to achieve control. The use of high-level languages results in many different kinds of lines of code that require dif...

Network

Cited By