Skupina DSS v projektu NTIS
Výzkumná skupina DSS je nositelem části výzkumného programu Pokročilé počítačové a informační systémy v rámci evropského centra excelence FAV budovaného v projektu NTIS. Oblast, kterou se budeme zabývat společně s výzkumnou skupinou vestavěných systémů, staví na našich zkušenostech v modelování a verifikaci softwarových komponent. Výtah příslušné části popisu projektu je uveden dále.
P2-b: METODY A PROSTŘEDKY PRO NÁVRH BEZPEČNÝCH, SPOLEHLIVÝCH A ROBUSTNÍCH POČÍTAČOVÝCH SYSTÉMŮ
Moderní informační a komunikační technologie (ICT) jsou charakteristické svými nároky na bezpečnost, privátnost využití a spolehlivost (SPD vlastnost – Security, Privacy, Dependability). Je to přímým důsledkem narůstající složitosti počítačových systémů (spojení mnoha komponent s různou úrovní SPD) a následné zranitelnosti, resp. rizik vyplývajících z jejich použití. Dosavadní postupy a návrhové metody nejsou postačující s ohledem na komplexnost problému a neustálý rychlý vývoj v oblasti ICT.
Cílem řešení projektu bude výzkum a vývoj efektivních metod a prostředků pro návrh počítačových systémů určených zejména pro vestavěné (embedded) aplikace, u kterých se vyžaduje zvýšená úroveň bezpečnosti, utajení, spolehlivosti a robustnosti. V rámci řešení projektu bude hlavní důraz kladen na rozvoj a využití metod modelově orientovaného přístupu (MDA – model driven architecture) a souběžný návrh SW a HW komponent systému (SW & HW codesign), který je typický pro vestavěné systémy. Modelově orientovaný přístup spočívá ve využití hierarchie abstraktních modelů a prostředků pro jejich popis (DSL – Domain Specific Language) v jednotlivých úrovních hierarchie k postupnému zjemňování funkční a strukturní specifikace navrhovaného systému.
Vymezený cíl projektu lze rozdělit na několik dílčích cílů, které jsou podrobněji popsány v následujících odstavcích. Jedná se zejména o výzkum a vývoj metod exaktního popisu specifikované funkce a struktury systému s využitím současných a nových abstraktních modelů včetně modelů pro odhad výkonnostních a spolehlivostních parametrů systému. Tento dílčí cíl zahrnuje též výzkum metamodelů a hierarchií (posloupností) modelů použitelných v procesu návrhu systému. S tím souvisí výzkum a vývoj metod, které umoţní transformovat (zjemňovat) vyšší abstrakční úrovně modelového popisu do nižších (přesnějších) úrovní se zachováním vlastností dokázaných při analýze (verifikaci) vyšší úrovně modelu. Jako nejnižší úroveň popisu se předpokládá cílový programový kód nebo popis (např. VHDL) cílové HW struktury. Předkládaný projekt dále předpokládá rozvoj metod, které umožní ověřit (verifikovat) specifikované vlastnosti pro jednotlivé úrovně modelového popisu systému.
Základním uvažovaným prvkem strukturního popisu navrhovaného systému je softwarová nebo hardwarová komponenta. Proto budou součástí výzkumu v souladu s dosavadní zkušeností pracoviště také prostředky popisu komponent a komponentových struktur zejména s ohledem na jejich zaměnitelnost, teoretické aspekty verifikace návrhu komponenty, verifikace vlastností pro hotové (pre-existing) komponenty, porovnání takových metod a zkoumání problému „vzdálenosti“ modelu a reálného systému.
Kromě základního výzkumu v dané oblasti jsou dále také uvažovány aplikace vyvinutých metod a postupů a spolupráce s dalšími výzkumnými programy centra a výzkumnými institucemi a firmami, které jsou či mohou být v dané oblasti zainteresovány. Jedná se zejména o spolupráci při vývoji podpůrných SW nástrojů a prostředků pro realizaci metod a postupů vyvinutých v rámci modelového přístupu k návrhu spolehlivých a robustních aplikací, případové studie a analýzy současných technologií a vývoj prototypových aplikací.
— By Premek Brada on 11 únor 2011, 11:41
Methods of development and verification of component-based applications using natural language specifications
Overview
- Granting agency: Grant Agency of the Czech Republic
- Project number:103/11/1489
- Duration: 2011-2013
- Partners: Charles University, Department of Dependable and Distributed Systems (leader), University of West Bohemia, Department of Computer Science and Engineering DSS group
- Total grant support: CZK 6.2 million (EUR ~0.2 million)
- Staff at UWB: 2 senior researchers, 2 junior researchers, 1-3 PhD students
- Contact: Premek Brada
Project synopsis
The component based programming approach was proven to greatly simplify the development process, especially in the context of enterprise and evolving systems. Despite successes in the field and increasing industrial adoption of component based programming techniques, fundamental issues of many stages of the development process are not well understood and have not been explored yet.
This project focuses on research of these areas – the key challenges to address are mainly related to enhancing the quality of component based applications with respect to user requirements:
- devising a process of automated deriving components’ functional design and extra-functional features from natural language descriptions (e.g. UML use cases),
- maintaining consistency of applications in context of dynamic systems with frequent component updates by combination of static verification methods and component based simulation,
- develop universal methods for easing of coding phases of component software development based on feature-oriented programming (FOP) techniques.
— By Premek Brada on 10 únor 2011, 10:27
Dynamic visualization of component-based applications
UML component diagram is mostly concerned with associations made between components and offers limited capability for describing of components itself, which means that some important information about components can be lost to application architect / designer. Some sort of solution can be seen in UML profiles, but this requires to create a separate UML profile for every component model and we still have only static representation of component-based application with no possibility to filter provided information.
This is the reason why we are researching a dynamic visualization method for complex, component-based software. It is based on a meta-model called ENT which provides rich classification system for groups of component interface elements, based on eight different characteristics. It enables the description of a wide spectrum of component models and can be understood as basic data structure for later representation of component-based application using a concrete component model.
Various concrete component models can be captured in ENT and represented in the form of a faceted view on the component interface. Here are a few examples of dynamic representations of the same OSGi bundle:

Dynamic visualization
Our dynamic visualization is based on providing of as few information as possible to support maximum clarity of represented component-based application. Additional information are of course available, but they are provided only after specific user interaction with represented model.
On the picture below you can see two OSGi bundles connected together, where “Server” bundle requires four elements of three different types from “Client”. All these connections are united to one, representing the existence of relation between these two components. Additional information about this connection is provided only after user interaction with this connection e.g. user click on its link.

Visualizing complex applications
This dynamic visualization also counts with hierarchical component models and offers dynamic extension of composite components to represent inner state of these composite comopnents.
Another part of this project focuses on the effective visualization of large system component models. New methods of the visualization should bring clarity of represented data, which should be achieved by automatic simplification of the model representation based on component clustering. Various metrics should be also involved in parametrizing the visualization. These methods should support user interaction with the model for better customization according to user needs.
Research results
- Šnajberk, J. and Brada, P., Interactive Component Visualization, in proceedings of International Conference on Evaluation of Novel Approaches to Software Engineering, Beijing, China, 2011
- Šnajberk, J. and Brada, P., ENT: A Generic Meta-Model for the Description of Component-Based Applications, in Proceedings of International Workshop on Formal Engineering approaches to Software Components and Architectures, Saarbrücken, Germany, 2011
- Šnajberk, J. and Brada, P.: Implementation of a Data Layer for the Visualization of Component-Based Applications, in Proceedings of ITAT, Smrekovica, Slovakia, 2010
Resources
ComAV – Component Application Visualizer
Introduction in evaluation of information visualization
— By Premek Brada on 7 listopad 2011, 11:30
Automated OSGi Version Number Generation - moved
(Text moved to Tools for OSGi page.)
— By Premek Brada on 5 øíjen 2010, 11:00
Tools for the OSGi Framework
Our research of type-based component compatibility verification resulted in the development of several tools relevant for the industrial applications of the OSGi framework and enhancing its capabilities.
Semantic Versioning of OSGi Bundles
OSGi framework resolver relies on version numbers correctly expressing package compatibility. Our automated version identifier generation method ensures that the version IDs are provably correct according to the OSGi semantic versioning scheme, in particular, that they faithfully represent the syntactical differences of public interface between two subsequent component revisions.
We provide a freely accessible service to correctly version OSGi bundles according to the Semantic Versioning specification – submit two bundle revisions, the latter one will have Export-Package and Bundle-Version headers correctly set.
Further we provide an Ant task implementation which uses the type-based bundle comparison to correctly set the version numbers in an update bundle revision.
- Download the OSGi Version Generator ant task (created in 2009 by Jaroslav Bauml as part of PhD research, Creative Commons Attribution Non-commercial Share Alike license)
Compatibility Checking Resolver
This is an enhanced OSGi resolver which prevents normal bundle update if it has an indication that the new version will break compatibility with the installed version’s clients/consumers. Not depending on the (often unreliable) bundle and package version numbers, it ensures stronger reliability of the bundle resolution and update beyond the standard level (which uses name-based, not type-based, bundle feature comparison). The use of the type-enhanced resolver therefore maintains run-time type safety of running OSGi applications.
Bundle Compatibility Verifier
This is a user-level tool which enables the user to check for incompatibilities in potential update bundle versions. Its implementation consists of a checking (comparator) bundle, a bundle cache access facade, and a shell bundle that provides a user interface to the checking tool. Two implementations are provided, for Apache Felix 1.0.x and Knopflerfish 2.0.x framework implementations.
- Download the OSGi Bundle Compatibility Verifier tool v1 – this is the first version of OBCC, and second release of OBCC.
- Tool concepts documentation in the form of an draft article.
Technically, the tool uses a representation of the bundle’s surface features called Bundle types with automated reconstruction from the bundle .jar file. The bundle classes are represented and compared by the Java types library.
The OBCC libraries
The libraries realize type-based bundle compatibility checks used in all of the above tools. They take the JAR files of two OSGi bundles – e.g. a currently installed one, by pointing to its bundle ID, and its update, by pointing to the update location – compares them and returns an indication of compatibility. This is backed by a detailed comparison data in the form of a complete tree of mutual differences of corresponding features down to class field level.
GUICA – The GUI for Component Administration
Guica is a tool which makes it easy to manage components in a running OSGi framework, effectively replacing (most of) the command line interface. It provides an intuitive GUI and is framework independent.
- Read the basic tool description
- Visit project page at Assembla
The development site of these tools is hosted by Assembla, and the tools are available under the Creative Commons Attribution-NonCommercial-ShareAlike license.
— By Premek Brada on 2 prosinec 2010, 17:07