Abstract
The computation of program slices on Web applications may be useful during debugging, when the amount of code to be inspected can be reduced, and during understanding, since the search for a given functionality can be better focused. The system dependence graph is an appropriate data structure for slice computation, in that it explicitly represents all dependences that have to be taken into account in slice determination.
Construction of the system dependence graph for Web applications is complicated by the presence of dynamically generated code. In fact, a Web application builds the HTML code to be transmitted to the browser at run time. Knowledge of such code is essential for slicing. In this paper an algorithm for the static approximation of the dynamically generated HTML code is proposed. The concatenations of constant strings and variables are propagated according to special purpose flow equations, allowing the estimation of the generated code and the refinement of the system dependence graph.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Aho, A.V., Sethi, R., and Ullman, J.D. 1985. Compilers. Principles, Techniques, and Tools, Reading, MA: Addison-Wesley Publishing Company.
Binkley, D. and Gallagher, K.B. 1996. Program slicing. Advances in Computers, 43:1–50.
Binkley, D. and Harman, M. 2003. A large-scale empirical study of forward and backward static slice size and context sensitivity. In Proc. of the International Conference on Software Maintenance (ICSM), Los Alamitos, CA, USA: IEEE Computer Society, pp. 44–53.
Cimitile, A., Lucia, A.D., and Munro, M. 1995. Identifying reusable functions using specification driven program slicing: a case study. In Proceedings of the International Conference on Software Maintenance. Opio(Nice), pp. 124–133.
Cordy, J., Dean, T., Malton, A., and Schneider, K. 2002. Source transformation in software engineering using the txl transformation system. Information and Software Technology, 44(13):827–837.
Cordy, J. and De Lucia, A. (editors) 2002. In Proceedings of SCAM, 2nd International Workshop on Source Code Analysis and Manipulation. Montreal: IEEE Computer Society.
Gallagher, K. and Lyle, J. 1991. Using Program slicing in software maintenance, IEEE Transactions on Software Engineering, 17(8):751–761.
Gallagher, K.B. 1996. Visual impact analysis. In Proceedings of the International Conference on Software Maintenance, Monterey, pp. 52–58.
Gupta, R., Harrold, M., and Soffa, M. 1996. Program slicing-based regression testing techniques. Journal of Software Testing, Verification, and Reliability, 6(2):83–112.
Harman, M. and Danicic, S. 1995. Using program slicing to simplify testing. Software Testing, Verification and Reliability, 5:143–162.
Horwitz, S., Reps, T., and Binkley, D. 1990. Interprocedural slicing using dependence graphs. ACM Transaction on Programming Languages and Systems, 26–61.
Kamkar, M., Fritzson, P., and Shahmehri, N. 1993. Interprocedural dynamic slicing applied to interprocedural data flow testing. In Proceedings of the International Conference on Software Maintenance, Montreal, Quebec, Canada, pp. 386–395.
Liu, C.-H., Kung, D.C., Hsia, P., and Hsu, C.-T. 2001. An object-based data flow testing approach for web applications. International Journal of Software Engineering and Knowledge Engineering, 11(2):157–179.
Ricca, F. and Tonella, P. 2001. Web application slicing. In Proceedings of the International Conference on Software Maintenance, Firenze, Italy, pp. 148–157.
Ricca, F. and Tonella, P. 2002. Construction of the system dependence graph for web application slicing. In Proc. of the 2nd IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), Montreal, Canada: IEEE Computer Society, pp. 123–132.
Tip, F. 1995. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121–189.
Tonella, P. and Ricca, F. 2002. Dynamic model extraction and statistical analysis of web applications. In Proc. of the International Workshop on Web Site Evolution (WSE), Montreal, Canada: IEEE Computer Society, pp. 43–52
Weiser, M. 1982. Programmers use slices when debugging. Communications of the Association for Computing Machinery, 25:446–452.
Weiser, M. 1984. Program slicing. IEEE Transactions on Software Engineering, 10(4):352–357.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Tonella, P., Ricca, F. Web Application Slicing in Presence of Dynamic Code Generation. Autom Software Eng 12, 259–288 (2005). https://doi.org/10.1007/s10515-005-6208-8
Issue Date:
DOI: https://doi.org/10.1007/s10515-005-6208-8