Knowledge Nugget: What is a Functional Requirement?


Read this Knowledge nugget if you want to learn how a functional requirement is defined and how it relates to Software Engineering terminology.

Simply put, functional requirements can be pictured as additional functions in Software Applications.

Functional requirements typically originate from changes in or additions to business processes, based on a specific business reason. This means, functional requirements – actually requirements in general – make only sense if the business paying for them benefits in some way.

From a granularity perspective it is important to distinguish between two types of requirements:

  • Business Requirements, and
  • System Requirements.

Business Requirements are broader requirements that state a specific business need or business benefit. Those business requirements are then broken down into System Requirements. This means, features of or enhancements to specific systems. In our case Software Applications. A business requirement is likely to result in more than one system requirement.

Business requirements and system requirements are often captured in a requirements management tool or in the simplest case in text documents.

The functional system requirements for entirely new Software Applications, new features of or enhancements to Software Applications are often documented and detailed in Use Case documents and/or Use Case diagrams. One Use Case can cover one or more than one system requirement.

Examples

Here an example of some requirements. Imagine you run an E-Learning business and host E-Learning content for public users. Therefore it is an important part of your business case that prospective students can register online. Therefore a business requirement could be: Provide users with the ability to search the online course catalog and register for a class. System requirements for this business requirement may be:

  • Provide the user with the ability to full-text search the course catalog.
  • Provide the user with the ability to browse the course catalog by categories and keywords.
  • Provide the user with the ability to register online as well as cancel registrations.

References

[Amb2009a Ambler, S. 2009, “Essential (Abstract) Use Cases”, Agile Modeling (AM) Homepage [online] available at http://www.agilemodeling.com/artifacts/essentialUseCase.htm

[Amb2009b Ambler, S. 2009, “Introduction to System Use Cases”, Agile Modeling (AM) Homepage [online] available at http://www.agilemodeling.com/artifacts/systemUseCase.htm

[Amb2009c Ambler, S. 2009, “UML 2 Use Case Diagrams”, Agile Modeling (AM) Homepage [online] available at http://www.agilemodeling.com/artifacts/useCaseDiagram.htm

Copyright © 2010 Michael Pichler

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s