Natural Language
Natural language may appear somewhat complex for analysis to some people, but nothing is less true once you get the hang of it. The trick is to start of in very small elementary expressions. Fact is that the more elementary your expressions are, the better you're model probably is.
Source documentation
Documentation which is used as illustration of the communication about the reality as the user experiences it, can be found everywhere. Faxes, ordering forms, reservation papers, accountancy bills, everything relevant is available and can be used as a source to verbalise what's there. The analyst now uses this to ask questions and to seduce the user to express simple facts.
Text analysis
These simple facts can then be used to enter into the case-tool. In this case we've taken a simple room reservation example:
CAPACITY:
"Room 1.2 has 30 seats."
EMERGENCY EXITS:
"There are 2 exits on floor number 1."
EQUIPMENT:
"Room 2.1 is equipped with a BB."
FACILITY:
"We have BB's available."
"We have LCD's available."
ROOM:
"There is a room 1.2."
"There is a room 2.1."
"There is a room 1.1."
Qualify
What needs to be done now is to qualify and classify the expressions. Above we've already created a qualification by simply sorting the expressions on fact names. Further progress has yet to be made.
Classify
Take for instance the expressions from ROOM. If we are to analyse this further our user may conclude that the first number before the dot is the floor number, the second number is the actual room number. Which will lead to the following expression tree:

This process is achieved by recursively selecting parts of the expressions and classifying that part by naming it. In this case the selection was made on the first number naming it as "Floor" and after that's been done we again select the number and only then we name it "Floor No". This is done on purpose since we can now use the Object "Floor" in our model as well. Otherwise the Floor number would end up as an attribute of the Room and not be an independent identified object (since many rooms may be on a single floor and there may be a limited number of floors).
Repository based diagram
While entering expressions, classifying every part the case-tool helps you recognise expression parts to speed up the modelling process. The major advantage of having the repository entered this way is that the diagrams are tuneable for layout, but the information displayed for every diagram is pulled from the central repository. Changing an expression will automatically update all connected diagrams. The rooms example will lead to the following diagram:

Re-generation
The natural language expressions are maintained in the case-tool repository as is all information related to the model. This enabled the case-tool to re-generate all relevant expressions at any point in time. It allows detailed expressions for work by analysts or developers, but also general expressions for validation by users.
Generation of expressions can be performed at the start of the modelling process, but also after the model is transformed for ER purposes (described later). This is a very powerful function of the case-tool and unique in the modelling IT world.
|