Abstract
Because of the ever increasing size and complexity of software products, the quality of the developed software is directly correlated with the quality of the development processes. The quality of software is a combination of various aspects such as modifiability, changeability, reliability, maintainability, extensibility, expressiveness, testability, correctness, and computability. All these aspects have to be ensured by appropriate software processes, their description in the form of appropriate models, and the guidance within the software process.
Mission
The main objective is to create an ontology-driven software process guidance system for model-aware development processes that is able to support software engineers in their daily work. This essentially means helping them to keep track of the immense amount of software artefacts, like (UML-) models and program code, and supporting them with suggestions about what to do next in the development process. This, for instance, includes that design decisions have to be made comprehensible and traceable also ensuring the validity of the underlying software and architecture models.
Furthermore, MDA-based transformations have to be logged and configured appropriately in order to ensure the correct relationship between models and code. The realization of the ontology-driven process guidance system involves the following two main aspects:
- State-of-the-art software development processes for requirements analysis, design, implementation, and testing have to be assessed. These processes serve as control flow for the task support engine which is the heart of the guidance system.
- Using information froma vailable software development artefacts (natural language descriptions, models, code) and the actual process state to infer possible actions.
Use Scenarios
The vision is a kind of workflow engine guiding the software developers through the software processes.
There are three main fields in which the results of MOST can be used:
- Understanding of software artefacts. Using UML models with integrated ontologies, relations between models can be made explicit and machine-processable, allowing, e.g., for the automated execution of validation checks.
- Tracing the development of software artefacts. The MDAbased transformations applied to the UML models are traced in order to provide an extended knowledge base to the guidance system.
- Semantic description of actual task and available options for action. Ontology definitions are also used to specify the tasks to be performed in the software processes.
Understanding Software Artefacts
Using an integrated metamodel of UML and OWL, UML models can be linked with ontology concepts. This makes the semantics of the models and their cor relations explicit. With ontology reasoning facilities it will be possible to infer further knowledge from the linked models. Such semantically linked models are an ideal basis for semantic querying, making the exploration of a large software project much easier. Additionally, the semantics of the model relations can also be used in various ways for guiding software processes as explained later.
Tracking Software Artefacts
The process of writing industrial software by hand is gradually replaced by the approach of Model Driven Software Engineering. Starting with a abstract model of the system to be developed, the application of various refinement steps and transformations ultimately leads to the software. If transformations are traced and the connections between models are made explicit using ontologies, the guiding system can support the developer in various ways. An example would be find all models and software artefacts that have been generated from a specific part of a model.
Equally important is versioning. If models or code change, the developers must be shown how this affects the dependent software fragments. The possibility to do manual changes in generated models or code and to see the impact on other models is an important step towards global consistency.
Guiding Development Actions
In addition to software artefacts the concept of integrating ontologies and models can also be used for the process of developing software.
In today's industrial software development strict processes must be followed in order to ensure software quality. These processes, however, are usually rather complex and are tailored to the specific software to be developed. A process guidance system with reasoning capabilities is useful in various ways.
- From a process described in ontologies and the current state of development , including interlinked software artefacts, it can be reasoned which steps to carry out next, thus helping developers and management with their decisions in the process.
- With knowledge of the development state the guidance system could make suggestions on the reuse of software fragments. This would be a valuable help for quality management as those suggestions are currently only made after a tedious manual search.
- Guidance is not only used in software development, but also for configuration and instantiation. Large-scale software projects are usually highly customizable and require an expert to install. A process guidance could mitigate this problem.
- From the knowledge of the guidance system documentation can be generated. This documentation can be used when the guidance
system is not available, for example when customizing a complex product at the customer's site.





 
You are here: