Tutorial: Requirements Specification Elaboration Bruno Soares Gonçalves Instituto de Plasmas e Fusão Nuclear Instituto Superior Técnico Lisbon, Portugal http://www.ipfn.ist.utl.pt B. Gonçalves | Lisboa , January 11, 2010 | IST Technical requirements specification purpose and description The technical requirements specification is a document through which a customer expresses his needs (or those that he is responsible for expressing) and the related environment and constraints in terms of technical requirements allowing for potential suppliers to propose the best technical and programmatic solutions. The requirements documents organize and communicate requirements to the customer and other stakeholders and the technical community. The intention of the technical requirements specification is not to assume or refer to specific solutions 2 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Why focus on requirements? The hardest single part of building a system is deciding what to build... No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. Adapted from Brooks, Fredrick P., Jar. “No Silver Bullet: Essence and Accidents of Software Engineering”. IEEE Computer, 10-19, April 1987 3 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical Requirements Definition Process Technical Requirements Definition Process transforms the stakeholder expectations into a definition of the problem and then into a complete set of validated technical requirements expressed as “shall” statements that can be used for defining a design solution for the Product Breakdown Structure (PBS) model and related enabling products. The TS is the technical reference for the qualification of the design and for the acceptance of the end product. 4 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical Requirements Definition Process The process is recursive and iterative and develops the stakeholders’ requirements, product requirements, and lower level product/component requirements • e.g., PBS model products such as systems or subsystems and related enabling products such as external systems that provide or consume data. Requirements should enable description of all • Inputs, • Outputs • Required relationships between inputs and outputs. Technical requirements definition activities apply to the definition of all technical requirements from the project, and system levels down to the lowest level product/component requirements document. 5 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical Requirements definition process 6 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Process 7 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Analysis Should result in a clear understanding of: • Functions: What the system has to do, • Performance: How well the functions have to be performed, • Interfaces: Environment in which the system will perform, and • Other requirements and constraints. 8 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Structure Requirements should be communicated in a structured manner to ensure that the customer and technical community are able to: a) Identify requirements that are derived from other requirements; b) Organize requirements of different levels of detail into their appropriate levels; c) Verify the completeness of the set of requirements; d) Identify inconsistencies among requirements; e) Clearly identify the capabilities, conditions, and constraints for each requirement; f) Develop a common understanding with the customer of the purpose and objectives of the set of requirements; g) Identify requirements that will complete the SyRS. 9 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Properties of a requirement Each requirement should possess the following properties: a) Abstract: Each requirement should be implementation independent. b) Unambiguous: Each requirement should be stated in such a way so that it can be interpreted in only one way. c) Traceable: For each requirement it should be feasible to determine a relationship between specific documented customer statement(s) of need and the specific statements in the definition of the system given in the SyRS as evidence of the source of a requirement. d) Validatable: Each requirement should have the means to prove that the system satisÞes the requirements. 10 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Properties of the collection The collection of requirements should have the following properties: a) Unique set: Each requirement should be stated only once. b) Normalized: Requirements should not overlap (i.e, they shall not refer to other requirements or the capabilities of other requirements). c) Linked set: Explicit relationships should be defined among individual requirements to show how the requirements are related to form a complete system. d) Complete: An SyRS should include all the requirements identified by the customer, as well as those needed for the definition of the system. e) Consistent: SyRS content should be consistent and non-contradictory in the level of detail, style of requirement statements, and in the presentation of material. f) Bounded: The boundaries, scope, and context for the set of requirements should be identified. g) Modifiable: The SyRS should be modifiable. Clarity and non-overlapping requirements contribute to this. h) Configurable: Versions should be maintained across time and across instances of the SyRS. i) Granular: This should be the level of abstraction for the system being defined. 11 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST System Requirements Specification outline 12 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical requirements specification: Content A technical requirements specification is typically composed of three major sets of information: • General information related to the context of the document (e.g. administrative information, normative documents and informative documents); • General information related to the context of the project, the product or system; • Technical requirements 13 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical requirements specification: General information The specification provides general information related to its context: • Administrative information: to provide all the information regarding, for example, the owner, status, identification, distribution list, and management rule; • Scope: to define without ambiguity the subject of the TS and aspects covered, thereby indicating limits of applicability; • References: to list all the normative (applicable) documents and standards, with titles, issue revision, and dates that are referred to in the TS; • Terms, definitions and abbreviated terms: to list the specific terms and abbreviated terms used in the TS. 14 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Technical requirements specification: Context Also provides general information related to the context of the project, product or system: • to provide a clear and rapid understanding of the project and the main needs or mission statements; • to give indications of the market as additional information, as well as information about the context of the project and the objectives (situation of the project in a larger programme, further developments); • to provide information on the environment and its constraints; • to detail the different situations of the product or system life cycle. 15 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Type of requirements • Customer Requirements: Statements of fact and assumptions that define the expectations of the system in terms of mission objectives, environment, constraints, and measures of effectiveness and suitability • Functional Requirements: The necessary task, action or activity that must be accomplished. Functional (what has to be done) requirements identified in requirements analysis will be used as the toplevel functions for functional analysis. – • e.g., “The product shall analyse the surface of Mars and transmit the data so that it is at the disposal of the scientific community”. Performance Requirements: The extent to which a mission or function must be executed; generally measured in terms of quantity, quality, coverage, timeliness or readiness. During requirements analysis, performance (how well does it have to be done) requirements will be interactively developed across all identified functions based on system life cycle factors; and characterized in terms of the degree of certainty in their estimate, the degree of criticality to system success, and their relationship to other requirements. • Design Requirements: The “build to,” “code to,” and “buy to” requirements for products and “how to execute” requirements for processes expressed in technical data packages and technical manuals. • Derived Requirements: Requirements that are implied or transformed from higher-level requirement. – • E.g., a requirement for long range or high speed may result in a design requirement for low weight. Allocated Requirements: A requirement that is established by dividing or otherwise allocating a high-level requirement into multiple lower-level requirements. 16 – | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST E.g., a 100-pound item that consists of two subsystems might result in weight requirements of 70 pounds and 30 pounds for the two lower- Types of requirements • Mission requirements, related to a task, a function, a constraint, or an action induced by the mission scenario. e.g., “The product shall be designed to be put in its final position after a transfer duration shorter than 90 days”. • Interface requirements, related to the interconnection or relationship characteristics between the product and other items. e.g., “The product shall dialogue with the ground segment using telemetry”. • Environmental requirements, related to a product or the system environment during its life cycle; this includes the natural environments (e.g. planet interactions, free space and dust) and induced environments (e.g. radiation, electromagnetic, heat, vibration and contamination). e.g., “The product shall operate within the temperature range from 30 ºC to 50 ºC”. • Operational requirements, related to the system operability. This includes operational profiles and the utilization environment and events to which the product shall respond (e.g. autonomy, control and contingency) for each operational profile. e.g., “The product shall be designed to accept control of the viewing function from the ground segment” 17 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Types of requirements • Human factor requirements, related to a product or a process adapted to human capabilities considering basic human characteristics. • e.g., “The product shall display the information with no more than two windows on the screen at the same time”. • (Integrated) logistics support requirements, related to the (integrated) logistics support considerations to ensure the effective and economical support of a system for its life cycle. • Physical requirements, that establish the boundary conditions to ensure physical compatibility and that are not defined by the interface requirements, design and construction requirements, or referenced drawings. This includes requirements related to mechanical characteristics, electrical isolation and chemical composition (e.g. weight and dimensional limits). • e.g., For example: “The product shall have a mass of (30 ± 0,1) kg”. • Product assurance (PA) induced requirements, Requirements related to the relevant activities covered by the product assurance. This can include the following subjects: Reliability, availability, maintainability, Safety, and Quality assurance. 18 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Types of technical requirements • Configuration requirements, related to the composition of the product or its organization. • e.g., “The product shall have 7 power modules with 2 power outlets per engine”. • Design requirements, related to the imposed design and construction standards such as design standards, selection list of components or materials, interchangeability, safety or margins. • e.g., “The receiver shall use a phase-lock loop (PLL)”. • Verification requirements. related to the imposed verification methods, such as compliance o verification standards, usage of test methods or facilities. • e.g., “The thermal balance test shall be performed using solar illumination”. 19 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Functional Requirements The functional requirements need to be specified for all intended uses of the product over its entire lifetime. • Functional analysis is used to draw out both functional and performance requirements. Requirements are partitioned into groups, based on established criteria (e.g., similar functionality, performance, or coupling, etc.), to facilitate and focus the requirements analysis. •Functional and performance requirements are allocated to functional partitions and subfunctions, objects, people, or processes. • Sequencing of time-critical functions is considered. •Each function is identified and described in terms of inputs, outputs, and interface requirements from the top down so that the decomposed functions are recognized as part of larger functional groupings. •Functions are arranged in a logical sequence so that any specified operational usage of the system can be traced in an end-to-end path to indicate the sequential relationship of all functions that must be accomplished by the system. 20 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Performance Requirements Performance requirements quantitatively define how well the system needs to perform the functions. Performance requirements draws out by asking the following types of questions: • How often and how well, • To what accuracy (e.g., how good does the measurement need to be), • What is the quality and quantity of the output, under what stress (maximum simultaneous data requests) or environmental conditions, for what duration, • At what range of values, • At what tolerance, •At what maximum throughput or bandwidth capacity. Wherever possible, define the performance requirements in terms of 1) Threshold value (the minimum acceptable value needed for the system to carry out its mission) 2) Baseline level of performance desired. Specifying performance in terms of thresholds and baseline requirements provides the system designers with trade space in which to investigate alternative designs. 21 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Interface Requirements It is important to define all interface requirements for the system, including those to enabling systems, and the external interfaces from the boundaries between the product and the rest of the world. Types of interfaces include: • Operational command and control, • Computer to computer, • Mechanical, • Electrical, • Thermal, • Data 22 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Interface Requirements One useful tool in defining interfaces is the context diagram, which depicts the product and all of its external interfaces. Once the product components are defined, a block diagram showing the major components, interconnections, and external interfaces of the system should be developed to define both the components and their interactions. 23 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Reliability Requirements Ensure that the system (and subsystems, e.g., software and hardware) • can perform in the predicted environments and conditions as expected throughout the mission • has the ability to withstand certain numbers and types of faults, errors, or failures • e.g., withstand vibration, predicted data rates, command and/or data errors, single-event 24 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Problems with Requirements Problems of requirements elicitation can be grouped into 3 categories: 1. Problems of Scope: the requirements may address too little or too much information. 2. Problems of Understanding: problems within groups as well as between groups such as users and developers. 3. Problems of Volatility: the changing nature of requirements. 25 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Usual causes of Problems with Requirements Problems of Scope • The boundary of the system is ill-defined • Unnecessary design information may be given Problems of Volatility • Requirements evolve over time Problems of Understanding • Users have incomplete understanding of their needs • Users have poor understanding of computer capabilities and limitations • Analysts have poor knowledge of problem domain • User and analyst speak different languages • Ease of omitting “obvious” information • Conflicting views of different users • Requirements are often vague and untestable, e.g., “user friendly” and “robust” 26 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Benefits of Well-Written Requirements 27 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST How to Write a Good Requirements Use of Correct Terms • Shall = requirement • Will = facts or declaration of purpose • Should = goal Product Requirement 1.The requirement is in the form “product ABC shall XYZ.” A requirement must state “The product shall” (do, perform, provide, weigh, or other verb) followed by a description of what must be done. 2.The requirement uses consistent terminology to refer to the product and its lower level entities. 3.Complete with tolerances for qualitative/performance values (e.g., less than, greater than or equal to, plus or minus,3 sigma root sum squares). 4.Is the requirement free of implementation? (Requirements should state WHAT is needed, NOT HOW to provide it; i.e., state the problem not the solution. Ask, “Why do you need the requirement?” The answer may point to the real requirement.) 5.Free of descriptions of operations? (Is this a need the product must satisfy or an activity involving the product? Sentences like “The operator shall…” are almost always operational statements not requirements.) 28 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST How to Write a Good Requirements Example Product Requirements • The system shall operate at a power level of… • The software shall acquire data from the… • The structure shall withstand loads of… • The hardware shall have a mass of… 29 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Example Requirements Checklist Categories 1. Clarity 2. Completeness 3. Complexity 4. Consistency 5. Constraints 6. Feasibility 7. Functionality/Logic 8. Interfaces 9. Standards 10. TBDs 11. Testability 12. Traceability Etc. 30 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Capturing Requirements and the Requirements Database At the time the requirements are written, it is important to capture the requirements statements along with the metadata associated with each requirement. • The metadata is the supporting information necessary to help clarify and link the requirements. 31 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Systems Engineering Process 32 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Systems Engineering Process 33 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Management Apply to the management of all stakeholder expectations, customer requirements, and technical product requirements down to the lowest level product component requirements The Requirements Management Process is used to: • Manage the product requirements identified, baselined, and used in the definition of the WBS model products during system design; • Provide bidirectional traceability back to the top WBS model requirements; • Manage the changes to established requirement baselines over the life cycle of the system products. 34 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Management Process 35 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Management Process Involves managing all changes to expectations and requirements baselines over the life of the product and maintaining bidirectional traceability between • stakeholder expectations, • customer requirements, • technical product requirements, • product component requirements, • design documents, • test plans and procedures. 36 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Requirements Management Process The successful management of requirements involves several key activities: • Establish a plan for executing requirements management. • Receive requirements from the system design processes and organize them in a hierarchical tree structure. • Establish bidirectional traceability between requirements. • Validate requirements against the stakeholder expectations, the mission objectives and constraints, the operational objectives, and the mission success criteria. • Define a verification method for each requirement. • Baseline requirements. • Evaluate all change requests to the requirements baseline over the life of the project and make changes if approved by change board. • Maintain consistency between the requirements, and the architecture/design and initiate corrective actions to eliminate inconsistencies. 37 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST References • NASA Reference Publication 1370, Training Manual for Elements of Interface Definition and Control • NASA Systems Engineering Handbook, NASA/SP-2007-6105, Rev1, 2007 • SYSTEMS ENGINEERING FUNDAMENTALS, SUPPLEMENTARY TEXT PREPARED BY THE DEFENSE ACQUISITION UNIVERSITY PRESS FORT BELVOIR, VIRGINIA 22060-5565, January 2001 • IEEE Guide for Developing System Requirements Specifications, IEEE Std 1233, 1998 Edition • IEEE Recommended Practice forSoftware Requirements Specifications, IEEE Std 830-1998 • Space engineering Technical requirements specification, ECSS-E-ST-10-06C, ESA-ESTEC Requirements & Standards Division, 6 March 2009 38 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Backup slides 39 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Characteristics of a technical requirement Performance a. Each technical requirement shall be described in quantifiable terms. b. If necessary to remove possible ambiguities of a given performance requirement the method used to determine the required performance shall be indicated in the requirement itself. Justification a. Each technical requirement should be justified. b. The entity responsible of the technical requirement shall be identified. c. The entity responsible of the specification shall define what part of the justification shall be included in the specification as informative material. Configuration management and traceability, a. Each technical requirement shall be under configuration management. b. All technical requirements shall be backwards-traceable. c. All technical requirements shall be forward-traceable. • A technical requirement is traceable when it is possible to trace the history, application, or location of a requirement by means of recorded identification. Ambiguity a. The technical requirements shall be unambiguous. 40 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST Characteristics of a technical requirement Uniqueness a. Each technical requirement shall be unique. Identifiability a. A technical requirement shall be identified in relation to the relevant function, product or system. b. A unique identifier shall be assigned to each technical requirement. c. The unique identifier should reflect the type of the technical requirement. d. The unique identifier should reflect the life profile situation. Singularity a. Each technical requirement shall be separately stated.(not the combination of two or more technical requirements) Completeness a. A technical requirement shall be self-contained. (when is complete and does not require additional data or explanation to express the need). Verification a. A technical requirement shall be verifiable using one or more approved verification methods. Tolerance a. The tolerance shall be specified for each parameter/variable. ( range of values within which the conformity to the requirement is accepted). 41 | Place, Month 2007 || Event B. Gonçalves |Author’s Lisboaname , January 11, xx, 2010 IST