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.
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.
[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