Hostname: page-component-586b7cd67f-vdxz6 Total loading time: 0 Render date: 2024-11-24T15:10:28.708Z Has data issue: false hasContentIssue false

A dynamic memory of software designs

Published online by Cambridge University Press:  27 February 2009

Scott Henderson
Affiliation:
CTA Incorporated, 6116 Executive Boulevard, Suite 800, Rockville, MD, 20852
Sidney C. Bailin
Affiliation:
CTA Incorporated, 6116 Executive Boulevard, Suite 800, Rockville, MD, 20852

Abstract

This paper describes an application of artificial intelligence to support software reuse. We begin by discussing the characteristics of software engineering that establish dynamic reorganization as a requirement for a repository of software artifacts. We then present an experimental system that uses incremental concept formation as the basis for dynamic reorganization, and the conceptual hierarchy that was generated by the system for a set of 67 artifacts. The hierarchy is compared to a hierarchy produced manually by independent investigators, and the automatic hierarchy is evaluated in terms of retrieval efficiency and retrieval reliability. The paper ends with a discussion of three projects that share similar objectives with our work.

Type
Articles
Copyright
Copyright © Cambridge University Press 1994

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

REFERENCES

Arango, G., & Teratsuji, E. (1987). Notes on the Application of the Cobweb Clustering Function to the Identification of Patterns of Reuse. Technical Report ASE-RTP–87. Advanced Software Engineering Project, Department of Information and Computer Science, University of California, Irvine, CA.Google Scholar
Bailin, S., Henderson, S., & Truszkowski, W. (1993). Application of machine learning to the organization of institutional software repositories. Telematics Informatics 10(3), 283299.CrossRefGoogle Scholar
Basili, V. (1990). Viewing maintenance as reuse-oriented software development. IEEE Software January.CrossRefGoogle Scholar
Basili, V., & Rombach, H.D. (1988). Towards a Comprehensive Framework for Reuse: A Reuse-Enabling Software Evolution Environment. Technical Report UMIACS-TR–88–92, Computer Science Department, University of Maryland, College Park, MD.Google Scholar
Berlin, L. (1990). When objects collide: Experiences with reusing multiple class hierarchies. Proc. Conf. Object-Oriented Programming: Systems, Languages, Applications/Eur. Conf. Object-Oriented Programming, 181193.CrossRefGoogle Scholar
Bewtra, M., & Lide, D. (1992). Code 522 Technology Component Analysis. Technical report to NASA Goddard Space Flight Center. CTA Inc. Rockville, MD.Google Scholar
Brooks, F. (1987). No silver bullet: Essence and accidents of software engineering. IEEE Computer 20(4).CrossRefGoogle Scholar
Cheeseman, P., Kelly, J., Self, M., Stutz, J., Taylor, W., & Freeman, D. (1988). A Bayesian classification system. Proc. Fifth Int. Conf. Machine Learning, 5464.Google Scholar
Cox, B. (1990). Planning the software industrial revolution. IEEE Software 7(6).CrossRefGoogle Scholar
Davis, R., & Lenat, D.B. (1982). Knowledge-Based Systems in Artificial Intelligence. McGraw-Hill, New York.Google Scholar
Deerwester, S., Dumais, S., Furnas, G., Landauer, T., & Harshman, R. (1990). Indexing by latent structure analysis. J. Am. Soc. Inform. Sci. 41(6), 391407.3.0.CO;2-9>CrossRefGoogle Scholar
D'Ippolito, R. (1989). Using models in software engineering. Proc. TriAda Conf., 256261.Google Scholar
Fisher, D. (1987). Knowledge Acquisition via Incremental Conceptual Clustering. Doctoral dissertation, Department of Information & Computer Science, University of California, Irvine.CrossRefGoogle Scholar
Fisher, D., Pazzani, M., & Langley, P. (1991). Models of concept learning. In Concept Formation: Knowledge and Experience in Unsupervised Learning (Fisher, D., Pazzani, M., and Langley, P., Eds.). Morgan Kaufmann, San Mateo, CA.CrossRefGoogle Scholar
Gibbs, S., Tsichritzis, D., Casais, E., Nierstrasz, O., & Pintado, X. (1990). Class management for software communities. Commun. ACM 33(9), 90103.CrossRefGoogle Scholar
Gluck, M., & Corter, J. (1985). Information, uncertainty, and the utility of categories. Proceedings of the Seventh Annual Conference of the Cognitive Science Society, Irvine, CA, pp. 283287. Academic Press, San Mateo, CA.Google Scholar
Goldberg, A. (1984). Smalltalk–80: The Interactive Programming Environment. Addison Wesley, Reading, MA.Google Scholar
Henderson, S. (1992). Automated Software Component Classification Using ElvisC: Results and Discussion. Technical report to NASA Goddard Space Flight Center. CTA Inc. Rockville, MD.Google Scholar
HR (1989). Bugs in the Program: Problems in Federal Government Computer Software Development and Regulation. Staff study by the Subcommittee on Investigations and Oversight, Committee on Science, Space and Technology. U.S. House of Representatives. August 3.Google Scholar
Kernighan, B.W., & Ritchie, D.M. (1978). The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
Knight, J. (1992). Issues in the Certification of Reusable Parts. Technical Report TR–92–14, Department of Computer Science, University of Virginia.Google Scholar
Kreuger, C.W. (1992). Software reuse. ACM Computing Surveys 24(2), 131183.CrossRefGoogle Scholar
Krone, J. (1988). The Role of Verification in Software Reusability. Ph.D. Thesis, Department of Computer and Information Science, Ohio State University.Google Scholar
Lubars, M., & Harandi, M. (1987). Knowledge-based software design using design schemas. Proc. Ninth Int. Conf. Software Eng., 253262.Google Scholar
Maarek, Y., & Smadja, F. (1989). Full text indexing based on lexical relations. An application: Software libraries. Proc. SIGIR '89, 198206.Google Scholar
Mark, W., Tyler, S., McGuire, J., & Schlossberg, J. (1992). Commitment-based software development. IEEE Transact. Software Eng. October.CrossRefGoogle Scholar
McKusick, K., & Thompson, K. (1990). Cobweb/3: A Portable Implementation. Technical Report No. FIA–90–6–18–2. NASA Ames Research Center, Artificial Intelligence Research Branch. Moffett Field, CA.Google Scholar
Meyer, B. (1988). Object-Oriented Software Construction. Prentice Hall International Series in Computer Science, New York.Google Scholar
Moore, J.M., & Bailin, S. (1991). Domain analysis: Framework for reuse. In Domain Analysis and Software Systems Modelling (Prieto-Diaz, R. and Arango, G., Eds.). IEEE Computer Society Press, New York.Google Scholar
Neighbors, J. (1989). Draco: A method for engineering reusable software systems. In Software Reusability (Biggerstaff, T. and Perlis, A., Eds.), Vol. 1, pp. 295319. Addison-Wesley, Reading, MA.Google Scholar
Ostertag, E., Hendler, J., Prieto-Diaz, R., & Braun, C. (1992). Computing similarity in a reuse library system: An Al-based approach. ACM Transact. Software Eng. Method. 1(3), July.CrossRefGoogle Scholar
Prieto-Diaz, R. (1991). Implementing faceted classification for software reuse. Commun. ACM 34(5), May.CrossRefGoogle Scholar
Prieto-Diaz, R., & Arango, G., Eds. (1991). Domain Analysis and Software Systems Modelling. IEEE Computer Society Press, New York.Google Scholar
Reich, Y. (1991a). Building and Improving Design Systems: A Machine Learning Approach. Ph.D. Thesis, Engineering Design Research Center, Department of Civil Engineering, Carnegie Mellon University, EDRC 02–16–91.Google Scholar
Reich, Y. (1991b). Constructive induction by incremental concept formation. In Artificial Intelligence and Computer Vision (Feldman, Y.A. and Bruckstein, A., Eds.). Elsevier Science Publishers, Amsterdam.Google Scholar
Reich, Y., & Fenves, S. (1991). The formation and use of abstract concepts in design. In Concept Formation: Knowledge and Experience in Unsupervised Learning (Fisher, D., Pazzani, M., and Langley, P., Eds.). Morgan Kaufmann, San Mateo, CA.Google Scholar
Reuse Library Interoperability Group (RIG) (1993). Glossary of Interoperability Terms. Technical Report RTR–0001. Available through AdaNet, 2705 Cranberry Square, Morgantown, WV, USA 26505.Google Scholar
Simos, M. (1991). The growing of an organon: A hybrid knowledge-based technology and methodology for software reuse. In Domain Analysis and Software Systems Modelling (Prieto-Diaz, R. and Arango, G., Eds.). IEEE Computer Society Press, New York.Google Scholar
SPC (1991). Synthesis Guidebook. Technical Report SPC–91122–MC, Software Productivity Consortium, Herndon, VA.Google Scholar
Thompson, K. (1992). Personal correspondence.Google Scholar