Results 1 - 10
of
252
An open graph visualization system and its applications to software engineering
- SOFTWARE - PRACTICE AND EXPERIENCE
, 2000
"... We describe a package of practical tools and libraries for manipulating graphs and their drawings. Our design, which aimed at facilitating the combination of the package components with other tools, includes stream and event interfaces for graph operations, high-quality static and dynamic layout alg ..."
Abstract
-
Cited by 453 (9 self)
- Add to MetaCart
We describe a package of practical tools and libraries for manipulating graphs and their drawings. Our design, which aimed at facilitating the combination of the package components with other tools, includes stream and event interfaces for graph operations, high-quality static and dynamic layout algorithms, and the ability to handle sizable graphs. We conclude with a description of the applications of this package to a variety of software engineering tools.
Firmato: A Novel Firewall Management Toolkit
, 2004
"... In recent years packet-filtering firewalls have seen some impressive technological advances (e.g., stateful inspection, transparency, performance, etc.) and wide-spread deployment. In contrast, firewall and security management technology is lacking. In this paper we present Firmato, afirewall manage ..."
Abstract
-
Cited by 174 (3 self)
- Add to MetaCart
In recent years packet-filtering firewalls have seen some impressive technological advances (e.g., stateful inspection, transparency, performance, etc.) and wide-spread deployment. In contrast, firewall and security management technology is lacking. In this paper we present Firmato, afirewall management toolkit, with the following distinguishing properties and components: (1) an entityrelationship model containing, in a unified form, global knowledge of the security policy and of the network topology; (2) a model definition language, which we use as an interface to define an instance of the entity-relationship model; (3) a model compiler, translating the global knowledge of the model into firewall-specific configuration files; and (4) a graphical firewall rule illustrator. We implemented a prototype of our toolkit to work with several commercially available firewall products. This prototype was used to control an operational firewall for several months. We believe that our approach is an important step toward streamlining the process of configuring and managing firewalls, especially in complex, multi-firewall installations.
Bunch: A clustering tool for the recovery and maintenance of software system structures
- In Proceedings; IEEE International Conference on Software Maintenance
, 1999
"... Software systems are typically modi ed inorder to extend or change their functionality, improve their performance, port them to di erent platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may ..."
Abstract
-
Cited by 134 (17 self)
- Add to MetaCart
(Show Context)
Software systems are typically modi ed inorder to extend or change their functionality, improve their performance, port them to di erent platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may not be apparent to new developers, because the design documentation is non-existent or, worse, inconsistent with the implementation. This problem could be alleviated if developers were somehow able to produce high-level system decomposition descriptions from the low-level structures present in the source code. We have developed a clustering tool called Bunch that creates a system decomposition automatically by treating clustering as an optimization problem. This paper describes the extensions made to Bunch in response to feedback we received from users. The most important extension, in terms of the quality of results and execution e ciency, is a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process. We use a case study to show how our new features simpli ed the task of extracting the subsystem structure ofamedium size program, while exposing an interesting design aw in the process.
On the automatic modularization of software systems using the bunch tool
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 2006
"... Since modern software systems are large and complex, appropriate abstractions of their structure are needed to make them more understandable and, thus, easier to maintain. Software clustering techniques are useful to support the creation of these abstractions by producing architectural-level views ..."
Abstract
-
Cited by 102 (1 self)
- Add to MetaCart
(Show Context)
Since modern software systems are large and complex, appropriate abstractions of their structure are needed to make them more understandable and, thus, easier to maintain. Software clustering techniques are useful to support the creation of these abstractions by producing architectural-level views of a system’s structure directly from its source code. This paper examines the Bunch clustering system which, unlike other software clustering tools, uses search techniques to perform clustering. Bunch produces a subsystem decomposition by partitioning a graph of the entities (e.g., classes) and relations (e.g., function calls) in the source code. Bunch uses a fitness function to evaluate the quality of graph partitions and uses search algorithms to find a satisfactory solution. This paper presents a case study to demonstrate how Bunch can be used to create views of the structure of significant software systems. This paper also outlines research to evaluate the software clustering results produced by Bunch.
GRASP and path relinking for 2-layer straight line crossing minimization
- INFORMS Journal on Computing
, 1999
"... ABSTRACT — In this paper, we develop a greedy randomized adaptive search procedure (GRASP) for the problem of minimizing straight-line crossings in a 2-layer graph. The procedure is fast and is particularly appealing when dealing with low-density graphs. When a modest increase in computational time ..."
Abstract
-
Cited by 100 (19 self)
- Add to MetaCart
(Show Context)
ABSTRACT — In this paper, we develop a greedy randomized adaptive search procedure (GRASP) for the problem of minimizing straight-line crossings in a 2-layer graph. The procedure is fast and is particularly appealing when dealing with low-density graphs. When a modest increase in computational time is allowed, the procedure may be coupled with a path relinking strategy to search for improved outcomes. Although the principles of path relinking have appeared in the tabu search literature, this search strategy has not been fully implemented and tested. We perform extensive computational experiments with more than 3,000 graph instances to first study the effect of changes in critical search parameters and then to compare the efficiency of alternative solution procedures. Our results indicate that graph density is a major influential factor on the performance of a solution procedure. Laguna and Martí / 2 The problem of minimizing straight-line crossings in layered graphs has been the subject of study for at least 17 years, beginning with the Relative Degree Algorithm introduced by Carpano [2]. The problem consists of aligning the two shores V1 and V2 of a bipartite graph G = (V1, V2, E) on two parallel straight lines (layers) such that the number of crossing between the edges in E is minimized
MLC++: a machine learning library in C++
- IN TOOLS WITH ARTIFICIAL INTELLIGENCE
, 1994
"... We present MLC++, a library of C++ classes and tools for supervised Machine Learning. While MLC++ provides general learning algorithms that can be used by end users, the main objective is to provide researchers and experts with a wide variety of tools that can accelerate algorithm development, incre ..."
Abstract
-
Cited by 99 (11 self)
- Add to MetaCart
We present MLC++, a library of C++ classes and tools for supervised Machine Learning. While MLC++ provides general learning algorithms that can be used by end users, the main objective is to provide researchers and experts with a wide variety of tools that can accelerate algorithm development, increase software reliability, provide comparison tools, and display information visually. More than just a collection of existing algorithms, MLC++ is an attempt to extract commonalities of algorithms and decompose them for a unified view that is simple, coherent, and extensible. In this paper we discuss the problems MLC++ aims to solve, the design of MLC++, and the current functionality.
Graph Layout through the VCG Tool
, 1994
"... The VCG tool allows the visualization of graphs that occur typically as data structures in programs. We describe the functionality of the VCG tool, its layout algorithm and its heuristics. Our main emphasis in the selection of methods is to achieve a very good performance for the layout of large gra ..."
Abstract
-
Cited by 60 (0 self)
- Add to MetaCart
The VCG tool allows the visualization of graphs that occur typically as data structures in programs. We describe the functionality of the VCG tool, its layout algorithm and its heuristics. Our main emphasis in the selection of methods is to achieve a very good performance for the layout of large graphs. The tool supports the partitioning of edges and nodes into edge classes and nested subgraphs, the folding of regions, and the management of priorities of edges. The algorithm produces good drawings and runs reasonably fast even on very large graphs.
Ciao: A Graphical Navigator for Software and Document Repositories
- In International Conference on Software Maintenance
, 1995
"... Programmers frequently have to retrieve and link information from various software documents to accomplish a maintenance task. Ciao is a graph-based navigator that helps programmers query and browse structural connections embedded in different software and document repositories. A repository consist ..."
Abstract
-
Cited by 60 (11 self)
- Add to MetaCart
(Show Context)
Programmers frequently have to retrieve and link information from various software documents to accomplish a maintenance task. Ciao is a graph-based navigator that helps programmers query and browse structural connections embedded in different software and document repositories. A repository consists of a collection of source documents with an associated database that describes their structure. Ciao supports repositories organized in an architecture style called Aero, which exploits the duality between a class of entity-relationship (ER) databases and directed attributed graphs (DAG). Database queries and graph analysis operators in Aero are plug-compatible because they all take an ER database and produce yet another ER database by default. Various presentation filters generate graph views, source views, and relational views from any compatible ER database. The architecture promotes the construction of successively more complex operators using a notion of virtual database pipelines. Ci...