Expressing software behavior with use cases
A software system is nothing more than a set of behaviors working together to achieve the goals defined by users or even other software systems. A software behavior, in turn, is a worthy action that, alone or combined with other software actions, contributes to realizing a worthy software goal. Such goals are intimately connected to the desires expressed by interested users or systems.
We can classify those interested folks as stakeholders or actors from which we will ultimately derive the real-world needs that will be transmuted into goals. These will be fulfilled by what Writing Effective Use Cases calls the System under Discussion (SuD), or simply the software you are developing.
From the hexagonal architecture's standpoint, we can relate these actors to what we saw in Chapter 1, Why Hexagonal Architecture?, when discussing driver and driven operations. In the same vein, we can classify the SuD actors: the driver actor is a...