Abstract
We describe a framework for synthesizing software systems based on abstracting software system designs, problem descriptions, and the design process. The result of such an abstraction process is a generic architecture and the customization knowledge for customizing the architecture for instances of a problem class. The customization knowledge is used to assist a designer in customizing the architecture as opposed to completely automating the design of systems. We illustrate our approach using an implemented example of a generic tracking architecture which we have customized in two different domains. We describe how the designs produced using KASE compare to the original designs of the two systems, discuss how our work relates to other approaches to software design, and describe current work and plans for extending KASE to other application areas.
Similar content being viewed by others
References
Aho, A. V., and Ullman, J. D. 1977.Principles of Compiler Design. Addison-Wesley Publishing Company.
Allen, R., and Garlan, D. 1992. A formal approach to software architectures. InIFIP World Computer Congress 92, Madrid, Spain.
Barstow, D. 1983. A perspective on automatic programming. In8th International Joint Conference on Artificial Intelligence, pp. 1170–1179.
Bhansali, S. 1992. Generic software architecture based redesign. InAAAI Spring Symposium on Computational Considerations in Supporting Incremental Modification and Reuse, Stanford, CA, pp. 53–58.
Bhansali, S. 1993. Architecture-driven reuse of code in KASE. InFifth International Conference on Software Engineering and Knowledge Engineering, Knowledge Systems Institute, San Francisco Bay.
Bhansali, S., and Nii, H. P. 1992a. KASE: An integrated environment for software design. In2nd International Conference on Artificial Intelligence in Design, Pittsburgh, PA, pp. 371–389.
Bhansali, S., and Nii, H. P. 1992b. Software design by reusing architectures. In7th Knowledge-Based Software Engineering Conference, pp. 100–109. McLean, VA: IEEE Computer Society Press.
Brown, H. D., Schoen, E., and Delagi, B. A. 1986.An Experiment in Knowledge-Based Signal Understanding Using Parallel Architectures. No. STAN-CS-86-1136, Department of Computer Science, Stanford University.
Conklin, J., and Begeman, M. 1989. gIBIS: A tool for all reasons.Journal of the American Society for Information Science, 40:200–213.
Feather, M., Fickas, S., and Helm, B. R. 1991. Composite system design: The good news and the bad news. In6th Annual Knowledge-based Software Engineering Conference, pp. 13–27.
Garg, P., and Bhansali, S. 1992. Process programming by hindsight. In14th International Conference on Software Engineering, IEEE Computer Society, Melbourne, Australia, pp. 280–293.
Goguen, J. A. 1989. Principles of parameterized programming. InSoftware Reusability, edited by T. J. Biggerstaff and A. Perlis. Addison Wesley.
Graves, H. 1991. Lockheed Environment for Automatic Programming. In6th Annual Knowledge-Based Software Engineering Conference, pp. 78–89. Syracuse, NY.
Gruber, T. R. 1991. The role of common ontology in achieving sharable, reusable knowledge bases. InPrinciples of Knowledge Representation and Reasoning: Proceedings of the 2nd International Conference, edited by J. A. Allen, R. Fikes, and E. Sandewall. San Mateo, CA: Morgan Kaufmann.
Guindon, R. 1990. Designing the design process: Exploiting opportunistic thoughts.Human-Computer Interaction, 5:305–344.
Guindon, R. 1992. Requirements and design of Design Vision, an object-oriented graphical interface to an intelligent software design assistant. InACM Proceedings of CHI'92. Monterey, CA.
Jagannathan, V., Dodhiawala, R., and Baum, L. S. (eds.). 1989.Blackboard Architectures and Applications. Boston: Academic Press.
Kant, E., Daube, F., MacGregor, W., and Wald, J. 1991. Scientific programming by automated synthesis. InAutomating Software Design, edited by M. R. Lowry and R. D. McCartney, pp. 169–206. AAAI Press/The MIT Press.
Lane, T. G. 1990.A Design Space and Design Rules for User Interface Software Architectures. No. CMU-CS-90-176. Carnegie Mellon University.
Lowry, M. R., and McCartney, R. D. (eds.). 1991.Automating Software Design. AAAI Press/The MIT Press.
Mark, W., Tyler, S., McGuire, J., and Schlossberg 1992. Commitment based software development. InIEEE Transactions on Software Engineering, 18(10):870–885.
Milner, R., Tofte, M., and Harper, R. 1990.The Definition of Standard ML. MIT Press.
Nakano, G., and Bhansali, S. 1993a. Flexible control mechanism in a consistency maintenance system. InIEEE Pacific Rim Conference on Communications, Computers, and Signal Processing, Victoria, British Columbia, Canada.
Nakano, G., and Bhansali, S. 1993b. A knowledge-based approach for consistency checking mechanism in software design. InProceedings of the 6th Florida AI Research Symposium, pp. 157–165. Fort Lauderdale, FL.
Neighbors, J. 1984. The DRACO approach to constructing software from reusable components.IEEE Transactions on Software Engineering, 10(9):564–573.
Nii, H. P., and Aiello, N. 1979. AGE (Attempt to Generalize): A knowledge-based program for building knowledge-based programs. In6th International Joint Conference on Artificial Intelligence, pp. 645–655.
Nii, H. P., Feigenbaum, E. A., Anton, J. J., and Rockmore, A. J. 1982. Signal-to-symbol transformation: HASP/SIAP case study.AI Magazine, Spring: 23–36.
Nii, P. 1989. Blackboard systems. InHandbook of Artificial Intelligence, edited by A. Barr, P. Cohen, and E. Feigenbaum, pp. 1–82. New York, NY: Addison-Wesley.
Nonnenmann, U., and Eddy, J. K. 1992. KITSS—A functional software testing system using a hybrid domain model. InProceedings of the 8th Conference on Artificial Intelligence for Applications. Monterrey, CA.
Prieto-Diaz, R., and Neighbors, J. M. 1986. Module interconnection languages.Journal of Systems and Software, 6(4):307–334.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. 1991.Object-Oriented Modeling and Design. Englewood Cliffs, NJ: Prentice Hall.
Setliff, D., and Rutenbar, R. 1992. Knowledge representation and reasoning in a software synthesis architecture.IEEE Transactions on Software Engineering, 18(6).
Shaw, M. 1989. Large scale systems require higher-level abstractions. InFifth International Workshop on Software Specifications and Design, pp. 143–146. IEEE Computer Society.
Shaw, M. 1991. Heterogeneous design idioms for software architecture. In6th International Workshop on Software Specification and Design, pp. 158–165. Como, Italy.
Smith, D. R. 1990. KIDS: A semi-automatic program development system.IEEE Transactions on Software Engineering, 16(9):1024–1043.
van Melle, W. 1980.A Domain Independent System that Aids in Constructing Consultation Programs. Ph.D., Computer Science Department, Stanford University.
Waters, R. C. 1985. The programmer's apprentice: A session with KBEmacs.IEEE Transactions on Software Engineering, 11(11):1296–1320.
Workshop, D. 1990.Proceedings of the Workshop on Domain-Specific Software Architectures. Software Engineering Institute.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Bhansali, S. Software synthesis using generic architectures. Autom Software Eng 1, 239–279 (1994). https://doi.org/10.1007/BF00871705
Issue Date:
DOI: https://doi.org/10.1007/BF00871705