A colleague of mine on the ARTS Data Model Committee, John Glaubitz of Vertex, shared with me a simple technique he uses with the ARTS data model. (click on the image to see a larger version)
For some of the more complex concepts in the model, he adds a text box next to the entity with its definition. This allows his team members to quickly reference the definition right on the diagram. This is so simple and so obvious, I'm thinking "why didn't I think of that".
He has to do this manually, though, which means if definitions are refined, there is a huge manual effort to keep these text boxes in sync. That started me thinking....what if there were features in our tools to do this presentation for us? What if, on an entity by entity basis, I could say "Fly Out Definition in Diagram"? I'd want to do this only for certain entities, not necessarily all of them, because I'd want to have this additional meta data at my finger tips only for those of interest to the current display/submodel. I'd also want to limit the display of definition to the first X characters as well. I know some entities have long definitions and I'd want to limit the display to getting just that first "A _______ that _________" part of the definition that I always start my definitions with.
Wait, you say, there is a similar feature in most tools, one that displays the definition right inside the entity. Yes, there is. (click on the image to see a larger version) I don't want just the definition, I want the full meta data such as attributes, primary keys, foreign keys an datatypes as well as the definitions.
Then I'd also want the drawing features of the program to handle these text boxes correctly, too. For instance, I want them linked to the entity and tightly coupled with them so that we don't end up with long lines connecting the text boxes an the entity from the other side of the diagram. Perhaps the solution would be to have these tightly coupled text boxes be a generic concept that use place holders such as [Entity:Definition], [UPD:PrivacyCode], or [Entity:Notes]. That way I could show anything I wanted there.
I know this asking for a lot, but I do believe this sort of enhancement could be significantly beneficial for modelers, developers, and end users.
What do you do to display definitions within your models? Would a feature like this be beneficial?