Chris Rupp, Rainer Joppich Templates – Construction Plans for Requirements and for More ■■ Reviewing numerous rules for each requirement takes an enormous amount of time. Therefore, use our requirement templates for the documentation of requirements. ■■ How to use the requirement templates is easy to learn. If you use them, you’re already improving the quality of your requirements when writing them down for the first time. ■■ Define process words, terms and all other parts of your requirements bindingly to ensure that all persons involved in the project speak the same language. 7 7 Templates 7.1 Linguistic and Philosophic Basis Only if you are lucky! Do not count on it. A quick look back to what we’ve been doing so far to create requirements which meet our high quality demands. In a first step, we question the stakeholders in-depth about their requirements. Alternatively, some sketchy descriptions of the system by a handful of stakeholders or in the form of documentation of legacy systems might already exist. We take all these descriptions and attempt to decompose them into their building blocks while requesting missing information in order to get to the very essence of the statements. A very involved and lengthy procedure. The library director’s requirement What the customer wants And this is the librarian’s opinion. However, there is nothing wrong with this as you will be awarded with high-quality requirements if you scrutinize all of them using the SOPHIST Set of REgulations (see chapter 6 “The SOPHIST Set of REgulations”), no matter whether you use our Set of REgulations in a constructive or in an analytical way. Nevertheless, you will end up with stylistically completely diverging requirements – particularly if the requirements were not formulated in the writer’s native language. The following three requirements demonstrate the problem: During every registration, the customer’s banking details are saved. If the customer is not registered yet, the librarian should be able to enter their personal data and the customer will be assigned an unambiguous number by the system. If an unregistered lender wants to lend books, the person first has to state his or her name, address and date of birth. After successful registration, the system assigns an ID to the new customer and links their data with the unambiguous ID. By the way: We asked three stakeholders about the same situation, a customer’s registration in the library, and we got three different answers. How could it be any different! These answers do not just differ in word order and diction, but also with respect to content. Probably none of the stakeholder groups will be able to comprehensively describe the issue in question in all its aspects. Moreover, related words are used which are not necessarily semantically identical, e.g. customer/lender or to assign/to link. After all, every stakeholder lives in his own reality. The big question is whether it is possible at all for these people involved in the project to develop a common and consistent understanding of the system to be. This problem has been the subject of intense scientific study; from the Sophists in ancient Greece to Ludwig Wittgenstein and Gottlob Frege to Noah Chomsky and John Searle as well as many other modern linguists and philosophers. They all struggle with questions such as: ■■ How does language “work“? ■■ What is the innermost nature of language? ■■ How can language be formally described? 2 Templates 7 ■■ In which way do people learn language? ■■ Is communication via language possible at all? Our template-based approach is established on these linguistic and philosophical bases, yet exhaustive explanations of the same would go beyond the scope of this book – and probably bore most readers. For fans of pure research, linguistics and philosophy we have compiled several articles on the subject at www.sophist.de/en The reassuring answer to this last question is: basically YES. “Better“ means: the requirement already meets certain quality How can we obtain the best phrasing DIRECTLY? criteria, which other “bad” requirements do not. Our templates are the answer. 7.2 The Template-Based Approach We will be focusing on the fact that some requirements are “better” than others. This provokes the question: Let us show you how to save time and effort while writing high-quality requirements with astonishingly easy means. We will provide you with templates that help you phrase requirements and support you in assuring their quality. Using our templates, you instantly create high quality requirements – thus providing constructive quality assurance. Learn more about quality assurance in chapter 10 “Techniques for Checking Requirements”. Our primary focus is on the syntax of the optimal requirement. We can thus exclude typical mistakes in phrasing, for example passive constructions, which mostly do not provide any information on who is expected to perform the specified functionality, from the outset. This means that from the outset a row of linguistic effects will NOT appear in your requirements. Using templates when writing requirements leads to all requirements having a similar structure. Comparable to a house being built in accordance to an architect’s plan, each requirement can be assembled in accordance to a blueprint. We call these syntactic requirement templates, as only the requirements’ syntax (structure) is stipulated, but not their semantics (content) –section 7.4 delves into more detail on this. A requirement template, also called a sentence mold, is a blueprint for the syntactic structure of a requirement. Memorize the three requirement templates presented below and instantly start writing your requirements using them. Our templates are tested and proven and most stakeholders adopt them with excitement, as they are easy to learn and understand. In case your stakeholders are rather unwilling, better not try to present our templates to them. You will probably be more successful if you take your stakeholders by surprise and, for example, rephrase requirements according to template step by step during review meetings. A kind of deployment strategy for templates 3 7 Templates 7.3 Building the Requirement Step by Step Have we built up enough suspense? Let’s take a look at the requirement templates and a stepby-step instruction delineating how to fill all parts of the construction plan with content. STEP 1: Stipulate the degree of legal obligation STEP 4: Identify the object System‘s name STEP 2: Identify the process STEP 3: Classify the type of functionality Figure 7.1: The requirement template without preconditions Go through steps 1 through 4 for each requirement and fill in the appropriate part of the template. As soon as you have done this ten or twenty times you will feel you have internalized the template. After writing some more requirements this way, you will automatically write all your requirements according to template without even thinking. Let’s do the first requirement together. After that, you will have to practice on your own. We choose a legally binding requirement and therefore insert the modal verb SHALL. We’ll take the system’s name as a given, as we suppose you know what system it is you are writing requirements for. In our case, it is a library system. The system’s name is always the subject, so we can start right off with step number 1. If your system happens not to have a name yet, you should define one and insert it here. If you do not want to use your system’s name here, simply write “the system” or, as we have done in our example, “the library system”. Step 1: Stipulate the degree of legal obligation. The library system shall ... Our first requirement stub. Step 2: Identify the called-for functionality. 4 Templates 7 The functionality requested is the centerpiece of each requirement (such as: to print, to save, to transfer, to calculate). We’ll be calling this the „process“ from now on. Processes are procedures or activities and should exclusively be described using main verbs – the so-called process verbs. From a grammatical point of view, main verbs play a distinguished role as the whole sentence (in our case: the whole requirement) revolves around the process verb. The library system shall print. Step 3: Classify the type of the functionality requested. Our first Requirement — as a complete sentence (Requirement Bib-001, version 1). The system’s activity (functionality) is closely related to the process verb. Attempts to classify system activities revealed that there are basically three types of activity relevant when writing requirements: Autonomous system action: The system STARTS the process AUTONOMOUSLY and EXECUTES the process autonomously User interaction: The System PROVIDES the user WITH THE ABILITY to do something. Figure 7.2: Types of system activity Interface requirement: The system performs a process DEPENDENT ON ANOTHER ENTITY (e. g. another system, but not a user), is basically passive and awaits an external trigger. Each of those activities can be described with one of our templates (represented by the three paths through the template in figure 7.1). You may be pondering the question whether a user interaction requirement is just another type of interface requirement. This is true to a certain degree, but in an interface requirement, it is of no importance which system docks onto the interface – with a user interaction requirement on the other hand, there are very often detailed specifications regarding what kind of system behavior is provided to which group of users in which way. This is why we created a separate template for user interaction which enables the person writing requirements to specify this aspect as well.. The library system shall print. Requirement Lib-001, Version 1: autonomous system action. The system starts the printing process. In accordance to the template, we do not need to change anything. 5 7 Templates Requirement Lib-002, Version 1: user interaction. The user triggers the printing process. The library system shall provide the librarian with the ability to print. Requirement Lib-003, Version 1: interface requirement. An incoming event from an external system triggers the receiving process. The library system shall be able to receive data from another library. The different types of system action Use palpable role names like „the librarian”. Type 1: Autonomous system action The first template is used to construct requirements describing a process started and performed autonomously by the system. There is no user action. This is the requirement framework: THE SYSTEM <name> <shall|shoud|will> <process>. <process> denominates the process verb chosen in Step 2, for example “print” for a printing functionality or “calculate” for a calculation performed by the system. Type 2: User interaction If the system provides a functionality that is triggered by the user (like filling in a form) or if the systems interacts with the user, then requirements are constructed using the second template: THE SYSTEM <name> <shall|shoud|will> PROVIDE <whom? > WITH THE ABILITY TO <process>. The term “user“ is too general and is only used if you want to express that the functionality can be configured for roles. Write the role of the user the system shall provide with the ability to trigger the functionality as the <whom?> into your phrase. The <whom?> is only considered optional if it is unambiguous to whom the system provides the functionality. In our templates, we have not marked the <whom?> as optional as its omission would lead to a deletion effect. Even if the process is provided to all potential users, we recommend documenting this. Type 3: Interface requirement This template covers those cases when the system performs a certain action only in dependence of another entity – which is not a user. Please imagine system A which receives information from another system B and not from the user. This input can be acyclic and asymmetric. On reception of messages or data, system A reacts and performs a process. 6 Templates 7 Be careful: If there is a type 3 requirement in system A, system B has to have a matching requirement of type 1 or 2. Both, type 1 (independent system activity) and type 2 (user interaction), are inappropriate to describe this scenario. Type 2 is discarded as there is no user interaction, and type 1 should not be used as it is an external event that triggers the system to start and perform the process. We have experienced that the following syntactic construction is suitable: THE SYSTEM <name> <shall|should|will> BE ABLE TO <process>. Step 4: Identify the object and additional details. The examples above show that so far we have produced only stubs of requirements. To complete these, we need some more parts. In Requirement Lib-001, version 1 there is no information on WHAT is to be printed or WHERE . Linguists would say: there are objects and adverbials missing. In simple words, there is a lack of detailed or defining information about the process verb “print”. In our template, objects and adverbials are inserted at the end of the sentence. Thus, our requirement looks like this: The library system shall provide the librarian with the ability to print a library card on the network printer. Now we already have a requirement of fair quality. However, we can increase the quality by completing another two steps. First, we can include conditions under which the process is to be executed. Second is re-checking the constructed requirement using our SOPHIST Set of REgulations to discover remaining linguistic effects. These are steps 5 and 6 when creating requirements with the help of a requirement template. Now with object and additional information: Lib-002, Version 2 Step 5: Set down the conditions which determine when the called-for functionality will be executed. Typically, the functionality called-for in a requirement isn’t carried out or provided continually, but rather depends on temporal and logical constraints. In order to clearly distinguish between temporal and logical constraints, we use the conjunction AS SOON AS to express temporal conditions. For logical constraints, we habitually use the conditional conjunction IF. As for temporal conditions, further temporal conjunctions may be used (see paragraph 7.4.4). Can you imagine how many evenings analysts can spend discussing the question whether "as soon as" and "if" are the only correct conjunctions in existence? 7 7 Templates Conditions are placed in a subordinate clause preceding the actual requirement. Thus, we expand our example: STEP 5: Formulate logical and temporal conditions STEP 6: Apply the SOPHIST Set of REgulations Figure 7.3: Requirements template with condition Requirement Lib002, Version 3: now with a temporal condition As soon as the library system has saved the user data, the library system shall provide the librarian with the ability to print a library card on the network printer. The following template-based sample requirements have prefixed conditions: Example Type 1: Autonomous system action If the customer data entered is already present in the system, the system shall display the error message „customer already exists“. Example Type 2: User interaction If a customer is not yet registered on the library system, the library system shall provide the librarian with the ability to enter a customer‘s name and date of birth. If a customer has not lent any items, the library system shall provide the librarian with the ability to delete this customer. Example Type 3: Interface requirement As long as the library system is in operation, the library system shall be able to receive software update data from a central administration computer via the local area network. If you start describing fairly complex processes comprising several steps, you will have to break the description down into several sentences. Each of these sentences may be constructed using one of the templates. The following example illustrates this: The library system shall provide solely the administrator with the possibility to import new media items from external data media into the database of the library system. If a semantic or syntactic data error occurs during import, the library system shall display the respective errors (error ID and error description) for every single media item to be imported on the display and print the respective errors on the printer. After the library system has received data of newly entered library customers or new media items from another library system, the library system shall save the received data permanently. Step 6: Apply the SOPHIST Set of REgulations to your freshly built requirement. 8 Templates 7 After step 5, every requirement constructed in accordance to one of the requirement templates has a complete structure. However, the requirement is not perfect yet, as - ignoring a few exceptions - the semantics are still subject to the requirer‘s creativity. The object and its additions inserted in step 4 can be chosen at the author‘s discretion. In consequence, consistency and completeness are solely up to the person writing the requirements. This is why the occurrence of linguistic effects is possible. To conquer those, apply the SOPHIST Set of REgulations (see Chapter 6 „The SOPHIST Set of REgulations“) after having assembled the requirements to perfect the semantic meaning. If you’ve structured the requirements using a template, the application of the SOPHIST Set of REgulations will only reveal few linguistic effects, whose removal will be undemanding. The following examples show requirements that contain an incompletely specified quantifier (ALL data), although the requirement has been assembled in accordance to template type 1. On the first day of every month at 8:00 a.m., provided that the administrator has activated the automatic backup function, the library system shall automatically archive all data of the library system. This enables you to construct an improved requirement: As soon as the point in time [first day of a calendar month, 08:00 CEST] is reached AND if the automatic backup function of the library system is activated, the library system shall automatically archive the data of the library system which has changed since the previous backup (delta backup strategy). 7.4. Adding Semantic Accuracy to the Requirement Template A look at existing requirement specifications reveals that we may have already come further than many a requirer before us. Nevertheless, we have not achieved our goal - a really good requirement - yet. To make the requirement perfect, we need to define its semantic components, as the requirement template is only a framework which defines the parts of a requirement and how these parts can be bound together without redundancies in a consolidated and optimized way. We need to fill the components with semantics, meaning: with content. We need to create semantic definitions for the requirement template‘s components and use logical operators as well as semantically concise expressions. We will show you how to fill the exchangeable and freely fillable parts of the template with defined terms and words. Different authors have to choose the same words when describing the same thing or situation. However, different people will only make the same choice of words if you make sure that the vocabulary at their disposal is limited and that the meaning of the usable words is clearly defined. You discover the quantifier ALL and need to ask yourself, "Really all data?" As a side effect, we also have described the conditions in a more accurate fashion. As you see, a requirement may contain several conditions as well. Those will be connected with logical operators. Here it is a logical AND. Definitions, like requirements, need a degree of legal obligation. 7.4.1 Legal Obligation First, you have to stipulate the keywords for the legal obligation of a requirement as well as the keywords‘ meaning. Usually, a table with two columns is used, which may look like this: 9 7 Templates Legal Obligation Excursion to testing: All shall-requirements are tested. Only implemented should-requirements are tested. Will-requirements are not tested. Keyword The term “shall” is used to define legally binding requirements. ■■ The defined requirement is binding. ■■ The fulfillment of this requirement in the product is binding. ■■ Acceptance of the product can be denied if a shallrequirement is not fulfilled. shall The term “should” is used to define desirable requirements. Desires: ■■ are not legally binding. ■■ do not have to be fulfilled. ■■ help improve collaboration between stakeholders and programmers. ■■ increase the stakeholders’ satisfaction. should The term “will” is used to define requirements that will be integrated in the future. ■■ Future requirements are binding. ■■ They help prepare the system currently being built for the optimal integration of future functionalities. will Figure 7.4: Definition of keywords for the legal obligation We have made the experience that in most projects only shall-requirements are needed. Add a short explanation, maybe like this:“Requirements have differing degrees of legal obligation. A requirement‘s legal obligation is delineated by its keyword. Valid keywords can be found in the following table.“ Only describe keywords you really need in your table. Moreover, explain to your readers what legal obligation means and how the degrees are used. As soon as you have your documentation ready, store it in a central location where every reader and editor of requirements has it at their disposal. In a requirements specification, integrate the information on legal obligation into one of the first chapters, for example the introduction or the reading instructions. 7.4.2 (Process) Verbs From a linguistic point of view, process verbs are main verbs. They delineate the system‘s functionality and are therefore a requirement‘s core element. What the author of the re- 10 Templates 7 quirement is actually requiring must be absolutely undubious to express this functionality correctly. Do „insert“, „enter“ and „input“ mean different things in your context? If so, you have to clearly differentiate between those meanings. It is important to scrutinize the process verbs and to define them clearly. We’re pursuing the ideal that each and every author or reader of a requirement understands a verb in exactly the same way. A means to achieve this goal is a process verb list. In such a list, all main verbs used in one of your requirements are compiled and defined. This list should be kept in a central location as well. A good starting point would be to search through all artifacts created during the first weeks of the project for process verbs. You can extract process verbs - besides the usual sources of requirements (see chapter 4 „Goals, Informants and boundaries“) - from UML diagrams as well. Activity diagrams contain verbs in the name of the diagram itself as well as in the activities‘ names. In a use case diagram, you can find verbs in the diagram‘s name and also within the use case. State diagrams contain verbs as well: activities at transitions or triggers describing user interaction or interface capability. And, of course, you may have verbs in class diagrams. Operations within the classes or associations can be your sources here. Take some time off and write down all the verbs in a list! Expand your list of main verbs to a table with three columns: one for the verbs themselves, one for their definitions and one for synonyms. You should also spend some time thinking about homonyms. Avoid homonyms whenever possible. If you can’t get around using a homonym in your requirements, you need to explain clearly which of the meanings of the homonym it is you are referring to. A SYNONYM is a word with a meaning that is very similar to (or equal with) one or more words of the same language. To SEND, to TRANSMIT, to DISPATCH something A HOMONYM is a word that has several different meanings in the same language. BANK: 1. a place for money 2. a slope Insert a main verb in every row of the first column of your process verb list. In the second 3. a row of switches column, you explain the meaning of the verb in your project. Use the third row for synonyms that exist, but are not permissible for requirements. You list may look like this: 11 7 Templates Only these verbs may be used in requirements. Binding shall-definition: If you use the process verb "to display" and your content is displayed on a side screen instead of the main screen, this is a grave error. Verbs from this column are not to be used in requirements! Figure 7.5: Process word list The biggest challenge when writing a process word list is undoubtedly the creation of semantic definitions in the second column. However, we provide you with a template for this as well. The syntactic construction plan for a process verb: Figure 7.6: Template for process verbs As you have already done with requirement templates, fill in all the parts of this template to get high-quality verb definitions. See Figure 7.5 for examples. In our examples, we deviate from the template in writing „For the library system“, as we do not have a palpable system‘s name. If this is the case with your system as well, just reformulate the way we did. In a requirements specification, the list is usually appended and referenced to. Also make this list available to all the people involved in your project by storing it in a central location. It may be subject to changes throughout the project duration. However, there should only be few changes if the list was created carefully. You should designate a person responsible for the maintenance of the list. Tip: Process verbs are great for reuse. For example: to create, to edit, to save, to archive, to print, to display and so on. Define your process verbs once, draw a process verb list and reuse it in future projects. Thus, you can save the effort involved in defining these verbs again and again. Do not forget do stipulate who will assure con- sistency between the process verb list and your specification. 12 Templates 7 7.4.3 Nouns - Actors, Roles, Objects and Attributes Besides inserting information on the legal obligation and the process verbs, you fill the requirement template as well with objects and additional information relevant for the requirement (step 4). These objects are nouns. In system descriptions, they can be found as objects or classes, attributes, actors, roles or external systems or organizations. The same rules apply to nouns as to process verbs; the nouns to be used should be limited and defined unambiguously. The best way to go is to create a glossary where you list and define the terms relevant to your project. As a start, a list will do. Creating your glossary works exactly like creating a process verb list: check all artifacts existing in your project for nouns they contain at an early stage and insert those into your glossary. Add semantic definitions and synonyms as well. Use the following template for writing semantic definitions: Figure 7.7 Template for semantic definition of nouns This list of terms - your glossary - assures that all those involved in the project understand a word in the same way, which prevents misunderstandings and fuzziness of communication. For further information on glossaries see chapter 8 "Documenting requirements". Overall goal: all those involved in the project speak the same language. Nouns can not only be found in texts, but also in different semi-formal notations. If you have used UML, you may find nouns in your diagrams as well: In you class diagram, you will find nouns as classes or attributes. ■■ Within activity diagrams, nouns can describe swim lanes or actors. Furthermore, they can be part of the names of the diagram itself, its activities and the actions. ■■ A use case diagram may contain nouns as actors as well as parts of the use case and the diagram‘s name. ■■ In a sequence diagram, names of the communicating partners can be a source for nouns. Another would be names of messages. Your terminology can also be easily depicted as a conceptual model. Best is a combination of conceptual model (for structures) and linguistic glossary (for content). No matter which kind of artifact you are analyzing: as soon as you find a noun, check whether it is already contained in your glossary. If it is not and if there is no synonym for this term in your glossary, create a new glossary entry with this term and its definition. In this way, you constantly expand your terminological world. Of course, a member of your project staff has to be responsible for the creation and maintenance of the glossary as well. Figure 7.8 shows a part of the glossary for our library system. Do not forget to define in which way consistency between glossary and specification will be assured. 13 7 Templates Figure 7.8 Glossary with term definitions Besides all those nouns there are terms which, in fact, should be defined, yet are popular and common knowledge as society or an institution has defined the term already. An example taken from our library system is the term „International Standard Book Number“ - better known as „ISBN“. Include terms like this in your glossary as well. However, keep the explanation simple. The following template will help you: Use this template even if a term's meaning will NOT be defined bindingly. Figure 7.9 Template for general terms Feel free to include a reference to the official source (an ISO or ANSI standard or simply a URL). Our example „ISBN“ is included in the glossary in figure 7.8. 7.4.4 Conditions – Logical Operators Complex systems often only exhibit certain functionalities only if a gamut of conditions has been met. You have to define clearly under which conditions the system will offer the called-for functionality. 14 Templates 7 An exact formulation of the condition (step 5 in filling in the requirement template) leads to a uniform structure of requirements. As signal words, we prefix our requirements with conjunctions. With these, we differentiate between logical and temporal conditions and define signal words for both types. The different signal words with their definitions can be seen in figure 7.10. We recommend not to use the signal word WHEN. It is not precise enough. Describes a point in time Describes a period Figure 7.10 Signal words for conditions If a customer‘s age is less than 18 years,... After a customer has authenticated himself,... Examples of conditions with different signal words As soon as the librarian has pushed the emergency stop,... Excursion: Logical Operators The logical operators AND, OR and XOR (exclusive OR) are, combined with brackets, another good means to render the conditions of your requirements more precisely. These operators will help you if your requirements are often misinterpreted. Have a look at the following example: Every Tuesday at 8:00 a.m. or every Friday at 9:00 a.m. and under the condition that at least ten new customers have been entered into the library system since the last transmission of the new customers statistics, the library system shall automatically transmit the evaluation data of the new customers statistics to the central administration server. It is not clear whether the condition that ten new customers must have been entered only applies to the transmission on Fridays or also to the one on Tuesdays. Moreover, it is not delineated clearly whether the system shall transmit the data on Tuesdays as well as on Fridays OR whether the data shall be transmitted only on one day of the week – which would be either Tuesday or Friday (XOR). Using mathematically defined logical 15 7 Templates operators makes the requirement unambiguous in terms of the conditions. (As soon as the point in time [weekday = Tuesday, 08:00 CEST] is reached XOR as soon as the point in time [weekday = Friday, 09:00 CEST] is reached) AND if at least ten new customers have been entered into the library system since the last transmission of the new customers statistics, the library system shall automatically transmit the evaluation data of the new customers statistics to the central administration server. This requirement states unmistakably that a transmission of new customers statistics can be carried out either on Tuesday or on Friday, but only under the condition that at least ten new customers have been entered since the last transmission. You can find more information on this in literature dealing with Boolean algebra. Figure 7.11: Logical operators for conditions As long as the library system is receiving data,... However, logical operators have one disadvantage. One the one hand, they are a great means to structure complicated requirements clearly, which also makes requirements easier to understand. Yet on the other hand, logical operators do not improve the requirements‘ readability. This is the price one has to pay for a high degree of formalization. Deeply interlaced structures and conditions dependent on one another can only be understood clearly if the 16 Templates 7 author uses proper formatting. However, if your textual requirements become too complex or confusing, try using another form of documentation, like decision tables or structograms. 7.4.5 Abbreviations Last but not least we turn to abbreviations, frequently used in daily communication and in requirements common as placeholders for any kind of noun – but not understood by many readers. Abbreviations used therefore must be integrated into your glossary and assigned to a noun. You should handle abbreviations like all other definitions and keep them as additional information to nouns in your glossary. We recommend adding another column to the glossary: „abbreviations“. An alternative is creating a list of abbreviations. Be careful: Every abbreviation hast to refer to a term documented in the glossary. If you come across an abbreviation without referenced term, you have to add the term to the glossary. If you want to define abbreviations that are NOT maintained in the glossary, use this simple template: Figure 7.12: Template for abbreviations Does this sound familiar? People involved in the project only talk in abbreviations and to you it's all Greek? Only the abbreviations listed in the glossary are permissible for requirements. Exemplary excerpt from list of abbreviations separate from the glossary ISBN is defined as International Standard Book Number. PIN is defined as Personal Identification Number. BIN is defined as Bank Identification Number. Of course you can argue that certain abbreviations or terms will surely be understood by every person involved in the project. So, do you really have to define each and every term, however clear it may be? Please decide for each case with the following sentence in mind: If there is only the slightest probability that a reader of the requirement will misunderstand an abbreviation or a term, you have to add the term or abbreviation with its definition to the glossary. Done! There are no further definitions. Using the requirement template and the semantic definitions, you may now write perfect requirements. 7.5 Experiences made The templates do not only work for technical systems. They are suitable for every kind of system. Primarily apply the templates technique when you feel that the project staff would be willing to use requirement templates. 17 7 Templates You can introduce the templates at kick-off as well as at some point during the project. Do not introduce the templates if there are more than ten new techniques in use within the project. Your requirements authors must not only understand the technique as such but also be willing to work according to a strictly standardized procedure. The writers‘ degree of stylistic freedom in constructing requirements will be lowered significantly. We experience the greatest success if we do not order the requirers to use the template, but train them in using the method and show them that the templates will help them in fulfilling their tasks. If your authors have to formulate requirements in a foreign tongue, most people will be thankful for the existence of templates, glossaries and clear guidelines. If you want your requirements to be of highest quality, introduce the templates! The templates will not only work for IT or software. You can also document requirements in the fields of hardware, electronics or mechanics using them. To introduce templates in your organization, compose a four- to six-page document delineating what templates are about. Illustrate the few curt steps that need to be followed to fill the template using an example. This document will then serve as a quick guide for project members. Invite all those involved with requirements to a meeting. There, familiarize them with the templates and exercise writing requirements using some examples. It is quite all right to let the people write 20 to 50 requirements. The first and foremost focus here should be on sentence structure. Then pass out the document you have prepared and you have completed the first step to introducing templates. Besides counting sheep, reading template-based requirements is the best sleep aid. Template-based requirements are best suited for specification level 2 and below. However, if you only specify in level 1, use templates for these requirements as well. 18 For the review of requirements written according to template you ought to consider the following: reading dozens of similarly structured requirements can be tiring and requires a lot of concentration. Do not expect anyone to read the entire document in one go. Structure your document in a fashion that makes it simple for different readers to easily find the parts significant for them. From now on, assemble your requirements and definitions in accordance to a few simple rules. It‘s as easy as pie! One last important insight we have gained during projects: make use of software support. This will simplify your work significantly. The use of requirement templates and a limited, defined vocabulary can be assisted by add-ins/wizards of most requirements management tools. By adapting these tools used for documenting and managing requirements to your needs, you can automate the “construction” of requirements to some extent. Templates 7 7.6 Let‘s get ready to assemble! Checklist Templates and Definitions I have memorized the sentence structure of a natural-language requirement. I have practiced writing template-based natural-language requirements and it works out perfectly. I have understood the template for process verbs and defined my verbs in accordance to the template. I have created a process verb list and I will continue maintaining it. I have placed this process verb list at every involved person‘s disposal. I have defined terms in accordance to the template. I have created a glossary with the terms and made it available for all the people involved in the project. Within the project, there is a person responsible for the maintenance of the glossary. I have added abbreviations commonly used in the project to the glossary. I carefully choose the conjunction to start a condition with. Due to some practice, I have memorized the different types of templates to the extent that I automatically write in accordance to template. 19 7 Templates 20
© Copyright 2026 Paperzz