Software as Learning: Quality Factors and Life-Cycle Revised

  • José Hernández-Orallo
  • Ma José Ramírez-Quintana
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1783)


In this paper Software Development (SD) is understood explicitly as a learning process, which relies much more on induction than deduction, with the main goal of being predictive to requirements evolution. Concretely, classical processes from philosophy of science and machine learning such as hypothesis generation, refinement, confirmation and revision have their counterpart in requirement engineering, program construction, validation and modification in SD, respectively. Consequently, we have investigated the appropriateness for software modelling of the most important paradigms of modelling selection in machine learning. Under the notion of incremental learning, we introduce a new factor, predictiveness, as the ability to foresee future changes in the specification, thereby reducing the number of revisions. As a result, other quality factors are revised. Finally, a predictive software life cycle is outlined as an incremental learning session, which may or may not be automated.


Quality Factor Software Engineering Logic Program Scientific Theory Incremental Learning 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Alferes, J.J.; Leite, J.A.; Pereira, L.M.; Przymusinska, H.: Przymusinski, T.C. “Dynamic Logic Programming”, in Freire et al. (eds) Proc. Joint Conf. of Declarative Prog., pp. 393–408, 1998.Google Scholar
  2. 2.
    Alpuente, M.; Falaschi, M.; Vidal, G. “Partial Evaluation of Functional Logic Programs” ACM Trans. on Programming Languages and Systems, 20(4):768–844, 1998.CrossRefGoogle Scholar
  3. 3.
    Angluin, D. “Queries and concept learning” Machine Learning 2, No. 4, 319–342, 1988.Google Scholar
  4. 4.
    Banerji, R.B. “Some insights into automatic prog. using a pattern recognition viewpoint” in Biermann et al. (eds.): Automatic program construction techniques, Macmillan, 1984.Google Scholar
  5. 5.
    Barron, A.; Rissanen, J.; Yu, B. “The Minimum Description Length Principle in Coding and Modeling” IEEE Transactions on Information Theory, Vol. 44, No. 6, 2743–2760, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Basili, V.R. “The Experimental Paradigm in Software Engineering” in Rombach et al. (eds.) Experimental Software Engineering Issues, LNCS no. 706, Springer-Verlag, 1993.Google Scholar
  7. 7.
    Bergadano, F.; Gunetti, D. Inductive Logic Programming, The MIT Press, 1996Google Scholar
  8. 8.
    Berry, D.M.; Lawrence, B. “Requirements Engineering” IEEE Software, 26–29, Mar. 1998.Google Scholar
  9. 9.
    Botilier, C.; Becher, V. “Abduction as belief revision” Art. Intelligence 77, 43–94, 1995.CrossRefGoogle Scholar
  10. 10.
    Cohen, W. “Recovering Software Specifications with Inductive Logic Programming” in K. Ford, (ed.), Proc. of the AAAI Conference, pages 142–148, Seattle, WA, 1994.Google Scholar
  11. 11.
    Colburn, T.R. “Program Verification, Defeasible Reasoning, and Two Views of Computer Science” in Minds and Machines 1, 97–116, 1991.CrossRefGoogle Scholar
  12. 12.
    Davis, M. J. “Adaptable, Reusable Code” Symp. on Sw Reusability, Seattle, apr. 1995, ACM.Google Scholar
  13. 13.
    De Millo, R.; Lipton, R.J, Perlis, A.J. “Social Processes and Proofs of Theorems and Programs” Communications of the ACM 22(5), 271–280, 1979.CrossRefGoogle Scholar
  14. 14.
    Dietterich, T.G.; Flann, N.S. “Explanation-Based Learning and Reinforcement Learning: A Unified View” Machine Learning, 28, 169–210, 1997.CrossRefGoogle Scholar
  15. 15.
    Dijkstra, E.W. “Notes on Structured Programming” in O. Dahl et al. (eds.) Structured Programming, New York, Academic Press 1972.Google Scholar
  16. 16.
    Ferri, C.; Hernández-Orallo, J.; Ramírez-Quintana, M.J. “The FLIP System. From Theory to Implementation”, submitted to Machine Learning, Special Issue on ILP’99.Google Scholar
  17. 17.
    Fetzer, J.H. “Philosophical Aspects of Program Verification” Minds & Machines 1, 197–216, 1991.CrossRefMathSciNetGoogle Scholar
  18. 18.
    Flener, P. and Yilmaz, S. “Inductive synthesis of recursive logic programs: achievements and prospects”, The Journal of Logic Programming, 41, 141–195, 1999.zbMATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Hernández-Orallo, J.; García-Varea, I. “Explanatory and Creative Alternatives to the MDL Principle”, Foundations of Science, Kluwer, to appear.Google Scholar
  20. 20.
    Hernández-Orallo, J.; Ramirez-Quintana, M.J. “Induction of Functional Logic Programs”, Lloyd (ed.) JICSLP’98 CompulogNet Meeting on Computational Logic and ML, 49–55, 1998.Google Scholar
  21. 21.
    Hernández-Orallo, J.; Ramírez-Quintana, M.J. “A Strong Complete Schema for Inductive Functional Logic Programming”, in Flach, P.; Dzeroski, S. (eds.) Inductive Logic Programming’99 (ILP’99), in LNAI 1634, pp. 116–127, Springer-Verlag 1999.Google Scholar
  22. 22.
    Hernández-Orallo, J.; Ramírez-Quintana, M.J. “Predictive Software”, submitted to Automated Software Engineering Journal, Special Issue on Inductive Programming.Google Scholar
  23. 23.
    Hernández-Orallo, J. “Constructive Reinforcement Learning”, International Journal of Intelligent Systems, Wiley, to appear.Google Scholar
  24. 24.
    Hoare, C.A.R. “An Axiomatic Basis for Computer Programming” Communications of the ACM 12, 576–580, 583, 1969.zbMATHCrossRefGoogle Scholar
  25. 25.
    IEEE Std. 982.1-1988 “IEEE Standard Dictionary of Measures to Produce Reliable Software” The IEEE, June, 1988.Google Scholar
  26. 26.
    IEEE/ANSI Std. 610.12 “IEEE Standard Glossary of Software Engineering Terminology” The IEEE, February, 1991.Google Scholar
  27. 27.
    ISO/IEC 9126, “Information technology. Software Product Evaluation. Quality characteristics and guidelines for their use” Intl. Org. for Standardization and Intl. Electrotechnical Commission, 1991.Google Scholar
  28. 28.
    Lieberherr, K.J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns, PWS Publishing Company, Boston, 1996.Google Scholar
  29. 29.
    López de Mántaras, R.; Armengol, E. “Machine Learning from examples: Inductive and Lazy Methods” Data & Knowledge Engineering 25, 99–123, 1998.zbMATHCrossRefGoogle Scholar
  30. 30.
    Maes, P. “Intelligent Software” Scientific American 273(3), September, 1995.Google Scholar
  31. 31.
    Mitchell, Tom M., Machine Learning, McGraw-Hill International Editions, 1997.Google Scholar
  32. 32.
    Muggleton, S.; De Raedt L. “Inductive Logic Programming-theory and methods” Journal of Logic Programming, 19–20:629–679, 1994.CrossRefGoogle Scholar
  33. 33.
    Partridge, D. “The Case for Inductive Programming” IEEE Computer, pp. 36–41, Jan 1997.Google Scholar
  34. 34.
    Pettorossi, A.; Proietti, M., “Rules and Strategies for Transforming Functional and Logic Programs” ACM Computing Surveys, Vol. 28, no. 2, June 1996.Google Scholar
  35. 35.
    Pettorossi, A.; Proietti, M., “Developing Correct and Efficient Logic Programs by Transformation” Knowledge Engineering Review, Vol. 11, No. 4, December 1996.Google Scholar
  36. 36.
    Popper, K.R., Conjectures and Refutations: The Growth of Scientific Knowledge Basic Books, New York 1962, Harper, New York, 1965, 1968.Google Scholar
  37. 37.
    Rumbaugh, J.; Blaha, M.; Premerlani, W.; Eddy, F.; Lorensen, W., Object-Oriented Modeling and Design, Prentice Hall 1991.Google Scholar
  38. 38.
    Scherlis, W.L.; Scott, D.S. “First Steps Towards Inferential Programming” in R.E.A. Mason (ed.) Information Processing 83, pp-199–212, 1983.Google Scholar
  39. 39.
    Shrager, J.; Langley, P., Computational Models of Scientific Discovery and Theory Formation, Morgan Kaufmman, 1990.Google Scholar
  40. 40.
    Srinivasan, K.; Fisher, D. “Machine Learning Approaches to Estimating Software Development Effort” IEEE Transactions on Software Engineering, Vol. 21, No. 2, Feb. 1995.Google Scholar
  41. 41.
    Thagard, P. “Explanatory coherence”, Behavioural & Brain Sciences, 12(3), 435–502, 1989.CrossRefGoogle Scholar
  42. 42.
    Wolff, J.G. “Towards a new concept of software”, Software Engineering J., IEE, Jan. 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • José Hernández-Orallo
    • 1
  • Ma José Ramírez-Quintana
    • 1
  1. 1.Dep. de Sistemes Informàtics i ComputacióUniversitat Politècnica de ValènciaValènciaSpain

Personalised recommendations