Kiarash Mahdavi
King's College London
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Kiarash Mahdavi.
genetic and evolutionary computation conference | 2005
Mark Harman; Stephen Swift; Kiarash Mahdavi
Two of the attractions of search-based software engineering (SBSE) derive from the nature of the fitness functions used to guide the search. These have proved to be highly robust (for a variety of different search algorithms) and have yielded insight into the nature of the search space itself, shedding light upon the software engineering problem in hand.This paper aims to exploit these two benefits of SBSE in the context of search based module clustering. The paper presents empirical results which compare the robustness of two fitness functions used for software module clustering: one (MQ) used exclusively for module clustering. The other is EVM, a clustering fitness function previously applied to time series and gene expression data.The results show that both metrics are relatively robust in the presence of noise, with EVM being the more robust of the two. The results may also yield some interesting insights into the nature of software graphs.
international conference on software maintenance | 2006
Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi
One approach to supporting program comprehension involves binding concepts to source code. Previously proposed approaches to concept binding have enforced non-overlapping boundaries. However, real-world programs may contain overlapping concepts. This paper presents techniques to allow boundary overlap in the binding of concepts to source code. In order to allow boundaries to overlap, the concept binding problem is reformulated as a search problem. It is shown that the search space of overlapping concept bindings is exponentially large, indicating the suitability of sampling-based search algorithms. Hill climbing and genetic algorithms are introduced for sampling the space. The paper reports on experiments that apply these algorithms to 21 COBOL II programs taken from the commercial financial services sector. The results show that the genetic algorithm produces significantly better solutions than both the hill climber and random search
automated software engineering | 2008
David W. Binkley; Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi; Joachim Wegener
A dependence anti pattern is a dependence structure that may indicate potential problems for on-going software maintenance and evolution. Dependence anti patterns are not structures that must always be avoided. Rather, they denote warnings that should be investigated. This paper defines a set of dependence anti patterns and presents a series of case studies that show how these patterns can be identified using techniques for dependence analysis and visualization. The paper reports the results of this analysis on six real world programs, two of which are open source and four of which are part of production code in use with Daimler.
genetic and evolutionary computation conference | 2003
Kiarash Mahdavi; Mark Harman; Robert M. Hierons
It is generally believed that good modularization of software leads to systems which are easier to design, develop, test, maintain and evolve [1].
australian software engineering conference | 2008
David W. Binkley; Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi
Programs express domain-level concepts in their source code. It might be expected that such concepts would have a degree of semantic cohesion. This cohesion ought to manifest itself in the dependence between statements all of which contribute to the computation of the same concept. This paper addresses a set of research questions that capture this informal observation. It presents the results of experiments on 10 programs that explore the relationship between domain-level concepts and dependence in source code. The results show that code associated with concepts has a greater degree of coherence, with tighter dependence. This finding has positive implications for the analysis of concepts as it provides an approach to decompose a program into smaller executable units, each of which captures the behaviour of the program with respect to a domain-level concept.
working conference on reverse engineering | 2006
David W. Binkley; Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi
An executable concept slice extracts from a program an executable subprogram that captures the semantics of a specified high-level concept from the program. Executable concept slicing combines the executability of program slicing, with the expressive domain level criteria of concept assignment. This paper presents results from an investigation of executable concept slice size to assess the effectiveness of executable concept slicing. The results show that the coherence of concept-based slicing criteria allows them to produce smaller executable concept slices than arbitrary criteria, providing evidence for the applicability of executable concept slicing
source code analysis and manipulation | 2008
David W. Binkley; Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi
Key statement analysis extracts from a program, statements that form the core of the programpsilas computation. A good set of key statements is small but has a large impact. Key statements form a useful starting point for understanding and manipulating a program. An empirical investigation of three kinds of key statements is presented. The three are based on Bieman and Ottpsilas principal variables. To be effective, the key statements must have high impact and form a small, highly cohesive unit. Using a minor improvement of metrics for measuring impact and cohesion, key statements are shown to capture about 75% of the semantic effect of the function from which they are drawn. At the same time, they have cohesion about 20 percentage points higher than the corresponding function. A statistical analysis of the differences shows that key statements have higher average impact and higher average cohesion (p<0.001).
international conference on software maintenance | 2003
Kiarash Mahdavi; Mark Harman; Robert M. Hierons
Genetic Programming and Evolvable Machines | 2002
Kiarash Mahdavi; Mark Harman
Archive | 2006
Nicolas Gold; Mark Harman; Zheng Li; Kiarash Mahdavi