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.

Doug Kimelman

dblp:92/6514 · DBLP profile ↗
← Back
8ranked-venue papers
2as first author
0since 2021 · last 2010
—ORCID · none

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

Software engineering, systems software and programming languages · 6 · 1 first-authorSystems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 1 · 1 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
5 papers
Requirements engineering and software design · 63% Programming languages and type systems · 12% Program verification · 12%
Theoretical computer science
1 paper
Algorithms and data structures · 100%

Topics — the 10 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Requirements engineering and software design › model-driven engineering › model management
diagram matching
0.222010
Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010
A Bayesian approach to diagram matching with application to architectural models · ICSE 2006
Requirements engineering and software design
model-driven engineering
0.222010
Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010
A Bayesian approach to diagram matching with application to architectural models · ICSE 2006
Requirements engineering and software design
software architecture
0.222010
Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010
A Bayesian approach to diagram matching with application to architectural models · ICSE 2006
Programming languages and type systems
program specification
0.112010
Programming with angelic nondeterminism · POPL 2010
Program verification › refinement
refinement calculus
0.112010
Programming with angelic nondeterminism · POPL 2010
Requirements engineering and software design › software architecture › architecture description
architectural modeling
0.112006
A Bayesian approach to diagram matching with application to architectural models · ICSE 2006
Software maintenance and evolution
code reuse
0.112005
Jungloid mining: helping to navigate the API jungle · PLDI 2005
Algorithms and data structures › search algorithms
backtracking
0.012010
Programming with angelic nondeterminism · POPL 2010
Software maintenance and evolution › program comprehension
software visualization
0.011993
Visualizing the Behavior of Object-Oriented Systems · OOPSLA 1993
Software maintenance and evolution
program comprehension
0.011993
Visualizing the Behavior of Object-Oriented Systems · OOPSLA 1993

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

refinement calculus · 0.2search algorithm · 0.2graph matching · 0.2bayesian methods · 0.2type-based query inference · 0.1mining software repositories · 0.1
YearPublicationVenuePosition
2010 Programming with angelic nondeterminism
abstract
Angelic nondeterminism can play an important role in program development. It simplifies specifications, for example in deriving programs with a refinement calculus; it is the formal basis of regular expressions; and Floyd relied on it to concisely express backtracking algorithms such as N-queens.
Rastislav Bodík, Satish Chandra 0001, Joel Galenson, Doug Kimelman, Nicholas Tung, Shaon Barman, Casey Rodarmor
POPL4
2010 Bayesian Approaches to Matching Architectural Diagrams
abstract
IT system architectures and many other kinds of structured artifacts are often described by formal models or informal diagrams. In practice, there are often a number of versions of a model or diagram, such as a series of revisions, divergent variants, or multiple views of a system. Understanding how versions correspond or differ is crucial, and thus, automated assistance for matching models and diagrams is essential. We have designed a framework for finding these correspondences automatically based on Bayesian methods. We represent models and diagrams as graphs whose nodes have attributes such as name, type, connections to other nodes, and containment relations, and we have developed probabilistic models for rating the quality of candidate correspondences based on various features of the nodes in the graphs. Given the probabilistic models, we can find high-quality correspondences using search algorithms. Preliminary experiments focusing on architectural models suggest that the technique is promising.
Doug Kimelman, Marsha Kimelman, David Mandelin, Daniel M. Yellin
IEEE Trans. Software Eng.1
2006 A Bayesian approach to diagram matching with application to architectural models
abstract
IT system architectures, as well as other systems, are often described by formal models or informal diagrams. In practice, there are often a number of versions of a model, e.g. for different views of a system, divergent variants, or a series of revisions. Understanding how versions of a model correspond or differ is crucial, yet little work has been done on automated assistance for matching models and diagrams.We have designed a framework based on Bayesian methods for finding these correspondences automatically. We represent models and diagrams as graphs whose nodes have attributes such as name, type, connections, and containment relations, and we have developed probabilistic models for rating the quality of candidate correspondences based on various features of the nodes in the graphs. Given the probabilistic models, we can find high quality correspondences using search algorithms. Preliminary experiments focusing on architectural models suggest that the technique is promising.
David Mandelin, Doug Kimelman, Daniel M. Yellin
ICSE2
2005 Jungloid mining: helping to navigate the API jungle
abstract
Reuse of existing code from class libraries and frameworks is often difficult because APIs are complex and the client code required to use the APIs can be hard to write. We observed that a common scenario is that the programmer knows what type of object he needs, but does not know how to write the code to get the object.In order to help programmers write API client code more easily, we developed techniques for synthesizing jungloid code fragments automatically given a simple query that describes that desired code in terms of input and output types. A jungloid is simply a unary expression; jungloids are simple, enabling synthesis, but are also versatile, covering many coding problems, and composable, combining to form more complex code fragments. We synthesize jungloids using both API method signatures and jungloids mined from a corpus of sample client programs.We implemented a tool, prospector, based on these techniques. prospector is integrated with the Eclipse IDE code assistance feature, and it infers queries from context so there is no need for the programmer to write queries. We tested prospector on a set of real programming problems involving APIs; prospector found the desired solution for 18 of 20 problems. We also evaluated prospector in a user study, finding that programmers solved programming problems more quickly and with more reuse when using prospector than without prospector.
David Mandelin, Rastislav Bodík, Doug Kimelman
PLDI4
1994 Modeling Object-Oriented Program Execution
Wim De Pauw, Doug Kimelman, John M. Vlissides
ECOOP2
1994 Strata-Various: Multi-Layer Visualization of Dynamics in Software System Behavior
abstract
Current software visualization tools are inadequate for understanding, debugging, and tuning realistically complex applications. These tools often present only static structure, or they present dynamics from only a few of the many layers of a program and its underlying system. This paper introduces "PV", a prototype program visualization system which provides concurrent visual presentation of behavior from all layers, including: the program itself, user-level libraries, the operating system, and the hardware, as this behavior unfolds over time. PV juxtaposes views from different layers in order to facilitate visual correlation, and allows these views to be navigated in a coordinated fashion. This results in an extremely powerful mechanism for exploring application behavior. Experience is presented from actual use of PV in production settings with programmers facing real deadlines and serious performance problems.>
Doug Kimelman, Bryan S. Rosenburg, Tova Roth
IEEE Visualization1
1993 Visualizing the Behavior of Object-Oriented Systems
abstract
Numerous classes, complex inheritance and containment hierarchies, and diverse patterns of dynamic interaction all contribute to difficulties in understanding, reusing, debugging, and tuning large object-oriented systems. To help overcome these difficulties, we introduce novel views of the behavior of object-oriented systems and an architecture for creating and animating these views. We describe platform-independent techniques for instrumenting object-oriented programs, a language-independent protocol for monitoring their execution, and a structure for decoupling the execution of a subject program from its visualization. Case studies involving tuning and debugging of real systems are presented to demonstrate the benefits of visualization. We believe that visualization will prove to be a valuable tool for object-oriented software development.
Wim De Pauw, Richard Helm, Doug Kimelman, John M. Vlissides
OOPSLA3
1993 A Methodology for Visualizing Performance of Loosely Synchronous Programs
Sekhar R. Sarukkai, Doug Kimelman, Larry Rudolph
J. Parallel Distributed Comput.2