Introduction to the Software Engineering Ontology Sources of the Software Engineering Knowledge The software engineering knowledge comes from two sources: the software engineering body of knowledge (http://www.swebok.org/) the software engineering text of Ian Sommerville (www.cs.st-andrews.ac.uk/~ifs/Books/SE7/index.html). An abstract view of representing the software engineering knowledge is shown below. | The whole set of software engineering concepts representing generic software engineering knowledge is captured as domain knowledge in ontology. A particular project or a particular software development probably uses only part of the whole sets of software engineering concepts. For example, if a project uses purely object-oriented methodology, then the concept of a data flow diagram may not be necessarily included. Instead, it includes concepts like class diagram, activity diagram and so on. The specific software engineering concepts used for the particular software development project representing specific software engineering knowledge are captured as sub domain knowledge in ontology. The generic software engineering knowledge represents all software engineering concepts, while specific software engineering knowledge represents some concepts of software engineering for the particular project needs. In each project, there exists project information or actual data including project agreement and project understanding. The project information especially meets a particular project need and is needed with the software engineering knowledge to define instance knowledge in ontology. Note that the domain knowledge is separate from instance knowledge. The instance knowledge varies depending on its use for a particular project. The domain knowledge is quite definite, while the instance knowledge is particular to a project. Once all domain knowledge, sub domain knowledge and instance knowledge are captured in ontology, it is available for sharing among software engineers through the Internet. All team members, regardless of where they are, can query the semantic linked project information and use it as the common communication and knowledge basis of raising discussion matters, questions, analysing problems, proposing revisions or designing solutions, etc. |
Software Engineering Ontology Instantiations Management (back to Top) 
Software engineering knowledge is represented in the software engineering ontology whose instantiations, which are undergoing evolution, need a good management system. Software engineering ontology instantiations signify project information which is shared and has evolved to reflect project development, changes in the software requirements or in the design process, to incorporate additional functionality to systems or to allow incremental improvement, etc. In a large volume of updated project information, systematic management is of importance.
Software engineering ontology instantiations are derived as a result of populating software engineering project information and are referred to as ontology instances of ontology classes. Instantiations are also known as instance knowledge of the software engineering ontology. In other words, once the software engineering ontology is designed and created, it needs to be populated with data relating to the project. This process is usually accomplished by mapping various project data and project agreement to the concepts defined in the software engineering ontology. Once mappings have been created, project information, including project data, project agreement, and project understanding, is in a semantically rich form and management is needed to maintain the instantiations.
We have developed systems to facilitate software engineering ontology instantiations management. Management tasks for software engineering ontology are assigned to the systems containing a number of sub systems as shown in the above picture. In detail, the functionalities of each system can be observed as in the picture below. The safeguard system functionalities include system authentication, access level allocation, solution proposal management and monitoring of the user activities. Functionalities in the ontology system include navigating, querying and manipulating software engineering ontology. For the decision maker system, a method of reputation based voting is used in the system.
The systems for software engineering knowledge management will be available online soon!! Software engineering ontology facilitates the communication framework and allows knowledge sharing through platforms. This is how the man-machine system interfaces particularly works. The man-machine interactions were designed and developed into four platforms as shown in the picture: Knowledge Navigation Platform, Question and Issue Platform, Suggestion and Proposal Platform and Solution Decision Platform. The Knowledge Navigation Platform, or Navigation Platform for short, is basically for all team members to navigate or query shared domain knowledge and instance knowledge. Anyone can view domain knowledge for classification of certain concepts and can view instance knowledge for clarification of project agreements or understandings. However, permission is needed in the Navigation Platform if team members want to make changes to instance knowledge. Authorised members can make changes from the Navigation Platform. Unauthorised members can propose changes as an issue. The issue will then be processed through the Question Platform, Suggestion Platform, and Solution Platform depending on how substantial the changes are (minor or major changes).
The Question and Issue Platform, or Question Platform for short, is for raising difficulties encountered in the software development or issues which occurred within the team. A member at any one site logs a project matter through the Question Platform. Basically issues raised would be like comments or debates over project data and project agreement. After all, a question made needs to be elucidated by clarifying the specific project data he/she wants to discuss. Technically, the project data here in the thesis are known as instance knowledge. As a member progresses towards clarifying the issue, the retrieval of relevant instance knowledge by the platform assists other members to have a clear understanding of the issue as well as assisting them to recognise the instance knowledge they have been discussing. This is particularly useful when team members work on many projects simultaneously.
The Suggestion and Proposal Platform, or Suggestion Platform for short, is as its name suggests, for all team members to propose the potential solutions of the discussion or issue proposed in the Question Platform. Thus, this platform mainly involves potential modification of instance knowledge. If any potential modification has to be made, members need to follow the software engineering knowledge defined in the software engineering ontology in order to have a consistent view and same understanding. In the Suggestion Platform, all proposed solutions are initially pending.
After a certain time of gathering some feedback from team members, the decision maker system in the Solution Decision Platform, or Solution Platform for short, later determines what action is needed or which solution will be updated. The actual updating process is also carried out through the Solution Decision platform. A final solution of the discussion is revealed by the Solution Platform. The software engineering ontology gets updated in the ontology repository at the stage.
The issue raised plays an important role in the multi-site distributed software development. Issues are distinguished as either minor or major problems. Access control in the Navigation Platform determines whether an issue is major or minor. Being a major issue, it needs brainstorming through the Suggestion Platform. A minor issue may mean (daily) basic update of instance knowledge by the member in team who has got permission to do so. The above picture shows a flow chart of the processes when an issue arises.(back to Top)
|