Abstract
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.
This work has been partially supported by CICYT under grant TIC 98-0445-C03-C1.
Chapter PDF
Keywords
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.
References
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.
Alpuente, M.; Falaschi, M.; Vidal, G. “Partial Evaluation of Functional Logic Programs” ACM Trans. on Programming Languages and Systems, 20(4):768–844, 1998.
Angluin, D. “Queries and concept learning” Machine Learning 2, No. 4, 319–342, 1988.
Banerji, R.B. “Some insights into automatic prog. using a pattern recognition viewpoint” in Biermann et al. (eds.): Automatic program construction techniques, Macmillan, 1984.
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.
Basili, V.R. “The Experimental Paradigm in Software Engineering” in Rombach et al. (eds.) Experimental Software Engineering Issues, LNCS no. 706, Springer-Verlag, 1993.
Bergadano, F.; Gunetti, D. Inductive Logic Programming, The MIT Press, 1996
Berry, D.M.; Lawrence, B. “Requirements Engineering” IEEE Software, 26–29, Mar. 1998.
Botilier, C.; Becher, V. “Abduction as belief revision” Art. Intelligence 77, 43–94, 1995.
Cohen, W. “Recovering Software Specifications with Inductive Logic Programming” in K. Ford, (ed.), Proc. of the AAAI Conference, pages 142–148, Seattle, WA, 1994.
Colburn, T.R. “Program Verification, Defeasible Reasoning, and Two Views of Computer Science” in Minds and Machines 1, 97–116, 1991.
Davis, M. J. “Adaptable, Reusable Code” Symp. on Sw Reusability, Seattle, apr. 1995, ACM.
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.
Dietterich, T.G.; Flann, N.S. “Explanation-Based Learning and Reinforcement Learning: A Unified View” Machine Learning, 28, 169–210, 1997.
Dijkstra, E.W. “Notes on Structured Programming” in O. Dahl et al. (eds.) Structured Programming, New York, Academic Press 1972.
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.
Fetzer, J.H. “Philosophical Aspects of Program Verification” Minds & Machines 1, 197–216, 1991.
Flener, P. and Yilmaz, S. “Inductive synthesis of recursive logic programs: achievements and prospects”, The Journal of Logic Programming, 41, 141–195, 1999.
Hernández-Orallo, J.; García-Varea, I. “Explanatory and Creative Alternatives to the MDL Principle”, Foundations of Science, Kluwer, to appear.
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.
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.
Hernández-Orallo, J.; Ramírez-Quintana, M.J. “Predictive Software”, submitted to Automated Software Engineering Journal, Special Issue on Inductive Programming.
Hernández-Orallo, J. “Constructive Reinforcement Learning”, International Journal of Intelligent Systems, Wiley, to appear.
Hoare, C.A.R. “An Axiomatic Basis for Computer Programming” Communications of the ACM 12, 576–580, 583, 1969.
IEEE Std. 982.1-1988 “IEEE Standard Dictionary of Measures to Produce Reliable Software” The IEEE, June, 1988.
IEEE/ANSI Std. 610.12 “IEEE Standard Glossary of Software Engineering Terminology” The IEEE, February, 1991.
ISO/IEC 9126, “Information technology. Software Product Evaluation. Quality characteristics and guidelines for their use” Intl. Org. for Standardization and Intl. Electrotechnical Commission, 1991.
Lieberherr, K.J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns, PWS Publishing Company, Boston, 1996.
López de Mántaras, R.; Armengol, E. “Machine Learning from examples: Inductive and Lazy Methods” Data & Knowledge Engineering 25, 99–123, 1998.
Maes, P. “Intelligent Software” Scientific American 273(3), September, 1995.
Mitchell, Tom M., Machine Learning, McGraw-Hill International Editions, 1997.
Muggleton, S.; De Raedt L. “Inductive Logic Programming-theory and methods” Journal of Logic Programming, 19–20:629–679, 1994.
Partridge, D. “The Case for Inductive Programming” IEEE Computer, pp. 36–41, Jan 1997.
Pettorossi, A.; Proietti, M., “Rules and Strategies for Transforming Functional and Logic Programs” ACM Computing Surveys, Vol. 28, no. 2, June 1996.
Pettorossi, A.; Proietti, M., “Developing Correct and Efficient Logic Programs by Transformation” Knowledge Engineering Review, Vol. 11, No. 4, December 1996.
Popper, K.R., Conjectures and Refutations: The Growth of Scientific Knowledge Basic Books, New York 1962, Harper, New York, 1965, 1968.
Rumbaugh, J.; Blaha, M.; Premerlani, W.; Eddy, F.; Lorensen, W., Object-Oriented Modeling and Design, Prentice Hall 1991.
Scherlis, W.L.; Scott, D.S. “First Steps Towards Inferential Programming” in R.E.A. Mason (ed.) Information Processing 83, pp-199–212, 1983.
Shrager, J.; Langley, P., Computational Models of Scientific Discovery and Theory Formation, Morgan Kaufmman, 1990.
Srinivasan, K.; Fisher, D. “Machine Learning Approaches to Estimating Software Development Effort” IEEE Transactions on Software Engineering, Vol. 21, No. 2, Feb. 1995.
Thagard, P. “Explanatory coherence”, Behavioural & Brain Sciences, 12(3), 435–502, 1989.
Wolff, J.G. “Towards a new concept of software”, Software Engineering J., IEE, Jan. 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hernández-Orallo, J., Ramírez-Quintana, M.J. (2000). Software as Learning: Quality Factors and Life-Cycle Revised. In: Maibaum, T. (eds) Fundamental Approaches to Software Engineering. FASE 2000. Lecture Notes in Computer Science, vol 1783. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46428-X_11
Download citation
DOI: https://doi.org/10.1007/3-540-46428-X_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67261-6
Online ISBN: 978-3-540-46428-0
eBook Packages: Springer Book Archive