Complex systems are difficult to analyze due to unpredictable interactions among their parts. Thus, any technique that can help reduce this complexity is very welcome. One of the most effective ones is the time-honored divide et impera (divide and conquer) technique, which has been used in countless domains from power grid management to investment analysis to software development. It consists of finding parts of a large system that can be analyzed independently as if they were systems of their own. Usually, independence means having as few as possible interfaces with the overall system, or in the most extreme case one single inbound interface and one single outbound interface. This is precisely the technique described in this paper, which the authors call single-entry single-exit (SESE) decomposition.
The core of the paper presents SESE decomposition in a very rigorous way, making use of mathematical concepts such as finite sets and Petri nets. If whole systems can be modeled with Petri nets, SESE decomposition consists in finding one or more subnets with one single inbound and one single outbound connection with the rest of the net. These concepts are further clarified by a real-world, albeit simplified, example. This example also highlights possible real-life problems and pitfalls, and SESE decomposition refined to cope with them.
A working experimental software application based on these concepts has also been built. Results from runs of this application are given, complete with references and benchmarks. Traces for future work are outlined--these could be significant for anybody wishing to enhance this work either in an academic or commercial environment.