Developing a defect ontology
A defect ontology defines a common vocabulary for software
practitioners who need to accurately share in this domain. Although initially,
the ‘sharing’ would be within the inspection context, again it is believed that
this ontology will be a wide range of applications in other software engineering
areas, such as quality control and measurement and defect prevention. The ontology
will include machine-interpretable definitions of fundamental concepts and the
relations that exist between them. Hence, it is believed that the development
of the ontology will have wide-ranging benefits, including:
· The sharing of common understanding
of the structure of defect information between practitioners and software agents: This
is to allow software agents to aggregate defect information from a large set of disparite
sources of defect-oriented information, provided that these sources utilize the common
ontology of defect terms.
· Enabling reuse of defect knowledge:
As stated above, many software engineering processes involve the representation and
manipulation of defect data. Hence, the proposed ontology here will find a large number
of applications.
· Making assumptions explicit:
Making all of the underlying implementation details explicit about defects allows
users to accurately reason about the processes, which either inject or remove
defects.
An ontology is a living, adapting, growing entity, as
the domain of the ontology changes so must the ontology itself to continue to
accurately reflect the domain. The implication of this is that much of the construction
and maintenance activities upon the ontology should be relatively automatic.
Given recent advances in Information retrieval and artificial intelligence this
desire is to a certain extent achievable. This project would plan to use much
of the excellent work on constructing generic ontologies.
Finally, the project plans to represent the defect ontology
in the ontology representation language (OIL), making it compatible with current
work of the construction of the semantic web and making further reasoning upon
the ontology by generic tools, such as FaCT possible.