Tomas Bures
Charles University in Prague
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Tomas Bures.
software engineering research and applications | 2006
Tomas Bures; Petr Hnetynka; Frantisek Plasil
Component-based software engineering is a powerful paradigm for building large applications. However, our experience with building application of components is that the existing advanced component models (such as those offering component nesting, behavior specification and checking, dynamic reconfiguration to some extent, etc.) are subject to a lot of limitations and issues which prevent them from being accepted more widely (by industry in particular). We claim that these issues are specifically related to (a) the lack of support for dynamic reconfigurations of hierarchical architectures, (b) poor support for modeling and extendibility of the control part of a component, and (c) the lack of support for different communication styles applied in inter-component communication. In this paper, we show how these problems can be addressed and present an advanced component system SOFA 2.0 as a proof of the concept. This system is based on its predecessor SOFA, but it incorporates a number of enhancements and improvements
component based software engineering | 2013
Tomas Bures; Ilias Gerostathopoulos; Petr Hnetynka; Jaroslav Keznikl; Michal Kit; Frantisek Plasil
The recent increase in the ubiquity and connectivity of computing devices allows forming large-scale distributed systems that respond to and influence activities in their environment. Engineering of such systems is very complex because of their inherent dynamicity, open-endedness, and autonomicity. In this paper we propose a new class of component systems (Ensemble-Based Component Systems - EBCS) which bind autonomic components with cyclic execution via dynamic component ensembles controlling data exchange. EBCS combine the key ideas of agents, ensemble-oriented systems, and control systems into software engineering concepts based on autonomic components. In particular, we present an instantiation of EBCS - the DEECo component model. In addition to DEECo main concepts, we also describe its computation model and mapping to Java. Lastly, we outline the basic principles of the EBCS/DEECo development process.
Knowledge and Information Systems | 2014
Tomáš Pop; Petr Hnĕtynka; Petr Hosek; Michal Malohlava; Tomas Bures
The use of components significantly helps in development of real-time embedded systems. There have been a number of component frameworks developed for this purpose, and some of them have already became well established in this area. Even though these frameworks share the general idea of component-based development, they significantly differ in the range of supported features and maturity. This makes it relatively difficult to select the right component framework and thus poses a significant obstacle in adoption of the component-based development approach for developing real-time embedded systems. To provide guidance in choosing a component framework, or at least relevant concepts when building a custom framework, we present a survey, which illustrates distinguishing features and provides comparison of selected modern component-based frameworks for real-time embedded systems. Compared to other existing surveys, this survey focuses specifically on criteria connected with real-time and embedded systems. Further, to be practically relevant, we restrict the survey only to the frameworks that support the full development life cycle (i.e. from design till execution support). In this context, the survey illustrates the complexity of development in each framework by giving specification and code samples.
asia-pacific software engineering conference | 2005
Vladimir Mencl; Tomas Bures
In most component models, a software component consists of a functional part and a controller part. The controller part may be extensible; however, existing component models provide no means to capture the structure of the controller part, and therefore neither to specify the controller part extensions. In this paper, we introduce a minimalist component model to capture the structure of the controller part, coining the term microcomponent for the controller part elements. We further introduce the concept of a component aspect as a consistent set of controller part extensions. Within this framework, it is possible to seamlessly integrate controller part extensions, applying them to the components selected in the applications launch configuration. We have evaluated these concepts in a prototype implementation.
Proceedings of the 5th international workshop on Software engineering and middleware | 2005
Ondrej Galik; Tomas Bures
A software connector is an abstraction capturing interactions among components. Apart from middleware independence, connectors provide additional services (e.g., adaptation, synchronization, etc.). They play a major role in heterogeneous deployment (i.e., building applications from components implemented in different component models) where they are invaluable for solving distribution and overcoming incompatibilities stemming from coexistence of different component models and middleware. However, to make the use of connectors in heterogeneous deployment possible, it is imperative to have means of generating them automatically. In this paper, we show how to create an extensible connector generator with features needed for heterogeneous deployment. The work is based on our experience with designing and implementing such an extensible connector generator for SOFA, Fractal and EJB component models.
self adaptive and self organizing systems | 2013
Philip Mayer; Annabelle Klarl; Rolf Hennicker; Mariachiara Puviani; Francesco Tiezzi; Rosario Pugliese; Jaroslav Keznikl; Tomas Bures
Autonomic computing - that is, the development of software and hardware systems featuring a certain degree of self-awareness and self-adaptability - is a field with many application areas and many technical difficulties. In this paper, we explore the idea of an autonomic cloud in the form of a platform-as-a-service computing infrastructure which, contrary to the usual practice, does not consist of a well-maintained set of reliable high-performance computers, but instead is formed by a loose collection of voluntarily provided heterogeneous nodes which are connected in a peer-to-peer manner. Such an infrastructure must deal with network resilience, data redundancy, and failover mechanisms for executing applications. We discuss possible solutions and methods which help developing such (and similar) systems. The described approaches are developed in the EU project ASCENS.
international conference on performance engineering | 2012
Lubomír Bulej; Tomas Bures; Jaroslav Keznikl; Alena Koubková; Andrej Podzimek; Petr Tůma
Compared to functional unit testing, automated performance testing is difficult, partially because correctness criteria are more difficult to express for performance than for functionality. Where existing approaches rely on absolute bounds on the execution time, we aim to express assertions on code performance in relative, hardware-independent terms. To this end, we introduce Stochastic Performance Logic (SPL), which allows making statements about relative method performance. Since SPL interpretation is based on statistical tests applied to performance measurements, it allows (for a special class of formulas) calculating the minimum probability at which a particular SPL formula holds. We prove basic properties of the logic and present an algorithm for SAT-solver-guided evaluation of SPL formulas, which allows optimizing the number of performance measurements that need to be made. Finally, we propose integration of SPL formulas with Java code using higher-level performance annotations, for performance testing and documentation purposes.
international conference on software engineering | 2003
Tomas Bures; Frantisek Plasil
Connectors are used in component-based systems as first-class entities to abstract component interactions. In this paper, we propose a way to compose connectors by using fine-grained elements, each of them representing a single, well-defined function. We identify an experimentally proven set of connector elements, which, composed together, model four basic component interconnection types (procedure call, messaging, streaming, blackboard), and allow for connector variants to reflect distribution, security, fault- tolerance, etc. We also discuss how to generate such a connector semi-automatically. The presented results are based on a proof-of-the-concept implementation.
component based software engineering | 2013
Jaroslav Keznikl; Tomas Bures; Frantisek Plasil; Ilias Gerostathopoulos; Petr Hnetynka; Nicklas Hoch
The challenge of developing dynamically-evolving resilient distributed systems that are composed of autonomous components has been partially addressed by introducing the concept of component ensembles. Nevertheless, systematic design of complex ensemble-based systems is still a pressing issue. This stems from the fact that contemporary design methods do not scale in terms of the number and complexity of ensembles and components, and do not efficiently cope with the dynamism involved. To address this issue, we present a novel method - Invariant Refinement Method (IRM) - for designing ensemble-based component systems by building on goal-based requirements elaboration, while integrating component architecture design and software control system design.
self adaptive and self organizing systems | 2013
Tomas Bures; Rocco De Nicola; Ilias Gerostathopoulos; Nicklas Hoch; Michal Kit; Nora Koch; Giacoma Valentina Monreale; Ugo Montanari; Rosario Pugliese; Nikola B. Serbedzija; Martin Wirsing; Franco Zambonelli
Component ensembles are a promising way of building self-aware autonomic adaptive systems. This approach has been promoted by the EU project ASCENS, which develops the core idea of ensembles by providing rigorous semantics as well as models and methods for the whole development life cycle of an ensemble-based system. These methods specifically address adaptation, self-awareness, self-optimization, and continuous system evolution. In this paper, we demonstrate the key concepts and benefits of the ASCENS approach in the context of intelligent navigation of electric vehicles (e-Mobility), which itself is one of the three key case studies of the project.