[Twitter] Initial domain modeling

The first subject for my reverse modeling is Twitter.

Higher requirements

There are three major types of actors in Twitter: user (unregistered or registered), advertiser, and administrator. Thus I organized higher requirements of this system by the types of user.

To limit the number of subsequent works, I omitted several functions from the scope (strikethrough).

  • User

    • All users can:
      • create account if they meet the age restriction
      • view specific user’s
        • profile
        • “Tweets” tab
        • “Tweets & replies” tab
      • view specific tweet page
      • “You might like” card
      • What’s happening card
      • use “Explore”
        • search
          • user by
            • name
            • username
          • tweet by
            • keyword
            • hashtag
    • Registered user can log in
    • Logged-in user can:
      • visit “Home” to see Timeline
      • post new tweet
      • act on specific tweet:
        • reply
        • retweet
        • send like
        • report
      • act on specific user:
        • follow
        • add to list
        • mute
        • block
      • act on “Lists”
        • create
        • view
        • edit
        • delete
      • act on hashtag
        • create
        • use the existing one
        • view tweets that use the same one
      • view “Notification”
        • who mentioned them
        • who liked their tweets
        • who retweeted their tweets
      • act on “Messages”:
        • send messages to specific user
        • view received messages
      • act on “Profile”:
        • view
        • update
          • Name
          • Bio
          • Birth date
        • delete
      • act on account info
        • update
          • username
          • password
      • view specific user’s
        • “Media” tab
        • “Likes” tab
  • Advertisers serve ads to users based on attributes such as

    • gender
    • language
    • geographic coverage
    • keywords
    • interests
  • Administrator can activate/inactivate a specific registered user

Using the requirements listed above, I’ll create the initial domain model.

Nouns used in the higher requirements

They are the candidates of classes:

  • Actor
    • User
      • Unregistered
      • Regestered
    • Advertiser
    • Administrator
  • User attributes
    • gender
    • language
    • geographic coverage
    • keyword
    • interest
  • Age restriction
  • Profile
  • Tweet
  • Ads
  • Timeline
  • Like
  • List
  • Message

Domain model diagram created

After the initial domain modeling session, I’ve got a diagram below:

This diagram is incomplete, messed up, and may (must) even contain mistakes! But I will correct these problems during subsequent steps of ICONIX process.


comments powered by Disqus