Requirements Engineering Flashcards
(42 cards)
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”)
What are natural language patterns?
Sentence structure should follow a certain pattern. Example: After office hours (=A), the system (=C) should (=B) offer to the operator (=D) a backup (=F) of all new registrations to an external medium (=E)
Why use decision tables?
OBJECTIVE/COMPLETE (hopefully)/CONSISTENT
Define decision table completness?
A decision table T is called complete iff the disjunction of all rules’ premises is a tautology: OR F_pre(r) is always true
What does it mean if a decision table is formally incomplete? formally complete?
- formally incomplete: there is a case not yet discussed with the customer
- formally complete (whether or not is decidable – SAT): if there are no misunderstandings, then all cases were discussed
Definition of uselessness for a decision table?
A rule r is called useless (redundant) iff there is another different rule r’, whose premise is implied by the one of r and whose effect is the same as r’s (r is called subsumed by r’)
Definition of deterministic for a decision table?
A decision table T is called deterministic iff the premises of all rules are pairwise disjoint (for all r1 neq r2 : NOT (F_pre(r1) AND F_pre(r2)))
Define relative completeness (completeness wrt. conflict axiom)
When decision table does NOT contain all cases (formally incomplete), BUT the cases that are not included will never occur (requires domain knowledge). Disjunction of conflict axiom and all premises is a tautology. Ex: on and off are opposites so (on AND off) is never true
What is the purpose of a conflict axiom?
A conflict axiom over conditions C is a propositional formula over C. A conflict axiom characterises those cases that will never occur according to the domain knowledge. Written under the decision table.