Hi Tom,
Thanks for the feedback.  As you pointed out most of the methods call
either getDiagramsByType or getMembersByType.  Although it increases
the "surface area" of the class, it increases the usability of the
class and that's my primary goal.

Thanks for the pointers about the relationship between the Fig and the
UseCase, I'll give it a shot and see what I can do.  I'll also take a
look at the ALittleBitOfEverything model that you pointed to.

Thanks again,

Mark

On Sun, Oct 26, 2008 at 9:49 AM, Tom Morris <[EMAIL PROTECTED]> wrote:
> Thanks for the concrete examples.  That helps.  More comments inline below
>
> On Sun, Oct 26, 2008 at 12:07 PM, Mark Fortner <[EMAIL PROTECTED]> wrote:
>
>> Project
>>  - Diagrams (UseCaseDiagram, ClassDiagram, State Diagrametc)
>>      - Members (Use Cases, Classes, States, etc)
>>          - Member Attributes (Name, Description, ExtensionPoints,
>> Methods, Tags, etc)
>
> A different term than Member should probably be used since that has
> Java semantics (although finding a term that doesn't have another
> meaning someplace may be hard).
>
>> So they're going to be looking for simple classes (with minimal
>> abstraction) that allow them to access the data in their model and
>> output it into templates with a minimal amount of code.   And
>> although, ArgoUML's internal model may be more complex, I'm looking
>> for some way of exposing the model without exposing its complexity.
>
> I don't think there's too much difference in fundamental complexity
> for much of what you're talking about.  There may be holes in the API
> that need filling however.
>
>> To give you an idea of what I'm talking about, here are a few utility
>> methods that I've created to make it easier to work with the model
>>
>> DiagramUtil
>>  + getType(diagram:ArgoDiagram):String
>>  + getDiagramsByType(project:Project, diagramType:Class):List<ArgoDiagram>
>
> Since there are so few types and we iterate through them so
> infrequently, we don't have helpers to deal with this, but creating
> these would be an easy task.  getType() just needs to extract <foo>
> from the classname of UML<foo>Diagram classes.
>
>>  + getClassDiagrams(project:Project):List<ArgoDiagram>
>>  + getUseCaseDiagrams(project:Project):List<ArgoDiagram>
>>  + getCollaborationDiagrams(project:Project):List<ArgoDiagram>
>>  + getStateDiagrams(project:Project):List<ArgoDiagram>
>>  + getSequenceDiagrams(project:Project):List<ArgoDiagram>
>
> Presumably these are just implemented by  getDiagramsByType(project,
> DiagramType.ClassDiagram) or some such.  Do they add enough value to
> worry about?
>
>>  + getMembersByType(diagram:ArgoDiagram):List<Fig>
>
> I don't think we've got anything like this, so it would be a good
> addition.  It could be implemented by either looking at the Fig types
> or working in the UML domain.
>
>>  + getUseCases(diagram:ArgoDiagram):List<Fig>
>>  + getClasses(diagram:ArgoDiagram):List<Fig>
>
> Again, these seem like trivial wrappers that increase the surface area
> of the API without adding a lot of value.
>
>> I still haven't figured out any way of getting from a Fig, to the
>> description of that Fig.  For example, given that I have a FigUseCase,
>> I want to get it's description.
>
> Fig->getOwner()->getTaggedValues(getTagDefinition("documentation"))->getDataValue()
>
> is roughly the sequence that you want.  A helper which took a Fig and
> the name of a TagDefinition and return the String contained in the
> dataValue would be a useful shorthand for this.
>
>> Also, I was looking for a sample model that I could use that would
>> contain all of the diagrams.  I had assumed that something like that
>> was available for testing, but I haven't found any examples.
>
> Look for ALittleBitOfEverything in the testmodels directory.  If it's
> not complete (which it almost certainly isn't), it's a bug.
>
> Tom
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Mark Fortner

blog: http://feeds.feedburner.com/jroller/ideafactory

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to