Discovering Common Features in Software Code Using Self-Organizing Maps

  • Alvin Chan
  • Tim Spracklen
Conference paper
Part of the Advances in Soft Computing book series (AINSC, volume 5)


The self-organizing map is discussed as an unsupervised clustering method. Its ability to form clusters indicates similar features in a data set. Based on this property, it is demonstrated that a self-organizing map is capable of identifying features within software code by grouping procedures with similar properties together. This allows us to identify potential objects, abstract data types or classes. In experiments with a simulation package Pascal_SIM (a procedural oriented implementation) as the data set, features were identified and a feature matrix constructed that served as the input to the self-organizing map. The results obtained were clusters on the map that indicated procedures with similar features being grouped together. This demonstrates that the self-organizing map is potentially a viable tool in intelligently automating the discovery of common features and groupings within code.


Feature Matrix Software Code Legacy Code Object Instance Potential Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Sushil Acharya and R. Sadananda. Promoting software reuse using self organizing maps. Neural Processing Letters, 5 (3): 219–226, 1997.CrossRefGoogle Scholar
  2. 2.
    A. Cimitile, A. De Lucia, G.A. di Lucca, and A.R. Fasolino. Identifying objects in legacy systems. In5th International Workshop on Program Comprehension (WPC’97)Dearborn, MI, 1997. IEEE Computer. Google Scholar
  3. 3.
    Ruth Davies and Robert OKeefe. Simulation Modelling with Pascal Prentice Hall International (UK) Ltd, 1989.Google Scholar
  4. 4.
    Teuvo Kohonen. Self-Organizing Maps. Information Sciences. Springer, second edition, 1997.MATHCrossRefGoogle Scholar
  5. 5.
    Dieter Merkl. Structuring software for reuse - the case of self-organizing maps. In International Joint Conference on Neural Networks,volume 3, pages 2468–2471, Nagoya Congress Center, Japan, 1993. IEEE.Google Scholar
  6. 6.
    Dieter Merkl. Self-organizing maps and software reuse. Computational Intelligence in Software Engineering, World Scientific, 1998.Google Scholar
  7. 7.
    Dieter Merkl, A Min Tjoa, and Gerti Kappel. Structuring a library of reusable software components using an artificial neural network. In2nd International Conference on Achieving Quality in Softwarepages 169–180, Venice, Italy, 1993 Google Scholar
  8. 8.
    Dieter Merkl, A Min Tjoa, and Gerti Kappel. A self-organizing map that learns the semantic similiarity of reusable software components. In 5th Australian Conference on Neural Networks (ACNN’94) pages 13–16, Brisbane, Australia, 1994Google Scholar
  9. 9.
    Alexander S. Yeh and David R. Harris. Recoverying abstract data types and object instances from a conventional procedural language. In 2nd Working Conference on Reverse Engineering (WCRE’95) pages 227–236, Toronto Ontario, Canada, 1995. IEEE Computer Society.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Alvin Chan
    • 1
  • Tim Spracklen
    • 1
  1. 1.Electronics Research Group, Engineering DepartmentUniversity of AberdeenScotland

Personalised recommendations