Automated Software Engineering

, Volume 8, Issue 2, pp 139–166 | Cite as

Predictive Software

  • José Hernández-Orallo
  • M. José Ramírez-Quintana


We examine the adaptation of classical machine learning selection criteria to ensure or improve the predictiveness of specifications. Moreover, inspired in incremental learning, software construction is also seen as an incremental process which must generate and revise the specification with the main goal of being predictive to requirements evolution. The new goal is not necessarily to achieve the highest accuracy at the end of a first prototype or version, but to maximise the cumulative benefits obtained throughout the entire software life-cycle. This suggests a new software life-cycle, whose main characteristic is to move modifications earlier, by using more eager inductive techniques, and reducing overall modification probability. This new predictive software life-cycle is particularised for the case of (functional) logic programming, placing the deductive/inductive techniques necessary for each stage of the life-cycle. The maturity of each stage and the practical possibilities for a (semi-)automation of the cycle based on declarative techniques are also discussed.

software development machine learning (ML) inductive (logic) programming (ILP) predictive modelling data-mining software life-cycles hypotheses selection criteria 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abe, N. 1997. Towards realistic theories of learning. New Generation Computing, 15:3–25.Google Scholar
  2. Aha, D.W. 1997. Lazy learning. Editorial. Special issue about “Lazy Learning” of Artificial Intelligence Review, 11:1–5.Google Scholar
  3. Alferes, J.J., Leite, J.A., Pereira, L.M., Przymusinska, H., and Przymusinski, T.C. 1998. Dynamic logic programming, In Proc. Joint Conf. of Declarative Prog., Freire et al. (Eds.) pp. 393–408.Google Scholar
  4. Angluin, D. 1987. Learning regular sets from queries and counterexamples. Information and Computation, 75:87–106.Google Scholar
  5. Angluin, D. 1988. Queries and concept learning. Machine Learning, 2(4):319–342.Google Scholar
  6. Balzer, R. 1985. A 15 year perspective on automatic programming, IEEE Transactions on Software Engineering, 11(11):1257–1268.Google Scholar
  7. Barker, S.F. 1957. Induction and Hypothesis. Ithaca: Cornell University Press.Google Scholar
  8. Barron, A., Rissanen, J., and Yu, B. 1998. The minimum description length principle in coding and modeling. IEEE Transactions on Information Theory, 44(6):2743–2760.Google Scholar
  9. Bergadano, F. and Gunetti, D. 1995. Inductive Logic Programming. Cambridge, MA: The MIT Press.Google Scholar
  10. Berry, D.M. and Lawrence, B. 1998. Requirements Engineering. IEEE Software, 15(2):26–29.Google Scholar
  11. Boehm, B.W. 1981. Software Engineering Economics. Englewood Cliffs, N.J.: Prentice Hall.Google Scholar
  12. van den Bosch, A. 1994. Simplicity and prediction. Masters Thesis, Department of Science, Logic & Epistemology of the Faculty of Philosophy at the University of Groningen.Google Scholar
  13. Bratko, I. and Dzeroski, S. 1995. Engineering Applications of ILP. New Generation Computing, 13:313–333.Google Scholar
  14. Cendrowska, J. 1987. PRIS: An algorithm for inducing modular rules. International Journal of Man–Machines Studies, 27:349–370.Google Scholar
  15. Cox, B. 1987. Object Oriented Programming. An Evolutionary Approach. Reading, MA: Addison Wesley.Google Scholar
  16. Cuena, J. (Ed.) 1993. Knowledge–Oriented Software Design. Amsterdam, North Holland.Google Scholar
  17. Dershowitz, N. and Reddy, U.S. 1993. Deductive and inductive synthesis of equational programs. Journal of Symbolic Computation, 15:467–494.Google Scholar
  18. Ernis, R. 1968. Enumerative induction and best explanation, The Journal of Philosophy, 65(18):523–529.Google Scholar
  19. Ferri–Ramírez, C., Hernández–Orallo, J., and Ramírez–Quintana, M.J. 2000. FLIP: User's Manual, Dpto. de Sistemas Informáticos y Computación, Valencia, TR: (II–DSIC–24/00).Google Scholar
  20. Flach, P.A. and Kakas, A.C. (Eds.) 2000. Abduction and Induction: Essays on their Relation and Integration. Dordrecht: Kluwer Academic Publishers.Google Scholar
  21. Flener, P. and Yilmaz, S. 1999. Inductive synthesis of recursive logic programs: Achievements and prospects. The Journal of Logic Programming, 41:141–195.Google Scholar
  22. Gold, E.M. 1967. Language Identification in the Limit. Inform and Control, 10:447–474.Google Scholar
  23. Goldberg, D.E. 1994. Genetic and evolutionary algorithms come of age. Comm. of the ACM, 37(3):113–119.Google Scholar
  24. Guida, G. and Tasso, C. 1994. Design and development of knowledge–based systems. New York: John Wiley & Sons.Google Scholar
  25. Harman, G. 1965. The inference to the best explanation. Philosophical Review, 74:88–95.Google Scholar
  26. Hempel, C.G. 1965. Aspects of Scientific Explanation. New York, N.Y.: The Free Press.Google Scholar
  27. Hernández–Orallo, J. 2000. Constructive reinforcement learning, International Journal of Intelligent Systems, 15(3):241–264.Google Scholar
  28. Hernández–Orallo, J. and Ramírez–Quintana, M.J. 1998. Induction of functional logic programs. In JICSLP'98 CompulogNet Area Meeting on Computational Logic and Machine Learning, Lloyd, editor, pp. 49–55.Google Scholar
  29. Hernández–Orallo, J. and Ramírez–Quintana, M.J. 1999. A strong complete schema for inductive functional logic programming. In Inductive Logic Programming'99 (ILP'99), P. Flach and S. Dzeroski, editors. in V. 1634 of the LNAI series, pp. 116–127, Springer–Verlag, Berlin.Google Scholar
  30. Hernández–Orallo, J. and Ramírez–Quintana, M.J. 2000. Software as learning. Quality factors and life–cycle revised, Foundational Approaches to Software Engineering, Berlin (FASE'2000 / ETAPS'2000) appeared in T. Maibaum, editor, Fundamental Approaches to Software Engineering, vol. 1783, pp. 147–162, of the Lecture Notes in Computer Science (LNCS) series, Springer–Verlag, Berlin.Google Scholar
  31. Humphrey, W.S. 1990. Managing the Software Process. London: Addison–Wesley.Google Scholar
  32. Jones, N.D., Gomard, C.K., and Sestoft, P. 1993. Partial Evaluation and Automatic Program Generation. Englewood Cliffs, N.J.: Prentice Hall.Google Scholar
  33. Kaelbling, L., Littman, M., and Moore, A. 1996. Reinforcement earning: A survey. Journal of Artificial Intelligence Research, 4:237–285.Google Scholar
  34. Kakas, A.C., Kowalski, R.A., and Toni, F. 1992. Abductive logic programming. J. of Logic and Computation, 2(6):719–770.Google Scholar
  35. Katsuno, H. and Mendelzon, A. 1991. On the difference between updating a knowledge base and revising it. In J. Allen, R. Fikes, and E. Sandewall, editors, Principles of Knowledge Representation and Reasoning, Proceedings of the Second International Conference (KR91), pp. 230–237.Google Scholar
  36. Kuhn, T.S. 1970. The Structure of Scientific Revolutions. Chicago: University of Chicago.Google Scholar
  37. Kuvaja, P. 1994. Software Process Assessment and Improvement: The Bootstrap Approach. Blackwell. Cambridge, MA.Google Scholar
  38. Lavrac, N. 1998. ILP. The next years. In JICSLP '98 CompulogNet Meeting on Computational Logic and Machine Learning, Lloyd, editor.Google Scholar
  39. Lavrac, N. and Dzeroski, S. 1994. Inductive Logic Programming: Techniques and Applications. Chichester: Ellis Horwood.Google Scholar
  40. Li, M. and Vitányi, P. 1997. An Introduction to Kolmogorov Complexity and its Applications. 2nd ed. New York: Springer.Google Scholar
  41. Lieberherr, K.J. 1996. Adaptive Object–Oriented Software: The Demeter Method with Propagation Patterns, Boston: PWS Publishing Company.Google Scholar
  42. Lieberman, H. (Guest editor) 2000. Programming by example. Special Issue. Comm. of the ACM, 43(3):73–114.Google Scholar
  43. López de Mántaras, R. and Armengol, E. 1998. Machine learning from examples: Inductive and lazy methods. Data & Knowledge Engineering, 25:99–123.Google Scholar
  44. Mitchell, T.M. 1997. Machine Learning. Singapore: McGraw–Hill International Editions.Google Scholar
  45. Mooney, R.J. 1997. Integrating abduction and induction in machine learning. In Proceedings of the IJCAI'97 Workshop on Abduction and Induction in AI, P. Flach and A. Kakas, editors.Google Scholar
  46. Muggleton, S. 1991. Inductive logic programming. New Generation Computing, 8(4):295–318.Google Scholar
  47. Muggleton, S. and De Raedt, L. 1994. Inductive logic programming—theory and methods. Journal of Logic Programming, 19–20:629–679.Google Scholar
  48. Muggleton, S. and Michie, D. 1996. Machine intelligibiity and the duality principle. British Telecom Technology Journal 14(4):15–23.Google Scholar
  49. Muggleton, S. and Page, C.D. 1999. A learnability model for universal representations. Technical Report PRG–TR–3–99, Oxford University Computing. Lab., submitted.Google Scholar
  50. Natarajan, B.K. 1991. Machine Learning: A Theoretical Approach. Morgan Kaufmann.Google Scholar
  51. Nishida, F., Takamatsu, S., Fujita, Y., and Tani, T. 1991. Semi–automatic program construction from specifications using library modules. IEEE Trans. on Software Eng, 17(9):853–871.Google Scholar
  52. Olson, R. 1995. Inductive functional programming using incremental program transformation. Artificial Intelligence, 74(1):55–81.Google Scholar
  53. Partridge, D. 1997. The case for inductive programming. IEEE Computer, 30(1):36–41.Google Scholar
  54. Pettorossi, A. and Proietti, M. 1996a. Rules and strategies for transforming functional and logic programs. ACM Computing Surveys, 28(2):360–414.Google Scholar
  55. Pettorossi, A. and Proietti, M., 1996b. Developing correct and efficient logic programs by transformation. Knowledge Engineering Review, 11(4):347–360.Google Scholar
  56. Popper, K.R. 1968. Conjectures and Refutations: The Growth of Scientific Knowledge. New York: Basic Books.Google Scholar
  57. Pressman, R.S. 1997. Software Engineering: A Practitioner's Approach. New York: McGraw–Hill.Google Scholar
  58. Proietti, M. and Pettorossi, A. 1990. Synthesis of eureka predicates for developing logic programs. In Proceedings of ESOP '90, Copenhagen, Lecture Notes in Computer Science 432, Springer Verlag, Berlin, pp. 306–325.Google Scholar
  59. Rich, C. and Shrobe, H. 1978. Initial report on a lisp programmer's apprentice. IEEE Transactions on Software Engineering, SE–4(6):41–49.Google Scholar
  60. Richards, B.L. and Mooney, R.J. 1995. Automated refinement of first–order horn–clause domain theories. Machine Learning, 19(2):95–131.Google Scholar
  61. Rissanen, J. 1978. Modelling by the shortest data description. Automatica–J.IFAC, 14:465–471.Google Scholar
  62. Robertson, D. and Agusti, J. 1998. Software Blueprints. Lightweight Uses of Logic in Conceptual Modelling. Addison Wesley, Reading, MA: vol. 7,no. 5, pp. 8–12.Google Scholar
  63. Rumbaugh, J. 1994. Getting started: Using use cases to capture requirements. J. Object–Oriented Programming.Google Scholar
  64. Sannella, D.T. and Wallen, L.A. 1992. A calculus for the construction of modular prolog programs. Journal of Logic Programming, 12:147–177.Google Scholar
  65. Scacchi, W. 1991. Understanding software productivity: Toward a knowledge–based approach. Int. J. Software Eng. and Knowledge Eng., 1:293–320.Google Scholar
  66. Shoham, Y. 1993. Agent–oriented Programming. Artificial Intelligence, 60(1):51–92.Google Scholar
  67. Shrager, J. and Langley, P. 1990. Computational Models of Scientific Discovery and Theory Formation. San Francisco: Morgan Kaufman.Google Scholar
  68. Solomonoff, R.J. 1964. A formal theory of inductive inference. Inf. Control, 7(1–22):224–254.Google Scholar
  69. Sutton, R.S. 1992. Special issue on reinforcement learning. Machine Learning, 8(3–4) May.Google Scholar
  70. Tessem, B., Bjørnestad, S., Tornes, K.M., and Steine–Eriksen, G. 1994. ROSA = Reuse of Object–Oriented Specifications Though Analogy: A Project Framework. Report no. 16.Google Scholar
  71. Thagard, P. 1989. Explanatory coherence, The Behavioural and Brain Sciences, 12(3):435–502.Google Scholar
  72. Valiant, L. 1984. A theory of the learnable. Communication of the ACM, 27(11):1134–1142.Google Scholar
  73. Wegner, P. 1998. Interactive Foundations of Computer. Theoretical Computer Science, 192(2):315–351.Google Scholar
  74. Whewell, W. 1847. The Philosophy of the Inductive Sciences. New York: Johnson Reprint Corp.Google Scholar
  75. Wrobel, S. 1996. First order theory refinement. In Advances in Inductive Logic Programming, L. De Raedt, editor, Amsterdam: IOS Press, pp. 14–33.Google Scholar

Copyright information

© Kluwer Academic Publishers 2001

Authors and Affiliations

  • José Hernández-Orallo
    • 1
  • M. José Ramírez-Quintana
    • 1
  1. 1.Department of Information Systems and ComputationUniversitat Politècnica de ValènciaValenciaSpain

Personalised recommendations