Logo

dev-resources.site

for different kinds of informations.

Is "startup software" a use case?

Published at
7/26/2024
Categories
usecase
uml
requirement
Author
jiayufagao
Categories
3 categories in total
usecase
open
uml
open
requirement
open
Author
10 person written this
jiayufagao
open
Is "startup software" a use case?

Question:

Can "startup software" be considered a use case? When software starts, it typically needs to instantiate some objects, read some configuration files, etc. So, Are “start software” and “shut down software” use cases? Or are they extensions of other use cases?

Answer:

No, it is not.

Use cases are requirements. Requirements describe the necessary behaviors (functionality, performance, constraints) of a system as a whole (black box) - "it won't work without this."

Let's break it down:

(1) Is "startup software" something that stakeholders consider "it won't work without this"?

Actually, it's not.

Stakeholders are interested in the core value that our system provides. If our system could be used continuously from the moment it faces stakeholders, calculating whatever they need without requiring startup, stakeholders would be delighted. How to achieve this? It's not a matter of requirements.

(2) "Software usually needs to instantiate some objects, read some configuration files (during startup)" - this is likely not a requirement.

"Instantiating", "reading", "loading" are actually design assumptions that arise from a design perspective.

Image description

The system is a black box; there's no "instantiating", "reading", "loading". Remove these, then ask "why, what might happen without this?" The answer might be "without this, when performing certain calculations, the time from input to output might be longer, and we'd fall behind competitors" - this is what the system as a whole must satisfy.

(3) Is it relevant to the current system and current use cases?

Some might argue that the system needs to start first. However, this is universally understood and doesn't have a specific relationship with the current system or use cases, so it doesn't need to be explicitly stated as a use case.

Unfortunately, many people are inclined to treat "startup" as a use case, including it in every project without much thought. This can be an easy way to pad project documentation, but it doesn't add value.

Of course, if "startup" is the core value of the target system, then it is a use case. For example, for software that provides a “remote cross-platform application launch” service.

Featured ones: