APR: Updated Domain Model

model steamboat

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.

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.


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”?

3 thoughts on “APR: Updated Domain Model

  1. “people rating” should be implicit based on ratings of reviews. Rude users should be kicked out of the system by an administrator/editor. However, I think we won’t have this problem, because people in our niche tend to be sane.

    beginner/expert: the step from one to the other seems quite large. I always have problems with 3-step scales when judgement plays a role. Do I qualify for expert level just because I’m in the industry for 5 years? Am I still a beginner, compared to all the product managment freaks on this site? ;-) So I suggest either 2 levels or 4, like beginner, intermediate, semi-expert, expert. (these words are awkward, sorry. Please, all native speakers of English, assist!)

  2. Although I’m not sure how it will show up to users, here’s how my mental model of the beginner/expert thing might work.

    Oh – first – definitely only applies to articles, not people. Almost everyone in our niche is an expert in at least one area, and a beginner in at least one area. And they fill out the continuum in other areas with varying degrees of experience/expertise.

    I visualize the B/E scale like a balance. People add votes to whichever side they think is appropriate – completely subjective, and everyone has a different opinion about it. The scale will either tip to the B side, or tip to the E side. Or it will be pretty balanced and show “not sure.” There may also be a minimum number of opinions expressed to cause the scale to move at all. Or one side must be >10% above the other to cause it to move.

    Don’t know about presentation, but that’s the idea in my head.

  3. forget my comment, I mixed the idea up with user ratings. Not really, there is slight difference between “this user ist an expert” and “this article is for expert users” .

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.