This Article 
 Bibliographic References 
 Add to: 
PM: A System to Support the Automatic Acquisition of Programming Knowledge
September 1990 (vol. 2 no. 3)
pp. 273-282

A system called partial metrics (PM) which utilizes chunking as a model for acquiring knowledge about program implementation is described. The chunking paradigm has three phases. The first phase partitions the object to be chunked into relatively independent parts called aggregates. The objects to be chunked in PM are code modules. Modules are separated into a collection of aggregates based on a model of stepwise refinement. A heuristic that generates a hierarchically structured collection of refinement steps describing how the program could have been developed as a set of independent refinement decisions (object-oriented stepwise implementation) is given. The second phase encodes (abstracts) each of the aggregates. Various techniques for symbolic learning can be applied to produce a frame-based encoding of information present in the code. This abstraction contains information about the aggregate's role in the refinement process as well as the code's functionality. The third phase inserts the chunked aggregate into a hierarchically structured library of cases based on the contents of its frame description. The storage of an aggregate enables its future use in problem-solving activities. An example of how this approach can be used to acquire knowledge from a sort module is described.

[1] H. A. Simon, "Whether software engineering needs to be artificially intelligent,"IEEE Trans. Software Eng., vol. SE-12, pp. 726-732, July 1986.
[2] E. Soloway and F. Detienne, "An empirically-derived control structure for the process of program understanding," Institut National de Recherche en Informatique et en Automatique Domaine de Voluerau Rocquencourt, Rapports de Recherche No. 886, B.P. 105, 78153 Le Chesnay Cedex, France, Aug. 1988.
[3] S. Letovsky, "Cognitive processes in program comprehension," inProc. First Workshop Empirical Studies Programmers, E. Soloway and S. Iyengar, Eds. Ablex, 1986, pp. 58-79.
[4] R. S. Rist, "Plans in programming: Definition, demonstration, and development," inProc. First Workshop Empirical Studies Programmers, E. Soloway and S. Iyengar, Eds. Ablex, 1986, pp. 28-47.
[5] E. Kant and D. R. Barstow, "The refinement paradigm: The interaction of coding and efficiency knowledge in program synthesis,"IEEE Trans. Software Eng., vol. SE-7, no. 5, pp. 458-471, Sept. 1981.
[6] C. Rich and R. C. Waters, "The programmer's apprentice: A research overview,"IEEE Comput. Mag., vol. 21, no. 11, pp. 10-25, Nov. 1988.
[7] D. R. Barstow,Knowledge-based Program Construction. New York: Elsevier-North Holland, 1979.
[8] W. L. Johnson and E. Soloway, "PROUST: An automatic debugger for Pascal programs," inArtificial Intelligence and Instruction: Applications and Methods, G. Kearsley, Ed. Reading, MA: Addison-Wesley, 1987, pp. 49-67.
[9] P. Gilbert,Software Design and Development. Chicago, IL: Science Research Associates Press, 1983.
[10] R. Reynolds, "The Partial Metrics System: Modeling the Stepwise Refinement Process Using Partial Metrics,"Comm. ACM, Nov. 1987, pp. 956-963.
[11] R. Reynolds and J. Maletic, "An Introduction to Refinement Metrics: Assessing a Programming Language's Support of the Stepwise Refinement Process,"Proc. ACM Computer Science Conf., ACM Press, New York, 1990., pp. 82-88.
[12] G. Miller, "The magical number seven, plus or minus two: Some limits on our capacity for processing information,"Psychological Rev., vol. 63, no. 2, 1956.
[13] H. A. Simon,The Sciences of the Artificial, 2nd ed. Cambridge, MA: MIT Press, 1981.
[14] M. S. Campbell, "Chunking as an abstraction mechanism," Carnegie-Mellon Unv., Comput. Sci. Dep. Tech. Rep. CMU-CS-88-116, Feb. 1988.
[15] J. E. Laird, P. S. Rosenbloom, and A. Newell, "Chunking in SOAR-- The anatomy of a general learning mechanism,"Machine Learning, vol. 1, no. 1, pp. 11-46, 1986.
[16] P. S. Rosenbloom, "The chunking of goal hierarchies," Ph.D. dissertation, Comput. Sci. Dep., Carnegie-Mellon, Univ., 1983.
[17] J. C. Esteva, "Learning to recognize reusable software modules by induction," Ph.D. dissertation, Comput. Sci. Dep., Wayne State Univ., Detroit, MI, 1989.
[18] R. G. Reynolds, "A metrics-based model for reasoning about pseudocode design,"J. Inform. Software Technol., vol. 29, no. 9, pp. 497-502, Nov. 1987.
[19] R. G. Reynolds, "PMS: An inference system to monitor the stepwise refinement of ADA pseudocode"IEEE Expert, vol. 2, no. 4, pp. 43-49, Winter 1986.
[20] S. Roy and J. Mostow, "Parsing to learn fine grained rules," Dep. Comput. Sci., AI/Design Project Working Paper 69, Rutgers Univ., June 1988.
[21] M. Tambe and A. Newell, "Why some chunks are expensive," Carnegie-Mellon Univ., Comput. Sci. Dep., Tech. Rep. CMU-CS-88- 103, Jan. 1988.
[22] B. MacLennan, "Simple metrics for programming languages,"Inform. Processing Management, vol. 20, no. 1/2, pp. 209-221, Jan. 1984.
[23] J. I. Maletic, "Refinement metrics: Assessing a programming language's support of the stepwise refinement process," M.S. Thesis, Comput. Sci. Dep., Wayne State Univ., Detroit, MI, 1989.
[24] P. M. Winston,Artificial Intelligence. Reading, MA: Addison-Wesley, 1984.
[25] R. G. Reynolds, "Metrics to measure the complexity of partial programs,"J. Syst. Software, vol. 4, no. 1, pp. 75-91, Apr. 1984.
[26] M. Halstead,Elements of Software Science. New York: Elsevier-North Holland, 1977.
[27] T. J. McCabe, "A complexity measure,"IEEE Trans. Software Eng., vol. SE-2, no. 4, pp. 308-320, Dec. 1976.
[28] J. Martin and C. McClure,Software Maintenance, Prentice-Hall, Englewood Cliffs, N.J., 1983.
[29] J. Kolodner and C. Riesbeck, "Case-based reasoning: A tutorial," inProc. Eleventh Int. Joint Conf. Artificial Intell., Detroit, MI, Aug. 21, 1989, Los Altos, CA: Morgan Kaufmann, 1989.
[30] R. Williams, "Learning to program by examining and modifying cases," inProc. Case-Based Reasoning Workshop, J. Kolodner, Ed., Clearwater, FL, May 10-13, 1988. Los Altos, CA: Morgan Kaufmann, 1988.
[31] G. Booch,Software Components with Ada. Menlo Park, CA: Benjamin/Prentice-Hall, 1987.
[32] R. G. Reynolds, "The control of genetic algorithms using version spaces," Wayne State Univ. Comput. Sci. Dep. Tech. Rep., Detroit, MI, 1990.

Index Terms:
knowledge acquisition; PM; partial metrics; chunking; aggregates; code modules; stepwise refinement; heuristic; hierarchically structured collection; object-oriented stepwise implementation; symbolic learning; frame-based encoding; library; problem-solving activities; sort module; knowledge acquisition; object-oriented programming; software engineering
R.G. Reynolds, J.I. Maletic, S.E. Porvin, "PM: A System to Support the Automatic Acquisition of Programming Knowledge," IEEE Transactions on Knowledge and Data Engineering, vol. 2, no. 3, pp. 273-282, Sept. 1990, doi:10.1109/69.60791
Usage of this product signifies your acceptance of the Terms of Use.