
More iteration in our agile project. In this article, we make several updates to the domain model (UML class diagram) based upon discussions on all of the articles in the series. More than a couple dozen in the last day. Thanks to everyone who has helped with feedback and encouragement – just awesome!
Updated domain Model
Here’s the updated UML class diagram representing our domain model.
[larger]
Overview of Changes
Rather than enumerate all of the changes to the diagram (you can compare the diagrams), I think it would be more effective to identify the concepts that have been incorporated into this iteration of the UML class diagram.
- Added placeholder for the mashup concept.
- Added notion of broadcasting “events” from users, to distribution lists, about articles.
- Updated user roles to reflect minimal classification scheme.
- Added meta data for users, including openID support; articles.
- Added notion of reading “events” from users, of articles, at times. Could support “what did I read” or “been read X times”.
- Added category/synonym idea for articles.
- Expanded notion of “Rating” to include rating of articles, reviews, and other users.
- Refactored ratings to be a 5 point scale like the one on this article.
- Added notion of beginner/expert/not-sure for articles.
Questions
Thoughts and questions after making this update.
- Do we need explicit rating of other users? Should this supplant the admired/admirer model? Should “people rating” be implicit based upon ratings of their reviews? Should people know how they are rated? Presumably not knowing who rated them.
- Not Sure could be “conflicting or insufficient opinion”. When filtering for “beginner” would you want “beginner only” or “beginner + not sure”?

