Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.

Amir Michail

dblp:51/4817 · DBLP profile ↗
← Back
11ranked-venue papers
7as first author
0since 2021 · last 2005
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 7 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
9 papers
Software maintenance and evolution · 70% Empirical software engineering · 19% Software testing · 8%
Human-computer interaction and pervasive computing
1 paper
Usability and user experience research · 100%

Topics — the 11 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution
software reuse
0.262002
Browsing and searching source code of applications written using a GUIframework · ICSE 2002
CodeWeb: Data Mining Library Reuse Patterns · ICSE 2001
Data mining library reuse patterns using generalized association rules · ICSE 2000
Software maintenance and evolution › reverse engineering
design recovery
0.122003
Design Recovery of Interactive Graphical Applications · ICSE 2003
DRT: A Tool for Design Recovery of Interactive Graphical Applications · ICSE 2003
Software maintenance and evolution › software reuse
library reuse pattern mining
0.132001
CodeWeb: Data Mining Library Reuse Patterns · ICSE 2001
Data mining library reuse patterns using generalized association rules · ICSE 2000
Data Mining Library Reuse Patterns in User-Selected Applications · ASE 1999
Empirical software engineering
mining software repositories
0.142001
Data mining library reuse patterns using generalized association rules · ICSE 2000
Data Mining Library Reuse Patterns in User-Selected Applications · ASE 1999
Illustrating Object-Oriented Library Reuse by Example: A Tool-based Approach · ASE 1998
Software maintenance and evolution › software reengineering › software modernization › software migration
library migration
0.122001
CodeWeb: Data Mining Library Reuse Patterns · ICSE 2001
Assessing Software Libraries by Browsing Similar Classes, Functions and Relationships · ICSE 1999
Empirical software engineering
software defect prediction
0.112005
Helping users avoid bugs in GUI applications · ICSE 2005
Software maintenance and evolution
program comprehension
0.012002
Browsing and searching source code of applications written using a GUIframework · ICSE 2002
Software maintenance and evolution
software evolution
0.012001
CodeWeb: Data Mining Library Reuse Patterns · ICSE 2001
Program analysis › dynamic analysis › trace analysis
execution trace analysis
0.022003
Design Recovery of Interactive Graphical Applications · ICSE 2003
DRT: A Tool for Design Recovery of Interactive Graphical Applications · ICSE 2003
Software maintenance and evolution › software libraries
library comparison
0.011999
Assessing Software Libraries by Browsing Similar Classes, Functions and Relationships · ICSE 1999
Software maintenance and evolution › software dependencies
library selection
0.011999
Assessing Software Libraries by Browsing Similar Classes, Functions and Relationships · ICSE 1999

Methods — techniques the papers use, named apart from their topics

collaborative filtering · 0.1bug prediction · 0.1execution burst analysis · 0.1data mining · 0.1source code analysis · 0.1static analysis · 0.0GUI structure analysis · 0.0generalized association rules · 0.0component similarity matching · 0.0association rule mining · 0.0
YearPublicationVenuePosition
2005 Helping users avoid bugs in GUI applications
abstract
In this paper, we propose a method to help users avoid bugs in GUI applications. In particular, users would use the application normally and report bugs that they encounter to prevent anyone -- including themselves -- from encountering those bugs again. When a user attempts an action that has led to problems in the past, he/she will receive a warning and will be given the opportunity to abort the action -- thus avoiding the bug altogether and keeping the application stable. Of course, bugs should be fixed eventually by the application developers, but our approach allows application users to collaboratively help each other avoid bugs -- thus making the application more usable in the meantime. We demonstrate this approach using our "Stabilizer" prototype. We also include a preliminary evaluation of the Stabilizer's bug prediction.
Amir Michail, Tao Xie 0001
ICSE1
2004 Design Recovery of Real-Time Graphical Applications Using Video
abstract
We propose an approach to design recovery of real-time graphical applications - such as flight simulators and games - that uses video to link lower-level code events with their higher-level graphical manifestations. Such a link can be used for both top-down and bottom-up design recovery. Top-down, one can identify an interesting visual event in the video and then see which lower-level code event(s) are responsible for it. Bottom-up, one can explain code of interest by seeing the sorts of high-level visual events in the video to which that code corresponds. The link between low-level code events and high-level visual events can be established by inspection or through an automated technique. As an example of the latter, clicking on a falling creature in the video would yield code specific to the falling creature - excluding irrelevant code from other walking/climbing creatures at that same moment in the video. We shall demonstrate by example how our design recovery method sheds light on the design of real-time graphical applications.
Clarence Dang, Anh Vinh Le, Amir Michail, Kim Cuong Pham, Tran Quan Pham, Jasper Timm
ICSM3
2003 DRT: A Tool for Design Recovery of Interactive Graphical Applications
abstract
Nowadays, the majority of productivity applications are interactive and graphical in nature. In this demonstration, we explore the possibility of taking advantage of these two characteristics in a design recovery tool. Specifically, the fact that an application is interactive means that we can identify distinct execution bursts corresponding closely to "actions" performed by the user. The fact that the application is graphical means that we can describe those actions visually from a fragment of the application display itself. Combining these two ideas, we obtain an explicit mapping from high-level actions performed by a user (similar to use case scenarios/specification fragments) to their low-level implementation. This mapping can be used for design recovery of interactive graphical applications. We demonstrate our approach using L/sub Y/X, a scientific word processor.
Keith Chan, Annie Chen, Zhi Cong Leo Liang, Amir Michail, Minh Hoai, Nicholas Seow
ICSE4
2003 Design Recovery of Interactive Graphical Applications
abstract
Nowadays, the majority of productivity applications are interactive and graphical in nature. In this paper, we explore the possibility of taking advantage of these two characteristics in a design recovery tool. Specifically, the fact that an application is interactive means that we can identify distinct execution bursts corresponding closely to "actions" performed by the user The fact that the application is graphical means that we can describe those actions visually from a fragment of the application display itself. Combining these two ideas, we obtain an explicit mapping from high-level actions performed by a user (similar to use case scenarios/specification fragments) to their low-level implementation. This mapping can be used for design recovery of interactive graphical applications. We demonstrate our approach using L/sub Y/X, a scientific word processor.
Keith Chan, Zhi Cong Leo Liang, Amir Michail
ICSE3
2002 Browsing and searching source code of applications written using a GUIframework
abstract
Nowadays, applications are typically written using an object-oriented GUI framework. In this paper we explore the possibility of using the GUI of such applications to guide browsing and search of their source code. Such a tool would be helpful for software maintenance and reuse, particularly when the application source is unfamiliar. Intuitively, we would expect the task of browsing and searching source code of an application written using a GUI framework to be easier than one that doesn't because the GUI framework imposes a structure on the application. Generally, the GUI framework is in control and makes calls into the application code to handle various events --- thus providing fundamental entry points into the application code, namely the callbacks. Of course, this is a property of frameworks in general but GUI frameworks have one additional advantage: the GUI is visible to the end-user and contains text messages describing what the application can do. Thus we have an explicit connection between an informal specification fragment visible in the GUI and its precise entry point to the implementation in the source. We demonstrate our approach, which takes advantage of this connection, on KDE applications written using the KDE GUI framework.
Amir Michail
ICSE1
2001 CodeWeb: Data Mining Library Reuse Patterns
abstract
Developers learn to use a software library not just from its documentation but also from toy examples and existing real-life application code (e.g. by using grep). The CodeWeb tool takes this simple idea further by a deeper analysis of a large collection of applications to see what characteristic usage of the library is like. We demonstrate the tool by showing how the KDE core libraries are used in real-life KDE applications (KDE is a graphical desktop environment for UNIX). Moreover, we look at a recently-developed feature that helps software developers port an application from an old version of a library to a new one.
Amir Michail
ICSE1
2001 CVSSearch: Searching through Source Code Using CVS Comments
abstract
CVSSearch is a tool that searches for fragments of source code by using CVS comments. CVS is a version control system that is widely used in the open source community. Our search tool takes advantage of the fact that a CVS comment typically describes the lines of code involved in the commit and this description will typically hold for many future versions. In other words, CVSSearch allows one to better search the most recent version of the code by looking at previous versions to better understand the current version. In this paper we describe our algorithm for mapping CVS comments to the corresponding source code, present a search tool based on this technique, and discuss preliminary feedback.
Annie Chen, Eric Chou, Joshua Wong, Andrew Y. Yao, Shao Zhang, Amir Michail
ICSM7
2000 Data mining library reuse patterns using generalized association rules
abstract
In this paper, we show how data mining can be used to discover library reuse patterns in existing applications. Specifically, we consider the problem of discovering library classes and member functions that are typically reused in combination by application classes. This paper improves upon our earlier research using “association rules” [8] by taking into account the inheritance hierarchy using “generalized association rules”. This turns out to be a non-trivial but worthwhile endeavor.
Amir Michail
ICSE1
1999 Assessing Software Libraries by Browsing Similar Classes, Functions and Relationships
abstract
Comparing and contrasting a set of software libraries is useful for reuse related activities such as selecting a library from among several candidates or porting an application from one library to another.The current state of the art in assessing libraries relies on qualitative methods.To reduce costs and/or assess a large collection of libraries, automation is necessary.Although there are tools that help a developer examine an individual library in terms of architecture, style, etc., we know of no tools that help the developer directly compare several libraries.With existing tools, the user must manually integrate the knowledge learned about each library.Automation to help developers directly compare and contrast libraries requires matching of similar components (such as classes and functions) across libraries.This is different than the traditional component retrieval problem in which components are returned that best match a user's query.Rather, we need to find those components that are similar across the libraries under consideration.In this paper, we show how this kind of matching can be done.
Amir Michail, David Notkin
ICSE1
1999 Data Mining Library Reuse Patterns in User-Selected Applications
abstract
In this paper, we show how data mining can be used to discover library reuse patterns in user-selected applications. This can be helpful in building and debugging applications that use a particular library by observing how other developers have used that library in their applications. Specifically, we consider the problem of discovering association rules that identify library components that are often reused in combination by application components. For example, such a rule might tell us that application classes that inherit from a particular library class often override certain member functions. By querying and/or browsing such association rules, a developer can discover patterns for reusing library components. We illustrate the approach using our tool, CodeWeb, by demonstrating characteristic ways in which applications reuse components in the ET++ application framework.
Amir Michail
ASE1
1998 Illustrating Object-Oriented Library Reuse by Example: A Tool-based Approach
abstract
The authors present a tool-based approach that examines how example programs reuse a particular library. The approach can facilitate reuse by: (1) guiding the developer towards important library classes of general utility; (2) guiding the developer towards library classes particularly useful for a specific application domain; and (3) providing access to the relevant source code in each example for further inspection. The approach is supported by CodeWeb, a reuse tool they have built for C++ and Java libraries.
Amir Michail, David Notkin
ASE1