A blackbox is a building block or component of the system which can be explained or defined in terms of its inputs and outputs, without knowledge of its internal workings.
You can easily document or specify a blackbox with a simple template. We propose a table for it, in the following form (required information in bold, the rest is optional):
part | explanation |
---|---|
Name | name or id of this blackbox. The name should be the title of the blackbox template. |
Responsibility | What does this blackbox do, what task or function does it fulfill? What use-cases, use-case-clusters does it handle? |
Interface | What is the interface (input, output) of this blackbox, what is its API, what does it require as input and what does it provide as output. |
Source code | Where to find the source code of this blackbox. That might be the most important entry point, a number of files, directories or packages. Anything that might help a developer to find details. |
Qualities | What quality requirements does this blackbox satisfy? How fast/secure/robust is it? Does it offer any guarantees or service-level-agreements? |
Open issues | Are there known issues, problems or risks associated with this blackbox? |
Requirements | What are the requirements satisfied by this blackbox? Such information is important if you need traceability. See section H (Traceability) |