Network


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

Hotspot


Dive into the research topics where Andrew M. Sutton is active.

Publication


Featured researches published by Andrew M. Sutton.


international conference on software maintenance | 2005

Context-free slicing of UML class models

Huzefa H. Kagdi; Jonathan I. Maletic; Andrew M. Sutton

The concept of model slicing is introduced as a means to support maintenance through the understanding, querying, and analysis of large UML models. The specific models being examined are class models as defined in the Unified Modeling Language (UML). Model slicing is analogous to classical program slicing. Since UML class models do not explicitly embody any behavioral aspect by themselves, models slices are computed in a context-free manner. The paper defines and formalizes the concept of context-free model slicing. A concrete application of model slicing in software maintenance is presented to support the usefulness and validity of the method.


Information & Software Technology | 2007

Recovering UML class models from C++: A detailed explanation

Andrew M. Sutton; Jonathan I. Maletic

An approach to recovering design-level UML class models from C++ source code to support program comprehension is presented. A set of mappings are given that focus on accurately identifying such elements as relationship types, multiplicities, and aggregation semantics. These mappings are based on domain knowledge of the C++ language and common programming conventions and idioms. Additionally, formal concept analysis is used to detect design-level attributes of UML classes. An application implementing these mappings is used to reverse engineer a moderately sized, open-source application and the resultant class model is compared against those produced by other UML reverse engineering tools. This comparison shows that the presented mapping rules effectively produce meaningful and semantically accurate UML models.


Ecological Monographs | 2014

Intercontinental comparison of fish ecomorphology: null model tests of community assembly at the patch scale in rivers

Carmen G. Montaña; Andrew M. Sutton

Community assembly is affected by environmental filtering that restricts viable phenotypes and by species interactions that impose limits on interspecific trait similarity. Relative influences of these processes should vary according to habitat features and dispersal. Species dispersion within assemblage trait space also should vary in relation to species richness, strength of competition, and the spatiotemporal scale of analysis. We examined ecomorphological diversity of two freshwater fish families (Neotropical Cichlidae, Nearctic Centrarchidae) to test theories of local assembly from regional species pools and theories of species packing within mesohabitat patches. Cichlid and centrarchid assemblages were surveyed in four floodplain rivers (two in South America and two in North America) during low-water periods when fish densities are highest. Surveys were conducted in four mesohabitat types (submerged wood, leaf litter, rocks, sand bank) within river channels and floodplain lakes. We measured 23 morph...


working conference on reverse engineering | 2005

Mappings for accurately reverse engineering UML class models from C

Andrew M. Sutton; Jonathan I. Maletic

The paper introduces a number of mapping rules for reverse engineering UML class models from C++ source code. The mappings focus on accurately identifying such elements as relationship types, multiplicities, and aggregation semantics. These mappings are based on domain knowledge of the C++ language and common programming conventions and idioms. An application implementing these heuristics is used to reverse engineer a moderately sized open source, C++ application, and the resultant class model is compared against those produced by other UML reverse engineering applications. A comparison shows that these presented mapping rules effectively produce meaningful, semantically accurate UML models


international conference on software maintenance | 2012

Rejuvenating C++ programs through demacrofication

Aditya Kumar; Andrew M. Sutton; Bjarne Stroustrup

We describe how legacy C++ programs can be rejuvenated using C++11 features such as generalized constant expressions, perfect forwarding, and lambda expressions. In general, this work develops a correspondence between different kinds of macros and the C++ declarations to which they should be transformed. We have created a set of demacrofication tools to assist a developer in the rejuvenation of C++ programs. To evaluate the work, we have applied the rejuvenation tools to a number of C++ libraries to assess the extent to which these libraries might be improved by demacrofication. Results indicate that between 68 and 98% of potentially refactorable macros could be transformed into C++11 declarations. Additional experiments demonstrate why these numbers are not readily achieved using fully automated rejuvenation tools. We also discuss some techniques to further assist in automating rejuvenation process.


software language engineering | 2011

Design of concept libraries for c

Andrew M. Sutton; Bjarne Stroustrup

We present a set of concepts (requirements on template arguments) for a large subset of the ISO C++ standard library. The goal of our work is twofold: to identify a minimal and useful set of concepts required to constrain the librarys generic algorithms and data structures and to gain insights into how best to support such concepts within C++. We start with the design of concepts rather than the design of supporting language features; the language design must be made to fit the concepts, rather than the other way around. A direct result of the experiment is the realization that to simply and elegantly support generic programming we need two kinds of abstractions: constraints are predicates on static properties of a type, and concepts are abstract specifications of an algorithms syntactic and semantic requirements. Constraints are necessary building blocks of concepts. Semantic properties are represented as axioms. We summarize our approach: concepts =constraints +axioms . This insight is leveraged to develop a library containing only 14 concepts that encompassing the functional, iterator, and algorithm components of the C++ Standard Library (the STL). The concepts are implemented as constraint classes and evaluated using Clangs and GCCs Standard Library test suites.


international conference on software maintenance | 2007

How We Manage Portability and Configuration with the C Preprocessor

Andrew M. Sutton; Jonathan I. Maletic

An in-depth investigation of C preprocessor usage for portability and configuration management is presented. Three heavily-ported and widely used C++ libraries are examined. A core set of header files responsible for configuration management is identified in each system. Then macro usage is extracted and analyzed both manually and with the help of program analysis tools. The configuration structure of each library is discussed in details and commonalities between the systems, including conventions and patterns are discussed. A common configuration architecture for managing portability concerns is derived and presented.


international conference on software maintenance | 2008

Automatically identifying C++0x concepts in function templates

Andrew M. Sutton; Jonathan I. Maletic

An automated approach to the identification of C++0x concepts in function templates is described. Concepts are part of a new language feature appearing in the next standard for C++ (i.e., C++0x). Concept identification is the enumeration of constraints on the sets of types over which templates can be instantiated. The approach analyzes template source code and computes a set of viable concept instances describing the implied data abstraction of the template parameters. The approach is evaluated on generic algorithms defined in the C++ Standard Template Library (STL). The evaluation demonstrates the effectiveness of the approach. The approach can be used to assist in reengineering existing generic libraries to C++0x. Additionally, it has the potential to assist in the validation of concept hierarchies and interface definition in generic libraries.


genetic and evolutionary computation conference | 2005

Hybridizing evolutionary algorithms and clustering algorithms to find source-code clones

Andrew M. Sutton; Huzefa H. Kagdi; Jonathan I. Maletic; L. Gwenn Volkert

This paper presents a hybrid approach to detect source-code clones that combines evolutionary algorithms and clustering. A case-study is conducted on a small C++ code base. The preliminary investigation indicates that such an approach is effective in detecting groups of source-code clones.


visualizing software for understanding and analysis | 2011

MosaiCode: Visualizing large scale software: A tool demonstration

Jonathan I. Maletic; Daniel J. Mosora; Christian D. Newman; Michael L. Collard; Andrew M. Sutton; Brian Robinson

A software visualization tool called MosaiCode is introduced and described. MosaiCode uses a Seesoft metaphor to support the visualization and understanding of various characteristics for large scale software systems. A usage scenario is given to demonstrate the tool.

Collaboration


Dive into the Andrew M. Sutton's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge