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.

function until he could find the method, this would be a ver y<br />

hard task that could take several days or even weeks of work.<br />

In [18], another approach to summ arize traces was<br />

designed using fan-in and fan-out metrics, which is completely<br />

different from the specialized filtering approach used in this<br />

work. In their approach, the functions are ranked considering<br />

their relative importance based on graph metrics which do not<br />

consider any semantic information of the respective function.<br />

The approach of program comprehension presented in this<br />

work guides the developer in a much more precise manner,<br />

because it is the developer itself that have the tacit knowledge<br />

of what he really needs and thus, he writes the proper filters<br />

considering this kn owledge. Consequently, this strategy<br />

improved dramatically the quality of the information available<br />

in the trace. However, it is important to note that our approach<br />

requires a more specialized preparation of the trace filtering.<br />

Although, the developer can reuse th e generic parts of our<br />

filtering framework, he stills needs to grasp a filtering solution<br />

that will provide a precise “fishing” of the desired functions.<br />

Some authors [19, 20] suggest the integrated use of static<br />

and dynamic views of the software system in program<br />

comprehension activities. The dynamic views are obtained by<br />

profiling the most used features in the system. Nonetheless,<br />

the primary goal is to obtain the system architecture to reduce<br />

the effort of comprehension of the system. In our approach, we<br />

have not focused on the most used features for comprehending<br />

the system in an overall manner. We have focused on a well<br />

chosen feature in order to prov ide direct information<br />

customized for the process o f program comprehension. This<br />

requires less effort to m ake further needed changes in the<br />

source code. Nonetheless, we could still improve our process<br />

of writing adequate filters and even o f browsing the resulted<br />

traces with static information. For in stance, the use of<br />

information retrieval techniques could also be in corporated<br />

[21, 22, 23], because we could see th at the function names<br />

used in kernel are very representative and similar to the<br />

developer terms in high-level communication.<br />

VI. FINAL REMARKS<br />

This paper has presented an innovative study in the program<br />

comprehension area because it u sed execution trace<br />

information to isolate desired functions in the Linux operating<br />

system kernel. Previous studies in this area did not handled OS<br />

kernels.<br />

Our findings have shown that despite the huge a mount of<br />

events that an instrumentation tool can generate, especially in<br />

the case of OS kernel which has to cope with much more kinds<br />

of different low-level events than a high-level application, the<br />

use of proper filtering mechanisms in the instrumentation tool<br />

can reduce dramatically the complexity of the execution trace<br />

information. This scenario reduces the developer effort during<br />

maintenance tasks when he needs to find specific functions in<br />

the source code. Future work includes reproducing the<br />

subjacent methodology designed in this work in a large scale<br />

experiment to produ ce stronger evidences on our findings.<br />

Also, introducing hybrid static techniques in a co hesive<br />

methodology is an important step.<br />

REFERENCES<br />

[1] M. Florian. Linux Kernel Statistics. [Online]. Available at:<br />

http://www.schoenitzer.de/lks/lks_en.html. A ccessed in 2011,<br />

December.<br />

[2] Kernel development statistics for 2.6.35. [Online]. Available at:<br />

http://lwn.net/Articles/395961/. Accessed in 2011, December.<br />

[3] B. Dit, M. Revelle, M. Gethers, D. Poshyvanyk. “Feature location in<br />

source code: a taxonomy and survey”. Journal of Software Maintenance<br />

and Evolution: Research and Practice. In press. Published online. 2011.<br />

[4] B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, R. Koschke,<br />

“A Systematic Survey of Program Comprehension Through Dynamic<br />

Analysis,” in IEEE Transactions on Software Engineering,Vol.35, 2009,<br />

pp. 684–702.<br />

[5] N. Wilde, M. Scully “Software Reconnaissance: mapping program<br />

features to code”. Software Maintenance: Research and Practice, vol. 7,<br />

n. 1, pp. 49-62, 1995.<br />

[6] The Linux Documentation Project. [Online]. Disponível: http://tldp.org/.<br />

Accessed in 2011, December.<br />

[7] I. T. Bowman, R. Holt, N. Brewster: Linux as a Case Study: Its<br />

Extracted Software Architecture. In Proc. of ICSE, pp. 555-563, 1999.<br />

[8] D. P. Bovet and M. Cesati, “Understanding The Linux Kernel,” 3 th ed.<br />

O’Reilly, 2005.<br />

[9] R. Love, “Linux Kernel Development Second Edition”, Pearson<br />

Education, 2th ed. 2005.<br />

[10] SystemTap. [Online]. Available at: http://sourceware.org/systemtap/.<br />

Accessed in 2011, December.<br />

[11] R. Matias, I. Becker, B. Leitão, P.R. Maciel “Measuring Software Aging<br />

Effects Through OS Kernel Instrumentation,” in IEEE Second<br />

International Workshop on Software Aging and Rejuvenation, San Jose,<br />

CA, 2010, pp. 1-6.<br />

[12] S. Rostedt, “Finding Origins of Latencies Using Ftrace,” in Proc. of<br />

the11th Real Time Linux Workshop, 2009.<br />

[13] Documentation Ftrace. [Online]. Available at: http://www.mjmwired.<br />

net/kernel/Documentation/trace/ftrace.txt. Accessado in 2011,<br />

November.<br />

[14] Operating System Family Share. November, 2011. [Online]. Available<br />

at: http://www.top500.org/charts/list/38/osfam<br />

[15] Intel® 64 and IA-32 Architectures Software Developer’s Manual,<br />

Volume 3A: System Programming Guide, March 2010.<br />

[16] H. Yan, D. Garlan, B. Schmerl, J. Aldrich, and R. Kazman. DiscoTect:<br />

A System for Discovering Architectures from Running <strong>Systems</strong>. In Proc.<br />

of ICSE, pp. 470-479, 2004.<br />

[17] L. Silva and K. Paixão and S. Amo and M. Maia, "On the Use<br />

of Execution Trace Alignment for Driving Perfective Changes”, In the<br />

15 th European Conference on Software Maintenance and Reengineering,<br />

pp. 221-230, 2011.<br />

[18] A. Hamou-Lhadj and T. Lethbridge, "Summarizing the Content of Large<br />

Traces to F acilitate the U nderstanding o f the Be haviour o f a<br />

Software System”, In <strong>Proceedings</strong> of the 14th IEEE International<br />

Conference on Program Comprehension, IEEE Computer Society, pp.<br />

181-190, 2006.<br />

[19] M. Mit and M. Ernst. Static and Dynamic Analysis: Synergy and<br />

Duality. In Proc. of ICSE, pp 24-27, 2003.<br />

[20] K. Sartipi, and N. Dezhkam. An Almalgamated Dynamic and Static<br />

Architecture Reconstruction Framework to Control Component<br />

Interactions. In Proc. of WCRE, pp 259-268, 2007.<br />

[21] S. K. Lukins, N. A. Kraft, and L. H. Etzkorn, “Bug localization using<br />

latent Dirichlet allocation,” Information and Software Technology,<br />

vol. 52, no. 9, pp. 972 – 990, 2010.<br />

[22] J. Maletic and A. Marcus, “Support for software m aintenance<br />

using latent semantic analysis,” in Proc. 4th Annual IASTED<br />

International C onference on Software Engineering and<br />

Applications (SEA’00), Las Vegas, 2000, pp. 250–255.<br />

[23] A. Marcus and J. Maletic, “Recovering documentation-to-sourcecode<br />

traceability links using latent semantic indexing,” in Proc. of<br />

the 25 th Intl. Conf. on Software Engineering, 2003, pp. 125 – 135.<br />

179

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

Saved successfully!

Ooh no, something went wrong!