Type in Requs is a creature similar to a class in object-oriented programming. Type has slots and parent types:
Image is File.
Image has:
width as "pixels",
height as "pixels", and
format as "PNG, GIF, JPEG, etc".
Type names are in CamelCase Notation.
For example, these words are valid type names:
Image
, ImageFile
, ImageInCustomFormat
,
GIFImage
, PNG
.
A type may have a number of slots. A slot is something similar to a private property of a Java class, for example. The syntax is simple, in BNF:
<type> ::= <camel> ( "has" | "needs" | "requires" | "includes" ) ":" <slots> "."
<slots> ::= <slot> ( ( "," | ";" | "and" ) <slot> )*
<slot> ::= <name> ( "as" <informal> )?
Very often we make mistakes when declaring a new type or modifying an existing one. Read them carefully and try to avoid in your SRS documents.