Checklist: Component Specification
Relationships
Check Items
Do interfaces document all operations?
  • Are the operations delivered by a component in the component interaction diagrams documented in its interface?
Does the component specification contain sufficient detail?
  • For those components to be developed by 3rd parties, are the pre and post conditions on the operations indicated?
  • Are the specifications of the components, taken together with the implementation guidance, sufficient to define the context for the subsequent design activities
  • Do component interaction diagrams show how the architecturally significant requirements are realized by the specified components?
Are interfaces well named?
  • Does the interface name reflect the role it plays in the system?
  • Is the name short, containing only 1-2 words?
  • Does the name omit the unneeded word "interface"?
Are interfaces well described?
  • Does the description convey the responsibilities of the interface?
  • Is the description several sentences long, up to a short paragraph?
  • Does the description illuminate the role the interface plays in the system, rather than simply restate the name of the interface?
  • Doe the interface specify how the operations are used, and the order in which they are performed?  Do example sequence diagrams help illustrate the ordering of operations when needed?
  • If the component that realizes an interface has externally-observable states, are the states illustrated by a state diagram?
Are operations well named?
  • Do operation names reflect the result of the operation?
  • When an operation sets or gets information, is the unneeded word "set" or "get" omitted in the name of the operation? Is it clear that operations named after component data without parameters retrieve values, while corresponding operations with parameters set values?
Are operations well described?
  • Does the description of each operation describe what the operation does, including any key algorithms, and what value it returns?
  • Does the description name the parameters of the operation to indicate what information is being passed to the operation?
  • Is the operation's return value specified, detailing possible values?
  • Does each parameter and return value identify its type?
Are interfaces well structured?
  • Are interfaces simple yet complete, providing all necessary operations, yet sufficient to specify a single service?
  • Are interfaces understandable, providing sufficient information to both use and realize the interface without having to examine an existing usage or implementation?
  • Are interfaces approachable, providing information to guide the user to its key properties without being overwhelmed by the details of the operations?