Machine Learning Applications In Software Engineering

Software design and development are increasingly becoming a complex process that relies critically on knowledge and expertise from many areas. Being a creative process on the part of the designer, the quality and efficiency of software design are the result of accumulated learning and practicing experience. To capitalize the investment by many designers over the years, it is highly desirable to retain the software design knowledge for future use. This chapter is concerned with the issue of how to capture, manage and reuse software design knowledge through some ML methods. In the two applications in this area, a single ML method, CBR, has been utilized. Table 28 indicates the current state-of-the-practice in this application area.
| NN | IBL CBR | DT | GA | GP | ILP | EBL | CL | BL | AL | IAL | RL | EL | SVM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manage Software Development Knowledge | ? | |||||||||||||
| Software Process Knowledge | ? |
In this chapter, we include one paper by Henninger [64]. The work deals with a CBR based method for collecting and managing software development knowledge as it evolves in an organizational context. The approach emphasizes on accommodating dynamic and situation-specific software development knowledge through cases. A prototype tool was developed that has two main information containers: cases that contain information about some problem solving experience (from project development issues to source...