Vassilios Tzerpos
York University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Vassilios Tzerpos.
workshop on program comprehension | 2004
Zhihua Wen; Vassilios Tzerpos
Selecting an appropriate software clustering algorithm that can help the process of understanding a large software system is a challenging issue. The effectiveness of a particular algorithm may be influenced by a number of different factors, such as the types of decompositions produced, or the way clusters are named. In this paper, we introduce an effectiveness measure for software clustering algorithms based on Mojo distance, and describe an algorithm that calculates its value. We also present experiments that demonstrate its improved performance over previous measures, and show how it can be used to assess the effectiveness of software clustering algorithms.
conference on software maintenance and reengineering | 2005
Chenchen Xiao; Vassilios Tzerpos
The reverse engineering literature contains many software clustering approaches that attempt to cluster large software systems based on the static dependencies between software artifacts. However, the usefulness of clustering based on dynamic dependencies has not been investigated. It is possible that dynamic clusterings can provide a fresh outlook on the structure of a large software system. In this paper, we present an approach for the evaluation of dynamic clusterings. We apply this approach to a large open source software system, and present experimental results that suggest that dynamic clusterings have considerable merit.
workshop on program comprehension | 2003
Zhihua Wen; Vassilios Tzerpos
Effective comparison of different decompositions of a software system is integral for the evaluation of software clustering algorithms. One of the approaches that has been developed to tackle this issue is the MoJo distance measure. The original algorithm for the computation of MoJo distance was a heuristic one that only approximated the exact value. In this paper we introduce an algorithm that calculates the exact distance in polynomial time. We also present experiments that showcase that the new algorithm calculates MoJo distance more accurately and efficiently than before.
working conference on reverse engineering | 2003
Periklis Andritsos; Vassilios Tzerpos
The majority of the algorithms in the software clusteringliterature utilize structural information in order to decomposelarge software systems. Other approaches, such as usingfile names or ownership information, have also demonstratedmerit. However, there is no intuitive way to combine informationobtained from these two different types of techniques.In this paper, we present an approach that combines structuraland non-structural information in an integrated fashion.LIMBO is a scalable hierarchical clustering algorithm basedon the minimization of information loss when clustering asoftware system.We apply LIMBO to two large software systems in a numberof experiments. The results indicate that this approachproduces valid and useful clusterings of large software systems.LIMBO can also be used to evaluate the usefulnessof various types of non-structural information to the softwareclustering process.
Advances in Software Engineering | 2012
Mark Shtern; Vassilios Tzerpos
The size and complexity of industrial strength software systems are constantly increasing. This means that the task of managing a large software project is becoming even more challenging, especially in light of high turnover of experienced personnel. Software clustering approaches can help with the task of understanding large, complex software systems by automatically decomposing them into smaller, easier-to-manage subsystems. The main objective of this paper is to identify important research directions in the area of software clustering that require further attention in order to develop more effective and efficient clustering methodologies for software engineering. To that end, we first present the state of the art in software clustering research. We discuss the clustering methods that have received the most attention from the research community and outline their strengths and weaknesses. Our paper describes each phase of a clustering algorithm separately. We also present the most important approaches for evaluating the effectiveness of software clustering.
Information & Software Technology | 2007
Bill Andreopoulos; Aijun An; Vassilios Tzerpos; Xiaogang Wang
Software clustering algorithms presented in the literature rarely incorporate in the clustering process dynamic information, such as the number of function invocations during runtime. Moreover, the structure of a software system is often multi-layered, while existing clustering algorithms often create flat system decompositions. This paper presents a software clustering algorithm called MULICsoft that incorporates in the clustering process both static and dynamic information. MULICsoft produces layered clusters with the core elements of each cluster assigned to the top layer. We present experimental results of applying MULICsoft to a large open-source system. Comparison with existing software clustering algorithms indicates that MULICsoft is able to produce decompositions that are close to those created by system experts.
software engineering for adaptive and self managing systems | 2012
Cornel Barna; Mark Shtern; Michael Smit; Vassilios Tzerpos; Marin Litoiu
Denial of Service (DoS) attacks overwhelm online services, preventing legitimate users from accessing a service, often with impact on revenue or consumer trust. Approaches exist to filter network-level attacks, but application level attacks are harder to detect at the firewall. Filtering at this level can be computationally expensive and difficult to scale, while still producing false positives that block legitimate users. This paper presents a model-based adaptive architecture and algorithm for detecting DoS attacks at the web application level and mitigating them. Using a performance model to predict the impact of arriving requests, a decision engine adaptively generates rules for filtering traffic and sending suspicious traffic for further review, which may ultimately result in dropping the request or presenting the end user with a CAPTCHA to verify they are a legitimate user. Experiments performed on a scalable implementation demonstrate effective mitigation of attacks launched using a real-world DoS attack tool.
workshop on program comprehension | 2005
Zhihua Wen; Vassilios Tzerpos
The detection of omnipresent objects can be an important aid to the process of understanding a large software system. As a result, various detection techniques have been presented in the literature. However, these techniques do not take the subsystem structure into account when deciding whether an object is omnipresent or not. In this paper, we present a new set of detection methods for omnipresent objects that maintain that an object needs to be connected to a large number of subsystems before it is deemed omnipresent. We compare this novel approach to existing ones. We also introduce a framework that can improve the effectiveness of existing software clustering algorithms by combining them with an omnipresent object detection method. Experiments with two large software systems demonstrate the usefulness of this framework.
international conference on software maintenance | 2004
Zhihua Wen; Vassilios Tzerpos
One of the central questions that a similarity measure for software decompositions has to address is whether to consider discrepancies in terms of the nodes of a particular decomposition, or assess similarity based on differences in clustering the edges of the systems dependency graph. We argue that considering nodes or edges in isolation is too one-sided. We outline shortcomings of previous approaches, and introduce the first dissimilarity measure that takes both nodes and edges into account. We also present experiments on real and synthetic data sets that illustrate the differences between various measures.
working conference on reverse engineering | 2005
Bill Andreopoulos; Aijun An; Vassilios Tzerpos; Xiaogang Wang
Software clustering algorithms presented in the literature rarely incorporate in the clustering process dynamic information, such as the number of function invocations during runtime. Moreover, the structure of a software system is often multi-layered, while existing clustering algorithms often create flat system decompositions. This paper presents a software clustering algorithm called MULICsoft that incorporates in the clustering process both static and dynamic information. MULICsoft produces layered clusters with the core elements of each cluster assigned to the top layer. We present experimental results of applying MULICsoft to a large open-source system. Comparison with existing software clustering algorithms indicates that MULICsoft is able to produce decompositions that are close to those created by system experts.