VLDB 2026 Research / reviewers in the wild / expert
Spiros Mancoridis
dblp:m/SpirosMancoridis
· DBLP profile ↗
34ranked-venue papers
4as first author
0since 2021 · last 2017
0000-0001-6354-4281ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 25 · 3 first-authorArtificial intelligence and machine learning · 9Security and privacy · 1Human-computer interaction and ubiquitous computing · 1 · 1 first-author
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
3 papers |
Debugging and program repair · 60% Services computing and microservices · 20% Software maintenance and evolution · 20% |
Topics — the 5 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Debugging and program repair
fault localization |
0.1 | 1 | 2011 | Diagnosis of software failures using computational geometry · ASE 2011 |
Debugging and program repair
root cause analysis |
0.1 | 1 | 2011 | Diagnosis of software failures using computational geometry · ASE 2011 |
Services computing and microservices › service composition
service mashup |
0.1 | 1 | 2008 | A Case Study on the Automatic Composition of Network Application Mashups · ASE 2008 |
Software maintenance and evolution › software modularization
software clustering |
0.1 | 1 | 2006 | On the Automatic Modularization of Software Systems Using the Bunch Tool · IEEE Trans. Software Eng. 2006 |
Software maintenance and evolution
software modularization |
0.0 | 1 | 2006 | On the Automatic Modularization of Software Systems Using the Bunch Tool · IEEE Trans. Software Eng. 2006 |
Methods — techniques the papers use, named apart from their topics
computational geometry · 0.1source code generation · 0.1feature composition · 0.1search-based clustering · 0.1fitness function · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Source Code Authorship Attribution Using Long Short-Term Memory Based Networks
Bander Alsulami, Edwin Dauber, Richard E. Harang, Spiros Mancoridis, Rachel Greenstadt |
ESORICS (1) | 4 |
| 2015 | System Call-Based Detection of Malicious ProcessesabstractSystem call analysis is a behavioral malware detection technique that is popular due to its promising detection results and ease of implementation. This study describes a system that uses system call analysis to detect malware that evade traditional defenses. The system monitors executing processes to identify compromised hosts in production environments. Experimental results compare the effectiveness of multiple feature extraction strategies and detectors based on their detection accuracy at low false positive rates. Logistic regression and support vector machines consistently outperform log-likelihood ratio and signature detectors as processing and detection methods. A feature selection study indicates that a relatively small set of system call 3-grams provide detection accuracy comparable to that of more complex models. A case study indicates that the detection system performs well against a variety of malware samples, benign workloads, and host configurations. Raymond Canzanese, Spiros Mancoridis, Moshe Kam |
QRS | 2 |
| 2011 | On the maintenance of UI-integrated mashup applicationsabstractThis paper describes the maintenance of long-lived mashup applications that are integrated at the user interface (UI) layer. It presents techniques that help mashup developers to maintain applications by identifying when and how the original applications' UIs change. It describes a novel mashup editing environment that can be used to create, share, and edit mashups. This paper also presents an experiment that demonstrates our approach's ability to track UI changes as an application evolves and a demonstration of the effort expanded by developers to maintain mashups as the applications used by the mashups evolve. Maxim Shevertalov, Spiros Mancoridis |
ICSM | 2 |
| 2011 | Diagnosis of software failures using computational geometryabstractComplex software systems have become commonplace in modern organizations and are considered critical to their daily operations. They are expected to run on a diverse set of platforms while interoperating with a wide variety of other applications. Although there have been advances in the discipline of software engineering, software faults, and malicious attacks still regularly cause system downtime [1]. Downtime of critical applications can create additional work, cause delays, and lead to financial loss [2]. This paper presents a computational geometry technique to tackle the problem of timely failure diagnosis during the execution of a software application. Our approach to failure diagnosis involves collecting a set of software metrics and building a geometric enclosures corresponding to known classes of faults. The geometric enclosures are then used to partition the state space defined by the metrics. Edward Stehle, Kevin Lynch, Maxim Shevertalov, Chris Rorres, Spiros Mancoridis |
ASE | 5 |
| 2009 | thr2csp: Toward Transforming Threads into Communicating Sequential ProcessesabstractAs multicore and heterogeneous multiprocessor platforms replace uniprocessor systems, software programs must be designed with a greater emphasis on concurrency. Threading has become the dominant paradigm of concurrent computation in the most popular programming languages. Large threaded programs are known to be difficult to implement correctly, comprehend, and maintain, while concurrent programs written in process algebraic paradigms of concurrency, such as communicating sequential processes, are known to be easier to analyze. This paper presents our initial work on reverse engineering threaded source code and transforming the code into functionally-equivalent message-passing code. The paper also explores future work needed to convert the message-passing code into communicating sequential processes. Robert Charles Lange, Spiros Mancoridis |
SCAM | 2 |
| 2008 | On evaluating the efficiency of software feature development using algebraic manifoldsabstractManagers are often unable to explain objectively why or when effort was misplaced during the development process. In this paper, we present a formal technique to depict the expended effort during the life-cycle of a software feature using feature development manifolds (FDMs). Using the FDMs we can compute the preferred development path for a given feature. This development path includes the versions of a software feature that contributed to the final version of the feature in a positive way. The preferred development path excludes versions of the software feature that should have been skipped. Once the preferred development path is computed the amount of wasted effort can be quantified using the metric that we have developed. We demonstrate the effectiveness of our approach to compute wasted software feature development by applying our technique to two large open source software systems, Gaim and Firefox. Jay Kothari, Dmitriy Bespalov, Spiros Mancoridis, Ali Shokoufandeh |
ICSM | 3 |
| 2008 | Re-Engineering a Reverse Engineering Portal to a Distributed SOAabstractREportal is an existing Web-based reverse engineering portal Web site that provides access to a suite of reverse engineering and program comprehension tools via a Web browser. This abstraction was intended to allow ease of system maintenance by adding and upgrading tools without involving the end user. However, the software tools and server technologies used became deprecated so quickly that it was not possible to take full advantage of the architectural vision. Using a service-oriented architecture, we abstract the process flow of the system from the underlying tools, enabling a wizard-style method of adding services to the system, and facilitating more "hands-off" maintenance. In this paper, we describe the challenges and benefits of this architectural migration. William M. Mongan, Maxim Shevertalov, Spiros Mancoridis |
ICPC | 3 |
| 2008 | A Case Study on the Automatic Composition of Network Application MashupsabstractMaxMash is a tool that can compose select features of networked application and generate the source code for application mashups that can integrate those features. This paper presents a case study that demonstrates how MaxMash is used to combine the Jabber chatting protocol and the Microsoft Maps Web application. The composed mashup is able to answer direction queries via a chat client. Maxim Shevertalov, Spiros Mancoridis |
ASE | 2 |
| 2008 | On the evaluation of the Bunch search-based software modularization algorithm
Brian S. Mitchell, Spiros Mancoridis |
Soft Comput. | 2 |
| 2007 | A genetic algorithm for solving the binning problem in networked applications detectionabstractNetwork administrators need a tool that detects the kind of applications running on their networks, in order to allocate resources and enforce security policies. Previous work shows that applications can be detected by analyzing packet size distributions. Detection by packet size distribution is more efficient and accurate if the distribution is binned. An unbinned packet size distribution considers the occurrences of each packet size individually. In contrast, a binned packet size distribution considers the occurrences of packets within packet size ranges. This paper reviews some of the common methods for binning distributions and presents an improved approach to binning using a genetic algorithms to assist the detection of network applications. Maxim Shevertalov, Edward Stehle, Spiros Mancoridis |
IEEE Congress on Evolutionary Computation | 3 |
| 2007 | Using code metric histograms and genetic algorithms to perform author identification for software forensicsabstractWe have developed a technique to characterize software developers- styles using a set of source code metrics. This style fingerprint can be used to identify the likely author of a piece of code from a pool of candidates. Author identification has applications in criminal justice, corporate litigation, and plagiarism detection. Furthermore, we can identify candidate developers who share similar styles, making our technique useful for software maintenance as well. Our method involves measuring the differences in histogram distributions for code metrics.Identifying a combination of metrics that is effective in distinguishing developer styles is key to the utility of the technique. Our case study involves 18 metrics, and the time involved in exhaustive searching of the problem space prevented us from adding additional metrics. Using a genetic algorithm to perform the search, we were able to find good metric combinations in hours as opposed to weeks. The genetic algorithm has enabled us to begin adding new metrics to our catalog of available metrics. This paper documents the results of our experiments in author identification for software forensics and outlines future directions of research to improve the utility of our method. Robert Charles Lange, Spiros Mancoridis |
GECCO | 2 |
| 2007 | Reducing Program Comprehension Effort in Evolving Software by Recognizing Feature Implementation ConvergenceabstractThe implementations of software features evolve as an application matures. We define a measure of feature implementation overlap that determines how similar features are in their execution by examining their call graphs. We consider how this measure changes over time, and evaluate the hypothesis that over time and subsequent versions of a software application, the implementations of semantically similar features converge. As the features of an application converge in their implementation, we are able to more effectively determine groups of semantically similar features and to reduce the cost of program comprehension by selecting few key features that give an overview of the system. We present a case study analyzing the features of the Jext, Firefox, and Gaim software systems to support our hypothesis. Jay Kothari, Trip Denton, Ali Shokoufandeh, Spiros Mancoridis |
ICPC | 4 |
| 2007 | Guest Editors' Introduction to the Special Section from the International Conference on Software Maintenance and EvolutionabstractSOFTWARE maintenance and evolution are relevant to users, engineers, and researchers who come into contact with software beyond Version 1. The International Conference on Software Maintenance and Evolution (ICSM) is the premiere forum for software maintenance researchers and practitioners to examine, discuss, and exchange ideas regarding the key issues facing the software maintenance community. During the conference, participants from academia, government, and industry share ideas and experiences solving critical software maintenance problems. ICSM 2006 was held in Philadelphia on 24-27 September 2006 in cooperation with several colocated workshops. These included the Eighth IEEE International Symposium on Web Site Evolution (WSE), the Sixth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), the Second International IEEE Workshop on Software Evolvability, and the Second International Workshop on Predictive Models of Modern Industrial Software Engineering. ICSM 2006’s technical program was anchored by 45 papers selected from 147 submissions. The program also included keynote addresses from three distinguished speakers: Patrick Lardieri, David Notkin, and Richard Stallman. Of the 45 papers, seven were invited to this special issue with five passing the rigorous TSE review process. These five selected papers include two that discuss frameworks and three that present new techniques. The frameworks support the creation of language-independent program analyses and evolvable test suites. Two of the techniques consider source-code reengineering and the final one the challenging problem of making live updates to a software system while it is running. The first of the two framework papers, “An Extensible Metamodel for Program Analysis” by D. Strein, R. Lincke, J. Lundberg, and W. Lowe, describes a language-independent framework for building new analyses. The resulting architecture supports the construction of specific analyses (e.g., refactorings) and is easily extensible through the addition of new front ends to support new languages. This flexibility and the use of loose coupling between components of the existing framework support the easy integration of new components. The paper uses the implementation of the tools VIZZANALYZER and XDEVELOP as a proof of concept. Looking forward, further work includes empirical study (e.g., considering running time and memory consumption) and the incorporation of dynamic analysis into the framework (e.g., to support debuggers and profilers). This paper was published in the September 2007 issue of TSE; however, the abstract of this paper is included in this special section. The paper can be found in the Computer Society Digital Library at http://computer.org/tse/ archives.htm. In the second framework paper, “On the Detection of Test Smells: A Metrics-Based Approach for General Fixture and Eager Test” by B. Van Rompaey, B. Du Bois, S. Demeyer, and M. Rieger, a framework for evaluating the evolvability of white box tests suites alongside the program is presented. The goal of this approach is to avoid the (often significant) cost incurred when test cases must be coevolved with the program. The framework accomplishes this by describing a collection of test smells. Akin to code smells, test smells allow the concrete expression of what a good evolvable test is by exploiting the principles that underlie white box testing. The paper proposes a formal description of test smells by means of metric predictors, empirically evaluated for two example test smells. Looking forward, future work will consider the interplay between test smells and frequently changing test cases. Understanding how test smells emerge and grow should help in proactively detecting current and future smells. The third and fourth papers address reengineering, a problem into which significant software evolution energy is invested. The first of these two papers, “API-Evolution Support with Diff-CatchUp” by Z. Xing and E. Stroulia, addresses the API evolution problem. In short, reusable components, and thus their APIs, must evolve in response to client needs for improved functionality, quality, and generality. Applications using an API which evolve independently can thus “break.” To tackle the API-evolution problem, the paper presents a technique and a tool that automatically recognizes API changes in a reused component and proposes plausible fixes based on working examples of the framework code base. Looking forward, planned extensions to the work IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 33, NO. 12, DECEMBER 2007 797 Dave W. Binkley, Rainer Koschke, Spiros Mancoridis |
IEEE Trans. Software Eng. | 3 |
| 2006 | Studying the Evolution of Software Systems Using Change ClustersabstractIn this paper, we present an approach that examines the evolution of code stored in source control repositories. The technique identifies change clusters, which can help managers to classify different code change activities as either software maintenance or a new development. Furthermore, identifying the variations in change clusters over time exposes trends in the development of a software system. We present a case study that uses a sequence of change clusters to track the evolution of the PostgreSQL software project. Our case study demonstrates that our technique reveals interesting patterns about the progress of code development within each release of PostgreSQL. We show that the increase in the number of clusters not only identifies the areas where development has occurred, but also reflects the amount of structural change in code. We also compare how the change clusters vary over time in order to make generalizations about the focus of development Jay Kothari, Ali Shokoufandeh, Spiros Mancoridis, Ahmed E. Hassan |
ICPC | 3 |
| 2006 | On the Automatic Modularization of Software Systems Using the Bunch ToolabstractSince 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. Brian S. Mitchell, Spiros Mancoridis |
IEEE Trans. Software Eng. | 2 |
| 2005 | GA-based parameter tuning for multi-agent systemsabstractNo abstract available. Joseph Haas, Maxim Peysakhov, Spiros Mancoridis |
GECCO | 3 |
| 2005 | Scenariographer: A Tool for Reverse Engineering Class Usage Scenarios from Method Invocation SequencesabstractTypical documentation for object-oriented programs includes descriptions of the parameters and return types of each method in a class, but little or no information on valid method invocation sequences. Knowing the sequence with which methods of a class can be invoked is useful information especially for software engineers (e.g., developers, testers) who are actively involved in the maintenance of large software systems. This paper describes a new approach and a tool for generating class usage scenarios (i.e., how a class is used by other classes) from method invocations, which are collected during the execution of the software. Our approach is algorithmic and employs the notion of canonical sets to categorize method sequences into groups of similar sequences, where each group represents a usage scenario for a given class. Maher Salah, Trip Denton, Spiros Mancoridis, Ali Shokoufandeh, Filippos I. Vokolos |
ICSM | 3 |
| 2005 | Towards Employing Use-Cases and Dynamic Analysis to Comprehend MozillaabstractThis paper presents an approach for comprehending large software systems using views that are created by subjecting the software systems to dynamic analysis under various use-case scenarios. Two sets of views are built from the runtime data: (1) graphs that capture the parts of the software's architecture that pertain to the use-cases; and (2) metrics that measure the intricacy of the software and the similarity between the software's use-cases. The Mozilla Web browser was chosen as the subject software system in our case study due to its size, intricacy, and ability to expose the challenges of analyzing large systems. Maher Salah, Spiros Mancoridis, Giuliano Antoniol, Massimiliano Di Penta |
ICSM | 2 |
| 2005 | Spectral and meta-heuristic algorithms for software clustering
Ali Shokoufandeh, Spiros Mancoridis, Trip Denton, Matthew Maycock |
J. Syst. Softw. | 2 |
| 2004 | Using Interconnection Style Rules to Infer Software Architecture Relations
Brian S. Mitchell, Spiros Mancoridis, Martin Traverso |
GECCO (2) | 2 |
| 2004 | A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-InteractionsabstractThis work presents a hierarchy of dynamic views that is constructed using tools that analyze program execution traces. At the highest-level of abstraction are the feature-interaction and implementation views, which track the inter-feature dependencies as well as the classes that implement these features. At the middle-level is the class-interaction view, which is an abstract view of the object-interactions. The object-interaction view is the base view for all the views, and captures the low-level runtime interactions between objects. Two case studies are used to demonstrate the effectiveness of our work. Maher Salah, Spiros Mancoridis |
ICSM | 2 |
| 2003 | Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms
Brian S. Mitchell, Spiros Mancoridis |
GECCO | 2 |
| 2003 | Characterizing the 'Security Vulnerability Likelihood' of Software FunctionsabstractSoftware maintainers and auditors would benefit from a tool to help them focus their attention on functions that are likely to be the source of security vulnerabilities. However, the existence of such a tool is predicated on the ability to characterize a function's 'security vulnerability likelihood'. Our hypothesis is that functions near a source of input are most likely to contain security vulnerability. These functions should be a small percentage of the total number of functions in the system. To validate this hypothesis, we performed an experiment involving thirty one vulnerabilities in thirty open source systems. This paper describes the experiment, its outcome, and the tools used to conduct it. It also describes the FLF (front line functions) finder, which is a tool that was developed using knowledge gathered from the outcome of the experiment. This tool automates the detection of high-risk functions. To demonstrate the effectiveness of the FLF finder, three open source applications with known vulnerabilities were tested. In addition to this test, a case study was performed on the privilege separation code in the OpenSSH server daemon. Dan DaCosta, Christopher Dahn, Spiros Mancoridis, Vassilis Prevelakis |
ICSM | 3 |
| 2002 | Using Heuristic Search Techniques To Extract Design Abstractions From Source Code
Brian S. Mitchell, Spiros Mancoridis |
GECCO | 2 |
| 2002 | Search based reverse engineeringabstractIn this paper we describe a two step process for reverse engineering the software architecture of a system directly from its source code. The first step involves clustering the modules from the source code into abstract structures called subsystems. The second step involves reverse engineering the subsystem-level relations using a formal (and visual) architectural constraint language. We use search techniques to accomplish both of these steps, and have implemented a suite of integrated tools to support the reverse engineering process. Through a case study, we demonstrate how our tools can be used to extract the software architecture of an open-source software package from its source code without having any a priori knowledge about its design. Brian S. Mitchell, Spiros Mancoridis, Martin Traverso |
SEKE | 2 |
| 2002 | On the Automatic Recovery of Style-Specific Architectural Relations in Software Systems
Martin Traverso, Spiros Mancoridis |
Autom. Softw. Eng. | 2 |
| 2001 | Comparing the Decompositions Produced by Software Clustering Algorithms Using Similarity MeasurementsabstractDecomposing source code components and relations into subsystem clusters is an active area of research. Numerous clustering approaches have been proposed in the reverse engineering literature, each one using a different algorithm to identify subsystems. Since different clustering techniques may not produce identical results when applied to the same system, mechanisms that can measure the extent of these differences are needed. Some work to measure the similarity between decompositions has been done, but this work considers the assignment of source code components to clusters as the only criterion for similarity. We argue that better similarity measurements can be designed if the relations between the components are considered. The authors propose two similarity measurements that overcome certain problems in existing measurements. We also provide some suggestions on how to identify and deal with source code components that tend to contribute to poor similarity results. We conclude by presenting experimental results, and by highlighting some of the benefits of our similarity measurements. Brian S. Mitchell, Spiros Mancoridis |
ICSM | 2 |
| 2001 | Form: A Framework for Creating Views of Program ExecutionsabstractForm is a framework used to construct tools for analyzing the runtime behavior of standalone and distributed software systems. The architecture of Form is based on the event broadcast and pipe and filter styles. In the implementation of this architecture, execution profiles may be generated from standalone or distributed systems. The profile data is subsequently broadcast by Form to one or more views. Each view is a tool used to support program understanding or other software development activities. The authors describe the Form architecture and implementation, as well as a tool that was built using Form. This tool profiles Java-based distributed systems and generates UML sequence diagrams to describe their execution. We also present a case study that shows how this tool was used to extract sequence diagrams from a three-tiered EJB-based distributed application. Timothy S. Souder, Spiros Mancoridis, Maher Salah |
ICSM | 2 |
| 2001 | Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
Juan Gargiulo, Spiros Mancoridis |
SEKE | 2 |
| 2001 | An Architecture for Distributing the Computation of Software Clustering AlgorithmsabstractCollections of general purpose networked workstations offer processing capability that often rivals or exceeds supercomputers. Since networked workstations are readily available in most organizations, they provide an economic and scalable alternative to parallel machines. The authors discuss how individual nodes in a computer network can be used as a collection of connected processing elements to improve the performance of a software engineering tool that we developed. Our tool, called Bunch, automatically clusters the structure of software systems into a hierarchy of subsystems. Clustering helps developers understand complex systems by providing them with high-level abstract (clustered) views of the software structure. The algorithms used by Bunch are computationally intensive and, hence, we would like to improve our tool's performance in order to cluster very large systems. The paper describes how we designed and implemented a distributed version of Bunch, which is useful for clustering large systems. Brian S. Mitchell, Martin Traverso, Spiros Mancoridis |
WICSA | 3 |
| 1999 | Bunch: A Clustering Tool for the Recovery and Maintenance of Software System StructuresabstractSoftware systems are typically modified in order to extend or change their functionality, improve their performance, port them to different 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. The 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 efficiency, 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 simplified the task of extracting the subsystem structure of a medium size program, while exposing an interesting design flaw in the process. Spiros Mancoridis, Brian S. Mitchell, Yih-Farn Robin Chen, Emden R. Gansner |
ICSM | 1 |
| 1998 | ISF: A Visual Formalism for Specifying Interconnection Styles for Software DesignabstractWe have developed a framework for specifying high-level software designs. The core of the framework is a very simple visual notation. This notation enables designers to document designs as labelled rectangles and directed edges. In addition to the notation, our framework features a supporting formalism, called ISF (Interconnection Style Formalism). This formalism enables designers to customize the simple design notation by specifying the type of entities, relations, legal configurations of entities and relations, as well as scoping rules of the custom notation. In this paper we present the formal definition of ISF and use ISF to specify two custom design notations. We also describe how ISF specifications, using deductive database technology, are used to generate supporting tools for these custom notations. Spiros Mancoridis |
Int. J. Softw. Eng. Knowl. Eng. | 1 |
| 1996 | Recovering the Structure of Software Systems Using Tube Graph Interconnection ClusteringabstractAn important product of the software design phase is the specification of the software structure at various levels of detail. Without reliable design documentation, significant software systems become less accessible to software engineers because structural information is buried in the intricate implementation source code. Reverse engineering techniques aim at recovering the structure of software systems, from the source code and mental models of developers, in order to make these systems more understandable to those maintaining them. Many reverse engineering techniques rely on creating a decomposition hierarchy by recursively clustering related software components (e.g., variables, procedures, classes, modules) into composite components (e.g., subsystems). Component clustering is necessary for managing complexity, and therefore is an important step in the reverse engineering process. We argue that the clustering of interconnections is also necessary during reverse engineering, We propose an approach, based on a formalism called tube graphs, to specifying system structure that considers both composite software components and composite interconnections between these components. We present efficient algorithms for software interconnection clustering, which nicely complement existing software component clustering algorithms. Spiros Mancoridis, Richard C. Holt |
ICSM | 1 |
| 1993 | A "curriculum-cycle" environment for teaching programmingabstractThere are a number of programming languages and tools available to educators for teaching programming to un- dergraduate computer science students.Although efforts have been made to integrate these languages and tools into programming environments, these environments generally do not have all of the ingredients that would make them useful at all levels of a typical undergraduate curriculum.Current technology used in most undergraduate courses is suitable for teaching students how to code in a particular programming language.Software development tools for activities other than coding such as requirements analysis, design, maintenance, and so on, are not provided.In addition, most programming languages in current use cannot be used in both beginner and advanced courses.We describe a "curriculum-cycle" environment for teaching programming, called Object-Oriented Turing (OOT), and elaborate on the pedagogical experience of using 00T at all levels of our university's undergraduate curriculum. Spiros Mancoridis, Richard C. Holt, David A. Penny |
SIGCSE | 1 |