Software as Learning: Quality Factors and Life-Cycle Revised
Authors
José Hernández-Orallo and Mª José
Ramírez-Quintana
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..
Keywords
Software Development Analogy, Machine Learning, Software Cycles, Philosophy
of Science.