Thanks for all the learned replies.
I'd like to respectfully disagree with the Sparx implementation.
- an un-stereotyped requirement is just that - I have captured it, and have not yet decided if it's Function, Non-functional, or something else. So having EA make-up data which I didn't add is just not polite.
- a work-around which involves using the UI in a slightly different way - which is what I think Simon is suggesting - really isn't cricket. It just makes it worse!
- and why 'Functional' - if i'm collecting 'non-functionals', this just confuses my users.
- if the EA implementation really does insist that all requirements must have a type, and that the default is 'Functional', then pre-fill the type to be 'Functional' when my users create them.
At the moment, they drop requirements onto a diagram, fill-in the name, then go on to the next one. Then, when they come back and add some notes, it changes type from (blank) to 'Functional' - they find this confusing. I'm trying hard to get them to categorize Requirements correctly, but as with other bits of models, 'no data' means 'I haven't decided yet'. Like the multiplicity between two classes: no data means 'don't know yet'. EA doesn't add '*..0' to every connector - quite right.
So a Requirement with no stereotype means 'don't know yet', and is useful information for me.
So what I see in the model is requirements with
- no stereotype. I take this to mean 'haven't decided yet) - OK
- 'Functional' - might mean - ' I have chosen a Functional stereotype' OR 'I edited the notes, and 'Functional' just got added, but I really haven't decided yet'
In the view of my users, this is just a bad user experience.
Whether the EA approach is "right" or "wrong", it's confusing to new users. And they will be keeping me, and Sparx, in future business, so they really matter!
And cheer-up Q - you might have to use Viseo, then you'd REALLY complain...:-)