Cooperation and services offer
Verification of Software Systems and Architectures
We primarily investigate two kinds of methods for verifying software systems consistency: simulation based and static verification. With static verification we check configuration consistency and update compatibility using a type representation of the surface (public interface) of components and service-based applications; a repository-based approach extends these methods for resource constrained devices. The results like type-safe component updates and contextual compatibility have been successfully applied to the OSGi framework.
Visualization of Software Architecture
The main goal is to tackle the problems of visualizing large and complex software systems. We focus on the effective applications of user interaction and on-demand detail visualization, and explore notations alternative to classic UML. Our visualization methods utilize semantically rich underlying data models which originate in the research of component models and reconstruction of architectural properties.
Models for Components and Extra-Functional Properties
In the above two areas we primarily work with modular and component-based systems. The comparison algorithms for use in component compatibility checking are researched in close link to the architecture consistency verification area. Research in the extra-functional properties aspects has resulted in their specification in a straightforward way (think “usability”) enabling use of EFPs in a broad range of systems; our model allows to define symbolic names for values and ranges with meaning dependent on context of usage. Most of our methods and models use the results of the analysis of the black-box property of components which resulted in the design of several meta-models as well as an experimental component model CoSi, and apply type reconstruction from compiled bytecode and distribution form of components in general.
The aim of this work is to investigate various issues of distributed simulation of road traffic including division of the road traffic network, efficient communication protocols, utilization of multi-core processors for distributed-parallel execution and so on. The ultimate goal is to develop efficient solutions of the various issues and, when possible, to utilize the developed solutions also for general distributed simulation.
Software Process Patterns
Despite extensive number of software development process models, project management still struggles not only to mitigate, but to even identify recognizable and frequent mistakes (anti-patterns) which can cause project to be delayed, become more costly, unsuccessful or to fail completely. We work in the area of software process modeling and improvement, especially for agile methodologies and safety critical systems (including consulting and development for industrial partners). Our research is focused on the automated detection of process anti-patterns such that would also help to hint the possible solutions.