quiz 2 Flashcards
chapter 4 & 5
what is the definition of requirements and what function does it serve
range from a high level abstract statement of a service constraint to a detailed mathematical function
may be the bases for a contract bid of contract itself
what is the difference between a contract bid and a contract
if a company wishes to get a contract for a large software project, it must define its needs in a sufficiently abstract way that a solution is not pre-defined so that it is open to interpretation and multiple ways of achievement are provided
once a contract has been awarded the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do
what are the two types of requirements and who is the reader of each
User requirements:
- simple summarized statements in natural language
- simple diagrams of the services/constraints of the system
(Client manager/system end user/ client engineers/ contract managers/system architects)
System requirements
- a structured document setting out detailed descriptions of the system’s functions and operational constraints (-client managers)
what are functional and non functional requirements
Functional requirements
- statement of services the system should provide
- how the system should react to particular inputs
- how the system should behave in particular situations
non-functional requirements
- constraints on the services or functions offered by the system (reliability, response time, storage, io device constraints, data representations etc)
what are the properties (5) that functional requirements must contain
- Correctness: they should correctly describe the intended requirements
-Completeness: they should include descriptions of all facilities required - minimality: they should avoid overlapping redundancies
- consistency: they should be no conflicts or contradictions in the descriptions of the system facilities
- unambiguity: they should be precisely stated without ambiguities
what are the types of non functional requirements
Product requirements: must behave in a particular way (execution speed, reliability etc.)
Organisational requirements: consequence of organisational policies and procedures like process standards and implementation requirements
external requirements: arise from factors which are external to the system and its development process
what is requirements cross checking
comparing requirements in pairs to identify potential conflicts. it helps prevent generating conflicting requirements
how can we make formulating a non functional requirement easier
by stating:
- a goal: a general intention of the user
- a verification statement: using some measure that can be objectively tested (like training time for users)
what are the 6 non functional metrics for specifying requirements
Speed:
- processed txns/seconds
- screen refresh time
- user event response time
size:
- MBs
- # of ROM chips
Ease of use:
- training time
Dependability:
- mean time to failure
- rate of failure occurrence
probability of unavailability
Robustness:
- Time to restart after failure
- percentage of events causing failure
- probability of data corruption on failure
Portability:
- percentage of target dependent systems
- number of target systems
what is a requiements specification document, what should and shouldn’t it include?
is the official statement of what is required of the system developers
should include:
- a definition of user requirements
- a specification of the system requirements
should not include:
- how the software is should be done (only what should be done)
describe the requirements document in the context of XP and agile methods
in agile methods, it is considered a waste of time since the document is always outdated
in XP, they use incremental requirements and express them using stories
sate the users of a requirements document from the client and provider side
Client side:
- system customers:
. specify the requirements
. read/verify them to check that they meet their needs
. change/update requirements if necessary
- Managers:
. to plan bids for the system
. to plan the system development process - system development engineers
. to understand the nature and context of the system to be developed
. to develop the system accordingly - system test engineers:
. to develop validation tests for the system - system maintenance engineers:
. to understand the system and the relationships between its parts
. to update and extend the system based on emerging requirements
what is the structure of a requirements document
preface
introduction
glossary
user req. definition
system architecture
system req. specification
system models
system evolution
appendices
index
what are the different ways a requirements document can be written in
natural language
structured natural language
tabular specification
design description languages graphical notations
mathematical specification
what are the benefits and problems of natural language sentence
benefits:
- simple and straightforward approach
- easily accessible by non-expert readers
problems:
- lack of clarity
- requirements confusion (functional and non-functional tend to be mixed up)
describe the NLS
- requirements are written using numbered sentences in natural language
- formulate in terms of goal-verification when possible
- use shall (mandatory) and should (desirable)
- avoid computer jargon
- include rationale and explanation of why it is necessary
describe the structured specifications
form based template:
. definition of the function or entity
. description of inputs and where they come from
. description of outputs and where they go to
. other information needed for the computation
. description of the actio to be taken
. pre and post conditions
side effects
what are the benefits and problems of structured specifications
benefits:
. faster and easier to produce
. faster access by expert readers
problems:
. freedom of requirements writer is limited
. this works well for some types of requirements but sometimes is too rigid for writing business requirements
describe the tabular specification
used to supplement natural language (structured and unstructured)
useful when defining a number of possible alternative courses of action
describe the design description languages
using programming like language but with more abstract features
what are the benefits and problems with design description language
benefits:
. higher levels of expressiveness
could be used as a building block for design and implementation later
problems:
. quite cumbersome for system engineers defining requirements
. cumbersome for non-expert clients in accessing the requirements