Abstract
Program slicing can be effectively used to debug, test, analyze, understand and maintain objectoriented software. In this paper, a new slicing model is proposed to slice Java programs based on their inherent hierarchical feature. The main idea of hierarchical slicing is to slice programs in a stepwise way, from package level, to class level, method level, and finally up to statement level. The stepwise slicing algorithm and the related graph reachability algorithms are presented, the architecture of the Java program Analyzing TOol (JATO) based on hierarchical slicing model is provided, the applications and a small case study are also discussed.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Weiser M. Program slicing.IEEE Transactions on Software Engineering, 1984, SE-10(4): 352–357.
Weiser M. Program slicing.IEEE Transactions on Software Engineering, 1984, 10(4): 352–357.
Ottenstein K J, Ottenstein L M. The program dependence graph in a software development environment.ACM SIGPLAN Notices, 1984, 19(5): 177–184.
Horwitz S B, Reps T, Binkley D. Interprocedural slicing using dependence graphs.ACM SIGPLAN Notices, 1988, 23(7): 35–46.
Horwitz S B, Reps T. The use of program dependence graphs in software engineering. InProc. the Fourteenth International Conference on Software Engineering, Melbourne, Australia, May 1992, pp.392–411.
Krishnaswamy A. Program slicing: An application of object-oriented program dependence graphs.Technical Report TR94-108, Department of Computer Science, Clemson University, 1994.
Larsen L, Harrold M J. Slicing object-oriented software. InProc. 18th International Conference on Software Engineering, 1996, pp.495–505.
Tip F, Choi J D, Field J, Ramalingham G. Slicing class hierarchies in C++. InProc. the Eleventh Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'96), 1996, pp.179–197.
Steindl C. Intermodular slicing of object-oriented programs. InProc. International Conference on Compiler Construction (CC'98), 1998, pp.264–278.
Zhao J. Dynamic slicing of object-oriented programs.Technical Report SE-98-119, Information Processing Society of Japan (IPSJ), 1998.
Li B. An approach for assessing software coupling. InProc. Third Asian Workshop on Programming Language and Systems, Shanghai, China, 2002.
Li B. A technique to analyze information-flow in object-oriented programs.Information and Software Technology, 2003, 45(6): 305–314.
Liang D, Harrold M J. Slicing objects using system dependence graph. InProc. the 1998 International Confernece on Software Maintenance, 1998, pp.358–367.
Li B, Fan X. JATO: Slicing Java program hierarchically.TUCS Technical Reports, No.415, Finland, 2001.
Li B. Program slicing techniques and its application in object-oriented software metrics and software test [Dissertation]. Nanjing University, 2000.
Author information
Authors and Affiliations
Corresponding authors
Additional information
This work is supported by the National Natural Science Foundation of China under Grant No.60473065 and the Outstanding Youth Teacher Support Foundation of Southeast University under Grant No.4009001011.
Bi-Xin Li is a professor in Southeast University from Jan., 2004. He received the Ph.D. degree in computer software and theory from Nanjing University in 2001. From Apr. 2001 to Apr. 2002, he worked at TUCS (Turku Center for Computer Science) for one year as a post-doctoral researcher. From Apr. 2002 to Dec. 2003, he worked. at Department of Computer and Information Science, NTNU (Norwegian University of Science and Technology), and CWI (the Centrum voor Wiskunde en Informatica), both as an ERCIM Fellow. His current research interests include software construction, software testing, SQA techniques, software architecture and component techniques, safety-critical system and formal verification, etc.
Xiao-Cong Fan is a senior researcher in the Inteligent Agent Lab of the Pennsylvania State University from 2002. He received the Ph.D. degree from Nanjing University in 1999. From 2000 to 2002, he worked at the turku Centre for Computer Science and the Computer Science Department of Abo Akademi University in Finland, where he participated in the projects SOCOS and SPROUT, which developed a methodology for software platform construction based on the Refinement Calculus. He currently works on formal agent theories in teamwork, and projects for applying these theories.
Jun Pang is now a Ph.D. candidate in CWI, the Netherlands. He received the B.Sc. and M.Sc. degrees in computer science from Nanjing University, China, in 1997 and 2000. His research interests include protocol verification, process algebra, safety critical systems, security, testing, software architecture etc.
Jian-Jun Zhao is an associate professor of computer science at Fukuoka Institute of Technology, Japan. He received the B.S. degree in computer science from Tsinghua University, China, in 1987, and the Ph.D. degree in computer science from Kyushu University, Japan, in 1997. His research interests include program analysis and compiler, software architecture analysis, aspect-oriented software development, and ubiquitous computing environment.
Rights and permissions
About this article
Cite this article
Li, BX., Fan, XC., Pang, J. et al. A model for slicing JAVA programs hierarchically. J. Comput. Sci. & Technol. 19, 848–858 (2004). https://doi.org/10.1007/BF02973448
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/BF02973448