Requirements Engineering Flashcards
Definition of a requirement
A condition that must be met by a system to satisfy a contract
Definition of requirements analysis?
the process of studying user needs to arrive at a definition of software requirements
Why make a requirements specification?
negotiation with customer, consistent design and implementation, preparation of tests, later re-implementations
What are the requirements of the requirements specification?
correct, complete, relevant, consistent, neutral/abstract, traceable (source of req is clear), testable/objective
Describe the pitfall of vagueness v. abstraction in requirements engineering?
Requirements specification should always be as precise as possible, but does not give exactly one solution.
- vague (not precise): list should be sorted logically
- precise (abstract): list of participants should be sorted by immatriculation number, lowest first
- precise (non-abstract): list should be sorted by public static void Collections::sort( List list, Comparator c );
What is the difference between requirements and design?
requirements = what is to be done, design = how are things to be done
Kinds of Requirements: Functional vs. Non-Functional
View software as a function that maps sequences of inputs to sequences of outputs. Functional req = every constraint on things which are observable in the sequences. Non-functional = programming language, coding conventions, etc
Kinds of Requirements: Hard vs. Soft Requirements
Flexibility of requirements. Example of hard: cashing a check must increase balance by exactly the amount of the check. Example of soft: vending machine must dispense item “quickly”. Difficult to make req hard.
Kinds of Requirements: Open vs. Tacit
open = customer is aware of and able to explicitly communicate the requirement, tacit = customer not aware of something being a requirement (obvious to the customer
but not considered relevant by the customer, not known to be relevant). Example: buttons and screen of a mobile phone
should be on the same side
What are the tasks of an analyst?
ask what is wanted, ask what is NOT wanted, establish precision, look for contradictions, anticipate exceptions/difficulties, understand technical difficulties, communicate formal specification to customer
What are requirements documents?
dictionary, specification
What is a dictionary?
A dictionary comprises definitions and clarifications of terms that are relevant to the project and of
which different people (in particular customer and developer) may have different understandings before
agreeing on the dictionary
What are some things to include in a dictionary entry?
meaning, synonyms, where NOT to use the term, validness in time/space
What is the definition of a requirements specification?
a document that specifies in a complete, precise, verifiable manner, the functions, performance, design constraints, and attributes of the software and its external interfaces
What is the definition of a requirements specification language?
A specification language (combination of formal and natural language) with special constructs
and, sometimes, verification protocols, used to develop, analyze, and document hardware
or software requirements.
What should analysts focus on when they use natural language in requirements specifications?
Make the language as complete and precise as possible (ex. use active not passive voice, use full verbs: NOT “when data is consistent”, but “after program P has checked the consistency”)