Encyclopedia of Machine Learning

2010 Edition
| Editors: Claude Sammut, Geoffrey I. Webb

Predictive Techniques in Software Engineering

  • Jelber Sayyad Shirabad
Reference work entry
DOI: https://doi.org/10.1007/978-0-387-30164-8_661



Software engineering (SE) is a knowledge- and decision-intensive activity. From the initial stages of the software life cycle (i.e., requirement analysis), to the later stage of testing the system, and finally maintaining the software through its operational life, decisions need to be made which impact both its success and failure. For instance, during project planning one needs to be able to forecast or predict the required resources to build the system. At the later stages such as testing or maintenance it is desirable to know which parts of the system may be impacted by a change, or are more risky or will require more intensive testing.

The process of developing software can potentially create a large amount of data and domain knowledge. The nature of the data, of course, depends on the phase in which the data were generated. During the requirement analysis, this data most times is manifested in the form of documentations. As the...

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

Recommended Reading

  1. Briand, L., El Emam, K., Surmann, D., & Wieczorek, I. (1999). An assessment and comparison of common software cost estimation modeling techniques. In Proceedings of 21st international conference on software engineering (pp. 313–322).Google Scholar
  2. Cohen, W., & Devanbu, P. (1999). Automatically exploring hypotheses about fault prediction: A comparative study of inductive logic programming methods. International Journal of Software Engineering and Knowledge Engineering, 9(5), 519–546.CrossRefGoogle Scholar
  3. Dolado, J. J. (2000). A validation of the component-based method for software size estimation. IEEE Transactions on Software Engineering, 26(10), 1006–1021.CrossRefGoogle Scholar
  4. El Emam, K., Benlarbi, S., Goel, N., & Rai, S. (2001). Comparing case-based reasoning classifiers for predicting high risk software components. Journal of Systems and Software, 55(3), 301–320.CrossRefGoogle Scholar
  5. Esteva, J. C. (1990). Learning to recognize reusable software modules using an inductive classification system. In Proceedings of the fifth Jerusalem conference on information technology (pp. 278–285).Google Scholar
  6. Evett, M., & Khoshgoftar, T. (1998). GP-based software quality prediction. In Proceedings of the third annual conference on genetic programming (pp. 60–65).Google Scholar
  7. Fenton, N. E., & Pfleeger, S. L. (1998). Software metrics: A rigorous and practical approach (2nd ed.). Boston: PWS.Google Scholar
  8. Fenton, N., & Neil, M. (1999). A critique of software defect prediction models. IEEE Transactions on Software Engineering, 25(5), 675–689.CrossRefGoogle Scholar
  9. Ganek, A. G., & Corbi T. A. (2003). The dawning of autonomic computing era. IBM Systems Journal, 42(1), 5–18.CrossRefGoogle Scholar
  10. Grosser, D., Sahraoui, H. A., & Valtchev, P. (2002). Predicting software stability using case-based reasoning. In Proceedings of 17th IEEE international conference on automated software engineering (ASE) (pp. 295–298).Google Scholar
  11. Khoshgoftaar, T., Allen, E., Hudepohl, J., & Aud, S. (1997). Applications of neural networks to software quality modeling of a very large telecommunications system. IEEE Transactions on Neural Networks, 8(4), 902–909.CrossRefGoogle Scholar
  12. Ling, C., Sheng, V., Bruckhaus, T., & Madhavji, N. (2006). Maximum profit mining and its application in software development. In Proceedings of the 12th ACM international conference on knowledge discovery and data mining (SIGKDD) (pp. 929–934).Google Scholar
  13. Mao, Y., Sahraoui, H., & Lounis, H. (1998). Reusability hypothesis verification using machine learning techniques: A case study. In Proceedings of the 13th IEEE international conference on automated software engineering (pp. 84–93).Google Scholar
  14. Oliveira, A. (2006). Estimation of software project effort with support vector regression. Neurocomputing, 69(13–15), 1749–1753.CrossRefGoogle Scholar
  15. Padberg, F., Ragg, T., & Schoknecht, R. (2004). Using machine learning for estimating the defect content after an inspection. IEEE Transactions on Software Engineering, 30(1), 17–28.CrossRefGoogle Scholar
  16. Pai, P. F., & Hong, W. C. (2006). Software reliability forecasting by support vector machines with simulated annealing algorithms. Journal of Systems and Software, 79(6), 747–755.CrossRefGoogle Scholar
  17. Pendharkar, P. C. (2004). An exploratory study of object-oriented software component size determinants and the application of regression tree forecasting models. Information and Management, 42(1), 61–73.Google Scholar
  18. Pfleeger, S. L., & Atlee J. M. (2003). Software engineering: Theory and practice. Upper Saddle River, NJ: Prentice-Hall.Google Scholar
  19. Quah, T. S., & Thwin, M. M. T. (2003). Application of neural networks for software quality prediction using object-oriented metrics. In Proceedings of international conference on software maintenance (pp. 22–26).Google Scholar
  20. Regolin, E. N., de Souza, G. A., Pozo, A. R. T., & Vergilio, S. R. (2003). Exploring machine learning techniques for software size estimation. In Proceedings of the 23rd international conference of the Chilean computer science society (SCCC) (pp. 130–136).Google Scholar
  21. Sayyad Shirabad, J., Lethbridge, T. C., & Matwin, S. (2007). Modeling relevance relations using machine learning techniques. In J. Tsai & D. Zhang (Eds.), Advances in machine learning applications in software engineering (pp. 168–207). IGI.Google Scholar
  22. Seliya, N. & Khoshgoftaar, T. M. (2007). Software quality estimation with limited fault data: a semi-supervised learning perspective. Software Quality Journal, 15(3), 327–344.CrossRefGoogle Scholar
  23. Shepperd, M., & Schofield, C. (1997). Estimating software project effort using analogies. IEEE Transactions on Software Engineering, 23(11), 736–743.CrossRefGoogle Scholar
  24. Sitte, R. (1999). Comparison of software-reliability-growth predictions: neural networks vs parametric-recalibration. IEEE Transactions on Reliability, 48(3), 285–291.CrossRefGoogle Scholar
  25. Xing, F., Guo, P., & Lyu, M. R. (2005). A novel method for early software quality prediction based on support vector machine. In Proceedings of IEEE international conference on software reliability engineering (pp. 213–222).Google Scholar
  26. Zhang, Du., & Tsai, J. P. (2003). Machine learning and software engineering. Software Quality Journal, 11(2), 87–119.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Jelber Sayyad Shirabad
    • 1
  1. 1.University of OttawaOttawaCanada