Predictive Techniques in Software Engineering
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...
- 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
- 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
- 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
- Fenton, N. E., & Pfleeger, S. L. (1998). Software metrics: A rigorous and practical approach (2nd ed.). Boston: PWS.Google Scholar
- 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
- 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
- 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
- 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
- Pfleeger, S. L., & Atlee J. M. (2003). Software engineering: Theory and practice. Upper Saddle River, NJ: Prentice-Hall.Google Scholar
- 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
- 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
- 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
- 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