Requirements Analysis and Git Flashcards

1
Q

What is requirements engineering and how is it represented.

A

It is the process of establishing the services that the customer requires from a system and the constraints of which it is operated and developed under.

The services and constraints are represented text descriptions and constraints

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

Why are good requirements important?

A

They are important due to the amount of capital that is spent to fix software bugs, which exceeds many companies time and budget estimates.

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

What is a requirement?

A

It is a high-level abstract statement or a system constraint. Or a detailed mathematical functional specification.

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

Where do defects primarily occur from using the waterfall model?

A

They come from the requirements.

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

Explain the purpose of User Requirements

A

They state what the client expects the software to do in the application domain.

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

Explain the purpose of System Requirements.

A

A structured document setting out detailed, often quantified descriptions of the system’s functions, services and operational constraints.

This defines what should be implemented and maybe part of a contract between the client and contractor.

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

What are functional requirements?

A

It is about what the software should do.

The statements of services that the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.

Can also state what the system should not do.

Describe functionality or system services.

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

Non-functional Requirements

A

Constraints on the system properties, services or functions of the system.

Timing constraints, constraints on the development process, standards, I/O device capability, system representations, reliability, response time and storage requirements.

May affect the whole system, e.g
-Security, network or performance requirements can affect the whole system architecture.

-Legal requirements can make the software useless if not fulfilled.

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

What are Domain Requirements?

A

Domain requirements stem from the system’s operational domain, which imposes specific needs on the software. These can introduce new functional requirements, constraints on existing ones, or define certain computations. For example, a train control system must consider weather conditions when determining braking characteristics. Failing to meet domain requirements may render the system unusable.

Challenges include:

Understandability: Domain-specific language can be hard for software engineers to understand.

Implicitness: Domain experts may overlook making certain requirements explicit, assuming they’re understood intuitively.

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

What is the order of the Requirements Engineering Process

A
  1. Requirements elicitation
  2. Requirements analysis
  3. Requirements validation
  4. Requirements management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Requirements Elicitation and what does it involve

A

The purpose of it is to research and discover requirements, identify and interview stakeholders to understand why the new software is needed and assess the state of any existing systems. Additionally, study the domain and environment, collaborating with stakeholders to create a shared ontology that clarifies any language ambiguities.

Methods: Use techniques like interviews, questionnaires, user observation, workshops, brainstorming, use cases, role playing, and prototyping.

Requirements Classification: Organize and group related requirements into clusters.

Prioritization and Negotiation: Evaluate alternatives, assess risks, and use communication skills to reach stakeholder agreement.

Requirements Specification: Document requirements in UML for further discussions.

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

What is the diffiiculty of requirements elicitation.

A

Stakeholders often don’t know what they really want.

Stakeholders express requirements and their own terms.

Different stakeholders may have conflicting requirements.

Organisational and Political factors.

The requirements change during the analysis process.

New stakeholders may emerge and the business environment change.

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

Requirements Analysis: Scenarios and Use Cases

A

Scenarios and use cases are real-life examples of how a system can be used.

They should include:
A description of the starting situation.

A list of all actors.

A description of the normal flow of events.

A description of what can go wrong.

Information about other concurrent activities.

A description of the state when the scenario finishes.

UML diagrams:
Use case diagram
Sequence diagram

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

What are Requirements Validation?

A
  • Validiity - Does the system provide the functions which support the customer’s needs?
  • Consistency - Are there any requirements conflicts?
  • Completeness - Are all the functions required by the customer included?
  • Realism - Can the requirements be implemented given the available budget and technology?
  • Verifiability - Can the requirements be checked?

Validation Techniques

  • Requirements reviews
    • Systematic manual analysis of the requirements.
  • Prototyping
    • Using an executable model of the system to check requirements.

-Test-case generation
- Developing tests for requirements to check testability.

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

What are Requirements Management?

A

Requirements management is the process of managing changing requirements during the requirements engineering process and system development.

New requirements emerge as a system is being developed and after it has gone into use.

You need to keep track of individual requirements and maintain links between dependent requirements so that you can assess the impact of requirements changes.

You need to establish a formal process for making change proposals and linking these to system requirements.

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

What are the steps to clone a repo make new changes and update the repo with these changes.

A

git clone <website>
(add change)
git add .
git commit -m "New Commit"
git push</website>