Talk:Functional requirement
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||
|
General Comments
[edit]The articles Functional requirements and functional specification seem to handle the same topic. --Abdull 09:28, 2 June 2007 (UTC)
- They don't. A functional specification is more specific and state how a system should do something while a functional requirements only state what the system should do. Lakeworks (talk) 17:12, 19 January 2008 (UTC)
- @Lakeworks: No. A functional requirement states the answer to "why does a system have to be created / changed?". One or more related functional specifications state the answer to "what has to be created / changed in a system to meet the functional requirement?". What is more specific are technical specifications (AKA Technical Design - TD), which in the end state the answer to "how does a system have to be created / changed to meet the functional requirements?". Vittorioolivati (talk) 21:36, 11 November 2021 (UTC)
- In fact there is a fundamental semantic difference between the two that ironically is also a common failure mode in the creation and performance of these things. "Functional Requirements" is a plural noun. "Functional specification" is a verb, and as such are distinct from one another.
- I agree with your first sentence, but as for the second one, I can't understand why you refer "Functional specification" as a verb Vittorioolivati (talk) 21:36, 11 November 2021 (UTC)
This article and the Non-Functional Requirements are quite small in content and should be merged into the Requirement article. --PedroLamarao 21:00, 29 October 2007 (UTC)
I am uncomfortable with the term non-funcitonal requirements altogether, since they can be seen as quantitative attributes to the functional requirements (i.e. as in Axiomatic design) and I think it should be deleted from this article.Petkr (talk) 21:36, 27 December 2022 (UTC)
Functional requirements are not only used in Software projects, but are used in many other engineering fields. I think this page should reflect this.
The comment by Lakeworks is right; however, this article fails to make the distinction clear. It suggests something far closer to a specification than it should, in my opinion. Requirements = goals of the system, not methods for getting there. —Preceding unsigned comment added by 130.194.13.106 (talk) 03:46, 8 April 2008 (UTC)
The Functional requirements are those extracted from the customer/client requirements.This refers to a specific function of a field, where it describes the field functionality like click,edit etc that has to be done by the user/a tester. —Preceding unsigned comment added by Gowtham2367 (talk • contribs) 10:12, 20 April 2010 (UTC)
Clearly this topic is a difficult one to nail down. Has anyone got any good reference material to help define it? Are there international standards? (I think there may be.) — Preceding unsigned comment added by Craigwbrown (talk • contribs) 09:26, 12 January 2011 (UTC)
- There are international standards; see https://www.iso.org/obp/ui/#iso:std:iso-iec-ieee:24765:ed-2:v1:en
- "functional requirement
- 1. statement that identifies what results a product or process shall produce
- 2. requirement that specifies a function that a system or system component shall perform [IEEE 730-2014 IEEE Standard for Software Quality Assurance Processes, 3.2]
- functional specification
- 1. document that specifies the functions that a system or component must perform
- Note 1 to entry: often part of a requirements specification" Vittorioolivati (talk) 19:23, 12 November 2021 (UTC)
- The problem, in my eyes, is that most literature about requirements seems to make the mistake of equating parts, features, functions, and functional requirements, so it's not going to be easy to fix it in an authoritative way. It doesn't help that these words have overlapping meanings, but there are fundamentally different concepts involved. If I may take cars as an example: a steering wheel is a part; to steer the car in an arbitrary direction is a function; the driver's ability to arbitrarily change direction is a functional requirement. Parts are used to implement functions, which are used to implement functional requirements. There is no one-to-one mapping in general: it takes more than a steering wheel to steer a car, and a steering wheel has other functions besides steering. What complicates the matter further is that requirements may arise out of the chosen solutions to more general requirements - for instance, a car only needs to change directions arbitrarily because it needs to function on a road network, which is part of a particular design to implement a car's fundamental function, namely transporting people and goods from one place to another; change that design (e.g. use rails) and the requirement may change or vanish. Many texts on functional software requirements skip the distinction entirely and ask the software engineer to describe as functional requirements what are really parts; as a consequence there is no distinction between problem statement and proposed solution. Rp (talk) 14:27, 22 May 2012 (UTC)
A list of problems with page content
[edit]- The page focuses on software requirements to the exclusion of other domains
- The format of the content is poor
- The content conflates functional requirements with methods
- The requirements taxonomy in general needs improvement and this page has it's part to play
- There are a few instances if circular definitions in here.
- The definition of a Functional Requirement by contrasting it with a Non Functional requirement presents two problems; 1) The definition of an NFR here is not consistent with the NFR wikipedia page, and 2) the definition needs to be understandable in it's own right
Craigwbrown (talk) 06:35, 12 January 2012 (UTC)
- I have a few deltas
- functional requirements is requirements generally, not just software.
- format you should try to improve whatever is bothering you about it
- requirements taxonomy is confused in literature -- many different taxonomies exist
- contrast to NFR seems appropriate in the lexicon I see it's a dichotomy of those are the two classes (the other types of requirements mentioned are just sources or subclasses of either FR or NFR)
Markbassett (talk) 21:24, 28 August 2013 (UTC)
- p.s. It may help to look at the requirements mentioned at DO-254 or DO-178C to see it's not just software. A functional requirement describes what a system should do, while non-functional requirements place constraints on how the system will do so. (here) Functional is just saying to describe what output must be for a given set of inputs, and sometimes that lumps in interface requirements that set the scope of the system of interacting with other systems or the operational enviroment. Derived requirements are ones not explicitly stated iby customer but inferred by context (e.g. applicable standards, laws, policies, common practice) or by specification choice (e.g. to specify a component, from later analysis of alternatives or trade study) that the originating requirements did not identify. There are many ways to describe the type of requirement like operational, training, safety, ergonomic, and more than one description may fit. Markbassett (talk) 17:24, 8 February 2016 (UTC)
Proposed improvements
[edit]- (I think) The page should be structured around definition, origins, attributes and usage.
- The definition of Functional Requirement needs to be inclusive all all relevant domains, eg,
- Definition
- Functional Requirements are Requirements a set of behaviours or activities that are required from a product to fulfil a client or customer need. In engineering the work Function has a specific meaning that implies activity of some sort.
- Examples of functional requirements in software may include calculations, technical details, data manipulation and processing and other specific activity that define what a system is supposed to accomplish.
- Examples of functional requirements in other domains include things like the ability for a door to open without impedance from other objects, the ability for a switch to activate an electronic toy, A controller to change temperature on an air conditioner, etc.
- Origins
- Can anyone provide an origin story for how Functional Requirements arrived?
- Any suggestions?
- Attributes
- What are the essential elements of a functional requirement?
- Any suggestions
- Usage
- Functional Requirements are often used to separate requirements into categories such as Functional (performs activities) and non functional (applies standards).
- Anything else?
I just asked these questions at my blog and when/if I get decent answers I'll return to update here. Hopefully in less than a year :) I'd be very happy if anyone else came along and made improvements in the meantime. Craigwbrown (talk) 06:35, 12 January 2012 (UTC)
- I found this article - Roman (1985) "A taxonomy of Current Issues in Requirements Engineering" Computer April 1985, IEEE http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1662861, and it references R. T. Yeh, "Requirements Analysis- A Management Perspective," Proc. COMPSAC '82, Nov. 1982, pp. 410-416 as an earlier citation. — Preceding unsigned comment added by Craigwbrown (talk • contribs) 05:33, 16 January 2012 (UTC)
Delete the Origin of Term
[edit]I'm thinking the section Origin of Term should be deleted, from not seeing an intended value and the guide of WP:DICT means we shouldn't chase the entymology without a reason.
As an aside, the section seems also to be missing things. From Non-functional requirement talk and prior posts here - Basis: 'Functional requirement' stated as based on inputs, calculations, and outputs seems to be using the mathematics concept of function later seen in IPO Model. Math sourcing seems plausible as that concept is widely present in mathematics for centuries, and is a context that would have been fundamental and familiar to engineers. - History mess: The cites do convey the presence in taxonomy for at least 30+ years, but ... use of 'functional requirements' started before late 19th century as visible in google docs, and seems from context the language seems to not have changed much
- 1898 re Steam plant and viewpoints of classes of stakeholders is very much like current requirements management
- 1920s contracting for school plant of chairs is very much like current contract usages
- Similar phrase 'function required of it' in analysis of alternatives sense
- railway news 1873 at Dartmoor peat performs every function required of coal;
- Engineering news 1898 substitution of electricity in place of steam
The use in combination with "non-functional requirements" seems a less frequent and later introduction, more commonly said as 'Quality' requirement. My guess would be that grew out of 1960s 'quality' developing as a separate topic from increased frequency and importance in multiple venues like the environment (water quality) and advanced technology (NASA and nuclear power), then in the 1980s by Japan quality manufacturing and popularity of 'Total Quality Management' in U.S. starting circa 1991. My impression is that functional/nonfunctional came into software thru structured programming and into systems engineering by way of patent and contract law... but those are my analysis, we have no contemporaneous cite providing backstory.
So unless someone gives a reason not to, I'll likely come back and delete "Origin of the term" section as purposeless and unresolvably a mystery. Markbassett (talk) 16:43, 28 October 2013 (UTC)
Not seeing any responses to the above in last couple weeks. If no one can give a purpose to having an origin section, and the origin remains a mystery, I will delete the section .... Markbassett (talk) 20:58, 12 November 2013 (UTC)
I have deleted the 'Origin of Term' section. It seemed like the structure was copying from Requirement but as noted above there seemed no reason and bad data so ... delete. Markbassett (talk) 16:15, 23 December 2013 (UTC)
Suggestion for Clarification & Rewrite
[edit]Observations Functional requirements are needed for many things - not just software projects. I suggest that the "software" bias on this page is removed and replaced by a description of functional requirements that can be applied to all kinds of projects - not just software projects.
Whilst I agree with the assertion:
"The crux of the requirement is the description of the required behavior"
I find much of the rest of the text to be unclear and biased towards software development. (And it has a fog index of 17.8 which equates to "barely readable")
My proposal is to limit this page to "the functional requirements of a statement of functional requirements".
The process of "creating functional requirements" is an example of a name for a procedure for solving the problem "We do not know how to create functional requirements". And there is more than one way of doing this. If the process "How to develop functional requirements" is to be included on this page, then it should be in a separate section with the heading: "How to elicit and write functional requirements"
My suggestion
Here is my suggestion for a complete restructure and rewrite of this (and related) pages: This is generic and applies to all statements of requirements - including those for software. My aims are simplification and clarification.
1: Someone has some kind of need.
e.g.
a) I want to put a man on the Moon and return him safely to the Earth.
This is a Goal - Jules Verne wrote about this goal in 1865.
b) I want to put a man on the Moon and return him safely to the Earth before this decade is out.
This is an Objective because it adds a due date to the Goal! Note: An Objective is a Goal with a due date.
2: A task list for meeting the "need" can be expressed by making one or more problem statements:
e.g.
We do not know which method is best (Direct flight or Orbital rendezvous)
We do not have rocket motors with enough thrust.
We do not have trained astronauts
We do not have materials that can withstand the heat of re-entry.
We don't know enough about the Moon's gravitational anomalies. (mascons)
3: Functional Requirements: (The What) Convert the problem statements into a set of statements that describe the functions that all proposed solutions must exhibit.
e.g. The solution must:
- use the most cost-effective method.
- have enough lift-off thrust to get to the Moon (the chosen solution had 7.5 million lbs.)
- use people who have been trained to do (insert list of abilities)
- be able to withstand 3000 degrees centigrade on re-entry.
- be able to adapt to gravitational anomalies on the Moon. (Not known about until 1966)
4: Specify one or more solutions (The How)
It us usually possible to design more than one solution that meets the functional requirements.
For example: The requirement: "be in the office by 0800"
Solution 1: Walk to the office.
Solution 2: Go by car.
Solution 3: Go by bicycle .
Ken Evans 10:51, 20 August 2014 (UTC) — Preceding unsigned comment added by The ken evans (talk • contribs)
- Interesting proposal. I'm not sure how your examples make this a more encyclopedic article. Please remember that Wikipedia is not a how-to manual. Walter Görlitz (talk) 11:16, 20 August 2014 (UTC)
Walter: I find your comments to be quite opaque. What is an "encyclopaedic" article? To what degree is my proposal not "encyclopaedic"? What makes you any more qualified than anyone else to say what Wikipedia is and is not?
Of course, I can see that your comment does serve the purpose of having your name on yet another page without making much of a substantive contribution.
Ken Evans 13:50, 20 August 2014 (UTC) — Preceding unsigned comment added by The ken evans (talk • contribs)
- I'm sorry to be opaque. Wikipedia is an encyclopedia. Everything we do should be done to create an encyclopedia. Wikipedia is not a manual, guidebook, textbook, or scientific journal. We should not not be listing step-by-step guides on what functional requirements are in real life, we should be offering steps from need to the requirement. Walter Görlitz (talk) 13:59, 20 August 2014 (UTC)
External links modified
[edit]Hello fellow Wikipedians,
I have just modified one external link on Functional requirement. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
- Added archive https://web.archive.org/web/20170131231503/http://www.dau.mil/publications/publicationsdocs/sefguide%2001-01.pdf to http://www.dau.mil/publications/publicationsDocs/SEFGuide%2001-01.pdf
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
An editor has reviewed this edit and fixed any errors that were found.
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 22:05, 8 October 2017 (UTC)