THIS PAGE IS A WORK IN PROGRESS
This section is focused on describing Intent's main use cases, some features to support these use case might not be completely implemented yet but are at the top of the priority list.
Retro-documentation of Existing Code
The Intent project considers that code and documentation have the same value, and that no one should necessarily be the first on the other. Its focus is on making sure these are synchronized and helping the developper to keep them synchronized. One of the consequences of this statement is that it's a perfect tool to get started in documenting legacy code.
Now that Alice has documented her plugins, she can develop new features through documentation. Of course, she still can develop the new feature and retro-document it (see previous use case).
Step 1 : Getting the parts to update
In a regular development process, Alice would have had to determine the components to update, without many help. How many of you have used the Eclipse's Open Type wizard and search for Java Classes with a name that may indicate that it is doing what you are searching for ?
With Doc Driven Design, you first have to determine what parts of the documentation have to be changed/deleted/created.
To do so, Intent provides tools to enhance searches. Alice has two solutions :
- searching through the documentation as if it was a paper doc :
from the table of contents, she identifies the chapters/sections related to UI features. In some cases, it can be really quick, especially if the documentation has been well-structured.
- searching for all document parts related to a model element :
if Alice has some basicall knowledge of the meta-model, she should know what model elements are related to the feature she wants to develop. If she has not, she will have to quickly read the meta-model overview section.
Step 2 : updating doc
Step 3 : validation of the new feature
Step 4 : synchronization
By adding a few lines in the Document, and justifying her design choices, Alice has quickly obtained a skeleton of the code, and is sure that her feature is valid, properly documented and can be understood by future readers who will have to maintain this feature.
Searching through documentation using outline :
Getting synchronization issues between documentation and models concretely used by developers :
Here developers have changed the CirculatingItem EClass by changing its cardinality ([1..1] was a too strong constraint for development). Intent detects a synchronization issue, from which developer can :
- decide to update the model they concretely use to set the cardinality to [1..1]
- decide to update the documentation, by modifying the cardinality to [0..1] and justify the reasons that made him decide this change