1/33
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is Requirements Engineering
- what services are required
- Identify constraints on these services
- ensure software will meet the user expectations and ending-up with a high quality software
What are the steps in the Requirements Engineering proccess
Feasibility Study and Report --> Elicitation, Analysis, System Models -->Requirements Specification --> Requirements Validation
Elicitation
"work with the customer on gathering requirements"
What are the different techniques to elicit requirements
- interviews
- questionnaires (list of pre-selected questions)
- task analysis (observing in environment)
- user stories (short description of features)
- scenarios (describe use of system as a series of interactions between end user and system)
- use cases (abstractions describe a class of scenarios)
Analysis
"process the gathered information to understand it, classify in various categories and relate the customer needs to possible software requirements"
System Models
output of elicitation and analysis; plan driven approach
Specification
structure the customer input and derived requirements as written documents (user requirements) and diagrams (system requirements)
Validation
"The process of testing the requirements to ensure that they conform with customer needs, accurate, complete,..."
What are the requirements for validation
- correctness (represent the client's view)
- completeness (all possible scenarios/user stories)
- consistency (no contradicting requirements)
- clarity (interpreted in one way)
- realism (implementable and deliverable)
- traceability (behavior can be traced as a set of functional requirements)
- verifiability (written so they can be tested)
The Requirements Engineering Process is an _______________ process that continues thought requirements development; No single standard approach to requirements development
iterative
How do we write requirements?
depends on the development model
- traditional approach (waterfall) - shall, should langauge
- SCRUM - user stories
- RUP - use cases
- mix
What is a requirement?
a statement of one of the following:
- what a system must do
- a known limitation or constraint on resources or design
- how well the system must do what it does
What is a functional requirement?
what a system must do
describe the interaction between the system and its environment independent from the implementation
What is a non functional requirement?
a known limitation or constraint on resources or design and how well the system must do what it does (quality of the sysyem)
aspects not directly related to functional behavior
What are constraints
imposed by the client or the environment (any language, algorithm or regulations)
"pseudo requirements"
Types of non functional requirements (quality requirements)
- usability
-reliability (robustness, safety, security)
- performance (response time, throughput)
- supportability (adaptability, maintainability, modifiability)
Types of non functional requirements (constraints/pseudo requirements)
- implementation
- interface
- operation
- packaging
- legal (licensing, certification, regulations)
Usability definition
must be measurable, the ease of which actors can use a system to perform a function
Robustness definition
ability of a system to maintain function (even if there is wrong input or changes in the enviornment)
loss of data/recovered data
Availability definition
ratio of the expected uptime against aggregate of the expected up and down time
Performance definition
response time, throughput
Efficiency definition
minimal use of resources (memory, processor, disk, network...)
Reliability definition
how precise the computations are
Portability definition
does it work for several platforms
Modifiability definition
addition of new functionalities
Reusability definition
of components, code, design and even requirements in other systems
Maintainability definition
changes to functionalities, repairs
Readability definition
of code, documents
Testability definition
ease of testing and error reporting
Understandability definition
of design, architecture, code
Integrability definition
ability to integrate components
UML Use Case Diagram
Used during requirements elicitation and analysis to represent external behavior
Actor definition
represents a role that is a type if user of the system
Use case definition
represents a class of functionality provided by the system