- Home
- Foundations
- ⁘
- Mathematical
- Logic
- Writing/Thinking
- SWD
- Requirements
- Specifications
- Java
- Web
Thomas A. Alspaugh
Kinds of Software Systems
-
How new is it?
-
Completely, from scratch, de novo; or
-
To be evolved from an existing system that is
good
; or
-
To be evolved from an existing system that is not
good
-
What kinds of interactions does it participate in?
(Other than with its virtual machine)
-
Only with people; or
-
Only with other systems (embedded); or
-
Both with people and other systems
-
What kind of context will it operate in?
-
A well-understood context; or
-
A novel context
-
How well understood are its requirements?
-
Well (this is less common—why?); or
-
Not well—they are novel or poorly-understood
-
How
big
is it?
-
It will have {few, some, many, very many}
{lines of code, modules, classes}; and
-
It has {few, many} requirements; and
-
It uses {few, many} other software packages; and
-
It is needed in {a big hurry, no particular hurry}
-
How serious will its failure be?
-
Its failure will have little consequence; or
-
Its failure will have consequences but can be worked around; or
-
Its failure will stop other work and there is no workaround; or
-
Its failure will cause large financial liability; or
-
Its failure will cause injury or loss of life
-
Who is developing it?
-
A corporation; or
-
A non-business organization; or
-
A private individual; or
-
Volunteers
-
Who is it being developed for?
-
A client who is paying; or
-
A client who is not paying; or
-
The customers of a competing product; or
-
Hypothetical customers who do not yet realize they need it; or
-
The developers themselves; or
-
The developers themselves, and people like them
-
Who are the stakeholders (people who will be affected by it)?
-
The clients (the people it is being developed for); and
-
Non-clients who will benefit by its operation; and
-
Non-clients who will be injured by its operation; and
-
Non-clients who will have to pay
(in money, time, inconvenience, lost opportunities,
lost privacy, …)
in order for the system to work; and
-
Hackers, misusers, free riders; and
-
The developers themselves; and
-
The operators and maintainers
flip bgunflip