fbpx
Wikipedia

Requirement

In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, including for example in systems engineering, software engineering, or enterprise engineering. It is a broad concept that could speak to any necessary (or sometimes desired) function, attribute, capability, characteristic, or quality of a system for it to have value and utility to a customer, organization, internal user, or other stakeholder. Requirements can come with different levels of specificity; for example, a requirement specification or requirement "spec" (often imprecisely referred to as "the" spec/specs, but there are actually different sorts of specifications) refers to an explicit, highly objective/clear (and often quantitative) requirement (or sometimes, set of requirements) to be satisfied by a material, design, product, or service.[1]

A set of requirements is used as inputs into the design stages of product development. Requirements are also an important input into the verification process, since tests should trace back to specific requirements. Requirements show what elements and functions are necessary for the particular project. When iterative methods of software development or agile methods are used, the system requirements are incrementally developed in parallel with design and implementation. With the waterfall model requirements are developed before design and implementation.

Origins of term Edit

The term requirement has been in use in the software engineering community since at least the 1960s.[2]

According to the Guide to the Business Analysis Body of Knowledge® version 2 from IIBA (BABOK),[3] a requirement is:

  1. A condition or capability needed by a stakeholder to solve a problem or achieve an objective.
  2. A condition or capability that must be met or possessed by a solution or solution component to satisfy a contract, standard, specification, or other formally imposed documents.
  3. A documented representation of a condition or capability as in (1) or (2).

This definition is based on IEEE 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology.[4]

Product versus process requirements Edit

Requirements can be said to relate to two fields:

  • Product requirements prescribe properties of a system or product.
  • Process requirements prescribe activities to be performed by the developing organization. For instance, process requirements could specify the methodologies that must be followed, and constraints that the organization must obey.

Product and process requirements are closely linked; a product requirement could be said to specify the automation required to support a process requirement while a process requirement could be said to specify the activities required to support a product requirement. For example, a maximum development cost requirement (a process requirement) may be imposed to help achieve a maximum sales price requirement (a product requirement); a requirement that the product be maintainable (a product requirement) often is addressed by imposing requirements to follow particular development styles (e.g., object-oriented programming), style-guides, or a review/inspection process (process requirements).

Types of requirements Edit

Requirements are typically classified into types produced at different stages in a development progression, with the taxonomy depending on the overall model being used. For example, the following scheme was devised by the International Institute of Business Analysis in their Business Analysis Body of Knowledge[5] (see also FURPS and Types of requirements).

Architectural requirements
Architectural requirements explain what has to be done by identifying the necessary integration of systems structure and systems behavior, i.e., systems architecture of a system.
In software engineering, they are called architecturally significant requirements, which is defined as those requirements that have a measurable impact on a software system’s architecture.[6]
Business requirements
High-level statements of the goals, objectives, or needs of an organization. They usually describe opportunities that an organization wants to realise or problems that they want to solve. Often stated in a business case.
User (stakeholder) requirements
Mid-level statements of the needs of a particular stakeholder or group of stakeholders. They usually describe how someone wants to interact with the intended solution. Often acting as a mid-point between the high-level business requirements and more detailed solution requirements.
Functional (solution) requirements
Usually detailed statements of capabilities, behavior, and information that the solution will need. Examples include formatting text, calculating a number, modulating a signal. They are also sometimes known as capabilities.
Quality-of-service (non-functional) requirements
Usually detailed statements of the conditions under which the solution must remain effective, qualities that the solution must have, or constraints within which it must operate.[7] Examples include: reliability, testability, maintainability, availability. They are also known as characteristics, constraints or the ilities.
Implementation (transition) requirements
Usually, detailed statements of capabilities or behavior required only to enable the transition from the current state of the enterprise to the desired future state, but that will thereafter no longer be required. Examples include recruitment, role changes, education, migration of data from one system to another.
Regulatory requirements
Requirements defined by laws (Federal, State, Municipal, or Regional), contracts (terms and conditions), or policies (company, departmental, or project-level).

Characteristics of good requirements Edit

The characteristics of good requirements are variously stated by different writers, with each writer generally emphasizing the characteristics most appropriate to their general discussion or the specific technology domain being addressed. However, the following characteristics are generally acknowledged.[8][9]

Characteristic Explanation
Unitary (Cohesive) The requirement addresses one and only one thing.
Complete The requirement is fully stated in one place with no missing information.
Consistent The requirement does not contradict any other requirement and is fully consistent with all authoritative external documentation.
Non-Conjugated (Atomic) The requirement is atomic, i.e., it does not contain conjunctions. E.g., "The postal code field must validate American and Canadian postal codes" should be written as two separate requirements: (1) "The postal code field must validate American postal codes" and (2) "The postal code field must validate Canadian postal codes".
Traceable The requirement meets all or part of a business need as stated by stakeholders and authoritatively documented.
Current The requirement has not been made obsolete by the passage of time.
Unambiguous The requirement is concisely stated without recourse to technical jargon, acronyms (unless defined elsewhere in the Requirements document), or other esoteric verbiage. It expresses objective facts, not subjective opinions. It is subject to one and only one interpretation. Vague subjects, adjectives, prepositions, verbs and subjective phrases are avoided. Negative statements and compound statements are avoided.
Specify Importance Many requirements represent a stakeholder-defined characteristic the absence of which will result in a major or even fatal deficiency. Others represent features that may be implemented if time and budget permits. The requirement must specify a level of importance.
Verifiable The implementation of the requirement can be determined through basic possible methods: inspection, demonstration, test (instrumented) or analysis (to include validated modeling & simulation).

There are many more attributes to consider that contribute to the quality of requirements. If requirements are subject to rules of data integrity (for example) then accuracy/correctness and validity/authorization are also worthy attributes. Traceability confirms that the requirement set satisfies the need (no more - and no less than what is required).

To the above some add Externally Observable, that is, the requirement specifies a characteristic of the product that is externally observable or experienced by the user. Such advocates argue that requirements that specify internal architecture, design, implementation, or testing decisions are probably constraints, and should be clearly articulated in the Constraints section of the Requirements document. The contrasting view is that this perspective fails on two points. First, the perspective does not recognize that the user experience may be supported by requirements not perceivable by the user. For example, a requirement to present geocoded information to the user may be supported by a requirement for an interface with an external third party business partner. The interface will be imperceptible to the user, though the presentation of information obtained through the interface certainly would not. Second, a constraint limits design alternatives, whereas a requirement specifies design characteristics. To continue the example, a requirement selecting a web service interface is different from a constraint limiting design alternatives to methods compatible with a Single Sign-On architecture.

Verification Edit

All requirements should be verifiable. The most common method is by test. If this is not the case, another verification method should be used instead (e.g. analysis, demonstration, inspection, or review of design).

Certain requirements, by their very structure, are not verifiable. These include requirements that say the system must never or always exhibit a particular property. Proper testing of these requirements would require an infinite testing cycle. Such requirements must be rewritten to be verifiable. As stated above all requirements must be verifiable.

Non-functional requirements, which are unverifiable at the software level, must still be kept as a documentation of customer intent. However, they may be traced to process requirements that are determined to be a practical way of meeting them. For example, a non-functional requirement to be free from backdoors may be satisfied by replacing it with a process requirement to use pair programming. Other non-functional requirements will trace to other system components and be verified at that level. For example, system reliability is often verified by analysis at the system level. Avionics software with its complicated safety requirements must follow the DO-178B development process.

Activities that lead to the derivation of the system or software requirements. Requirements engineering may involve a feasibility study or a conceptual analysis phase of the project and requirements elicitation (gathering, understanding, reviewing, and articulating the needs of the stakeholders) and requirements analysis,[10] analysis (checking for consistency and completeness), specification (documenting the requirements) and validation (making sure the specified requirements are correct).[11][12]

Requirements are prone to issues of ambiguity, incompleteness, and inconsistency. Techniques such as rigorous inspection have been shown to help deal with these issues. Ambiguities, incompleteness, and inconsistencies that can be resolved in the requirements phase typically cost orders of magnitude less to correct than when these same issues are found in later stages of product development. Requirements analysis strives to address these issues.

There is an engineering trade off to consider between requirements which are too vague, and those which are so detailed that they

  1. take a long time to produce - sometimes to the point of being obsolete once completed
  2. limit the implementation options available
  3. are costly to produce

Agile approaches evolved as a way of overcoming these problems, by baselining requirements at a high-level, and elaborating detail on a just-in-time or last responsible moment basis.

Documenting requirements Edit

Requirements are usually written as a means for communication between the different stakeholders. This means that the requirements should be easy to understand both for normal users and for developers. One common way to document a requirement is stating what the system must do. Example: 'The contractor must deliver the product no later than xyz date.' Other methods include use cases and user stories.

Changes in requirements Edit

Requirements generally change with time. Once defined and approved, requirements should fall under change control. For many projects, requirements are altered before the system is complete. This is partly due to the complexity of computer software and the fact that users don't know what they want before they see it. This characteristic of requirements has led to requirements management studies and practices.

Issues Edit

Competing standards Edit

There are several competing views of what requirements are and how they should be managed and used. Two leading bodies in the industry are the IEEE and the IIBA. Both of these groups have different but similar definitions of what a requirement is.

Disputes regarding the necessity and effects of software requirements Edit

Many projects have succeeded with little or no agreement on requirements.[13] Some evidence furthermore indicates that specifying requirements can decrease creativity and design performance [14] Requirements hinder creativity and design because designers become overly preoccupied with provided information.[15][16][17] More generally, some research suggests that software requirements are an illusion created by misrepresenting design decisions as requirements in situations where no real requirements are evident.[18]

Meanwhile, most agile software development methodologies question the need for rigorously describing software requirements upfront, which they consider a moving target. Instead, extreme programming for example describes requirements informally using user stories (short summaries fitting on an index card explaining one aspect of what the system should do), and considers it the developer's duty to directly ask the customer for clarification. Agile methodologies attempt to capture requirements in a series of automated acceptance tests.

Requirements creep Edit

Scope creep may occur from requirements moving over time. In Requirements management the alteration of requirements is allowed but if not adequately tracked or preceding steps (business goals then user requirements) are not throttled by additional oversight or handled as a cost and potential program failure, then requirements changes are easy and likely to happen. It is easy for requirement changes to occur faster than developers are able to produce work, and the effort to go backwards as a result.

Multiple requirements taxonomies Edit

There are multiple taxonomies for requirements depending on which framework one is operating under. (For example, the stated standards of IEEE, vice IIBA or U.S. DoD approaches). Differing language and processes in different venues or casual speech can cause confusion and deviation from desired process.

Process corruptions Edit

A process being run by humans is subject to human flaws in governance, where convenience or desires or politics may lead to exceptions or outright subversion of the process and deviations from the textbook way the process is supposed to proceed. Examples include:

  • Process with no rigor gets no respect - If exceptions or changes are common, such as the organization running it having little independence or power or not being reliable and transparent in records, it may lead to the overall process being ignored.
  • New players wanting a do-over - e.g., The natural tendency of new people to want to change their predecessor's work to demonstrate their power or claims of value, such as a new CEO wanting to change the previous CEO's planning, including business goals, of something (such as a software solution) already in development, or a newly created office objects to current development of a project because they did not exist when user requirements were crafted, so they begin an effort to backtrack and re-baseline the project.
  • Coloring outside the lines - e.g., Users wanting more control do not just input things that meet the requirements management definition of "user requirement" or priority level, but insert design details or favored vendor characteristic as user requirements or everything their office says as the highest possible priority.
  • Showing up late - e.g., Doing little or no effort in requirements elicitation prior to development. This may be due to thinking they will get the same benefit regardless of individual participation, or that there is no point if they can just insert demands at the testing stage and next spin, or the preference to be always right by waiting for post-work critique.

Within the U.S. Department of Defense process, some historical examples of requirements issues are

  • the M-2 Bradley issues of casual requirements movement portrayed in Pentagon Wars;
  • the F-16 growth from lightweight fighter concept of the Fighter mafia, attributed to F-15 program attempting to sabotage competition or individual offices putting in local desires eroding the concept of being lightweight and low cost.
  • enthusiasm ca. 1998 for 'Net-Ready' led to its mandate as Key Performance Parameter from the Net-Ready office, outside the office defining requirements process and not consistent to that office's previously defined process, their definition of what a KPP was, or that some efforts might not be appropriate or able to define what constituted 'Net-Ready'.

See also Edit

References Edit

  1. ^ Form and Style of Standards, ASTM Blue Book (PDF). ASTM International. 2012. Retrieved 5 January 2013.
  2. ^ Boehm, Barry (2006). "A view of 20th and 21st century software engineering". ICSE '06 Proceedings of the 28th international conference on Software engineering. University of Southern California, University Park Campus, Los Angeles, CA: Association for Computing Machinery, ACM New York, NY, USA. pp. 12–29. ISBN 1-59593-375-1. Retrieved January 2, 2013.
  3. ^ "1.3 Key Concepts - IIBA | International Institute of Business Analysis". www.iiba.org. Retrieved 2016-09-25.
  4. ^ "IEEE SA - 610.12-1990 - IEEE Standard Glossary of Software Engineering Terminology".
  5. ^ Iiba; Analysis, International Institute of Business (2009). A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide) Version 2.0. ISBN 978-0-9811292-1-1. {{cite book}}: |first2= has generic name (help)
  6. ^ Chen, Lianping; Ali Babar, Muhammad; Nuseibeh, Bashar (2013). "Characterizing Architecturally Significant Requirements". IEEE Software. 30 (2): 38–45. doi:10.1109/MS.2012.174. hdl:10344/3061. S2CID 17399565.
  7. ^ Ralph, P., and Wand, Y. A Proposal for a Formal Definition of the Design Concept. In, Lyytinen, K., Loucopoulos, P., Mylopoulos, J., and Robinson, W., (eds.), Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, pp. 103-136
  8. ^ Davis, Alan M. (1993). Software Requirements: Objects, Functions, and States, Second Edition. Prentice Hall. ISBN 978-0-13-805763-3.
  9. ^ IEEE Computer Society (1998). IEEE Recommended Practice for Software Requirements Specifications. Institute of Electrical and Electronics Engineers, Inc. ISBN 978-0-7381-0332-7.
  10. ^ Stellman, Andrew; Greene, Jennifer (2005). . O'Reilly Media. p. 98. ISBN 978-0-596-00948-9. Archived from the original on 2015-02-09.
  11. ^ Wiegers, Karl E. (2003). Software Requirements, Second Edition. Microsoft Press. ISBN 978-0-7356-1879-4.
  12. ^ Young, Ralph R. (2001). Effective Requirements Practices. Addison-Wesley. ISBN 978-0-201-70912-4.
  13. ^ Checkland, Peter (1999). Systems Thinking, Systems Practice. Chichester: Wiley.
  14. ^ Ralph, Paul; Mohanani, Rahul (May 2015). "Is Requirements Engineering Inherently Counterproductive?". Proceedings of the 5th International Workshop on the Twin Peaks of Requirements and Architecture. Florence, Italy: IEEE. pp. 20–23.
  15. ^ Jansson, D.; Smith, S. (1991). "Design fixation". Design Studies. 12 (1): 3–11. doi:10.1016/0142-694X(91)90003-F.
  16. ^ Purcell, A.; Gero, J. (1996). "Design and other types of fixation". Design Studies. 17 (4): 363–383. doi:10.1016/S0142-694X(96)00023-3.
  17. ^ Mohanani, Rahul; Ralph, Paul; Shreeve, Ben (May 2014). "Requirements Fixation". Proceedings of the International Conference on Software Engineering. Hyderabad, India: IEEE. pp. 895–906.
  18. ^ Ralph, Paul (2012). "The Illusion of Requirements in Software Development". Requirements Engineering. 18 (3): 293–296. arXiv:1304.0116. doi:10.1007/s00766-012-0161-4. S2CID 11499083.

External links Edit

  • Discovering System Requirements

requirement, this, article, about, product, process, development, other, kinds, requirements, need, obligation, intelligence, requirement, historical, usage, spanish, 1513, product, development, process, optimization, requirement, singular, documented, physica. This article is about product and process development For other kinds of requirements see Need Obligation and Intelligence requirement For historical usage see Spanish Requirement of 1513 In product development and process optimization a requirement is a singular documented physical or functional need that a particular design product or process aims to satisfy It is commonly used in a formal sense in engineering design including for example in systems engineering software engineering or enterprise engineering It is a broad concept that could speak to any necessary or sometimes desired function attribute capability characteristic or quality of a system for it to have value and utility to a customer organization internal user or other stakeholder Requirements can come with different levels of specificity for example a requirement specification or requirement spec often imprecisely referred to as the spec specs but there are actually different sorts of specifications refers to an explicit highly objective clear and often quantitative requirement or sometimes set of requirements to be satisfied by a material design product or service 1 A set of requirements is used as inputs into the design stages of product development Requirements are also an important input into the verification process since tests should trace back to specific requirements Requirements show what elements and functions are necessary for the particular project When iterative methods of software development or agile methods are used the system requirements are incrementally developed in parallel with design and implementation With the waterfall model requirements are developed before design and implementation Contents 1 Origins of term 2 Product versus process requirements 3 Types of requirements 4 Characteristics of good requirements 4 1 Verification 5 Documenting requirements 6 Changes in requirements 7 Issues 7 1 Competing standards 7 2 Disputes regarding the necessity and effects of software requirements 7 3 Requirements creep 7 4 Multiple requirements taxonomies 7 5 Process corruptions 8 See also 9 References 10 External linksOrigins of term EditThe term requirement has been in use in the software engineering community since at least the 1960s 2 According to the Guide to the Business Analysis Body of Knowledge version 2 from IIBA BABOK 3 a requirement is A condition or capability needed by a stakeholder to solve a problem or achieve an objective A condition or capability that must be met or possessed by a solution or solution component to satisfy a contract standard specification or other formally imposed documents A documented representation of a condition or capability as in 1 or 2 This definition is based on IEEE 610 12 1990 IEEE Standard Glossary of Software Engineering Terminology 4 Product versus process requirements EditRequirements can be said to relate to two fields Product requirements prescribe properties of a system or product Process requirements prescribe activities to be performed by the developing organization For instance process requirements could specify the methodologies that must be followed and constraints that the organization must obey Product and process requirements are closely linked a product requirement could be said to specify the automation required to support a process requirement while a process requirement could be said to specify the activities required to support a product requirement For example a maximum development cost requirement a process requirement may be imposed to help achieve a maximum sales price requirement a product requirement a requirement that the product be maintainable a product requirement often is addressed by imposing requirements to follow particular development styles e g object oriented programming style guides or a review inspection process process requirements Types of requirements EditRequirements are typically classified into types produced at different stages in a development progression with the taxonomy depending on the overall model being used For example the following scheme was devised by the International Institute of Business Analysis in their Business Analysis Body of Knowledge 5 see also FURPS and Types of requirements Architectural requirements Architectural requirements explain what has to be done by identifying the necessary integration of systems structure and systems behavior i e systems architecture of a system In software engineering they are called architecturally significant requirements which is defined as those requirements that have a measurable impact on a software system s architecture 6 Business requirements High level statements of the goals objectives or needs of an organization They usually describe opportunities that an organization wants to realise or problems that they want to solve Often stated in a business case User stakeholder requirements Mid level statements of the needs of a particular stakeholder or group of stakeholders They usually describe how someone wants to interact with the intended solution Often acting as a mid point between the high level business requirements and more detailed solution requirements Functional solution requirements Usually detailed statements of capabilities behavior and information that the solution will need Examples include formatting text calculating a number modulating a signal They are also sometimes known as capabilities Quality of service non functional requirements Usually detailed statements of the conditions under which the solution must remain effective qualities that the solution must have or constraints within which it must operate 7 Examples include reliability testability maintainability availability They are also known as characteristics constraints or the ilities Implementation transition requirements Usually detailed statements of capabilities or behavior required only to enable the transition from the current state of the enterprise to the desired future state but that will thereafter no longer be required Examples include recruitment role changes education migration of data from one system to another Regulatory requirements Requirements defined by laws Federal State Municipal or Regional contracts terms and conditions or policies company departmental or project level Characteristics of good requirements EditThe characteristics of good requirements are variously stated by different writers with each writer generally emphasizing the characteristics most appropriate to their general discussion or the specific technology domain being addressed However the following characteristics are generally acknowledged 8 9 Characteristic ExplanationUnitary Cohesive The requirement addresses one and only one thing Complete The requirement is fully stated in one place with no missing information Consistent The requirement does not contradict any other requirement and is fully consistent with all authoritative external documentation Non Conjugated Atomic The requirement is atomic i e it does not contain conjunctions E g The postal code field must validate American and Canadian postal codes should be written as two separate requirements 1 The postal code field must validate American postal codes and 2 The postal code field must validate Canadian postal codes Traceable The requirement meets all or part of a business need as stated by stakeholders and authoritatively documented Current The requirement has not been made obsolete by the passage of time Unambiguous The requirement is concisely stated without recourse to technical jargon acronyms unless defined elsewhere in the Requirements document or other esoteric verbiage It expresses objective facts not subjective opinions It is subject to one and only one interpretation Vague subjects adjectives prepositions verbs and subjective phrases are avoided Negative statements and compound statements are avoided Specify Importance Many requirements represent a stakeholder defined characteristic the absence of which will result in a major or even fatal deficiency Others represent features that may be implemented if time and budget permits The requirement must specify a level of importance Verifiable The implementation of the requirement can be determined through basic possible methods inspection demonstration test instrumented or analysis to include validated modeling amp simulation There are many more attributes to consider that contribute to the quality of requirements If requirements are subject to rules of data integrity for example then accuracy correctness and validity authorization are also worthy attributes Traceability confirms that the requirement set satisfies the need no more and no less than what is required To the above some add Externally Observable that is the requirement specifies a characteristic of the product that is externally observable or experienced by the user Such advocates argue that requirements that specify internal architecture design implementation or testing decisions are probably constraints and should be clearly articulated in the Constraints section of the Requirements document The contrasting view is that this perspective fails on two points First the perspective does not recognize that the user experience may be supported by requirements not perceivable by the user For example a requirement to present geocoded information to the user may be supported by a requirement for an interface with an external third party business partner The interface will be imperceptible to the user though the presentation of information obtained through the interface certainly would not Second a constraint limits design alternatives whereas a requirement specifies design characteristics To continue the example a requirement selecting a web service interface is different from a constraint limiting design alternatives to methods compatible with a Single Sign On architecture Verification Edit All requirements should be verifiable The most common method is by test If this is not the case another verification method should be used instead e g analysis demonstration inspection or review of design Certain requirements by their very structure are not verifiable These include requirements that say the system must never or always exhibit a particular property Proper testing of these requirements would require an infinite testing cycle Such requirements must be rewritten to be verifiable As stated above all requirements must be verifiable Non functional requirements which are unverifiable at the software level must still be kept as a documentation of customer intent However they may be traced to process requirements that are determined to be a practical way of meeting them For example a non functional requirement to be free from backdoors may be satisfied by replacing it with a process requirement to use pair programming Other non functional requirements will trace to other system components and be verified at that level For example system reliability is often verified by analysis at the system level Avionics software with its complicated safety requirements must follow the DO 178B development process Activities that lead to the derivation of the system or software requirements Requirements engineering may involve a feasibility study or a conceptual analysis phase of the project and requirements elicitation gathering understanding reviewing and articulating the needs of the stakeholders and requirements analysis 10 analysis checking for consistency and completeness specification documenting the requirements and validation making sure the specified requirements are correct 11 12 Requirements are prone to issues of ambiguity incompleteness and inconsistency Techniques such as rigorous inspection have been shown to help deal with these issues Ambiguities incompleteness and inconsistencies that can be resolved in the requirements phase typically cost orders of magnitude less to correct than when these same issues are found in later stages of product development Requirements analysis strives to address these issues There is an engineering trade off to consider between requirements which are too vague and those which are so detailed that they take a long time to produce sometimes to the point of being obsolete once completed limit the implementation options available are costly to produceAgile approaches evolved as a way of overcoming these problems by baselining requirements at a high level and elaborating detail on a just in time or last responsible moment basis Documenting requirements EditRequirements are usually written as a means for communication between the different stakeholders This means that the requirements should be easy to understand both for normal users and for developers One common way to document a requirement is stating what the system must do Example The contractor must deliver the product no later than xyz date Other methods include use cases and user stories Changes in requirements EditRequirements generally change with time Once defined and approved requirements should fall under change control For many projects requirements are altered before the system is complete This is partly due to the complexity of computer software and the fact that users don t know what they want before they see it This characteristic of requirements has led to requirements management studies and practices Issues EditCompeting standards Edit There are several competing views of what requirements are and how they should be managed and used Two leading bodies in the industry are the IEEE and the IIBA Both of these groups have different but similar definitions of what a requirement is Disputes regarding the necessity and effects of software requirements Edit Many projects have succeeded with little or no agreement on requirements 13 Some evidence furthermore indicates that specifying requirements can decrease creativity and design performance 14 Requirements hinder creativity and design because designers become overly preoccupied with provided information 15 16 17 More generally some research suggests that software requirements are an illusion created by misrepresenting design decisions as requirements in situations where no real requirements are evident 18 Meanwhile most agile software development methodologies question the need for rigorously describing software requirements upfront which they consider a moving target Instead extreme programming for example describes requirements informally using user stories short summaries fitting on an index card explaining one aspect of what the system should do and considers it the developer s duty to directly ask the customer for clarification Agile methodologies attempt to capture requirements in a series of automated acceptance tests Requirements creep Edit Scope creep may occur from requirements moving over time In Requirements management the alteration of requirements is allowed but if not adequately tracked or preceding steps business goals then user requirements are not throttled by additional oversight or handled as a cost and potential program failure then requirements changes are easy and likely to happen It is easy for requirement changes to occur faster than developers are able to produce work and the effort to go backwards as a result Multiple requirements taxonomies Edit There are multiple taxonomies for requirements depending on which framework one is operating under For example the stated standards of IEEE vice IIBA or U S DoD approaches Differing language and processes in different venues or casual speech can cause confusion and deviation from desired process Process corruptions Edit A process being run by humans is subject to human flaws in governance where convenience or desires or politics may lead to exceptions or outright subversion of the process and deviations from the textbook way the process is supposed to proceed Examples include Process with no rigor gets no respect If exceptions or changes are common such as the organization running it having little independence or power or not being reliable and transparent in records it may lead to the overall process being ignored New players wanting a do over e g The natural tendency of new people to want to change their predecessor s work to demonstrate their power or claims of value such as a new CEO wanting to change the previous CEO s planning including business goals of something such as a software solution already in development or a newly created office objects to current development of a project because they did not exist when user requirements were crafted so they begin an effort to backtrack and re baseline the project Coloring outside the lines e g Users wanting more control do not just input things that meet the requirements management definition of user requirement or priority level but insert design details or favored vendor characteristic as user requirements or everything their office says as the highest possible priority Showing up late e g Doing little or no effort in requirements elicitation prior to development This may be due to thinking they will get the same benefit regardless of individual participation or that there is no point if they can just insert demands at the testing stage and next spin or the preference to be always right by waiting for post work critique Within the U S Department of Defense process some historical examples of requirements issues are the M 2 Bradley issues of casual requirements movement portrayed in Pentagon Wars the F 16 growth from lightweight fighter concept of the Fighter mafia attributed to F 15 program attempting to sabotage competition or individual offices putting in local desires eroding the concept of being lightweight and low cost enthusiasm ca 1998 for Net Ready led to its mandate as Key Performance Parameter from the Net Ready office outside the office defining requirements process and not consistent to that office s previously defined process their definition of what a KPP was or that some efforts might not be appropriate or able to define what constituted Net Ready See also EditBusiness requirements Software requirements Requirements engineering Requirements analysis Requirements elicitation Requirements management Requirement prioritization Requirements traceability Specification technical standard Shall and will phrasing MoSCoW Method prioritisation technique User Story Use CaseReferences Edit Form and Style of Standards ASTM Blue Book PDF ASTM International 2012 Retrieved 5 January 2013 Boehm Barry 2006 A view of 20th and 21st century software engineering ICSE 06 Proceedings of the 28th international conference on Software engineering University of Southern California University Park Campus Los Angeles CA Association for Computing Machinery ACM New York NY USA pp 12 29 ISBN 1 59593 375 1 Retrieved January 2 2013 1 3 Key Concepts IIBA International Institute of Business Analysis www iiba org Retrieved 2016 09 25 IEEE SA 610 12 1990 IEEE Standard Glossary of Software Engineering Terminology Iiba Analysis International Institute of Business 2009 A Guide to the Business Analysis Body of Knowledge BABOK Guide Version 2 0 ISBN 978 0 9811292 1 1 a href Template Cite book html title Template Cite book cite book a first2 has generic name help Chen Lianping Ali Babar Muhammad Nuseibeh Bashar 2013 Characterizing Architecturally Significant Requirements IEEE Software 30 2 38 45 doi 10 1109 MS 2012 174 hdl 10344 3061 S2CID 17399565 Ralph P and Wand Y A Proposal for a Formal Definition of the Design Concept In Lyytinen K Loucopoulos P Mylopoulos J and Robinson W eds Design Requirements Engineering A Ten Year Perspective Springer Verlag 2009 pp 103 136 Davis Alan M 1993 Software Requirements Objects Functions and States Second Edition Prentice Hall ISBN 978 0 13 805763 3 IEEE Computer Society 1998 IEEE Recommended Practice for Software Requirements Specifications Institute of Electrical and Electronics Engineers Inc ISBN 978 0 7381 0332 7 Stellman Andrew Greene Jennifer 2005 Applied Software Project Management O Reilly Media p 98 ISBN 978 0 596 00948 9 Archived from the original on 2015 02 09 Wiegers Karl E 2003 Software Requirements Second Edition Microsoft Press ISBN 978 0 7356 1879 4 Young Ralph R 2001 Effective Requirements Practices Addison Wesley ISBN 978 0 201 70912 4 Checkland Peter 1999 Systems Thinking Systems Practice Chichester Wiley Ralph Paul Mohanani Rahul May 2015 Is Requirements Engineering Inherently Counterproductive Proceedings of the 5th International Workshop on the Twin Peaks of Requirements and Architecture Florence Italy IEEE pp 20 23 Jansson D Smith S 1991 Design fixation Design Studies 12 1 3 11 doi 10 1016 0142 694X 91 90003 F Purcell A Gero J 1996 Design and other types of fixation Design Studies 17 4 363 383 doi 10 1016 S0142 694X 96 00023 3 Mohanani Rahul Ralph Paul Shreeve Ben May 2014 Requirements Fixation Proceedings of the International Conference on Software Engineering Hyderabad India IEEE pp 895 906 Ralph Paul 2012 The Illusion of Requirements in Software Development Requirements Engineering 18 3 293 296 arXiv 1304 0116 doi 10 1007 s00766 012 0161 4 S2CID 11499083 External links Edit Look up requirement in Wiktionary the free dictionary Discovering System Requirements Retrieved from https en wikipedia org w index php title Requirement amp oldid 1148189733, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.