This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Moral Dominance Relations for Program Comprehension
September 2003 (vol. 29 no. 9)
pp. 851-863

Abstract—Dominance trees have been used as a means for reengineering legacy systems into potential reuse candidates. The dominance relation suggests the reuse candidates which are identified by strongly directly dominated subtrees. We review the approach and illustrate how the dominance tree may fail to show the relationship between the strongly directly dominated procedures and the directly dominated procedures. We introduce a relation of generalized conditional independence which strengthens the argument for the adoption of the potential reuse candidates suggested by the dominance tree and explains their relationship with the directly dominated vertices. This leads to an improved dominance tree, the moral dominance tree, which helps aid program comprehension available from the tree. The generalized conditional independence relation also identifies potential reuse candidates that are missed by the dominance relation.

[1] A. Bobbio, L. Portinale, M. Minichino, and E. Ciancamerla, Improving the Analysis of Dependable Systems by Mapping Fault Trees into Bayesian Networks Reliability Eng. and System Safety, vol. 71, no. 3, pp. 249-260, 2001.
[2] E. Burd and M. Munro, Enriching Program Comprehension for Software Reuse Proc. Fifth Int'l Workshop Program Comprehension, pp. 130-137, 1997.
[3] E. Burd and M. Munro, A Method for the Identification of Reusable Units through the Reengineering of Legacy Code J. Systems and Software, vol. 44, no. 2, pp. 121-134, 1998.
[4] E. Burd and M. Munro, Evaluating the Use of Dominance Trees for C and COBOL Proc. 1999 Int'l Conf. Software Maintenance, pp. 401-410, 1999.
[5] E. Burd and M. Munro, Supporting Program Comprehension Using Dominance Trees Annals Software Eng., vol. 9, pp. 193-213, 2000.
[6] E. Burd, M. Munro, and C. Wezeman, Analysing Large COBOL Programs: The Extraction of Reusable Modules Proc. 1996 Int'l Conf. Software Maintenance, pp. 238-243, 1996.
[7] E. Burd, M. Munro, and C. Wezeman, Extracting Reusable Modules from Legacy Code: Considering Issues of Module Granularity Proc. Third Working Conf. Reverse Eng., pp. 189-197, 1996.
[8] G. Canfora, A. Cimitile, A. De Lucia, and G.A. Di Lucca, Decomposing Legacy Systems into Objects: An Eclectic Approach Information and Software Technology, vol. 43, no. 6, pp. 401-412, 2001.
[9] G. Canfora, A. De Lucia, G.A. Di Lucca, and A.R. Fasolino, "Recovering the Architectural Design for Software Comprehension," Third Workshop on Program Comprehension, WPC'93,Washington, D.C., pp. 30-38, Nov. 1994.
[10] A. Cimitile, A. De Lucia, G.A. Di Lucca, and A.R. Fasolino, Identifying Objects in Legacy Systems Proc. Fifth Int'l Workshop Program Comprehension, pp. 138-147, 1997.
[11] A. Cimitile, A. De Lucia, G.A. Di Lucca, and A.R. Fasolino, Identifying Objects in Legacy Systems Using Design Metrics J. Systems and Software, vol. 44, no. 3, pp. 199-211, 1999.
[12] A. Cimitile and G. Visaggio, "Software Salvaging and Call Dominance Tree," The J. of Systems and Software, vol. 28, no. 2, pp. 117-127, Feb. 1995.
[13] R.G. Cowell, A.P. Dawid, S.L. Lauritzen, and D.J. Spiegelhalter, Probabilistic Networks and Expert Systems. New York: Springer, 1999.
[14] A.P. Dawid, Conditional Independence in Statistical Theory (with Discussion) J. Royal Statistics Soc. B, vol. 41, no. 1, pp. 1-31, 1979.
[15] A.P. Dawid, Conditional Independence for Statistical Operations Annals of Statistics, vol. 8, no. 3, pp. 598-617, 1980.
[16] M. Goldstein, Influence and Belief Adjustment (with Discussion) Influence Diagrams, Belief Nets and Decision Analysis, R.M. Oliver and J.Q. Smith, eds., pp. 143-174, Wiley, 1990.
[17] M.S. Hecht, Flow Analysis of Computer Programs. North-Holland: Elsevier, 1977.
[18] IEEE, IEEE Standard Glossary of Software Engineering Terminology. New York: IEEE Press, 1983.
[19] F. Jensen, An Introduction to Bayesian Neworks. Springer Verlag, 1996.
[20] S.L. Lauritzen, Graphical Models. Oxford Science Publications, 1996.
[21] S.L. Lauritzen, A.P. Dawid, B.N. Larsen, and H.-G. Leimer, Independence Properties of Directed Markov Fields Networks, vol. 20, no. 5, pp. 491-505, 1990.
[22] S.L. Lauritzen and D.J. Spiegelhalter, Local Computations with Probabilities on Graphical Structures and Their Application to Expert Systems (with Discussion) J. Royal Statistics Soc. B, vol. 50, no. 2, pp. 157-224, 1988.
[23] H.A. Müller, M.A. Orgun, S.R. Tilley, and J.S. Uhl, A Reverse-Engineering Approach to Subsystem Structure Identification J. Software Maintenance: Research and Practice, vol. 5, no. 4, pp. 181-204, 1993.
[24] J. Pearl, Probabilistic Reasoning in Intelligent Systems. San Mateo, Calif.: Morgan Kaufman, 1988.
[25] J.Q. Smith, Influence Diagrams for Statistical Modelling Annals of Statistics, vol. 17, no. 2, pp. 654-672, 1989.
[26] J.Q. Smith, Statistical Principles on Graphs (with Discussion) Influence Diagrams, Belief Nets and Decision Analysis, R.M. Oliver and J.Q. Smith, eds., pp. 89-120, Wiley, 1990.
[27] D.J. Spiegelhalter, Discussion on `Statistical Principles on Graphs' by Smith Influence Diagrams, Belief Nets and Decision Analysis, R.M. Oliver and J.Q. Smith, eds., pp. 113-116, Wiley, 1990.
[28] J. Whittaker, Graphical Models in Applied Multivariate Statistics. Chichester: Wiley, 1990.
[29] D.A. Wooff, M. Goldstein, and F.P.A. Coolen, Bayesian Graphical Models for Software Testing IEEE Trans. Software Eng., vol. 28, no. 5, pp. 510-525, May 2002.

Index Terms:
Directed graphical model, generalized conditional independence, dominance tree, program comprehension, reengineering, reuse candidate, reverse engineering, testing.
Citation:
Simon C. Shaw, Michael Goldstein, Malcolm Munro, Elizabeth Burd, "Moral Dominance Relations for Program Comprehension," IEEE Transactions on Software Engineering, vol. 29, no. 9, pp. 851-863, Sept. 2003, doi:10.1109/TSE.2003.1232289
Usage of this product signifies your acceptance of the Terms of Use.