## 1 Introduction
However, the resulting components cannot be executed in a distributed way. The linear algebra is also applied in the algorithm shown in [33]. The method searches for the place invariants, which are further transformed into sequential components. The main bottleneck of the presented idea relies on the computational complexity, which is exponential in the general case. On the other hand, the proposed method terminates once the decomposition is found, which extremely reduces the computation process. In the opposite, a polynomial decomposition algorithm is shown in [35]. The idea is based on the graph theory, involving unique properties of perfect graphs. In particular, the colouring of comparability graphs is applied, which is executed polynomial. Although the method permits for optimal decomposition of the system (into the minimal possible number of components), it cannot be applied to all systems. Moreover, the achieved components do not always reflect the designer's needs. The alternate technique of SMCs computation is shown in [36]. The idea is also based on the graph theory, but it applies an approximate algorithm. Therefore, the result is always achieved, however, it may not be optimal. Furthermore, the technique is not strictly oriented on the decomposition of the system, since it searches for the SMCs covering of the Petri net. [PERSON] and [PERSON] [37] introduced a method based on net structure analysis identifying overlapped sections. Overlapped transitions and places are repeated in all resulting components. Other decomposition ideas use input and output places for communication between the decomposed models [38; 39; 40]. In [41], a functional splitting method is proposed, based on the definition of a cutting set. The main concern of this idea is to achieve the same behaviour before and after decomposition. The interface among the decomposed components is composed of transitions, which communicate through output and input events, while the common firing rules are also preserved. Finally, it is worth mentioning that there exist other decomposition methods not only oriented on the implementation of integrated systems. Such techniques can be applied to other important tasks, e.g., analysis of Petri net properties [42], deadlock detection [43], decomposition into automata [44], or decentralised control of Petri nets [45]. To summarise the discussion above, it can be noticed that the decomposition of the Petri net-based systems is an important step in the designing flow of CPS. However, there are several important issues related to this process, including obtaining adequate components (that is, expected by the designer), computational time (due to the exponential computational complexity of several algorithms), as well as proper synchronisation of the decomposed components. In this paper, we propose a decomposition method oriented on the integrated system. Moreover, the presented technique is illustrated by a real-life example of the beverage production machine implemented within an FPGA device. Let us underline that the proposed solution significantly differs from previous techniques presented by authors in [29; 33]. Contrary to the already published ideas, the proposed technique is oriented toward the rapid decomposition process. Therefore, the achieved number of components are examined at each step of the algorithm. Moreover, the designer is able to select the required components manually, which makes the whole process much more flexible and comfortable. Note that this paper is purely focused on the decomposition aspects, while the remaining aspects of the prototyping flow (such as analysis and verification of the CPS, as well as modelling of the decomposed components) can be found in other authors' works including [7; 11; 12; 13; 21; 22; 33; 35].