|
ABSTRACT
Software Engineering is not only a technical discipline of its own. It is also a problem domain where technologies coming from other disciplines are relevant and can play an important role. One important example is knowledge engineering, a term that I use in the broad sense to encompass artificial intelligence, computational intelligence, knowledge bases, data mining, and machine learning. I see a number of typical software development issues that can benefit from these disciplines and, for the sake of clarifying the discussion, I have divided them into four categories: (1) Planning, monitoring, and quality control of projects, (2) The quality and process improvement of software organizations, (3) Decision making support, (4) Automation.First, the planning, monitoring, and quality control of software development is typically based, unless it is entirely ad-hoc, on past project data and/or expert opinion. As discussed below, several techniques coming from machine learning, computational intelligence, and knowledge-based systems have shown to be useful in this context. Second, software organizations are inherently learning organizations, that need to improve, based on experience and project feedback, the way they develop software in changing and volatile environments. Large amounts of data, numerous documents, and other forms of information are typically gathered on projects. The question then becomes how to enable the intelligent storage and use of such information in future projects. Third, during the course of a project, software engineers and managers have to face important, complex decisions. They need decision models to support them, especially when project pressure is intense. Techniques originally developed for building risk models based on expert elicitation or optimization heuristics can play a key role in such a context. The last category of applications concerns automation. Many automation problems, such as test data generation, can be formulated as constraint solving problems. A number of metaheuristic algorithms can be adapted for that purpose and have shown to be practically usable and flexible to adjust to numerous situations.This paper discusses all the points above, identify open issues and future research directions, and provide some carefully selected, key pointers for further reading.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
V. Basili, G. Caldiera, D. Rombach "Experience Factory", Second edition of the Encyclopedia of Software Engineering, Wiley, (Editor: J. Marciniak).
|
| |
2
|
Barry W. Boehm , Clark , Horowitz , Brown , Reifer , Chulani , Ray Madachy , Bert Steece, Software Cost Estimation with Cocomo II with Cdrom, Prentice Hall PTR, Upper Saddle River, NJ, 2000
|
 |
3
|
|
| |
4
|
L. Briand, J. Wuest, "Empirical Studies of Quality Models in Object-Oriented Systems", Advances in Computers, Academic Press, 2002.
|
| |
5
|
Lionel C. Briand , Khaled El Emam , Frank Bomarius, COBRA: a hybrid method for software cost estimation, benchmarking, and risk assessment, Proceedings of the 20th international conference on Software engineering, p.390-399, April 19-25, 1998, Kyoto, Japan
|
| |
6
|
|
| |
7
|
|
| |
8
|
L. Briand, I. Wieczorek, "Resource Modeling in Software Engineering", Second edition of the Encyclopedia of Software Engineering, Wiley, (Editor: J. Marciniak).
|
| |
9
|
|
| |
10
|
C. Gresse von Wagenheim, K. Althoff, R. Barcia, "Goal-Oriented and Similarity-Based Retrieval of Software Engineering Experienceware", G. Ruhe, F. Bomarius (eds.), Learning Software Organizations - Methodology and Applications. Springer, 2000.
|
| |
11
|
B. Jones, Special Issue on Metaheuristic Algorithms in Software Engineering, Information and Software Technology, 43(14), 2001
|
| |
12
|
T. M. Khoshgoftaar, A. Pandya, D. Lanning, "Application of Neural Networks for Predicting Program Faults", Annals of Software Engineering, Vol. 1, 1995.
|
| |
13
|
|
| |
14
|
|
| |
15
|
C. Tautz, K. Althoff, M. Nick, "A Case-Based Reasoning Approach for Managing Qualitative Experience", Proc. of the 2nd Int. Conference on Case-Based Reasoning, LNAI 1266, Springer, 1997.
|
| |
16
|
|
|