Journal:Informatica
Volume 35, Issue 2 (2024), pp. 379–400
Abstract
Multi-agent approach is very popular for modelling and simulation of complex phenomena, design and programming of decentralised computing systems. Asynchronous beings, which do not share state but communicate using messages are a convenient abstraction for representing various phenomena observed in the real world. When the number of the considered agents grows, the designers and developers of such systems must address the problem of performance. Introducing distribution is often a weapon of choice, which, however, does not guarantee obtaining proper scalability and efficiency. The intensity of communication in a large-scale agent-based system can easily exceed the abilities of a distributed hardware architecture, leading to poor performance. After analysing various distributed agent-based systems, we identified several reasons for limited performance and several architectural solutions, which can help overcoming this problem. The main aim of the presented work is identification and systematization of these architectural solutions in the form of design patterns. As a result, we propose three new design patterns for building scalable distributed agent-based systems. A systematic description of their aims, structure, variants and features is provided, together with examples of applications.
Journal:Informatica
Volume 27, Issue 4 (2016), pp. 843–862
Abstract
This paper deals with the problem of selecting a suitable design pattern when necessary. The number of design patterns has been rapidly rising, but management and searching facilities appear to be lagging behind. In this paper we will present a platform, which is used to search for suitable design patterns and for design patterns knowledge exchange. We are introducing a novel design pattern proposing approach: the developer no longer searches for an appropriate design pattern, but rather the intelligent component asks the developer questions. We do not want to invest extra effort in terms of maintaining a special expert system. Guided dialogues consist of independent questions from different sources and authors that are automatically combined. The enabling algorithm and formulas are discussed in detail. This paper also presents our comparison with human-created expert systems via a decision tree. Experiments were executed in order to verify our approach performance. The control group used a human-created expert system, while others were given a proposing component to find appropriate design patterns.
Journal:Informatica
Volume 22, Issue 2 (2011), pp. 289–317
Abstract
The aim of the paper is to investigate applicability of object-oriented software design patterns in the context of aspect-oriented design. The paper analyses which of the GoF 23 patterns have a meaning in this context and how they are affected by it. The main assumption is that there exist design patterns that solve software engineering paradigm independent design problems and that such patterns, in the contrast to the patterns solving paradigm-specific design problems, can be expressed in terms of any software engineering paradigm. However, the paper deals only with two paradigms: aspect-oriented (AO) paradigm and object-oriented (OO) paradigm. It proposes a classification of design problems based on this assumption and a technique for redesigning object-oriented patterns into pure aspect-oriented ones. It presents a number of examples how to apply this technique and discusses the results obtained. The results show that 20 of the GoF 23 design patterns solve such design problems that are common at least for both mentioned paradigms and demonstrate in which way these patterns can be adapted for the needs of aspect-oriented design.