Abstract
As the science of knowledge representation and automated reasoning advances, AI has the potential to radically change the artifacts, methodologies, and life cycles of software engineering. The most significant change will be when problems are formalized at the level of specifications rather than programs. This will greatly facilitate software reuse and modification. Achieving this potential requires overcoming many technical challenges, particularly the semi-automated synthesis of efficient and correct programs from specifications. The first part of this paper describes several methodologies for program synthesis and compares their ability to control the combinatorial explosion inherent in automated reasoning.
As knowledge based software engineering matures and increasingly automates the software engineering life cycle, software engineering resources will shift toward knowledge acquisition and the automated reuse of expert knowledge for developing software artifacts. The second part of this paper describes methodologies for expanding the software life cycle to the knowledge life cycle.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
B.W. Boehm: Software Engineering Economics. Englewood: Prentice Hall1981
M. Broy, P. Pepper: Program Development as a Formal Activity. IEEE Trans. on Software Eng. 7(1), 14–22 (1981)
C.L. Chang, R.C.T. Lee: Symbolic Logic and Mechanical Theorem Proving. New York: Academic Press 1973
J. Darlington: An Experimental Program Transformation and Synthesis System. Artificial Intelligence 16, 1–46 (1981)
R. Floyd: Toward Interactive Design of Correct Programs. In C. Rich, R.C. Waters (eds.): Artificial Intelligence and Software Engineering. Los Altos: Morgan Kaufmann 1986, pp. 331–334
C. Green: Application of Theorem Proving to Problem Solving. IJCAI (1969)
C. Green, D. Luckham, R. Balzer, T. Cheatham, C. Rich: Report on a Knowledge-Based Software Assistant. In C. Rich, R.C. Waters (eds.): Artificial Intelligence and Software Engineering. Los Altos: Morgan Kaufmann 1986, pp. 337–428
W.L. Johnson, M.S. Feather: Using Evolution Transformations to Construct Specifications. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 65–92
E. Kant, F. Daube, W. MacGregor, J. Wald: Scientific Programming by Automated Synthesis. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 169–206
V.E. Kelly, U. Nonnenmann: Reducing the Complexity of Formal Specification Acquisition. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 41–64
D.E. Knuth, P.B. Bendix: Simple Word Problems in Universal Algebras. In J. Leach (ed.): Computational Problems in Abstract Algebra. Pergammon Press 1970, pp. 263–298
J. Komorowski: Synthesis of Programs in the Partial Deduction Framework. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 377–404
R.I. Kuper: Dependency-directed localization of software bugs. Tech. Report 1053 MIT AI Lab, 1989
M.R. Lowry: Automating the Design of Local Search Algorithms. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 515–546
M.R. Lowry: Software Engineering in the Twenty-First Century. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 627–654
M.R. Lowry, R. Duran: Knowledge-based Software Engineering. In A. Barr, P.R. Cohen, E.A. Feigenbaum (eds.): The Handbook of Artificial Intelligence, Vol. 4. Reading, MA: Addison-Weseley, 1989
M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991
Z. Manna, R. Waldinger: A Deductive Approach to Program Synthesis. ACM Trans. on Prog. Lang. and Sys. 2(1): 90–121 (1980)
J. Mostow: Design by Derivational Analogy: Issues in the Automated Replay of Design Plans. Artificial Intelligence 40, 119–184 (1989)
R. Paige, S. Koenig: Finite Differencing of Computable Expressions. ACM Transactions on Programming Languages and Systems 4(3): 402–454 (1982)
C.H. Papidimitriou, K. Steiglitz: Combinatorial Optimization. Englewood, N.J.: Prentice-Hall 1982
U.S. Reddy: Design Principles for an Interactive Program-Derivation System. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 453–482
C. Rich, R.C. Waters (eds.): Artificial Intelligence and Software Engineering. Los Altos: Morgan Kaufmann 1986
C. Rich: A formal representation for plans in the Programmer's Apprentice. ICJAI 1981
C. Rich, Y.A. Feldman: Seven Layers of Knowledge Representation and Reasoning in Support of Software Development. IEEE Trans. on Software Eng. 18(6), 451–469 (1992)
J.A. Robinson: A Machine-Oriented Logic Based on the Resolution Principle. J. ACM 12(1), 23–41 (1965)
H.B. Rubenstein, R.C. Waters: The Requirements Apprentice: Automated assistance for requirements acquisition. IEEE Trans. on Software Eng. 17, 226–240 (1991)
D. Setliff: Synthesizing VLSI Routing Software from Specifications. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 207–226
D.R. Smith, M.R. Lowry: Algorithm Theories and Design Tactics. Science of Computer Programming 14:305–321 (1990)
D.R. Smith: KIDS-A Knowledge-Based Software Development System. In M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991, pp. 483–514
D.R. Smith: Constructing Specification Morphisms. Kestrel Institute Technical Report KES.U.92.1 (1992)
R.J. Waldinger, R.C. Lee: PROW: A step toward automatic program writing. IJCAI-69, pp. 241–252
R.C. Waters: Program Translation via Abstraction and Reimplementation. IEEE Trans. on Software Eng. 14(8), 1207–1228 (1988)
D.S Wile: Program Developments: Formal explanations of implementations. CACM 26(11): 902–911 (1983)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lowry, M.R. (1993). Methodologies for knowledge-based software engineering. In: Komorowski, J., RaÅ›, Z.W. (eds) Methodologies for Intelligent Systems. ISMIS 1993. Lecture Notes in Computer Science, vol 689. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56804-2_21
Download citation
DOI: https://doi.org/10.1007/3-540-56804-2_21
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56804-9
Online ISBN: 978-3-540-47750-1
eBook Packages: Springer Book Archive