Results 1  10
of
43
UMLDiff: An Algorithm for ObjectOriented Design Differencing
, 2005
"... This paper presents UMLDiff, an algorithm for automatically detecting structural changes between the designs of subsequent versions of objectoriented software. It takes as input two class models of a Java software system, reverse engineered from two corresponding code versions. It produces as outpu ..."
Abstract

Cited by 79 (5 self)
 Add to MetaCart
This paper presents UMLDiff, an algorithm for automatically detecting structural changes between the designs of subsequent versions of objectoriented software. It takes as input two class models of a Java software system, reverse engineered from two corresponding code versions. It produces as output a change tree, i.e., a tree of structural changes, that reports the differences between the two design versions in terms of (a) additions, removals, moves, renamings of packages, classes, interfaces, fields and methods, (b) changes to their attributes, and (c) changes of the dependencies among these entities. UMLDiff produces an accurate report of the design evolution of the software system, and enables subsequent designevolution analyses from multiple perspectives in support of various evolution activities. UMLDiff and the analyses it enables can assist software engineers in their tasks of understanding the rationale of design evolution of the software system and planning future development and maintenance activities. We evaluate UMLDiff’s correctness and robustness through a realworld case study.
An Efficient Graph Algorithm for Dominance Constraints
 JOURNAL OF ALGORITHMS
, 2003
"... Dominance constraints are logical descriptions of trees that are widely used in computational linguistics. Their general satisfiability problem is known to be NPcomplete. Here we identify normal dominance constraints and present an efficient graph algorithm for testing their satisfiablity in dete ..."
Abstract

Cited by 38 (16 self)
 Add to MetaCart
(Show Context)
Dominance constraints are logical descriptions of trees that are widely used in computational linguistics. Their general satisfiability problem is known to be NPcomplete. Here we identify normal dominance constraints and present an efficient graph algorithm for testing their satisfiablity in deterministic polynomial time. Previously, no polynomial time algorithm was known.
Efficiently Answering Reachability Queries on Very Large Directed Graphs
"... Efficiently processing queries against very large graphs is an important research topic largely driven by emerging real world applications, as diverse as XML databases, GIS, web mining, social network analysis, ontologies, and bioinformatics. In particular, graph reachability has attracted a lot of ..."
Abstract

Cited by 28 (4 self)
 Add to MetaCart
(Show Context)
Efficiently processing queries against very large graphs is an important research topic largely driven by emerging real world applications, as diverse as XML databases, GIS, web mining, social network analysis, ontologies, and bioinformatics. In particular, graph reachability has attracted a lot of research attention as reachability queries are not only common on graph databases, but they also serve as fundamental operations for many other graph queries. The main idea behind answering reachability queries in graphs is to build indices based on reachability labels. Essentially, each vertex in the graph is assigned with certain labels such that the reachability between any two vertices can be determined by their labels. Several approaches have been proposed for building these reachability labels; among them are interval labeling (tree cover) and 2hop labeling. However, due to the large number of vertices in many real world graphs (some graphs can easily contain millions of vertices), the computational cost and (index) size of the labels using existing methods would prove too expensive to be practical. In this paper, we introduce a novel graph structure, referred to as pathtree, to help labeling very large graphs. The pathtree cover is a spanning subgraph of G in a tree shape. We demonstrate both analytically and empirically the effectiveness of our new approaches.
Refactoring Detection based on UMLDiff ChangeFacts Queries
, 2006
"... Refactoring is an important activity in the evolutionary development of objectoriented software systems. Several IDEs today support the automated application of some refactorings; at the same time, there is substantial ongoing research aimed at developing support for deciding when and how software ..."
Abstract

Cited by 19 (3 self)
 Add to MetaCart
Refactoring is an important activity in the evolutionary development of objectoriented software systems. Several IDEs today support the automated application of some refactorings; at the same time, there is substantial ongoing research aimed at developing support for deciding when and how software should be refactored and for estimating the effect of the refactoring on the quality requirements of the software. On the other hand, understanding the refactorings in the evolutionary history of a software system is essential in understanding its design rationale. Yet, only very limited support exists for detecting refactorings. In this paper, we present our approach for detecting refactorings by analyzing the system evolution at the design level. We evaluate our method with case studies, examining two realistic examples of objectoriented software.
Algorithms for dense graphs and networks on the random access computer
 ALGORITHMICA
, 1996
"... We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to com ..."
Abstract

Cited by 18 (4 self)
 Add to MetaCart
We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to compute the transitive closure of a digraph with n vertices and m edges in time O(n 2 + nm/,k), how to solve the uncapacitated transportation problem with integer costs in the range [0..C] and integer demands in the range [U..U] in time O ((n 3 (log log / log n) 1/2 + n 2 log U) log nC), and how to solve the assignment problem with integer costs in the range [0..C] in time O(n 2"5 log nC/(logn/loglog n)l/4). Assuming a suitably compressed input, we also show how to do depthfirst and breadthfirst search and how to compute strongly connected components and biconnected components in time O(n~. + n2/L), and how to solve the single source shortestpath problem with integer costs in the range [0..C] in time O(n²(log C)/log n). For the transitive closure algorithm we also report on the experiences with an implementation.
Differencing logical UML models
, 2007
"... UMLDiff is a heuristic algorithm for automatically detecting the changes that the logical design of an objectoriented software system has gone through, as the subject system evolved from one version to the next. UMLDiff requires as input two models of the logical design of the system, corresponding ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
UMLDiff is a heuristic algorithm for automatically detecting the changes that the logical design of an objectoriented software system has gone through, as the subject system evolved from one version to the next. UMLDiff requires as input two models of the logical design of the system, corresponding to two of its versions. It produces as output a set of change facts, reporting the differences between the two logicaldesign versions in terms of (a) additions, removals, moves, renamings of model elements, i.e., subsystems, packages, classes, interfaces, attributes and operations, (b) changes to their attributes, and (c) changes to the relations among these model elements. In this paper, we detail the underlying metamodel, the UMLDiff algorithm and its heuristics for establishing lexical and structural similarity. We report on our experimental evaluation of the correctness and robustness of UMLDiff through a realworld case study.
GRAPH REACHABILITY QUERIES: A SURVEY
, 2010
"... There are numerous applications that need to deal with a large graph, including bioinformatics, social science, link analysis, citation analysis, and collaborative networks. A fundamental query is to query whether a node is reachable from another node in a large graph, which is called a reachabilit ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
There are numerous applications that need to deal with a large graph, including bioinformatics, social science, link analysis, citation analysis, and collaborative networks. A fundamental query is to query whether a node is reachable from another node in a large graph, which is called a reachability query. In this survey, we discuss several existing approaches to process reachability queries. In addition, we will discuss how to answer reachability queries with the shortest distance, and graph pattern matching over a large graph.
Markov Processes Involving qStirling Numbers
 Combinatorics, Probability and Computing
, 1997
"... In this paper we consider the Markov process defined by P 1;1 = 1; P n;` = (1 \Gamma n;` ) \Delta P n\Gamma1;` + n;`\Gamma1 \Delta P n\Gamma1;`\Gamma1 for transition probabilities n;` = q ` and n;` = q n\Gamma1 . We give closed forms for the distributions and the moments of the underlying ra ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
In this paper we consider the Markov process defined by P 1;1 = 1; P n;` = (1 \Gamma n;` ) \Delta P n\Gamma1;` + n;`\Gamma1 \Delta P n\Gamma1;`\Gamma1 for transition probabilities n;` = q ` and n;` = q n\Gamma1 . We give closed forms for the distributions and the moments of the underlying random variables. Thereby we observe that the distributions can be easily described in terms of qStirling numbers of the second kind. Their occurrence in a purely time dependent Markov process allows a natural approximation for these numbers through the normal distribution. We also show that these Markov processes describe some parameters related to the study of random graphs as well as to the analysis of algorithms. Keywords: qStirling numbers, Markov processes, random graphs, approximate counting. 1 Introduction In this paper we will study the Markov process defined by P 1;1 = 1 P n;` = 0 for ` = 2 f 1; : : : ; n g and (1) P n;` = (1 \Gamma n;` ) P n\Gamma1;` + n;`\Gamma1 P n\Gamma1;...
On the Distribution of the Transitive Closure in a Random Acyclic Digraph
 Microsoft, One Microsoft Way, Redmond, Washington 980526399 Department of Mathematics, The Ohio state University
, 1993
"... . In the usual Gn;pmodel of a random acyclic digraph let fl n (1) be the size of the reflexive, transitive closure of node 1, a source node; then the distribution of fl n (1) is given by 8 1 h n : Pr ( fl n (1) = h ) = q n\Gammah h\Gamma1 Y i=1 (1 \Gamma q n\Gammai ) ; where q = ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
. In the usual Gn;pmodel of a random acyclic digraph let fl n (1) be the size of the reflexive, transitive closure of node 1, a source node; then the distribution of fl n (1) is given by 8 1 h n : Pr ( fl n (1) = h ) = q n\Gammah h\Gamma1 Y i=1 (1 \Gamma q n\Gammai ) ; where q = 1 \Gamma p. Our analysis points out some surprising relations between this distribution and known functions of the number theory. In particular we find for the expectation of fl n (1): lim n!1 n \Gamma E(fl n (1)) = L(q) where L(q) = P 1 i=1 q i =(1 \Gamma q i ) is the socalled Lambert Series, which corresponds to the generating function of the divisorfunction. These results allow us to improve the expected running time for the computation of the transitive closure in a random acyclic digraph and in particular we can ameliorate in some cases the analysis of the Goralc'ikov'aKoubek Algorithm. 1 Introduction Let G = (V; E) be a directed graph, defined by a vertex set V = ...