Book a Demo

Author Topic: Categorizing Requirements  (Read 11742 times)

wmac

  • EA User
  • **
  • Posts: 33
  • Karma: +0/-0
    • View Profile
Categorizing Requirements
« on: March 05, 2004, 09:50:18 pm »
Hello

Sorry to bring subjects that may seem obvious. May be I have become confused.

1- Would folks tell me how do they categorize requirements?

2- And how do you move them to other categories (if there is an initial category).

3- And how do we relate them to Usecases or other things?

I have looked into Rational's RequisitePro but I can not reach a firm idea.

There isn't any tutorial or help file on requirements from sparx and I wish we can have one very soon.

Regards,
Mac

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Categorizing Requirements
« Reply #1 on: March 07, 2004, 03:57:00 pm »
Mac,
Re 1. We let projects define their own categories for requirements.  However, they are provided with the following as a “starting” point and few have needed to go much further except for some specific technical environment related specializations.







































Functional requirements
Functionalusage requirement, something the system does
Validationsome specific validation that must occur
Displayuser has an express desire that information is presented (screen or report) in a particular manner
Databusiness requires that specific data be recorded (persisted) by or through the system
Supplementary requirements
Performancedemonstrable business need that the system response be x at a specific instance
Constraintany requirement that constrains the design of the system in some way.

Other than the above, I occasionally come across projects that have justifiable needs to add some specific categories on specific projects. For example, they may break constraint up further if the client has specified a zillion design constraints that the project needs to review and justify.

We have deliberately tried to keep the number of categories small while allowing the projects to extend the categories where it will assists rather than hinder the progress.

Re 3. In the main, “large” functional requirements have tended to map to a single use case.  In other words, “the system shall provide a function to create a new customer account” pretty obviously maps to “Create Customer Account”. Other use cases arise through normal requirements gathering and analysis work.

We strongly encourage all projects to record business requirements as “external requirements”.  These can easily be related to one or more impacted use cases as <<realizations>> and EA takes care of the rest.

Re 2: We encourage projects to adopt the following process for requirements gathering and analyses:
    [1]Initially just record the requirement in the top level of either the Functional or Supplementary requirements models.
    [2]At frequent group reviews, the EA Type attribute for new/changed requirements is agreed by the project team and set in the model.
    [3]As the requirements model matures, suitable “formal” package structuring for the requirements set appears – we do not insists on any specific structure below the model level – the best structure is determined by agreement between the teams responsible for the design, development and support of the specific system.

The structure of the template we provide projects with for using UML is as follows:





VIEW
MODEL
PACKAGE
SUB-PACKAGE …
Diagram

Specifically, for the system requirements, it is










REQUIREMENTS view
FUNCTIONAL REQUIREMENTS model
(The project determines package structure to suit the system here)
SUPPLEMENTARY REQUIREMENTS model
SYSTEM CONTEXT model
BUSINESS PROCESS model
USE CASE model
BUSINESS OBJECTS model
PRELIMINARY UI model
UI NAVIGATION package
UI DESIGN packages…

What (all) the above has allowed us to do is to have a fairly consistent approach across all projects in the organization, allow the necessary degree of flexibility for specific projects and, most importantly, comply with the KISS principal.

Projects use the packaging structure below the model level to achieve objectives specific to the system and project.  For example, one project that has a large user type or business type base may break up requirements into SME packages thus letting each of the SME’s approve their requirements as a small set rather than presenting them with the tome of all the requirements for the system.  Another project, that has cross technology scope (say a Webshere/DB2 based distributed web app) may break up the packages by technology base so their architects and designers are driven by the requirements specific to their technology area.  We also encourage the projects to consider running multiple model structures if that will add value.  In that scenario, requirements elements are recorded in an agreed “base” structure below the model and other structures re-represent the requirements in a different manner.  So a particvular system structure may look something like the following:












REQUIREMENTS view
FUNCTIONAL REQUIREMENTS model
FORMAL REQUIREMENTS (base) sub model
Structure
REQUIREMENTS BY SME GROUP sub model
REQUIREMENTS BY TECHNICAL LAYER sub model
SUPPLEMENTARY REQUIREMENTS model
SYSTEM CONTEXT model
Etc…


Bit of a rave, but I hope that gives you some ideas.
Bruce
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

wmac

  • EA User
  • **
  • Posts: 33
  • Karma: +0/-0
    • View Profile
Re: Categorizing Requirements
« Reply #2 on: March 07, 2004, 08:54:37 pm »
Bruce,

Really thank you. Your answers are always great.

Regards,
Mac


fluxtah

  • EA User
  • **
  • Posts: 144
  • Karma: +0/-0
    • View Profile
Re: Categorizing Requirements
« Reply #3 on: March 08, 2004, 12:49:21 am »
Hiya,

I am just learning Use Case Modelling and have this book that has a cool way to remember requirements, uses a synonym FURPS+ which is Functional, Usability, Reliability, Performance, Supportability and the + means any other requirement that doesnt fall into these categories.

Regards

Ian

wmac

  • EA User
  • **
  • Posts: 33
  • Karma: +0/-0
    • View Profile
Re: Categorizing Requirements
« Reply #4 on: March 08, 2004, 10:25:34 am »
fluxtah

Thank you mate. Also thank you again for your .NET farmework template.

And will you tell which book you have chosen?

Regards,
Mac


sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Categorizing Requirements
« Reply #5 on: March 08, 2004, 03:06:01 pm »
IIRC :

RUP discusses FURPS+ in some depth.  See "Concepts: Requirements"

The RUP rerence is
Quote
GRA92 Robert Grady 1992. Practical Software Metrics for Project Management and Process Improvement. Prentice-Hall.


Also Wiegers book mentions it (Wiegers is THE requirements book IMO :) )

"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Categorizing Requirements
« Reply #6 on: March 08, 2004, 03:14:39 pm »
Personally,

F(unctional) - yeah, we use it
U(seability) - bah! gives users a chance to impose design constraints!
R(eliability) - we dont see such a need to delineate these particularly from other supplementary requirements
P(erformance) - yeah, we use it - fairly common thing that users think they can express correctly "The system will have sub nano-second response times for all functions"
S(upportabilty) - have not yet come across a system that needs to express a supportability requirement other than "The system will be fully supported by the IT department" ;)
and as for the "+" things, they are the things we typically classify as "Constraint" in our models .

"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

wmac

  • EA User
  • **
  • Posts: 33
  • Karma: +0/-0
    • View Profile
Re: Categorizing Requirements
« Reply #7 on: March 08, 2004, 07:00:20 pm »
Bruce,

I have strted working on your model (first table) because I can understand it easily and it seems very logical to me. (I think it will be the same for someone who may study documents later).

Functional requirements  
- Functional
- Validation
- Display
- Data
Supplementary requirements  
- Performance
- Constraint

I think it will fit into most of my projects. Actually I prefer to have a relatively standard approach in my works.

For example I thought it would be a good thing to have those 4+1 Views (Now + Requirements View) on root of project and then customize other layers as we want (Your opinion?).

Regards,
Mac