COBRA: a hybrid method for software cost estimation, benchmarking, and risk assessment
Proceedings of the 20th international conference on Software engineering
Bayesian Analysis of Empirical Software Engineering Cost Models
IEEE Transactions on Software Engineering
A Comprehensive Evaluation of Capture-Recapture Models for Estimating Software Defect Content
IEEE Transactions on Software Engineering
Computational Intelligence in Software Engineering
Computational Intelligence in Software Engineering
Software Cost Estimation with Cocomo II with Cdrom
Software Cost Estimation with Cocomo II with Cdrom
Using genetic algorithms and coupling measures to devise optimal integration test orders
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
An Automated Framework for Structural Test-Data Generation
ASE '98 Proceedings of the 13th IEEE international conference on Automated software engineering
Assessing the Cost-Effectiveness of Inspections by Combining Project Data and Expert Opinion
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
An Ant Colony Optimization Approach to Test Sequence Generation for Statebased Software Testin
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
Hybrid Intelligence in Software Release Planning
International Journal of Hybrid Intelligent Systems
A systematic approach to automatically generate test scenarios from UML activity diagrams
ACST'07 Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology
Applying Evolutionary Computation Methods to Formal Testing and Model Checking
IWANN '09 Proceedings of the 10th International Work-Conference on Artificial Neural Networks: Part I: Bio-Inspired Systems: Computational and Ambient Intelligence
ReBEC: a method for capturing experience during software development projects
EKAW'10 Proceedings of the 17th international conference on Knowledge engineering and management by the masses
Structured testing using ant colony optimization
Proceedings of the First International Conference on Intelligent Interactive Technologies and Multimedia
Using anti-ant-like agents to generate test threads from the UML diagrams
TestCom'05 Proceedings of the 17th IFIP TC6/WG 6.1 international conference on Testing of Communicating Systems
Software coverage: a testing approach through ant colony optimization
SEMCCO'11 Proceedings of the Second international conference on Swarm, Evolutionary, and Memetic Computing - Volume Part I
An architectural model for software testing lesson learned systems
Information and Software Technology
Software Coverage Analysis: Black Box Approach Using ANT System
International Journal of Applied Evolutionary Computation
Knowledge-based approaches in software documentation: A systematic literature review
Information and Software Technology
Hi-index | 0.00 |
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.