Skip to main content

Methodologies for knowledge-based software engineering

  • Invited Talk III
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 689))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B.W. Boehm: Software Engineering Economics. Englewood: Prentice Hall1981

    Google Scholar 

  2. M. Broy, P. Pepper: Program Development as a Formal Activity. IEEE Trans. on Software Eng. 7(1), 14–22 (1981)

    Google Scholar 

  3. C.L. Chang, R.C.T. Lee: Symbolic Logic and Mechanical Theorem Proving. New York: Academic Press 1973

    Google Scholar 

  4. J. Darlington: An Experimental Program Transformation and Synthesis System. Artificial Intelligence 16, 1–46 (1981)

    Google Scholar 

  5. 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

    Google Scholar 

  6. C. Green: Application of Theorem Proving to Problem Solving. IJCAI (1969)

    Google Scholar 

  7. 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

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. 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

    Google Scholar 

  11. 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

    Google Scholar 

  12. 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

    Google Scholar 

  13. R.I. Kuper: Dependency-directed localization of software bugs. Tech. Report 1053 MIT AI Lab, 1989

    Google Scholar 

  14. 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

    Google Scholar 

  15. 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

    Google Scholar 

  16. 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

    Google Scholar 

  17. M.R. Lowry, R.D. McCartney (eds.): Automating Software Design. Cambride, MA: AAAI/MIT Press 1991

    Google Scholar 

  18. Z. Manna, R. Waldinger: A Deductive Approach to Program Synthesis. ACM Trans. on Prog. Lang. and Sys. 2(1): 90–121 (1980)

    Google Scholar 

  19. J. Mostow: Design by Derivational Analogy: Issues in the Automated Replay of Design Plans. Artificial Intelligence 40, 119–184 (1989)

    Google Scholar 

  20. R. Paige, S. Koenig: Finite Differencing of Computable Expressions. ACM Transactions on Programming Languages and Systems 4(3): 402–454 (1982)

    Google Scholar 

  21. C.H. Papidimitriou, K. Steiglitz: Combinatorial Optimization. Englewood, N.J.: Prentice-Hall 1982

    Google Scholar 

  22. 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

    Google Scholar 

  23. C. Rich, R.C. Waters (eds.): Artificial Intelligence and Software Engineering. Los Altos: Morgan Kaufmann 1986

    Google Scholar 

  24. C. Rich: A formal representation for plans in the Programmer's Apprentice. ICJAI 1981

    Google Scholar 

  25. 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)

    Google Scholar 

  26. J.A. Robinson: A Machine-Oriented Logic Based on the Resolution Principle. J. ACM 12(1), 23–41 (1965)

    Google Scholar 

  27. H.B. Rubenstein, R.C. Waters: The Requirements Apprentice: Automated assistance for requirements acquisition. IEEE Trans. on Software Eng. 17, 226–240 (1991)

    Google Scholar 

  28. 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

    Google Scholar 

  29. D.R. Smith, M.R. Lowry: Algorithm Theories and Design Tactics. Science of Computer Programming 14:305–321 (1990)

    Google Scholar 

  30. 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

    Google Scholar 

  31. D.R. Smith: Constructing Specification Morphisms. Kestrel Institute Technical Report KES.U.92.1 (1992)

    Google Scholar 

  32. R.J. Waldinger, R.C. Lee: PROW: A step toward automatic program writing. IJCAI-69, pp. 241–252

    Google Scholar 

  33. R.C. Waters: Program Translation via Abstraction and Reimplementation. IEEE Trans. on Software Eng. 14(8), 1207–1228 (1988)

    Google Scholar 

  34. D.S Wile: Program Developments: Formal explanations of implementations. CACM 26(11): 902–911 (1983)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan Komorowski Zbigniew W. Raś

Rights and permissions

Reprints 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

Publish with us

Policies and ethics