My research centers on information representation languages, such as ontologies, and other modeling languages, such as the UML or Entity-Relationship Diagrams. Under the headings of ontology-driven information systems (N. Guarino) or model-driven architecture (OMG), there is an increasing dependence on modeling languages in the development of software. At the same time, modeling languages are less and less tied to software description, and increasingly intended to capture domain knowledge.
Within this area of modeling languages, my interests focus on their semantics. Rather than using "traditional" software engineering semantics, such as operational, logical (proof-theoretical), and mathematical (fix-point) semantics, the application to domain descriptions makes it important to understand what the language symbols mean to a reader or writer of models in that language.
The importance of my work lies in its potential impact on software engineering, whether traditional or in the form of knowledge-based systems. While the formal properties of a language are important in their own right, the language ultimately has to convey information from humans to a machine or between humans. As a consequence, the human use of the language is a critical aspect in improving the effectiveness and efficiency of information capture and transfer. Misunderstandings or misinterpretations of software design models have serious, and expensive, consequences for software engineering teams.
Within this general area of research, my dissertation research examined UML and object-oriented languages in general in terms of an ontology claimed to represent fundamental human concepts. Based on this, I have developed a set of modelling rules that are intended to ensure meaningful UML models. These rules have been applied in a case study setting and experimentally tested. They were found to be applicable, useful, and beneficial (Evermann & Wand, 2005, REJ). A subsequent experimental study shows quantifiable benefits of using these rules (Evermann & Wand, 2006, JCIS). A more in-depth examination of a single UML construct has shown it is feasible to use ontological constructs directly (Evermann, 2005, CAiSE). While my dissertation research employed an abstract, high-level ontology, the same process can be applied to more specific, domain ontologies to yield domain-specific modelling languages (Evermann & Wand, 2005, TSE).
A second stream of research makes more direct use of human cognitive concepts to inform the design of modelling languages. Arguing that natural language reflects the terms in which we think about the world, linguistic concepts may be used as an ontology, to analyse and assign semantics to modelling language constructs (Evermann, 2005, ISJ; Evermann, 2005, CAiSE Forum). Work is currently underway to evaluate the quality of modelling languages according to how well they represent human cognitive concepts. This is taking the form of several experimental studies.
A third specific area of research focuses on schema matching of database schemata, ontologies, or software engineering models. I am approaching this area from three different sides. First, on the conceptual side, I argue that unless the meaning of language elements is fully explicated, schema-matching research is hindered by ad-hoc assumptions (paper under review). Second, I am also currently working on a prototype to compare the applicability and usefulness of different theories of meanings to schema matching. Third, I have carried out two empirical investigations into how humans make matching decisions. These studies will show how human users assign meaning to language elements, and can inform research on matching heuristics and language design.
I am actively pursuing all three streams of research and papers are under review at various conferences and journals. As is evident from my publication outlets, I focus on high-quality journals such as IEEE TSE, and high-quality conferences (ER & CAiSE have an acceptance rate of approx. 10%).
As part of my work in these areas, I have become knowledgeable in related areas such as logic programming, constraint programming, description logics, aspect-oriented software engineering, agent-oriented software engineering, active databases, and others.
In my teaching, as well as in my research, I am very much "hands on". While the traditional lecture is an important tool to convey basic information, I believe that real knowledge can be gained only through application and problem solving. All my courses (systems analysis & design, internet-based application development, business-to-business e-commerce, etc.) have a strong component of applied work and project work.
My teaching philosophy is to provide challenges to students and offer assistance to overcome them. From my own experience as a student and researcher I know that accepting and then overcoming a challenge is a very rewarding and motivating experience. For example, I might cover basic principles of web-services in a course, but will refer students to relevant standards and other literature for their project, and provide tutors for specific questions. This pulling in of knowledge by students is more realistic in their future careers as software and systems developers, but very different from the pushing of knowledge to them that they may experience in other courses. As a consequence, some students found this quite challenging, but reflective feedback after they enter the workforce indicates that they appreciate the value of this type of teaching.
I believe that students first need to experience and work with basic principles. Then more advanced or managerial material can be covered. For example, in a course on web-development I would first require students as an exercise to invoke web-services with only a telnet client. Then, they may later use high-level toolkits for web-service deployments in their course projects. I believe this understanding of "how things work" at a basic level allows students to apply critical thinking skills and differentiate between the truly new and the merely repackaged.
I set high standards and have high expectations of my students. The difference between good and excellent course performance is the difference between competence and critical reflection. For example, while a competent student in a web-development class may be able to apply XML technologies to solve a particular problem, excellent performance would require critical reflection on the problem, the technology, or the solution.
In my courses, I value group work among students. While this has the associated problems of free-riding and other issues, group work is essential to develop communication, management, and teamwork skills. It is also required in today's workforce. To overcome the challenges of group work, I have used a number of pedagogical techniques, amongst them peer-rating of work, pair-programming (borrowed from eXtreme Programming practices), and development-by-contract (to allow semi-independent work).
I consider myself very fortunate that I've had the opportunity to combine aspects of my research and my teaching. Because research is increasingly specialized, it is difficult for research to be directly applicable to undergraduate (and sometimes also graduate) education. However, I believe it is always possible to find synergies. For example, in my system analysis and design courses, I emphasize the problem of meaning of modelling languages and encourage students to reflect critically on the meaning of the symbols they use. In my web-development classes, I employ XML technologies that I routinely use in my research. I would welcome the chance to develop courses on knowledge representation, description logics, and other advanced topics. However, as my current department does not offer courses at that level, there is little opportunity for a more direct involvement of research in teaching.
The one area where my research not only informs teaching, but also clearly my teaching informs my research is postgraduate education. I have been fortunate enough to teach a course on research methods in my department. This forces a reflection on what I do in my own research, the principles and methods I apply, and the type and validity of the knowledge I claim to create. I believe that such critical reflection is important not only for new researchers, but also for established researchers. Consequently, I get as much enjoyment and intellectual stimulation from this postgraduate course as my students do.
My interest in postgraduate education is also shown in my PhD supervision (currently two, with a third beginning in January 2007), and my involvement in the doctoral consortium of the CAiSE conference on information systems engineering. There, I have been active as a student participant in 2002 and experienced the value of these forums for the development of my research. I have volunteered to organize the event in 2003, and have been invited as faculty member in 2004, 2005, and 2006. It has been great pleasure giving back to young researchers and the community at large.
Feel free to email me at joerg.evermann@mcs.vuw.ac.nz for further information.