Home
Content
Software Engineering
The syntax of ooxref input file is as follows:
Keyword: value
or
Keyword: text-description (value)
or
Keyword: text-description {type (value)}
where the text-description is optional
The value in parenthesis is required
The braces "{" and "}" are required
The parenthesis "(" and ")" are required
The square brackets are not required, but indicate that the contained text
is optional
Class: class-name
End-class: [class-name]
Parent: parent-name
Friend: friend-name
Constructor: constructor-name
End-constructor: [constructor-name]
Method: method-name
end-method: [method-name]
Struct: struct-name
End-struct: [struct-name]
Typedef: type name
Ctype: file-name
End-ctype: [file-name]
Function: function-name
End-function: [function-name]
Input: [data description] {type (data-name)}
Output: [data description] {type (data-name)}
Private: [data description] {type (data-name)}
Protected: [data description] {type (data-name)}
Public: [data description] {type (data-name)}
Contains: class-name
Access: [data description] {type (data-name)}
Associate: [data description] {type (data-name)}
Description:
End-description:
Notes:
End-notes:
Comment:
End-comment:
Requirement: requirement satisfied
It should be obvious that each keyword is terminated by a colon (:)
Layout of file
Class: class-name
This is a major category. It identifies a class type, and within
it several sub-categoris are identified. Although the order for
each sub-category key is not critical, it is recomended that the
keys be grouped together.
Parent: parent-name
Parent does not have an end-parent delimiter. Only one parent
may be identified on each Parent line. If a class has
multiple parents, then each parent must have be
identified by a Parent key.
Public: [description] {type (data-name)}
Public does not have an end delimiter. Only one
datum may be identified for each.
Protected: [description] {type (data-name)}
Protected does not have an end delimiter. Only one
datum may be identified for each.
Private: [description] {type (data-name)}
Private does not have an end delimiter. Only one
datum may be identified for each.
Friend: class-name
Friend does not have an end delimiter. Only one
datum may be identified for each.
Contains: class-name
Contains does not have an end delimiter. Only one
datum may be identified for each.
Requirment: requirement satisfied
Requirement does not have an end delimiter. Only one requirment
is identified per key and should reference a requirement
document and paragraph number.
Description:
A description of the purpose of the class goes within the description
delimiters.
End-description:
Constructor: constructor-name
Constructor requires an End-constructor delimiter. More than one
Constructor is allowed for each class. The first should be
the name of the class. If more than one constructor is
identified for a class, the constructors after the first
should be identified by appending a dash n (-n) where n
goes from 2 through the number of constructors associated
with the class. Constructor has the same fields as Method.
End-constructor:
End-constructor delimiter is required for each constructor
Method: method-name
Method requires an End-method delimiter. More than one method
may be identified for each class. In fact, if a class only
has one method identified, it should be examined closely.
Input: [data description] {type (data-name)}
Input does not have an end delimiter. Only one input parameter
is identified on each input line
Output: [data description] {type (data-name)}
Output does not have an end delimiter. Only one output parameter
is identified on each output line
Requirment: requirement satisfied
Requirement does not have an end delimiter. Only one requirment
is identified per key and should reference a requirement
document and paragraph number.
End-method:
End-method delimiter is required for each method
End-class:
End-class delimiter is required for each class.
Struct: struct-name
This is a major category for non-object oriented applications
that may be in object-oriented applications as well. It is
equivalent to a Class that has no methods, and the data contained
is public.
Contains: class-name
Contains does not have an end delimiter. Only one
datum may be identified for each.
End-struct:
Ctype: ctype-name
This is a major category for non-object oriented applications.
Ctype is usually the name of the file that will contain one or
more functions. Within a Ctype block, Function, Public, and
Private data may be identified.
Public: [description] {type (data-name)}
Public does not have an end delimiter. Only one
datum may be identified for each. Public data
in non-object oriented data refers to data that
is global, and is referenced in the 'C' language
by using the extern key word.
Private: [description] {type (data-name)}
Private does not have an end delimiter. Only one
datum may be identified for each. Private data
in non-object oriented data refers to data that
is available to only those functions that are in
the same file as the data declaration and follow
the declaration.
Function: function-name
Function requires an End-function delimiter. More than one function
may be identified for each class. In fact, if a class only
has one function identified, it should be examined closely.
End-function:
End-function delimiter is required for each function
End-ctype:
Description, Note, and Comment may be contained within any major category
block. These categories will be used when the data if formatted for
documents. Note identifies design notes to me (like hidden text except
it is visible in the raw text file). Note(s) will only appear in a
public document if the print-notes switch is turned on. Usually a Note
identifies a change I made to the design because I found a flaw in the
design and do not want to repeat the flaw at later time (those why didn't
I do this types). Comments are explanations for questions that might
come up during a design review. I want the comments in the raw file,
and I will put a switch in the document generator so that my copy
will use the print-comment switch when I print it.
so the format for these sub-categories is:
Description:
Text description goes here
End-description:
This delimits the description
Note:
Text notes go here
End-note:
Comment:
comment goes here
End-comment
Input and Output may be within Function, Method or Constructor sub-categories.
These categories identify the parameters passed to or by the target.
Input: [data description] {type (data-name)}
This sub-category identifies an input parameter. Only one parameter may
be on a line, and a parameter with its description may not exceed one
line in the raw document.
Output: [data description] {type (data-name)}
This sub-category identifies an output parameter. Only one parameter may
be on a line, and a parameter with its description may not exceed one
line in the raw document. Usually there will only be one output parameter.
Contains may be within Class, Function, Method, or Constructor.
Contains: class-name
This sub-category is usually used to identify Class instantiations
within a method, but it may be a struct as well. Only one instantiation
may be on a line, the description may not exceed one line.