3. Software Requirements Flashcards

1
Q

What are functional requirements?

A

Statements of functions or services to be provided by the system.

What is the system supposed to do?
What is the system supposed to look like?
What inputs does the system need?
How should the system respond to errors?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are non-functional requirements?

A

Specify criteria that can be used to judge the operation of a system, rather than specific behaviors. (Not what, but how)

Flexibility, portability, re-usability, reliability, maintainability, security, safety, performance, effectiveness, efficiency, reliability, maintainability, satisfaction, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Evaluate how to verify ‘Performance’ as a quality attribute (non-functional requirement).

A

Any system that needs to operate quickly and efficiently when running to produce results fast.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Evaluate how to verify ‘Reliability’ as a quality attribute (non-functional requirement).

A

Ensure that all critical systems have a near 0% failure rate and that if a failure does occur the system will be able to maintain all changes on restart.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Evaluate how to verify ‘Portability’ as a quality attribute (non-functional requirement).

A

The system is able to adapt easily, install easily, and be easily replaceable if it were to break.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Evaluate how to verify ‘Usability’ as a quality attribute (non-functional requirement).

A

Any system that can be easily accessed and navigated by the average user who has little to no issue understanding the operations of the system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the waterfall cycle?

A

Inception-> Requirements -> Analysis -> Design -> Implementation -> Development
These are all done in order.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the iterative cycle?

A
Build it --> Measure it
 ^                            \
 |                              |
 \                             /
   Learn from it
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explain the downsides to using the waterfall cycle and benefits of using an iterative cycle for requirements engineering.

A

It is simply too hard for software developers to think of all the requirements and to thoroughly analyze, design and implement an engineering solution for development all in one fluid try.
The iterative cycle allows us to build a product, measure the systems non-functional requirements and learn from the resulting feedback from consumers. This is a much more forgiving requirements engineering approach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Give five information sources for requirements elicitation (gathering).

A
Here are ten
\+ Interviews
\+ Focal groups
\+ Requirement seminars
\+ Informal meeting
\+ Questionnaires
\+ Current Forms
\+ Procedures and task descriptions 
\+ Existing software systems
\+ Promotional material
\+ Observation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is traceability and why it is important for software engineering?

A

Each future piece of the development puzzle is motivated by a requirement
+ Requirements drive design elements
+ Those design elements drive source code
+ Source code drives testing
So, it’s important to look at questions like:
+ What requirements does this component serve?
+ Which requirements do these source code files satisfy?
+ Which parts of the requirements specification do these test cases examine?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is MVP and what is it for?

A

The Minimum Viable Product is a product with just enough features to gather validated learning about the product and its continued development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is ISO 25010:2011?

A

A product quality model. Specifies the non-functional requirements that most software seeks to achieve.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

List four characteristics of a product quality model described in ISO 25010:2011.

A

Here are all eight and their descriptions (less important):

Functional Suitability
+ degree to which a product or system provides functions that meet stated and implied needs when used under specified conditions

Usability
+ degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use

Performance Efficiency
+ performance relative to the amount of resources used under stated conditions

Maintainability
+ degree of effectiveness and efficiency with which a product or system can be modified by the intended maintainers

Compatibility
+ degree to which a product, system or component can exchange information with other products, systems or components, and/or perform its required functions, while sharing the same hardware or software environment

Reliability
+ degree to which a system, product or component performs specific functions under specified conditions for a specified period of time

Security
+ degree to which a product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorization

Portability
+ degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the most important non-functional requirements for critical systems, real-time systems and embedded systems?

A

Critical Systems - Reliability
Real-time systems - Performance Efficiency
Embedded systems - Functional Suitability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are ‘Use-Case Descriptions’?

A

+ Often describe in more detail than a user story how a user will interact with the system or components.
+ Detail the general flow of the interaction and how different things can happen at different stages of interaction.
+ May detail one user story, but often splits into multiple stories depending on the complexity of the user case.

17
Q

What are ‘User Stories’?

A

+ Used as a form of dialogue between developer and stakeholder, allowing for communication and discussion about a feature to be implemented.
+ Easily represents the Who, What, and Why for the feature.
+ Usually is a chunk of functionality to implement for a set of requirements that can be easily accomplished or estimated.

18
Q

Explain what ‘includes’ and ‘extends’ relationships are in use cases.

A

Includes: the relationship is mandatory
Extends: the relationship is optional

19
Q

What is a Kanban and how is it used?

A

A Kanban is a board for user stories that easily allows for developers to update the stories as they move through the development process. These boards usually consist of backlog, todo, doing, done, and accepted. Where each story will move through the board until it is either discarded or completed. While they were originally made of whiteboards and post it notes, we now have modern Kanban like Trello, and Waffle.