REQUIREMENTS ENGINEERING FUNDAMENTALS EBOOK
Requirements Engineering Fundamentals: A Study Guide for the Certified Professional for Requirements Engineering Exam - Foundation Level - IREB. Read "Requirements Engineering Fundamentals A Study Guide for the Certified Professional for Requirements Engineering Exam - Foundation Level - IREB. Editorial Reviews. About the Author. Klaus Pohl holds a full professorship for Software Systems eBook features: Highlight, take notes, and search in the book.
|Language:||English, Spanish, Arabic|
|ePub File Size:||20.52 MB|
|PDF File Size:||12.85 MB|
|Distribution:||Free* [*Regsitration Required]|
In practice, requirements engineering tasks become more and more complex. In order cover image of Requirements Engineering Fundamentals Exam-- Foundation Level--IREB compliant. by Klaus Pohl Author · Chris Rupp Author. ebook. A Study Guide for the Certified Professional for Requirements Engineering Exam Print and eBook Bundle: $; Print Book: $; eBook: $ 2. iii Klaus Pohl · Chris Rupp Requirements Engineering Fundamentals A Study Guide for the Certified Professional for Requirements.
Tim Weilkiens. Master Data Management. David Loshin. TMap next. Michiel Vroon. Business Intelligence. Instructional Design—Step by Step. John S. Pragmatic Software Testing. Rex Black. Workflow Management. Kees van Hee. The Process of Software Architecting. Peter Eeles. Andrew Josey. Mastering the Requirements Process. Suzanne Robertson. Usability Engineering. Mary Beth Rosson. Charles T. Data Architecture. Charles Tupper.
The Language of Content Strategy. Scott Abel. Advanced Use Case Modeling: Software Systems. Frank Armour. The Open Group. Enterprise Data Governance.
Pierre Bonnet. In Practice. Brian Berenbach. Mastering e-Business. Paul Grefen. Business Process Management. Mathias Weske. Design Thinking Business Analysis. Thomas Frisendal. Tapping into Unstructured Data.
William H. David W.
Start learning today
Johan Vink. Agile Testing Foundations. Bruce Rossman. Continuous Architecture. Murat Erder. Big Data Analytics. Business Rules and Information Systems. Tony Morgan. Executable Specifications with Scrum. Mario Cardinal. Critical Systems Analysis and Design. Nandish Patel. Software Design and Development. Information Resources Management Association. Part 1 Absolute Beginner: Java 4 Selenium WebDriver: Rex Jones.
Site Reliability Engineering. Betsy Beyer. Enterprise Information Portals and Knowledge Management.
Joseph M. Big Data Imperatives. Soumendra Mohanty. Paul R. Beyond Big Data. Martin Oberhofer. Essential Cybersecurity Science. Josiah Dykstra.
AngularJS Essentials. Rodrigo Branas. Agile Software Architecture. Muhammad Ali Babar. Bijay K. Steve O'Hearn. Jimmy Rodriquez. IT Project Management: Joseph Phillips. Structured Software Testing. Arunkumar Khannur. Web Services Testing with soapUI. Charitha Kankanamge. Recommender Systems. Dietmar Jannach.
Sujoy Acharya. Gerard Blokdijk. Experience and Knowledge Management in Software Engineering.
Kurt Schneider. Arthur Conklin. Advanced Analytics Methodologies. Michele Chambers. Effective UI. Jonathan Anderson. In order to guarantee that the predefined quality criteria are met, documented requirements must be validated and negotiated early on see chapter 7. Requirements management is orthogonal to all other activities and comprises any measures that are necessary to structure requirements, to prepare them so that they can be used by different roles, to maintain consistency after changes, and to ensure their imple- mentation see chapter 8.
These core activities can be applied for different levels of requirements abstraction, like stakeholder requirements, system requirements, and soft- ware requirements. Constraints Different project constraints influence requirements engineering.
For instance, people, domain factors, or organizational constraints e. Requirements Engineering 1 Requirements engineering is a systematic and disciplined approach to the specification and management of requirements with the following goals: The goal of such models is to elicit all requirements prior to the actual development. As a result, in these process models, requirements engineering is understood to be a finite, time-restricted initial phase of system development. Requirementsengineeringas a continuous, collateral process Lightweight process models e.
In these process models, requirements engineering is treated as a continuous, comprehen- sive process that comprises and integrates all phases of system develop- ment. In most cases, one uses a rule- driven medium that is accessible to the communication partner—natural language. For the transmission of information from one individual to another to work properly, a common code is needed.
The sender encodes her mes- sage and the receiver has to decode it. Such a common code is intrinsic to any two people that speak the same language e. The more similar the cultural and educational background, the area of expertise, and the everyday work life, the better the exchange of information works. However, such ideal conditions most often do not exist between stake- holders.
Requirements Engineering Fundamentals
It is therefore sensible to agree upon a common language and how this common language is to be used. This can, for instance, be achieved by means of glossaries see chapter 4 , in which all important terms are explained.
Alternatively, this can be done by agreeing upon a formal descriptive language, e. Type of communication medium Another important factor is the type of communication medium. In verbal communication, the success of the communication relies heavily on redundancy e. In written technical communication, for example, information is transmitted with a minimum of redundancy and feedback.
Language comfort In addition to the problems arising from differing domain vocabu- laries and different communication media, it can often be observed that information is not adequately transmitted or not transmitted at all. This can be traced back to natural transformations that occur during human perception.
These transformational effects are, in particular, focusing and simplification and can impact the communication more or less harshly. Implicit background knowledge Communication—i. The author expects the reader to have some kind of implicit background knowledge.
It is the simplifications that arise from language-based knowledge expression that become problematic with regard to requirements, as requirements can become interpretable in different ways. In chapter 5, natural language-based requirement docu- mentation is discussed in further detail. She is usually the only one who has direct contact with the stakehold- ers and has both the ability and the responsibility to become as familiar as possible with the domain and to understand it as well as possible.
The requirements engineer is, in a manner of speaking, a translator that understands the domain as well as its particular language well enough and also possesses enough IT know-how to be aware of the problems the developers face and to be able to communicate with them on the same level.
The requirements engineer therefore has a central role in the project. Seven necessary capabilities of a requirements engineer To be able to fulfill all of her tasks, the requirements engineer needs much more than process knowledge.
Many of the capabilities required must be based on practical experience. The requirements engineer must be able to become familiar with domains that are unknown to her and must understand and analyze complicated problems and relationships. Since stakehold- The requirements engineer has the challenging task of identi- fying the actual needs of a stakeholder. A core requirement to be able to achieve this is to have good intuition and empathy for people. In addi- tion, she must identify problems that might arise in a group of stakehold- ers and act accordingly.
To elicit the requirements from stakeholders and to interpret them correctly and communicate them in a suitable man- ner, a requirements engineer must have good communication skills. She must be able to listen, ask the right questions at the right time, notice when a statement does not contain the desired information, and make further inquiries when necessary. Different opinions of different stakeholders can be the cause of conflicts during requirements engineering.
The requirements engineer must identify conflicts, mediate between the parties involved, and apply techniques suitable to resolving the conflict. The requirements engineer must be able to mediate between different opinions and lead discussions. This holds true for individual conversations as well as group conversations and work- shops. Since the requirements engineer is frequently at the center of attention, she occasionally is exposed to criticism as well. As a result, she needs a high level of self-confidence and the ability to defend herself should strong objections to her opinions arise.
She should never take criticism personally. Among other things, the requirements engineer is, in a matter of speaking, a kind of attorney for the requirements of the stake- holders. She must be able to represent the requirements in team meet- ings and presentations. In addition, she must consolidate differing opinions, facilitate a decision in case of a disagreement, and create con- sensus among the stakeholders. Usually, these requirements are divided into func- tional requirements, behavioral requirements, and data requirements see chapter 4.
Typically, quality requirements are about the perfor- mance, availability, dependability, scalability, or portability of a system. Requirements of this type are frequently classified as non-functional requirements. Requirements of this type can constrain the system itself e.
In contrast to functional and quality requirements, con- straints are not implemented, they are adhered to because they merely limit the solution space available during the development process.
Functional Requirement A functional requirement is a requirement concerning a result of behavior that shall be provided by a function of the system.
Quality Requirement A quality requirement is a requirement that pertains to a quality concern that is not covered by functional requirements. Constraint A constraint is a requirement that limits the solution space beyond what is necessary for meeting the given functional requirements and quality requirements. For example, there are a number of clas- sifications suggested by several standards, e. Other classification schemes describe requirement attributes, such as the level of detail of a requirement, the priority, or the degree of legal obligation of requirements see chapters 4 and 8.
Therefore, the requirements engineer should place special emphasis on the elicitation, documentation, and negotiation of quality requirements during the development process. Typically, many different kinds of desired qualities of the system are assigned to the requirement type quality requirement.
In order to be able to deal with quality requirements in a structured manner, many different classification schemes for quality requirements have been proposed. However, numerous approaches to document quality requirements by means of models have been suggested over the past couple of years.
The requirements engineer is responsible for making sure the quality requirements are as objective and verifiable as possible. Typically, this necessitates that the quality requirements are quantified.
For example, a quality requirement with regard to system performance could specify that a system shall process 95 percent of all queries within 1.
This can cause quality requirements to be refined by means of additional functional requirements. This could be the case for a quality requirement that is concerned with system security if a functional requirement speci- fies the exact encryption algorithm to satisfy the need for encryption as demanded by some quality requirement. Quality requirements are often related to different functional require- ments. As a result, quality requirements should always be kept separated from functional requirements.
In other words, quality requirements should not be mixed with functional requirements and should be docu- mented separately, with explicit documentation of their relation to func- tional requirements. The goal of requirements engineering is to document customer requirements as completely as possible in good quality and to identify and resolve problems in the requirements as early as possible.
Successful requirements engineering is based on including the right stakeholders as well as embedding the four core activities of requirements engineering elicitation, documentation, validation and negotiation, and management into the system development process. At the center of attention is the requirements engineer, who is the primary contact point in requirements engineering and possesses a great deal of domain knowledge and process knowledge as well as a multitude of soft skills.
The purpose of defining the system and context bound- aries in requirements engineering is to identify the part of the environment that influences the requirements for the system to be developed. In order to do that, it is anticipated what the system will be like once it becomes real. By doing so, those parts of the real world which will potentially influence the requirements of the system can be identified. To be able to specify the requirements for a system correctly and completely, it is necessary to identify the relationships between individual material and immaterial aspects as precisely as possible.
The part of reality that is relevant for the requirements of a system is called the system con- text. Context aspects in the system context Among others, the following possible aspects of reality influence the con- text of a system: System Context The system context is the part of the system environment that is relevant for the definition as well as the understanding of the requirements of a system to be developed.
This leads to the system operating on the basis of incom- plete or erroneous requirements, which is often the reason for system fail- ure during operation. Such errors often remain undetected during the val- idation procedures, which determine if the system meets the specified requirements, and occur only during operation, sometimes entailing cata- strophic consequences.
For example, stakeholders, pertinent standards, and legal guidelines demand particular functional properties that the sys- tem to be developed must possess at its interfaces. A requirement is there- fore defined for a specific context and can only be interpreted correctly in regard to this specific context.
The better the context of a requirement is understood e. Therefore, a purpose-driven documentation of the system context or information about the system context is of par- ticular importance. In order to do so, it is necessary to separate the system context from the system to be developed as well as from the parts of reality that are irrelevant for the system see figure When defining the system boundary, a decision has to be made: Which aspects pertain to the system to be developed and which aspects belong in the system context?
When defining the context boundary, the question to be answered is: Which aspects pertain to the system context i. Thus, system and context boundaries define the system context. The sys- tem context comprises all aspects that are relevant with regard to the requirements for the system to be developed. These aspects cannot be altered or modified by the system development process. When the system boundary is defined, the scope of the development i. We therefore define the system boundary as follows: All aspects that are within the system boundary can thus be altered during system development.
For instance, an existing system that consists of hard- ware and software components and is supposed to be replaced by the new system can be within the system boundary. Aspects within the system con- text can be business processes, technical processes, people and roles, organizational structures, and components of the IT infrastructure.
Figure schematically shows the system context of a system. The system context consists of other systems, groups of stakeholders that in some way use the interfaces of the system to be developed, and additional require- ments sources and their interrelations. System Boundary The system boundary separates the system to be developed from its environment; i. Sources provide inputs for the system.
Sinks receive outputs from the system. Pos- sible sources and sinks of a system are as follows: Using these interfaces, the system provides its functionality to the environment, monitors the environment, influences parameters of the environment, and controls operations of the environment. Depending on the type of the respective source or sink, the system needs different inter- face types e.
The interface type in turn may also impose specific constraints or additional sources of requirements on the system to be developed. Gray zone between system and system context Frequently, the system boundary is not precisely defined until the end of the requirements engineering process. Before that, some or several interfaces as well as desired functions and qualities of the system to be developed are only partially known or not known at all.
We refer to this initially vague separation of the system and its context as the gray zone between the system and the context see figure At the beginning of the requirements engineering process, it may, for example, not be clear whether the system should implement a certain function e.
This kind of shifting is caused by the fact that aspects, pertaining at first to the system context, now will be modified during system development. Such a situation occurs during requirements engineering, for example, if it is not clear in the system con- text whether certain activities of a business process should be imple- mented or supported by the system to be developed or not.
In this situa- tion, it is not clear which aspects belong to the system and can thus be changed or modified and which aspects belong to the system context. This causes a corresponding shift of the gray zone between system and system context see figure Figure Gray zone of the system boundary The gray zone shifts, for instance, when interfaces are attributed to the system boundary and the gray zone is extended to comprise aspects of the environment that concern these interfaces.
The context boundary can be defined as follows: In the course of requirements engineering, it is necessary to concretize the boundary between system context and irrelevant environment by analyzing relevant aspects within the environment with regard to their relationships to the system.
Besides the system boundary, the context boundary typically also shifts during requirements engineering. For instance, it may be possible that a law directive that was considered to be relevant for the system to be developed no longer impacts the system or is no longer considered rele- vant.
Figure Gray zone between system context and irrelevant environment Gray zone between system context and irrelevant environment Since the context boundary separates the system context from those parts of reality that are irrelevant to the system, a complete and precise definition of the context boundary for complex systems is virtually impossible.
In addition, it may not be possible to clarify for single aspects of the environ- ment whether they influence the system to be developed or are influenced Definition Context Boundary The context boundary separates the relevant part of the environment of a system to be developed from the irrelevant part, i.
These two observations are the reason for the existence of a gray zone with regard to the context boundary see figure Resolving and shifting of the gray zone This gray zone therefore comprises identified aspects of the environ- ment for which it is unclear whether they have a relation to the system or not.
In contrast to the gray zone between the system and the system con- text that must be resolved in the course of requirements engineering, it is not necessary to resolve the gray zone between the system context and the irrelevant environment entirely. When the context is modeled with data flow dia- grams, sources and sinks in the environment of the system that represent the source or destination of data flows or flows of material, energy, money, etc.
In use case diagrams, actors such as people or other systems in the system environment and their usage relationships to the system are modeled. In order to document the system context of a system as thoroughly as possible, typically several documentation forms are used. In order to be able to elicit the requirements for the system to be developed, it is necessary to define the boundary of the system to the system context and the boundary of the system context to the irrelevant environment first.
When the system boundaries are defined, the scope of the system is deter- mined. The scope comprises those aspects that can be changed and designed during system development. At the same time, it is also defined which aspects belong to the environment and thus cannot be altered during development and may provide constraints for the system to be developed.
Typical aspects within the sys- tem context are stakeholders e. Defining the system and context boundaries successfully is the foundation for a systematic elicitation of requirements for the system to be developed. The basis for requirements elicita- tion is the knowledge that has been gained during requirements engineer- ing about the system context of the system to be developed, which comprises the requirements sources that are to be analyzed and queried.
Exam- ples of stakeholders are users of the system, operators of the system, developers, architects, customers, and testers. Examples of documents are universal documents, such as standards and legal documents, as well as domain- or organization- specific documents, such as requirements documents and error reports of legacy systems.
By giving the stakeholders a chance to try the sys- tem out, they can gain an impression of the current system and can request extensions or changes based on their impressions. For the requirements engineer, stakeholders are important sources of requirements for the system see section 1.
It is the task of the requirements engineer to gather, Consequences of unconsidered stakeholders If stakeholders are not identified or not considered, it may result in significant negative repercussions for the project progress because requirements may remain undetected.
At the latest, these overlooked requirements will enter the picture in the form of change requests during system operation. Fixing these issues retroactively causes high additional costs. Therefore, it is essential to identify all stakeholders and integrate them into the elicitation procedures. Stakeholder lists provide overview. An auxiliary technique for stakeholder identification is maintaining checklists.
This allows for systematic and targeted elicitation of relevant stakeholders. If the stakeholder list is updated too late or incompletely, the result may be that important aspects of the system remain undetected, that the project goal is missed, or that significant additional costs arise from fixing issues.
Requirements Engineering Fundamentals
The starting point for stakeholder elicitation is often sugges- tions of relevant stakeholders that are made by management or by domain experts, for example.
On the basis of these suggestions, relevant stake- holders can be identified. Due to limited resources, the stake- holders that are the most suitable for requirements elicitation must be care- fully selected.
To document the stakeholders in the development process, it makes sense to use tables and spreadsheets that contain at least the fol- lowing data: Making collaborators out of the affected Handling stakeholders also means continuously exchanging infor- mation: Periodic status updates and continuous involvement of the stakeholders assist the requirements engineer in turning people previ- ously simply affected by the project i.
In addition, some stakeholders may show a lack of motivation because they are sufficiently satisfied with the legacy system, are afraid of change, or are negatively biased due to previous projects. To avoid misunderstandings and disputes regarding compe- tence, it is useful to formally agree on the tasks, responsibilities, and man- agerial authority as well as to determine individual goals, communication paths, and feedback loops that can be used by the stakeholders.
Depending on the culture of the organization, this agreement and determination can be done verbally i. The individual agreements should be signed off by the managers. Obligations and privileges of the stakeholders A number of obligations and privileges result from the agreement with the stakeholders. Elicitation techniques determine communication and process.
In addition, the requirements engineer plans and organizes the communi- cation paths as well as drafts a structured schedule for the requirements engineering activities that are to be performed in collaboration with the stakeholders.
This organization and the type of communication are signif- icantly influenced by the elicitation techniques that can be used during requirements engineering. Along with the respec- tive properties of a product that determine the satisfaction, the satisfaction is classified into the following three categories [Kano et al.
As time goes by, delighters turn into satisfiers and dissatisfiers as the user becomes accustomed to the properties of the system. When eliciting requirements, all three categories must be considered. Otherwise, stakeholders will be disappointed and dissatisfied. Completely fulfilled dissatisfiers do not generate a positive disposition but merely help to avoid massive discontent.
Dissatisfiers are dominantly influenced by existing systems. Therefore, observation and document-cen- tric techniques are especially well suited for the elicitation of these factors. SatisfiersSatisfiers conscious requirements are properties that are consciously known to the stakeholders and explicitly demanded.
When these proper- ties are fulfilled, stakeholders are content and satisfied, which is desirable. If some demanded properties are missing, the stakeholders probably will not accept the product. Their satisfaction decreases with each missing sat- isfier. Satisfiers can be elicited well using survey techniques. DelightersDelighters unconscious requirements are properties of a system whose value is recognized only when the stakeholder can try out the sys- tem for herself or the requirements engineer proposes them.
Creativity techniques are best suited to elicit delighters. How and when a technique can be applied depends on the given conditions. Applying the technique consciously and in a fashion appropri- ate to the situation at hand allows for tailoring the requirements elicitation process which takes into account project constraints so that requirements may be elicited as completely and comprehensibly as possible.
However, there is no universal method to elicit these requirements [Hickey and Davis ]. Every project has individual constraints and individual characteris- tics and is by and large unique, but there are always elicitation techniques that are compatible with the project. The most important influencing fac- tors when choosing the appropriate elicitation techniques are as follows: Mostly, these result from human, organizational, and professional influences, as illustrated in the following passages.
Human influences During the requirements elicitation phase, which is heavily influenced by the stakeholders, good communication is essential. In order to assure high-quality communication between the requirements engineer and stakeholders, it is important to determine the type of requirement, the desired level of detail, and the experience of the requirements engineer and the interviewees with different elicitation techniques.
Social, group-dynamic, and cognitive capabilities of the stakeholders also influence the choice of suitable elicitation techniques significantly. Organizational influencesOrganizational risk factors the project faces need to be investigated as well. Among other things, this comprises the distinction between fixed price contracts and service contracts, whether the system to be built is a new development or an extension of a legacy system, and spatial and tem- poral availability of the stakeholders.
Operational influences of the content In addition, it is necessary to consider the operational content of the requirements. If the system is very complex, it is advisable to employ a structuring approach during elicitation in order to deconstruct the opera- tional contents into understandable parts.
Combine techniques with regard to your particular situation to lower risks. Another influencing factor on the choice of elicitation techniques is the desired level of detail of the requirements. Abstract requirements can be elicited rather well using creativity techniques. With the stakeholders, a vision of the system or its important properties can be created or collected.
Inquisitive survey techniques or observational techniques can aid in elic- iting requirements of a medium level of detail [Robertson ].
Finely detailed requirements can be elicited well by making use of document- centric techniques, i. It is advisable to combine different techniques because this minimizes many of the risks inherent to the project. Weaknesses and pitfalls of a par- ticular technique can be balanced out through the use of another tech- nique whose strong points lie where the first technique may have deficits. All survey tech- niques assume that the respondent is capable of explicitly expressing his or her knowledge and that he or she is committed to investing time and effort for the elicitation.
Survey techniques are usually driven by the require- ments engineer because she asks the questions. This, however, might result in the fact that stakeholder concerns are forgotten, superseded, or disre- garded. Questions that arise during the conversation can be discussed immedi- Interviews can be employed during the entire development phase of the system. An experienced interviewer individually controls the course of the conversation, com- pletely commits herself to each stakeholder, inquires about specific aspects, and thus ensures the completeness of the answers.
The most prominent disadvantage of this elicitation technique is that it is very time-consuming. If there are a large number of participants that must be surveyed, an online questionnaire is a viable option. Questionnaires can elicit a magnitude of information in a short amount of time and at low costs.
As long as answers are predetermined, even stakeholders that are not able to explicitly express their knowledge can deliver an assessment. A disadvantage of using a questionnaire is that it can be only employed to gather requirements the requirements engineer already knows or conjectures. Creating a proper questionnaire is often tricky and time-consuming and requires thorough knowledge of the domain in question and the psychological guidelines for creating ques- tionnaires.
In addition, as opposed to interviews, questionnaires do not provide immediate feedback between the surveyor and the surveyed, so it becomes apparent that questions were forgotten or badly formu- lated only once the questionnaires have been evaluated.
Creativity techniques are usually not well suited for establishing fine-grained requirements about the system behavior. The following crea- tivity techniques are commonly used [Maiden and Gizikis ]: The ideas are documented by a moderator without discussing, judging, or commenting on them at first.
Participants use ideas of other participants to develop new origi- nal ideas or to modify existing ideas. After that, the collected ideas are subjected to a thorough analysis. This technique is especially effective when a large number of people of different stakeholder groups are Among the advantages of this technique is that a large num- ber of ideas can be collected in a short amount of time and multiple people can expand on these ideas collaboratively.
The unbiased collec- tion of these ideas allows new solutions to pop up. Brainstorming is usually less effective when the dynamics of the group are muddled or when participants with very varied levels of dominance are involved. For such situations, other creativity techniques may be better suited, e. Afterward, the group develops measures to prevent the events collected earlier from hap- pening. Through this process, participants often realize which actions may entail negative results.
With this method, risks can be identified early on and countermeasures can be developed.
Advantages and dis- advantages of this technique are identical to those of classic brain- storming. Among the techniques that employ a change of perspective adopting different extreme standpoints , the most com- mon technique is the so-called Six Thinking Hats [DeBono ]. Each of the six hats represents a particular perspective that is in turn adopted by each of the participants. The resulting solutions approach the problem from different standpoints. That way, even stakeholders that are very convinced of their own opinion are persuaded to adopt a different standpoint.Josef Hegele Cover design: Use cases document the external view of the system to be developed.
Computing , Ebook , Print , Print and digital bundle. If some demanded properties are missing, the stakeholders probably will not accept the product. Michele Chambers. While about 30 percent of the soft- ware projects investigated in failed, it was a mere 20 percent in Before that, some or several interfaces as well as desired functions and qualities of the system to be developed are only partially known or not known at all.
Among the advantages of this technique is that a large num- ber of ideas can be collected in a short amount of time and multiple people can expand on these ideas collaboratively. The quality of a requirement or of a requirements document has a strong impact on the progress of the pro- ject and therefore on its success. Enterprise Information Portals and Knowledge Management.