Skip to main content
Log in

Predictive Software

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Abe, N. 1997. Towards realistic theories of learning. New Generation Computing, 15:3–25.

    Google Scholar 

  • Aha, D.W. 1997. Lazy learning. Editorial. Special issue about “Lazy Learning” of Artificial Intelligence Review, 11:1–5.

    Google Scholar 

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

  • Angluin, D. 1987. Learning regular sets from queries and counterexamples. Information and Computation, 75:87–106.

    Google Scholar 

  • Angluin, D. 1988. Queries and concept learning. Machine Learning, 2(4):319–342.

    Google Scholar 

  • Balzer, R. 1985. A 15 year perspective on automatic programming, IEEE Transactions on Software Engineering, 11(11):1257–1268.

    Google Scholar 

  • Barker, S.F. 1957. Induction and Hypothesis. Ithaca: Cornell University Press.

    Google Scholar 

  • 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 

  • Bergadano, F. and Gunetti, D. 1995. Inductive Logic Programming. Cambridge, MA: The MIT Press.

    Google Scholar 

  • Berry, D.M. and Lawrence, B. 1998. Requirements Engineering. IEEE Software, 15(2):26–29.

    Google Scholar 

  • Boehm, B.W. 1981. Software Engineering Economics. Englewood Cliffs, N.J.: Prentice Hall.

    Google Scholar 

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

  • Bratko, I. and Dzeroski, S. 1995. Engineering Applications of ILP. New Generation Computing, 13:313–333.

    Google Scholar 

  • Cendrowska, J. 1987. PRIS: An algorithm for inducing modular rules. International Journal of Man–Machines Studies, 27:349–370.

    Google Scholar 

  • Cox, B. 1987. Object Oriented Programming. An Evolutionary Approach. Reading, MA: Addison Wesley.

    Google Scholar 

  • Cuena, J. (Ed.) 1993. Knowledge–Oriented Software Design. Amsterdam, North Holland.

    Google Scholar 

  • Dershowitz, N. and Reddy, U.S. 1993. Deductive and inductive synthesis of equational programs. Journal of Symbolic Computation, 15:467–494.

    Google Scholar 

  • Ernis, R. 1968. Enumerative induction and best explanation, The Journal of Philosophy, 65(18):523–529.

    Google Scholar 

  • 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 

  • Flach, P.A. and Kakas, A.C. (Eds.) 2000. Abduction and Induction: Essays on their Relation and Integration. Dordrecht: Kluwer Academic Publishers.

    Google Scholar 

  • 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 

  • Gold, E.M. 1967. Language Identification in the Limit. Inform and Control, 10:447–474.

    Google Scholar 

  • Goldberg, D.E. 1994. Genetic and evolutionary algorithms come of age. Comm. of the ACM, 37(3):113–119.

    Google Scholar 

  • Guida, G. and Tasso, C. 1994. Design and development of knowledge–based systems. New York: John Wiley & Sons.

    Google Scholar 

  • Harman, G. 1965. The inference to the best explanation. Philosophical Review, 74:88–95.

    Google Scholar 

  • Hempel, C.G. 1965. Aspects of Scientific Explanation. New York, N.Y.: The Free Press.

    Google Scholar 

  • Hernández–Orallo, J. 2000. Constructive reinforcement learning, International Journal of Intelligent Systems, 15(3):241–264.

    Google Scholar 

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

  • 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 

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

  • Humphrey, W.S. 1990. Managing the Software Process. London: Addison–Wesley.

    Google Scholar 

  • Jones, N.D., Gomard, C.K., and Sestoft, P. 1993. Partial Evaluation and Automatic Program Generation. Englewood Cliffs, N.J.: Prentice Hall.

    Google Scholar 

  • Kaelbling, L., Littman, M., and Moore, A. 1996. Reinforcement earning: A survey. Journal of Artificial Intelligence Research, 4:237–285.

    Google Scholar 

  • Kakas, A.C., Kowalski, R.A., and Toni, F. 1992. Abductive logic programming. J. of Logic and Computation, 2(6):719–770.

    Google Scholar 

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

  • Kuhn, T.S. 1970. The Structure of Scientific Revolutions. Chicago: University of Chicago.

    Google Scholar 

  • Kuvaja, P. 1994. Software Process Assessment and Improvement: The Bootstrap Approach. Blackwell. Cambridge, MA.

    Google Scholar 

  • Lavrac, N. 1998. ILP. The next years. In JICSLP '98 CompulogNet Meeting on Computational Logic and Machine Learning, Lloyd, editor.

  • Lavrac, N. and Dzeroski, S. 1994. Inductive Logic Programming: Techniques and Applications. Chichester: Ellis Horwood.

    Google Scholar 

  • Li, M. and Vitányi, P. 1997. An Introduction to Kolmogorov Complexity and its Applications. 2nd ed. New York: Springer.

    Google Scholar 

  • Lieberherr, K.J. 1996. Adaptive Object–Oriented Software: The Demeter Method with Propagation Patterns, Boston: PWS Publishing Company.

    Google Scholar 

  • Lieberman, H. (Guest editor) 2000. Programming by example. Special Issue. Comm. of the ACM, 43(3):73–114.

  • 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 

  • Mitchell, T.M. 1997. Machine Learning. Singapore: McGraw–Hill International Editions.

    Google Scholar 

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

  • Muggleton, S. 1991. Inductive logic programming. New Generation Computing, 8(4):295–318.

    Google Scholar 

  • Muggleton, S. and De Raedt, L. 1994. Inductive logic programming—theory and methods. Journal of Logic Programming, 19–20:629–679.

    Google Scholar 

  • Muggleton, S. and Michie, D. 1996. Machine intelligibiity and the duality principle. British Telecom Technology Journal http://www.cs.york.ac.uk/mlg/. 14(4):15–23.

    Google Scholar 

  • Muggleton, S. and Page, C.D. 1999. A learnability model for universal representations. Technical Report PRG–TR–3–99, Oxford University Computing. Lab. http://www.cs.york.ac.uk/mlg/, submitted.

  • Natarajan, B.K. 1991. Machine Learning: A Theoretical Approach. Morgan Kaufmann.

  • 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 

  • Olson, R. 1995. Inductive functional programming using incremental program transformation. Artificial Intelligence, 74(1):55–81.

    Google Scholar 

  • Partridge, D. 1997. The case for inductive programming. IEEE Computer, 30(1):36–41.

    Google Scholar 

  • Pettorossi, A. and Proietti, M. 1996a. Rules and strategies for transforming functional and logic programs. ACM Computing Surveys, 28(2):360–414.

    Google Scholar 

  • Pettorossi, A. and Proietti, M., 1996b. Developing correct and efficient logic programs by transformation. Knowledge Engineering Review, 11(4):347–360.

    Google Scholar 

  • Popper, K.R. 1968. Conjectures and Refutations: The Growth of Scientific Knowledge. New York: Basic Books.

    Google Scholar 

  • Pressman, R.S. 1997. Software Engineering: A Practitioner's Approach. New York: McGraw–Hill.

    Google Scholar 

  • 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 

  • 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 

  • 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 

  • Rissanen, J. 1978. Modelling by the shortest data description. Automatica–J.IFAC, 14:465–471.

    Google Scholar 

  • 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 

  • Rumbaugh, J. 1994. Getting started: Using use cases to capture requirements. J. Object–Oriented Programming.

  • 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 

  • Scacchi, W. 1991. Understanding software productivity: Toward a knowledge–based approach. Int. J. Software Eng. and Knowledge Eng., 1:293–320.

    Google Scholar 

  • Shoham, Y. 1993. Agent–oriented Programming. Artificial Intelligence, 60(1):51–92.

    Google Scholar 

  • Shrager, J. and Langley, P. 1990. Computational Models of Scientific Discovery and Theory Formation. San Francisco: Morgan Kaufman.

    Google Scholar 

  • Solomonoff, R.J. 1964. A formal theory of inductive inference. Inf. Control, 7(1–22):224–254.

    Google Scholar 

  • Sutton, R.S. 1992. Special issue on reinforcement learning. Machine Learning, 8(3–4) May.

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

  • Thagard, P. 1989. Explanatory coherence, The Behavioural and Brain Sciences, 12(3):435–502.

    Google Scholar 

  • Valiant, L. 1984. A theory of the learnable. Communication of the ACM, 27(11):1134–1142.

    Google Scholar 

  • Wegner, P. 1998. Interactive Foundations of Computer. Theoretical Computer Science, 192(2):315–351.

    Google Scholar 

  • Whewell, W. 1847. The Philosophy of the Inductive Sciences. New York: Johnson Reprint Corp.

    Google Scholar 

  • 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 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hernández-Orallo, J., José Ramírez-Quintana, M. Predictive Software. Automated Software Engineering 8, 139–166 (2001). https://doi.org/10.1023/A:1008789422954

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008789422954

Navigation