I'm writing the Software Requirement Specification document for a piece of software that I am developing. A part of the SRS is the identification of the user class.

Can somebody please give or refer me to definition of a user class as it relates to a software product?

  • @Wyatt - SRS stands for software requirements specifications. It is a document that describes the behavior of the software product to be developed. It is written after the elicitation, analysis and validation of the requirements that a proposed software system is supposed to meet.
    – user21455
    Mar 29, 2011 at 14:40
  • Pardon the skepticism - but you actually expect to follow this SRS to the letter?
    – talonx
    Mar 30, 2011 at 12:16
  • @talonx - no, but it was term that I came across and didn't fully understand. I just wanted to clear that up and see how relevant it is to what I am doing :)
    – user21455
    Mar 30, 2011 at 14:03

3 Answers 3


User classes will differ based on the type of software you are writing, and the audience it is designed for. For example, I created a database application which had two user classes: traders and administrators. Your SRS might include other classes - maybe "general user", "power user", "executive", etc...

Basically, you are just trying to describe the various groups of users who will be using your software. You are coming up with a definition so you can group people into these classes, spell out their characteristics, and plan what permissions/user experience/features they need. For example:

  • Power users have workstation class desktops, lots o' RAM, and have development tools installed.

  • Salespeople have laptops, usually remote-connect into the network.

  • Executives are technology-shy, have assistants who need access to all apps, requests need to be prioritized.

  • IT department - need full access to database and access to the admin menus

The purpose of this classification is to help you 1) make sure your software appropriately fills the needs of each class, and 2) make sure you take these differences into account when designing your apps.

Does that help at all?

  • 1
    PS - Here's a document which might help with the SRS as well... processimpact.com/process_assets/srs_template.doc
    – Jim
    Mar 28, 2011 at 19:29
  • Thanks Jim, that definition and those supporting examples really helped me out. And thanks for the link as well.
    – user21455
    Mar 29, 2011 at 14:41

Please don't get too lost the theoretical world. If this is an application that you are developing and designing then you are the best ( only ) person who can do this properly.

All this requires is common sense.

It is very easy to fall into the trap of trying to fill out a template with the hope that if you do enough of this then you have covered the full requirements of the specification.

Simply based on your problem domain - what unique users will you have, and what unique requirements will they have. If you only have 1 user, then please don't get lost in trying to conjure up artificial users to that your SRS look more full.

Document ONLY what adds value to the actual application. Think of this as Agile Documentation :-)

  • Thanks for the advice, it helped me clear my head about this whole thing :)
    – user21455
    Mar 29, 2011 at 14:42
  • Its a Pleasure! Mar 29, 2011 at 19:59

What you want to do is to identify the various user classes that you anticipate will use this product/system. User classes may be differentiated based on frequency of use, subset of product functions used, technical expertise, security or privilege levels, educational level, or experience.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.