Methodological Support for Knowledge Based Engineering Application Development

Knowledge Based Engineering (KBE) applications reduce the amount of repetitive work and allowmore time for innovative design as engineering knowledge is translated into application code. The problem is that these KBE applications are non­transparent and are perceived as a black box as they generate an output from some input, but it is unclear how they came to their conclusion. One of the well known KBE development methodologies, MOKA, has proposed solutions to structure knowledge that have proven to have a positive impact on the development of KBE applications. However, knowledge structured with MOKA is disconnected from the application code, making it difficult to trace how knowledge has been implemented which decreases the transparency of KBE applications. Moreover, knowledge seems to not be modelled at all, enforcing the black box perception. A methodology like MOKA is not being used due to one of the assumptions that a domain expert, who owns the knowledge, is a different person than the developer that develops the application. This requires a specialist called a knowledge engineer, which many companies do not have. This specialist can translate the knowledge from the domain expert into models that can be understood by developers. A field study showed that in contrast to the assumption made by MOKA, the domain expert is often also the developer. This opens up possibilities for a new methodology that bypasses the necessity of these specialists. This in combination with the original motivation to improve the transparency of KBE application by improving the traceability of knowledge into application code made it possible to formulate the research question of this thesis: to what extent can a methodology to structure knowledge improve the traceability of knowledge onto KBE application code without the need of specialised knowledge engineers? An ontology called the Traceability Model (TM) has been developed that comprises two ontologies: a Knowledge Ontology and a ParaPy Ontology. The Knowledge Ontology defines different classes of Knowledge Forms (KF) that each capture a different aspect of knowledge: e.g. product hierarchy, design steps, restrictions. A KF has pre­defined fields that must be filled in by a domain expert, and it can be related to other KFs to create models. The ParaPy Ontology defines the different Code Objects (CO) that can be found in ParaPy application code, such as Classes and Inputs. The TM explains how knowledge connects to application code by defining a connection between the Knowledge Ontology and the ParaPy Ontology. This enables the traceability of knowledge into application code. Furthermore, a platform called the Knowledge Portal (KP) has been developed that enables the creation of KFs, automatically parses application code into COs, and allows users to connect KFs to COs. It also automatically generates several knowledge representations to help a user understand the knowledge that has been captured. This platform assists domain experts to structure knowledge and helps to improve the transparency of KBE applications. To test the proposed solutions, two experiments have been performed. The first experiment tested whether participants were better prepared to develop application code using the KP, while the second experiment tested whether participants were better able to verify whether a developed application complies to the requirements. Results of the first experiment shows that developers are better prepared to develop application code in a collaborative environment as they developed the application twice as fast and with less errors using the KP compared to without. The results of the second experiments shows that projects leads are twice as more likely to correctly assess whether the KBE application complies to requirements using the KP compared to without, as they have a better understanding of how and where knowledge is implemented in application code. From this research, it can be concluded that the traceability of knowledge into application code can be established by defining different classes of KFs and their relation to different types of COs. Moreover, the KP successfully implements the TM to explain knowledge embedded in application code and to help participants understand the knowledge captured, this can be concluded based on the results of the experiments. The experiments further show the importance of modelling knowledge and enabling a connection between knowledge and code, as the transparency improves greatly. However, another experiment is needed to test whether knowledge can actually be structured without the necessity of knowledge engineers.