Demo Data from VLDB 2026 / reviewers in the wild / expert
Natalia Dragan
dblp:69/3918
· DBLP profile ↗
11ranked-venue papers
5as first author
1since 2021 · last 2024
0009-0002-2377-5047ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 5 first-author · 1 since 2021
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
1 paper |
Empirical software engineering · 44% Software maintenance and evolution · 28% Program synthesis and code generation · 28% |
Topics — the 5 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program synthesis and code generation
code summarization |
0.4 | 1 | 2019 | Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019 |
Empirical software engineering
developer studies |
0.4 | 1 | 2019 | Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019 |
Software maintenance and evolution
program comprehension |
0.4 | 1 | 2019 | Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019 |
Empirical software engineering › developer studies
eye tracking |
0.1 | 1 | 2019 | Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019 |
Empirical software engineering
mining software repositories |
0.1 | 1 | 2019 | Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019 |
Methods — techniques the papers use, named apart from their topics
eye tracking · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Stereocode: A Tool for Automatic Identification of Method and Class Stereotypes for Software SystemsabstractWe present Stereocode, a static analysis tool engineered to automatically identify, and re-document software systems written in C++, C#, and/or Java with method and class stereotypes. A stereotype is a simple abstraction that encapsulates the high-level behavior of a method or a class. The tool is built around the srcML infrastructure, an XML representation of source code. Stereocode annotates the srcML input with the computed stereotypes as XML attributes to the function and class tags. We showcase Stereocode's efficiency in conducting large-scale analysis of software systems, which involves using 1050 repositories from GitHub across C++, C#, and Java. The results provide valuable insights into the distribution of stereotypes. A demo video is available at: https://youtu.be/D90xwUIPbOI. Ali F. Al-Ramadan, Joshua Behler, Michael John Decker, Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSME | 4 |
| 2019 | Developer reading behavior while summarizing Java methods: size and context mattersabstractAn eye-tracking study of 18 developers reading and summarizing Java methods is presented. The developers provide a written summary for methods assigned to them. In total, 63 methods are used from five different systems. Previous studies on this topic use only short methods presented in isolation usually as images. In contrast, this work presents the study in the Eclipse IDE allowing access to all the source code in the system. The developer can navigate via scrolling and switching files while writing the summary. New eye-tracking infrastructure allows for this improvement in the study environment. Data collected includes eye gazes on source code, written summaries, and time to complete each summary. Unlike prior work that concluded developers focus on the signature the most, these results indicate that they tend to focus on the method body more than the signature. Moreover, both experts and novices tend to revisit control flow terms rather than reading them for a long period. They also spend a significant amount of gaze time and have higher gaze visits when they read call terms. Experts tend to revisit the body of the method significantly more frequently than its signature as the size of the method increases. Moreover, experts tend to write their summaries from source code lines that they read the most. Nahla J. Abid, Bonita Sharif, Natalia Dragan, Hend Alrasheed, Jonathan I. Maletic |
ICSE | 3 |
| 2018 | [Research Paper] Which Method-Stereotype Changes are Indicators of Code Smells?abstractA study of how method roles evolve during the lifetime of a software system is presented. Evolution is examined by analyzing when the stereotype of a method changes. Stereotypes provide a high-level categorization of a method's behavior and role, and also provide insight into how a method interacts with its environment and carries out tasks. The study covers 50 open-source systems and 6 closed-source systems. Results show that method behavior with respect to stereotype is highly stable and constant over time. Overall, out of all the history examined, only about 10% of changes to methods result in a change in their stereotype. Examples of methods that change stereotype are further examined. A select number of these types of changes are indicators of code smells. Michael John Decker, Christian D. Newman, Natalia Dragan, Michael L. Collard, Jonathan I. Maletic, Nicholas A. Kraft |
SCAM | 3 |
| 2017 | The Evaluation of an Approach for Automatic Generated DocumentationabstractTwo studies are conducted to evaluate an approach to automatically generate natural language documentation summaries for C++ methods. The documentation approach relies on a method's stereotype information. First, each method is automatically assigned a stereotype(s) based on static analysis and a set of heuristics. Then, the approach uses the stereotype information, static analysis, and predefined templates to generate a natural-language summary/documentation for each method. This documentation is automatically added to the code base as a comment for each method. The result of the first study reveals that the generated documentation is accurate, does not include unnecessary information, and does a reasonable job describing what the method does. Based on statistical analysis of the second study, the most important part of the documentation is the short description as it describes the intended behavior of a method. Nahla J. Abid, Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSME | 2 |
| 2015 | Using stereotypes in the automatic generation of natural language summaries for C++ methodsabstractAn approach to automatically generate natural language documentation summaries for C++ methods is presented. The approach uses prior work by the authors on stereotyping methods along with the source code analysis framework srcML. First, each method is automatically assigned a stereotype(s) based on static analysis and a set of heuristics. Then, the approach uses the stereotype information, static analysis, and predefined templates to generate a natural-language summary for each method. This summary is automatically added to the code base as a comment for each method. The predefined templates are designed to produce a generic summary for specific method stereotypes. Static analysis is used to extract internal details about the method (e.g., parameters, local variables, calls, etc.). This information is used to specialize the generated summaries. Nahla J. Abid, Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSME | 2 |
| 2013 | Improving Feature Location by Enhancing Source Code with StereotypesabstractA novel approach to improve feature location by enhancing the corpus (i.e., source code) with static information is presented. An information retrieval method, namely Latent Semantic Indexing (LSI), is used for feature location. Adding stereotype information to each method/function enhances the corpus. Stereotypes are terms that describe the abstract role of a method, for example get, set, and predicate are well-known method stereotypes. Each method in the system is automatically stereotyped via a static-analysis approach. Experimental comparisons of using LSI for feature location with, and without, stereotype information are conducted on a set of open-source systems. The results show that the added information improves the recall and precision in the context of feature location. Moreover, the use of stereotype information decreases the total effort that a developer would need to expend to locate relevant methods of the feature. Nouh Alhindawi, Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSM | 2 |
| 2011 | Emergent laws of method and class stereotypes in object oriented softwareabstractThe paper investigates concepts of method and class stereotypes, focusing on understanding OO design abstraction at a lower level than design patterns. Stereotypes are powerful semantic mechanisms and represent generalizations that reflect an intrinsic or atomic behavior of a method or a class. First, we present a mechanism to automatically reverse engineer these stereotypes from existing systems along with a means to re-document methods and classes with their corresponding stereotypes. Second, based on the distribution of method stereotypes we propose techniques for automatic identification of class stereotypes, systems classification, and the characterization of changes during software evolution. We anticipate that these new techniques will better support program comprehension and design recovery, and could be used to build smarter reverse engineering tools. The results of this paper are based on the author's doctoral dissertation. Natalia Dragan |
ICSM | 1 |
| 2011 | Using stereotypes to help characterize commitsabstractIndividual commits to a version control system are automatically characterized based on the stereotypes of added and deleted methods. The stereotype of each method is automatically reverse engineered using a previously defined taxonomy. Method stereotypes reflect intrinsic atomic behavior of a method and its role in the class. The stereotypes of the added and deleted methods form a descriptors are then used to categorize commits, into types, based on the impact of the changes to a class (or classes). The goal is to gain a better understanding of the design changes to a system over its history and provide a means for documenting the commit. Natalia Dragan, Michael L. Collard, Maen Hammad, Jonathan I. Maletic |
ICSM | 1 |
| 2010 | Automatic identification of class stereotypesabstractAn approach is presented to automatically determine a class's stereotype. The stereotype is based on the frequency and distribution of method stereotypes in the class. Method stereotypes are automatically determined using a defined taxonomy given in previous work. The stereotypes, boundary, control and entity are used as a basis but refined based on an empirical investigation of 21 systems. A number of heuristics, derived from empirical evidence, are used to determine a class's stereotype. For example, the prominence of certain types of methods can indicate a class's main role. The approach is applied to five open source systems and evaluated. The results show that 95% of the classes are stereotyped by the approach. Additionally, developers (via manual inspection) agreed with the approach's results. Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSM | 1 |
| 2009 | Using method stereotype distribution as a signature descriptor for software systemsabstractMethod stereotype distribution is used as a signature for software systems. The stereotype for each method is determined using a presented taxonomy. The counts of the different stereotypes form a signature of the system. Determining method stereotypes is done automatically and is based on language (C++) features, idioms, and the main role (purpose) of a method. The intent is to use the distribution of method stereotype is an indicator of system architecture. Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSM | 1 |
| 2006 | Reverse Engineering Method StereotypesabstractAn approach to automatically identify the stereotypes of all the methods in an entire system is presented. A taxonomy for object-oriented class method stereotypes is given that unifies and extends the existing literature to address gaps and deficiencies. Based on this taxonomy, a set of definitions is given and method stereotypes are reverse engineered using lightweight static program analysis. Classification is done solely by programming language structures and idioms, in this case C++. The approach is used to automatically re-document each method by annotating the original source code with the stereotype information. A demonstration of the accuracy and scalability of the approach is given Natalia Dragan, Michael L. Collard, Jonathan I. Maletic |
ICSM | 1 |