The research of the ReliSA research group covers several areas of interests, under the umbrella keyword of "reliability". Part of the School of Computing at FAV, we also guarantee the research in the area of reliable software systems within its NTIS European Center of Excellence.

Verification of Software Systems and Architectures

We primarily investigate two kinds of methods for verifying software systems consistency: automated software testing and static verification. Our results in testing automation stem from a long-term experience in simulation-based (stochastic) software verification and help to generate unit tests with high code coverage, leveraging various system models. Our practical experiences also helped us devise methods for creating realistic testing input data based on the information from static analysis of source code, type and parameter annotations, and traces of behaviour of the application under test.

Developing static verification methods we check configuration consistency and update compatibility using a type representation of the surface (public interface) of components and service-based applications; we tend to prefer type reconstruction from compiled bytecode and distribution form of components in general. A repository-based approach extends these methods for resource constrained devices and heterogeneous architectures. The results like type-safe component updates and contextual compatibility have been successfully applied to the OSGi framework in industrial settings, and lead to joint work with Massey University in empirical research on software evolution issues and API compatibility as well as their developer understanding.

Software Process and Project Data Analysis

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, where the research is focused on the automated detection of process anti-patterns such that would also help to hint the possible solutions.  Some inspiration for this work comes from our cooperation with OTH Regensburg.

We also provide consulting and development for industrial partners especially in the areas of enabling adoption of agile methodologies and auditing the processes in safety critical systems development.

Models and Visualizations of Complex Systems

The main challenges we tackle are the problems of visualizing large and complex software systems. We focus on the effective applications of user interaction and on-demand detail visualization, explore specialized notations and advanced view designs. Our methods are rather uniquely focused on semantically rich multi-modal graphs, which enable us to provide methods suitable for visualizing complex systems (software architectures, process models, network graphs).

Most of the above methods use models which are based on the analysis of foundational properties of the composing parts of the systems and their relationships, be it the black-box property of components, common development process elements, or socio-technical project structures. This resulted in the design of several meta-models and their reifications like an enhanced model of extra-functional properties for software components, an experimental component model CoSi or the process meta-model SPADe.

Distributed simulation

Within this area we 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 simulation 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.