Ian Alexander
This Appendix provides document templates for:
The templates may freely be copied and applied on projects, provided they are used as instructed, and provided that the copyright and source are acknowledged on each copy. They must not be sold or hired out.
The templates are believed to be suitable as a basis for simple projects, but they may need to be adapted for specialised projects and development approaches.
They are provided for free download at http://www.scenarioplus.org.uk
Ian Alexander
This document provides a standardised set of headings to document the top-level goals, often called the Project Mission and Objectives, in any style of project documentation.
This template may freely be copied and applied on projects, provided it is used as instructed, and provided that its copyright and source are acknowledged. It must not be sold or hired out.
Identify the person, probably in a position of power, who has openly stated that he/she intends to champion the project right through to completion. The sponsor / champion need not be involved in day-to-day management of the project, but must be determined that it shall succeed, be willing to fight for it when necessary, and have the ability to obtain the necessary resources (e.g. money, staff, test facilities, etc) to ensure its success. They must also be likely to stay in the organisation for the duration of the project.
The Project Sponsor / Champion is ……………….
(name, job title, department, contact details)
Write a sentence defining the single central thing that the project, system, or product in question must accomplish. This is also the basic criterion as to whether the project has been successful.
For example,
“The mission of the RuriSportBike project is:”
“To become the market leader in sporting bicycles in Ruritania.”
The mission must be brief, clear, and realistic. It must be verifiable, that is, you would know if you had achieved it (e.g. you know have 31% of the Ruritanian bicycle market).
The mission of the … … … … … … … … project is:
To … … … … … … … … … … … … …
Write one sentence for each business objective, that is, each key purpose of the project, system, or product in question. A high-level requirement is only an objective if it is a defining feature, that is, that a successful result could not exist without it. Only a few of a project's mandatory requirements are really central to its being.
It is allowed to have more than one objective, but if there are multiple objectives they must not conflict. However, there should not be too many objectives or focus will be lost.
For example,
“To develop an attractive sporting bicycle that we can produce locally.”
“To set up an effective bicycle production facility.”
“To set up an effective national bicycle sales & distribution network.”
Objectives must be brief, clear, and realistic (within the limits of budget, time, skill, geography and other relevant resources). Objectives must be verifiable, that is, it must be possible to know whether or not you have attained each objective.
Each objective should be owned by a named stakeholder, who will be responsible for achieving it within the framework of the project.
To … … … … … … …
Owner: … … … … … … … … … …..(name, contact details)
To … … … … … … …
Owner: … … … … … … … … … …..(name, contact details)
To … … … … … … …
Owner: … … … … … … … … … …..(name, contact details)
Briefly and honestly list the main factors that will affect the success of the project, under the following headings.
List the factors favouring the project compared to its rivals, past projects, and so on.
List the internal factors such as shortage of funding, staff turnover, skill shortage, and so on, working against the project.
State for each identified weakness how you intend to remedy the weakness so that the project can succeed. Remedies must be realistic, that is, they must be capable of resolving the problems and they must be achievable within the resources of the project.
List the external factors such as the state of the market that would be beneficial if the project were to succeed.
List the external factors such as changing technology, rivals, internal opposition, and so on, that could threaten the success of the project.
State for each identified threat how you intend to mitigate or prevent the threat from causing harm. Mitigations must be realistic, that is, they must be capable of neutralising the threats and they must be achievable within the budget, timescale, skill and the other actual resources to hand.
Ian Alexander
This document provides a standardised set of headings for use when analysing stakeholders in any style of project documentation. This first section illustrates the structure and gives an example of its use. The second section offers some guidelines. The third section is the template.
The Onion-Rings Diagram offers a simple way of visualising a set of stakeholder roles on a project. A free tool to create and manage onion diagrams and associated stakeholder information in the DOORS requirements tool environment is available from http://www.scenarioplus.org.uk
The centre is always the equipment (‘kit’, ‘product’) in question.
The system or ‘work’ is always larger than the equipment—in particular, it includes the people who play operational roles, such as the pilots and fitters who carry out normal and maintenance operations on an aircraft. Systems also normally include operational procedures, training manuals and other information as well as the equipment.
Many systems also include maintenance and training kit, such as simulators and automated test equipment, and it is important to determine whether these are inside or outside the work boundary.
Outside the work boundary lie the direct beneficiaries of the work. These include those who immediately benefit from the functions carried out by the system (including the operators and the kit). Usually these beneficiaries are different from the operators, but sometimes these roles can be combined, as with home entertainment products such as music players where the operator is also often the person benefiting from using the product.
Further out still are people who are affected indirectly, either deriving benefits such as political gains or financial rewards (e.g. through shareholdings), or suffering harm (having negative stakes) such as the impact of noise, pollution, electromagnetic radiation, loss of amenity, or loss of work.
Roles often involve an element of surrogacy. For example,
Surrogate opinions are important, but they are not necessarily equivalent to the views of the people they claim to represent. For instance, it is dangerous for requirements engineers to assume that the viewpoint of a manager corresponds to those of the people—for example maintenance operators—being managed.
The purpose of this approach to stakeholder analysis is to help projects pay more effective attention to the roles and viewpoints involved. All domains are different, but some features of stakeholder structure are essentially similar everywhere.
This hierarchy is meant to be extended on specific projects and in specific domains, by splitting (i.e. specialising) the categories to make them easy to understand and to apply.
For example, in the Railway domain, Normal Operators include Train Driver, Line Controller, Station Controller (depending on the specific system you are considering), while Maintenance Operator in general means Asset Maintainer, which can be specialised into Train Maintainer, Track Maintainer, Lift/Escalator Maintainer, and so on.
Fill in the template for your project, using it as a set of general hints to help you discover the key roles and individuals playing those roles. Add table rows for additional stakeholders. Document stakeholders' actual names and their personal viewpoints on the project; if need be, document their roles in more detail, and record their job titles, departments and other clues to their involvement on the project.
Pay special attention to anomalies:
If you find the template does not exactly match the needs of your project—as is likely—then add roles or otherwise modify the template to reflect reality more accurately.
The template can be used directly to analyse stakeholder roles and viewpoints using only a word processing tool, and this immediately provides benefit through increased clarity and reduced risk to the project.
However, where there are many requirements, frequent changes, large or distributed teams, and long projects, word processing alone is not sufficient to manage all the project information, and especially not the traces or links between items such as goals, viewpoints, requirements, and tests essential to ensure that stakeholders get what they need.
Such projects should select a requirements management tool (such as DOORS, Slate, Cradle, Requisite Pro, etc) to enable project engineers to create, maintain, and receive the benefit of a complete and consistent view of project information.
This template may freely be copied and applied on projects, provided it is used as instructed, and provided that its copyright and source are acknowledged. It must not be sold or hired out.
Stakeholder: | Viewpoint: |
John Smith | wants to see accurate weekly and monthly sales figures and forecasts |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Stakeholder: | Viewpoint: |
Ian Alexander
This appendix is a set of templates for different styles of Use Case. Similar templates can be generated automatically by Scenario Plus (http://www.scenarioplus.org.uk) in a DOORS environment; online versions of the templates are provided in a range of file formats on the Scenario Plus website for free downloading. The templates can be used in essentially any software tool that provides document, spreadsheet, or database like facilities. Paradoxically the most limiting tools for the purpose are those mainly graphical tools that are intended for editing use case and other software specification models.
The values that each attribute can take in columns 4 to 7 are listed in the Introduction. Values are expected only once per Use Case.
This template may freely be copied and applied on projects, provided it is used as instructed, and provided that its copyright and source are acknowledged. It must not be sold or hired out.
This template is a hierarchy of headings that we find helpfully suggestive of questions to ask our clients when putting specifications together, annotated with suggestions as to how each category of Non-Functional Requirements (NFRs) may be verified—for many NFRs are difficult to test, and testing is often an inappropriate verification approach for them.
You will certainly need to customise both the list of NFRs and the associated Verification Approach to suit your kind of system. However, it may be a useful antidote to software-only thinking: even software houses have to ensure their computers and networks have compatible connectors.
The Verification Approach in particular must be thought through for each specific project as the effort necessary is a function of the criticality of the system to your business, whether safety is involved, and not least the particular characteristics of your domain. The suggestions are meant to be generally applicable but this cannot be guaranteed.
For many engineering systems, the NFRs form a much larger part of the specifications than the behaviour (functions and performance) does. Once you have customised the template you will find that it saves you a lot of effort when you start a project.
This template was originally developed for project use in discussions with Andrew Farncombe. It has been revised in the light of work done by Don Firesmith at the SEI, and of course it is part of a wider body of work to make NFRs more tractable by INCOSE, the RESG and others.
This template may freely be copied and applied on projects, provided it is used as instructed, and provided that its copyright and source are acknowledged. It must not be sold or hired out.
Ian Alexander
This is a set of templates for a range of common kinds of test case, based rather directly on use cases (see Appendix 1-3 Use Case Templates).
They are simple, frequently occurring patterns or idioms in scenario-based systems engineering. They are not all necessarily required on all projects, but it is likely that most projects will need to use most of them.
In the (simple) view taken here, test cases are purely sequential, straight-line scenarios. It is true that some software test tools, for example, can automatically navigate a tree structure and test all the paths it defines. But firstly, doing so is equivalent to running a set of simple sequential test cases; and secondly, the automated rules for navigating such a tree need to cater for the test case patterns described here, because sometimes you need to do things twice to be reasonably sure the system is working properly. (Issues of concurrency and non-determinism due to multi-threading are another matter entirely.)
The test case structures can act as hints as to the kinds of test that you should be constructing, based on the pattern of use cases that you have in your projects. They effectively ask you certain questions about the completeness of your verification approach, such as ‘do you know whether such-and-such a function would be restored after a reset?’
This set of templates may freely be copied and applied on projects, provided it is used as instructed, and provided that its copyright and source are acknowledged. It must not be sold or hired out.
For each Use Case:
(Note: this may mean creating a set of similar tests, varying one environmental condition e.g. temperature, vibration, or humidity at a time.)
For each Use Case that can be run as a transaction (or group of such Use Cases that can form a mix of transactions) to be performed many times / in parallel within the system:
For each System Fault, Security Threat or Misuse Case, or Safety-related Hazard corresponding to an Exception Event which should cause the system to Stop safely:
If appropriate:
For each System Fault, Security Threat or Misuse Case, or Safety-related Hazard corresponding to an Exception Event from which the system is expected to Recover:
18.224.29.201