Abstract
This article describes our experience with designing and using amodule architecture assistant, an intelligent tool to help human software architects improve the modularity of large programs. The tool models modularization as nearest-neighbor clustering and classification, and uses the model to make recommendations for improving modularity by rearranging module membership. The tool learns similarity judgments that match those of the human architect by performing back propagation on a specialized neural network. The tool's classifier outperformed other classifiers, both in learning and generalization, on a modest but realistic data set. The architecture assistant significantly improved its performance during a field trial on a larger data set, through a combination of learning and knowledge acquisition.
Article PDF
Similar content being viewed by others
References
Balcer, M.J., Hasling, W.M., & Ostrand, T.J. (1989). Automatic generation of test scripts from formal test specifications.Proceedings of the ACM SIGSOFT 1989 Third Symposium on Software Testing, Analysis, and Verification. Key West, FL: ACM Press.
Baum, E., & Haussler, D. (1988). What size net gives valid generalization? In D. Touretzky (Ed.),Advances in neural information processing systems (Vol. 1). Morgan-Kaufmann.
Belady, L.A., & Evangelisti, C.J. (1982). System partitioning and its measure.Journal of Systems and Software, 2(2).
Chapin, N. (1988). Software maintenance life cycle.Proceedings of the Conference on Software Maintenance—1988. IEEE Computer Society Press.
Chen, Y.-F., Nishimoto, M., & Ramamoorthy, C.V. (1990). The C information abstraction system.IEEE Transactions on Software Engineering, 16(3).
Choi, S.C., & Scacchi, W. (1990). Extracting and restructuring the design of large software systems.IEEE Software, 7(1, 66–73.
Hanson, S.J., & Bauer, M. (1989). Conceptual clustering, categorization, and polymorphy.Machine Learning, 3, 343–372.
Hanson, S.J., & Burr, D.J. (1990). What connectionist models learn: Learning and representation in connectionist networks.Behavioral and Brain Sciences, 13, 471–518.
Homa, D. (1978). Abstraction of ill-defined form.Journal of Experimental Psychology: Human Learning and Memory, 4, 407–416.
Horn, K.A., Compton, P., Lazarus, L., & Quinlan, J.R. (1985). An expert system for the interpretation of thyroid assays in a clinical laboratory.Australian Computer Journal, 17(1, 7–11.
Hutchens, D.H., & Basili, V.R. (1985). System structure analysis: Clustering with data bindings.IEEE Transactions on Software Engineering, 11(8).
Lange, R., & Schwanke, R.W. (1991). Software architecture analysis: A case study.Third International Workshop on Software Configuration Management. ACM Press.
Maarek, Y.S., & Kaiser, G.E. (1987). Using conceptual clustering for classifying reusable Ada code.Using Ada: ACM SIGAda International Conference. Special issue ofAda Letters. ACM Press.
Maarek, Y.S., & Kaiser, G.E. (1988). Change management for very large software systems.Seventh Annual International Phoenix Conference on Computers and Communications. Scottsdale, AZ.
Medin, D., & Schaffer, M.M. (1978). Context theory of classification learning.Psychological Review, 85, 207–238.
Parnas, D.L. (1972). Information distribution aspects of design methodology.Information Processing 71. Amsterdam: North-Holland.
Parnas, D.L. (1971). On the criteria to be used in decomposing systems into modules (Technical Report No. CMU-CS-71-101). Computer Science Department, Carnegie-Mellon University, Pittsburgh, PA.
Porter, A.A., & Selby, R.W. (1990). Empirically guided software development using metric-based classification trees,IEEE Software, 7(3).
Posner, M.I., & Keele, S.W. (1968). On the genesis of abstract ideas.Journal of Experimental Psychology, 77, 353–363.
Rivest, R., Haussler, D., & Warmuth, M.K. (1989).Proceedings of Second Annual Workshop on Computational Learning Theory. Morgan-Kaufmann.
Schwanke, R.W., & Platoff, M.A. (1989). Cross references are features.Second International Workshop on Software Configuration Management. Software Engineering Notes, 17(7), ACM Press.
Selby, R.W., & Basili, V.R. (1988). Error localization during software maintenance: Generating hierarchical system descriptions from the source code alone.Conference on Software Maintenance—1988. IEEE Computer Society Press.
Smith, E.E., & Medin, D.L. (1981).Categories and concepts. Cambridge, MA: Harvard University Press.
Sompolinsky, H., & Tishby, N. (1990). Learning from examples in large neural networks.Siemens Computational Learning Theory and Natural Learning Systems Workshop, September 5 & 6, Princeton, NJ.
Tesauro, G., & Sejnowski, T.J. (1989). A parallel network that learns to play Backgammon.Artificial Intelligence, 39, 357–390.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Schwanke, R.W., Hanson, S.J. Using neural networks to modularize software. Mach Learn 15, 137–168 (1994). https://doi.org/10.1007/BF00993275
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF00993275