1/49
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What are requirements?
The statements that describe what the software system should be but not how it is to be constructed.
What are requirements engineering?
A set of activities related to the development and agreement of the final set of requirement specifications.
Prior to actually performing the requirements engineering activities, it is important to-
plan for the resources, methodology, and time needed to perform this crucial step in software engineering.
Some organizations even perform requirements engineering-
as a separate , stand-alone activity and price it separately, with the option of folding the cost into the whole project if they get the call to complete the software project.
What are the engineering activities involved in a software project?
Elicitation
Documentation and definition
Specification
Prototyping
Analysis
Review and validation
Agreement and acceptance
What should plan include?
Process (for requirements engineering) to be used
Resources needed
Schedule for completing the requirements activities
Why do we need clear requirements?
For design and implementation activities.
Requirements documentation is needed to create test cases and test scenarios—especially for what?
Large systems where the test team is a separate group of people from the developers.
Requirements document is needed to control what?
potential scope-creep.
Requirements document is needed to create what?
User training material, marketing material, and documents for support and maintenance.
Requirements document provides a way to segment what?
A large project, prioritize releases, and easier project management
Requirements Elicitation principles are-
May be given to the software engineers
Have to be established by software engineers
What must be given to software engineers?
Initial product/system requirements
For second and/or third follow-on release of a “planned” sequences of software product where a preliminary set of requirements are already established
Requirements provided as a part of a request for price quotation for a software development project
What has to be established by software engineers?
Users sometimes have an understanding of only the requirements related to their specific job tasks
The business rationale and goals are not always clear to individual user and needs to be established for prioritization reason There may be contradicting and incomplete requirements stated by the users and customers
What are High Level requirement elicitation?
Need to seek out the business and management perceptions and goals for the software project
Business opportunity and business needs
Justification for the project
Scope
Major constraints
Major functionality
Success factor
User characteristics
Software engineers who have to interact with business management and handle requirements are sometimes called what?
Business analyst
What does Requirements “analysis” compose of?
Categorizing the requirements (by some criteria)
Prioritizing the requirements
What are the requirements classification/categorization?
Most high level:
functional
non-functional
Other more detailed grouping also exist
six dimensions of requirements
What are the detailed six requirements areas in requirements categorization?
Individual functionality
Business flow (usage ‘scenarios’)
Data and information needs
User interfaces
Other interfaces to external systems/platforms
Various constraints (non-functional)
Performance
Security
Reliability
etc.
View Oriented Requirements Definition (VORD) is based on what?
The concept that requirements are viewed differently by different people
Principles of View Oriented Requirements Definition (VORD)?
Identify stakeholders and their viewpoints of the requirements
Categorize the viewpoints of requirements and eliminating any duplication (look for consistency and completeness)
Refine the identified viewpoints of requirements
Map the viewpoints of requirements to the system and the services that the system must provide
What are the limitations in developing software?
Time
Resources
Technical capabilities (existing)
What do we prioritize to satisfy limitations in developing software?
The requirements
What are the criteria for prioritization?
Current user/customer demands or needs
competition and current market conditions
Anticipated future and new customer needs
Sales advantages
Existing critical problems in current product
Prioritization is what?
Subjective
What is requirements prioritization?
An activity of comparing the requirements and placing them in some order relative to each other.
Sort by priority groups where the groups are based on what?
some prioritization criteria list
What is Pair-wise comparison?
Normalize and compute relative value using the Analytical Hierarchical Process (AHP)
Once the requirements are solicited, analyzed and prioritized, more details may/must be spelled out, what are they?
Requirements definition
Requirements prototyping
Requirements reviewing
What are the different definitions of requirements?
Simple Input/Process/Output (I-P-U) descriptions in English
Dataflow diagrams (DFD)
Entity relations diagram (ERD)
Use case diagram from Unified Modeling Language (UML)
Once the requirements are defined in detail using any of the above forms, they still need to be what?
reviewed
Using OO’s Use Case Methodology and Notation, which identifies what?
Basic/main functionalities
Pre-conditions of functionality
Flow of events or scenarios
Post-conditions for the functionality
Error conditions and alternative flows
Using OO Use Case Diagram, which identifies what?
Actors (or all external interfaces with the system, including the users)
Related “use cases” (major functionalities)
Boundary conditions
Use Case Diagrams are mostly for functionalities and are not detailed enough, so what do we use for further descriptions?
We need to use “English” text for further descriptions of the requirements
What are the further description of requirements that utilizes “English” Text?
Functional details
Pre-conditions
Post-conditions
Non-functional characteristics about the functionalities
“alternative paths” (e.g., error processing)
UI sample (e.g., “looks”)
etc.
What is needed to ensure product has fully implemented the requirements?
Capability to trace a requirement
Where do we need to trace requirements?
From the source (people and documents)
to later steps (design, implementation, test, and release)
What do we need to do to “per-requisite” requirements?
To link requirements
What does requirements prototyping address?
User Interface (UI)
What are the requirements in terms of User Interface (UI)
Visual looks (size, shape, position, color)
Flow (control and logical flow; depth of flow)
What are the types of prototyping that may be performed?
Low fidelity
High fidelity
What is low fidelity?
using paper/cardboard to represent screens and human to move the boards
What is high fidelity?
using automated tools such as Visual Basic to code the screens and direct the logical flow of these screens
When requirements are defined, prototyped, and reviewed, where are they placed?
A requirements specification document
What is the IEEE/EIA standard 12207.1-1997?
It outlines the guidelines for three major sections of a requirements specification document.
What are the major guidelines of requirements specification document?
Introduction
High-level description
detailed description
What are the elements of detailed description?
Details of each functionality (input-out-process)
Interfaces, including user interfaces and network interfaces
Performance requirements (response time, throughput, etc.)
Design constraints, standards, etc.
Additional attributes such as security, reliability, etc.
Any additional unique requirements
It is important to have?
requirements specification agreed to and signed off
What does a “sign off” serve as?
A milestone marker and formal exit of a phase of software of engineering
A baseline from which any future changes can be monitored and controlled