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.
? Tutorial for this page

Natalia Dragan

dblp:69/3918 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
code summarization
0.412019
Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019
Empirical software engineering
developer studies
0.412019
Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019
Software maintenance and evolution
program comprehension
0.412019
Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019
Empirical software engineering › developer studies
eye tracking
0.112019
Developer reading behavior while summarizing Java methods: size and context matters · ICSE 2019
Empirical software engineering
mining software repositories
0.112019
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
YearPublicationVenuePosition
2024 Stereocode: A Tool for Automatic Identification of Method and Class Stereotypes for Software Systems
abstract
We 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
ICSME4
2019 Developer reading behavior while summarizing Java methods: size and context matters
abstract
An 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
ICSE3
2018 [Research Paper] Which Method-Stereotype Changes are Indicators of Code Smells?
abstract
A 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
SCAM3
2017 The Evaluation of an Approach for Automatic Generated Documentation
abstract
Two 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
ICSME2
2015 Using stereotypes in the automatic generation of natural language summaries for C++ methods
abstract
An 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
ICSME2
2013 Improving Feature Location by Enhancing Source Code with Stereotypes
abstract
A 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
ICSM2
2011 Emergent laws of method and class stereotypes in object oriented software
abstract
The 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
ICSM1
2011 Using stereotypes to help characterize commits
abstract
Individual 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
ICSM1
2010 Automatic identification of class stereotypes
abstract
An 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
ICSM1
2009 Using method stereotype distribution as a signature descriptor for software systems
abstract
Method 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
ICSM1
2006 Reverse Engineering Method Stereotypes
abstract
An 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
ICSM1