Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Natalia Dragan is active.

Publication


Featured researches published by Natalia Dragan.


international conference on software maintenance | 2006

Reverse Engineering Method Stereotypes

Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

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


international conference on software maintenance | 2010

Automatic identification of class stereotypes

Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

An approach is presented to automatically determine a classs 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 classs stereotype. For example, the prominence of certain types of methods can indicate a classs 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 approachs results.


visualizing software for understanding and analysis | 2005

Evaluating UML Class Diagram Layout based on Architectural Importance

Olena Andriyevska; Natalia Dragan; Bonita Simoes; Jonathan I. Maletic

The paper presents and assesses a layout scheme for UML class diagrams that takes into account the architectural importance of a class in terms of its stereotype (e.g., boundary, control, entity). The design and running of a user study is described. The results of the study supports the hypothesis that layout based on architectural importance is more helpful in class diagram comprehension compared to layouts focusing primarily on aesthetics and/or abstract graph guidelines


international conference on software maintenance | 2009

Using method stereotype distribution as a signature descriptor for software systems

Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

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.


international conference on software maintenance | 2013

Improving Feature Location by Enhancing Source Code with Stereotypes

Nouh Alhindawi; Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

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.


international conference on software maintenance | 2011

Using stereotypes to help characterize commits

Natalia Dragan; Michael L. Collard; Maen Hammad; Jonathan I. Maletic

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 engineerd 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.


international conference on software maintenance | 2015

Using stereotypes in the automatic generation of natural language summaries for C++ methods

Nahla J. Abid; Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

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.


international conference on software maintenance | 2011

Emergent laws of method and class stereotypes in object oriented software

Natalia Dragan

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 authors doctoral dissertation.


international conference on software engineering | 2018

A taxonomy of how method stereotypes change

Michael John Decker; Christian D. Newman; Natalia Dragan; Michael L. Collard; Jonathan I. Maletic; Nicholas A. Kraft

The role of a well-designed method should not change frequently or significantly over its lifetime. As such, changes to the role of a method can be an indicator of design improvement or degradation. To measure this, we use method stereotypes. Method stereotypes provide a high-level description of a methods behavior and role; giving insight into how a method interacts with its environment and carries out tasks. When a methods stereotype changes, so has its role. This work presents a taxonomy of how method stereotypes change and why the categories of changes are significant.


international conference on software maintenance | 2017

The Evaluation of an Approach for Automatic Generated Documentation

Nahla J. Abid; Natalia Dragan; Michael L. Collard; Jonathan I. Maletic

Two studies are conducted to evaluate an approach to automatically generate natural language documentation summaries for C++ methods. The documentation approach relies on a methods 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.

Collaboration


Dive into the Natalia Dragan's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael John Decker

Bowling Green State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge