27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

trategy, the results should support fairly reliable conclusion.<br />

4 Related Work<br />

Current researches in CIA have varied from relying on<br />

static information [13, 15, 6, 10] to dynamic information<br />

[7, 1] in working out the impact set. Our technique mainly<br />

focuses on static analysis of the program. Static CIA techniques<br />

take all possible behaviors and inputs into account,<br />

and they are often performed by analyzing the syntax and<br />

semantic dependence of the program [10]. The static analysis<br />

includes textual analysis, historical analysis and structural<br />

static analysis. Textual analysis is an approach which<br />

extracts some conceptual dependence (conceptual coupling)<br />

based on the analysis of the non-source code (comments).<br />

These coupling measures provide a new perspective to traditional<br />

structural coupling measures. Concept coupling<br />

is based on measuring the degree to which the identifiers<br />

and comments from each other [13, 5]. Historical analysis<br />

is performed by mining the information from multiple<br />

evolutionary versions in software historical repositories<br />

[16]. With this technique, some evolutionary dependencies<br />

between program entities that can not be distilled by<br />

traditional program analysis technique can be mined from<br />

these repositories. Evolutionary dependencies show that<br />

which entities are (historically) changed together in software<br />

repositories, these entities may need to change when<br />

one (some) of the entities are changed during future software<br />

evolution. CIA is then supported based on these evolutionary<br />

dependencies. Structural static dependencies between<br />

program entities are very crucial to CIA, i.e., if a<br />

program entity changes, other dependent entities might also<br />

have to change [15, 10]. This paper is proposed based on<br />

the structural static analysis to compute the impact set.<br />

5 Conclusion and Future Work<br />

This paper proposed a novel and effective CIA technique<br />

which is based on call graph mining. Compared with traditional<br />

call graph based CIA technique, our CIA approach<br />

is particularly suitable for tackling multiple changes which<br />

have interference among them, and computes a more precise<br />

impact set with relative small-size set. Though we have<br />

shown the effectiveness of our technique through a real empirical<br />

study, it can not indicate its generality for other real<br />

environment. And we will conduct experiments on other<br />

arbitrary programs to evaluate the generality of our technique.<br />

In addition, we would like to prioritize the entities in<br />

the impact set to better facilitate its practical use.<br />

References<br />

[1] T. Apiwattanapong, A. Orso, and M. J. Harrold. Efficient<br />

and precise dynamic impact analysis using execute after sequences.<br />

In <strong>Proceedings</strong> of the International Conference on<br />

Software Engineering, pages 432 – 441, 2005.<br />

[2] R. A. Baeza-Yates and B. Ribeiro-Neto. Modern Information<br />

Retrieval. Addison-Wesley Longman Publishing Co.,<br />

Inc., Boston, MA, USA, 1999.<br />

[3] S. Bohner and R. Arnold. Software Change Impact Analysis.<br />

IEEE Computer Society Press, Los Alamitos, CA,USA,<br />

1996.<br />

[4] M. Gethers and D. Poshyvanyk. Using relational topic models<br />

to capture coupling among classes in object-oriented<br />

software systems. In <strong>Proceedings</strong> of the 2010 IEEE International<br />

Conference on Software Maintenance, pages 1–10,<br />

2010.<br />

[5] H. Kagdi, M. Gethers, D. Poshyvanyk, and M.Collard.<br />

Blending conceptual and evolutionary couplings to support<br />

change impact analysis in source code. In <strong>Proceedings</strong> of the<br />

IEEE Working Conference on Reverse Engineering, pages<br />

119–128, 2010.<br />

[6] J. Law and G. Rothernel. Whole program path-based dynamic<br />

impact analysis. In <strong>Proceedings</strong> of the International<br />

Conference on Software Engineering, pages 308 – 318,<br />

2003.<br />

[7] O. V. Lhotak. Comparing call graphs. In Workshop on Program<br />

Analysis for Software Tools and Engineering, pages 37<br />

– 42, 2007.<br />

[8] B. Li, X. Sun, H. Leung, and S. Zhang. A survey<br />

of code-based change impact analysis techniques. Journal<br />

of Software Testing, Verification and Reliability, doi:<br />

10.1002/stvr.1475, <strong>2012</strong>.<br />

[9] A. Mithun and R. Brian. Practical change impact analysis<br />

based on static program slicing for industrial software systems.<br />

In <strong>Proceedings</strong> of the 33rd International Conference<br />

on Software Engineering, pages 746–755, 2011.<br />

[10] A. Orso, T. Apiwattanapong, J. Law, G. Rothermel, and<br />

M. J. Harrold. An empirical comparison of dynamic impact<br />

analysis algorithms. In <strong>Proceedings</strong> of the International<br />

Conference on Software Engineering, pages 491 – 500,<br />

2004.<br />

[11] A. Orso and M. J. Harrold. Leveraging field data for impact<br />

analysis and regression testing. In <strong>Proceedings</strong> of the ACM<br />

SIGSOFT Symposium on Foundations of Software Engineering,<br />

pages 128–137, 2003.<br />

[12] D. Poshyvanyk, A. Marcus, R. Ferenc, and T. Gyimothy.<br />

Using information retrieval based coupling measures for impact<br />

analysis. Empirical Software Engineering, 14(1):5 – 32,<br />

2009.<br />

[13] X. Sun, B. Li, S. Zhang, C. Tao, X. Chen, and W. Wen.<br />

Using lattice of class and method dependence for change<br />

impact analysis of object oriented programs. In <strong>Proceedings</strong><br />

of the Symposium on Applied Computing, pages 1444–1449,<br />

2011.<br />

[14] T. Zimmermann, A. Zeller, P. Weissgerber, and S. Diehl.<br />

Mining version histories to guide software changes. IEEE<br />

Transactions on Software Engineering, 31(6):429 – 445,<br />

2005.<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!