1.2.3. Software Development Flashcards

(96 cards)

1
Q

What is the Software Development Life Cycle (SDLC)?

A

The SDLC is the set of distinct phases you go through when developing a software solution, including feasibility, requirements, design, implementation, testing, deployment, evaluation, and maintenance.

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

What does the software development methodology describe?

A

It describes the arrangement and progression (both forwards and backwards) between the phases of the software development life cycle.

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

What is the first phase of the SDLC and what does it involve?

A

Feasibility: checking if the problem can be solved given technology, time, and costs.

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

What happens during the requirements phase?

A

Determining what the finished system needs to do.

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

What is involved in the analysis and design phase?

A

Working out how the system should perform its required functions.

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

What happens during implementation?

A

Writing the actual code for the software.

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

What is the purpose of the testing phase?

A

To thoroughly check that the code works as intended.

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

What does deployment mean in the SDLC?

A

Installing the finished software in the target environment.

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

Why is the evaluation phase important?

A

To check with the user if the system is complete and meets their original needs.

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

What is the maintenance phase?

A

Ongoing updates, improvements, patches, and ensuring the software continues to work after release.

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

Name the five software development methodologies you need to know.

A

Waterfall, Rapid Application Development (RAD), Spiral, Agile, and Extreme Programming (XP).

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

What characterizes the Waterfall model?

A

A linear cascading effect where each phase has a defined start and end, progressing sequentially.

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

How is the Waterfall model sometimes evolved?

A

By allowing movement backwards to previous stages to rework as needed.

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

What is Rapid Application Development (RAD)?

A

A methodology involving successive prototypes shown to users for feedback and iteration until the final version is achieved.

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

How does RAD handle user feedback?

A

Users provide feedback on each prototype which leads to further design, coding, and evaluation.

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

What is the Spiral model primarily focused on?

A

Managing and addressing risks unique to each project.

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

How does the Spiral model function?

A

It acts as a process model generator, choosing methodologies based on risk and iterating through four quadrants: objectives, risk resolution, development/testing, and planning next iteration.

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

Is the Spiral model a fixed sequence of steps?

A

No, it is flexible and depends on the unique risks of the project.

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

What are the four main quadrants of the Spiral model?

A

Determine objectives, identify and resolve risks, develop and test, plan the next iteration.

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

What happens at the end of the Spiral model process?

A

An operational prototype is produced, and the main development and testing phase begins.

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

What are Agile methodologies?

A

A group of iterative development methodologies focusing on evolving requirements and time-boxed development cycles.

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

What is a time box in Agile?

A

A fixed length of time (e.g., one week) during which an iteration must be completed, tested, and evaluated.

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

What phases are typically included within an Agile time box?

A

Implementation, testing, and evaluation.

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

When are requirements and design done in Agile?

A

Mostly at the start and reviewed periodically during the project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is Extreme Programming (XP)?
A type of Agile methodology with short cycles, frequent releases, pair programming, test-driven development, and continuous integration.
26
What is pair programming?
Two programmers work together at the same computer to write code.
27
What is test-driven development in XP?
Writing tests before writing the code to ensure functionality is correct.
28
What is continuous integration in XP?
Constantly testing and merging code into a shared repository.
29
When is the Waterfall model most suitable?
For projects with clearly defined and unchanging requirements.
30
For what types of projects are RAD and Spiral models better?
Projects where requirements evolve and there is a need for frequent feedback and risk management.
31
For what types of projects are Agile and Extreme Programming best?
Fast-moving projects with changing and evolving requirements.
32
What is a key benefit of the Waterfall model?
Its simplicity makes it very easy to manage, with clear responsibilities and deliverables at every stage.
33
What is a major drawback of the Waterfall model?
The user usually only sees the finished product near the end, so misunderstandings in requirements can be costly and hard to fix.
34
For what type of projects is the Waterfall model most suitable?
Large-scale projects with well-understood requirements and low risk, although it is largely outdated in practice.
35
What is an advantage of Rapid Application Development (RAD)?
Requirements don’t need to be fully clear at the start, allowing user feedback through focus groups to improve usability iteratively.
36
What is a drawback of RAD?
It requires constant user involvement, which can be difficult to maintain, and it scales poorly for very large projects.
37
When is RAD most suitable?
Projects with unclear initial requirements that benefit from continuous user feedback and iterative development.
38
What is the main strength of the Spiral model?
It focuses on risk management, making it ideal for projects with high risk or many unknowns.
39
What is a major drawback of the Spiral model?
Risk analysis is specialized and costly, and poor risk assessment can jeopardize the project.
40
Which projects benefit most from the Spiral model?
Large-scale projects with high risk and unclear requirements at the outset.
41
What do Agile and Extreme Programming (XP) emphasize in software development?
High-quality code through collaboration, respect, and iterative development cycles.
42
What challenges can arise when using Agile and XP?
They require close collaboration of programmers, which can be difficult if teams are geographically distributed, and they need strong client commitment.
43
When should Agile and Extreme Programming be used?
When the project prioritizes high-quality code and requires fast adaptability to changing requirements.
44
What is a similarity between RAD and Agile methodologies?
Both use iterative development and rely on continuous user feedback.
45
How does Waterfall differ from Agile methodologies?
Waterfall is linear with clear phases and minimal client involvement after initial requirements, whereas Agile is iterative and requires ongoing client involvement.
46
What is an algorithm?
A sequence of steps designed to perform a task, describing the operation of a complete program or part of it.
47
Give a real-life example of an algorithm.
Crossing a road safely by stopping, looking both ways, pressing the button, waiting for the lights, and crossing.
48
What skills are important for writing and following algorithms?
Using flow diagrams (flowcharts) and pseudocode.
49
What is a flow diagram or flowchart?
A visual representation of the sequence of steps in an algorithm, using specific symbols.
50
What does a flowchart start with and how does it progress?
It starts at the top and follows arrows through decisions and processes until the end.
51
What is pseudocode?
A simplified, language-agnostic code that resembles programming language but is easier to read and write.
52
How does pseudocode differ from actual programming code?
It doesn’t follow strict syntax rules of any one programming language but conveys the logic clearly.
53
How are flowcharts and pseudocode related?
They both represent algorithms; flowcharts visually, pseudocode textually.
54
What is one example of a decision in an algorithm using a flowchart?
Checking if number one is greater than number two and following different paths based on yes/no.
55
What might you be asked to do with algorithms in an exam?
Create, interpret, correct, or refine algorithms using flowcharts, pseudocode, or high-level code.
56
How would you refine a flowchart to find the largest of three numbers instead of two?
Add an extra input for the third number and additional decision branches to compare the three numbers.
57
Describe the flowchart logic for dosing carbon in a fish tank based on nitrate levels.
Check nitrate levels in descending order and dose specific amounts depending on which range the nitrate falls into.
58
What are six common flowchart symbols and their purposes?
Terminal (start/end), Process (action), Decision (yes/no question), Input/Output (data entry or output), Subroutine call, and Flowline (control flow).
59
What does the terminal symbol represent in a flowchart?
The start or end of a process.
60
What does the process symbol indicate?
An initialization, calculation, or processing step.
61
What is represented by a decision symbol in a flowchart?
A question or condition with yes/no or true/false outcomes leading to different paths.
62
What does the input/output symbol show?
Data being received or output by the algorithm.
63
What is the purpose of a subroutine call symbol?
To indicate a call to another flowchart or a separate routine within the program.
64
What does a line with an arrow in a flowchart mean?
The flow of control passing from one step to another.
65
What key techniques help in writing and following algorithms?
Using flow diagrams, pseudocode, and understanding the common flowchart symbols.
66
What is the purpose of testing a program?
To make sure it works as intended.
67
What are the four common testing strategies mentioned?
Black box testing, white box testing, alpha testing, and beta testing.
68
What is black box testing?
Testing that checks whether an input produces the expected output without considering how the program works internally.
69
In black box testing, does code efficiency matter?
No, as long as the inputs return the desired outputs.
70
Why is it often impossible to test all possible inputs in black box testing?
Because some programs can have an infinite number of inputs, such as a calculator adding two integers.
71
What is white box testing?
Testing that focuses on the internal workings of the code and makes sure all parts of the algorithm function as intended.
72
What does white box testing check that black box testing does not?
It checks all possible paths of execution and the efficiency and quality of the code.
73
When are alpha and beta testing performed?
When software is nearly ready for release and can be tested as a complete solution.
74
Who performs alpha testing?
A limited number of internal employees and their extended friends and family.
75
What is characteristic of alpha testing software?
It is an early version, often rough with many bugs.
76
Who performs beta testing?
A much wider community, often through a beta sign-up program.
77
What kinds of issues are beta testers helping to identify?
Load balancing, compatibility, and hardware issues.
78
What is a key difference between alpha and beta testing?
Alpha testing is early and limited to internal testers; beta testing is later and open to a wider community.
79
Why might companies do beta testing before official software launch?
To get feedback on how the software performs under real-world conditions and with many users.
80
What should you know about other testing types beyond the four discussed?
There are many other testing methods, depending on the size and nature of the problem, but black box, white box, alpha, and beta are the exam focus.
81
What is the key question to answer after learning about program testing?
What are the features of the different ways a program can be tested?
82
What is the first thing you should test when selecting test data?
No data being entered at all to check if the program behaves correctly with empty input.
83
What type of data should a program reject during testing?
Erroneous or invalid data.
84
Give examples of erroneous data for a menu choice program that accepts only 1, 2, or 3.
Entering a character, entering a symbol, entering numbers outside the valid range (e.g., -6, 8), entering decimal numbers like 2.5.
85
What is valid test data in the menu choice example?
The numbers 1, 2, and 3.
86
What is boundary data in testing?
Data at the edge of accepted limits, such as 1 and 3 for valid inputs, and 0 and 4 as invalid but boundary values.
87
In a ticket machine program, what factors should test data cover?
Valid and invalid durations, special rates for Sunday or evenings, and invalid parking times such as when the car park is closed.
88
What is a trace table used for?
Tracing execution of a program line-by-line by recording the state of each variable and noting output to find logic errors.
89
What is a dry run in programming?
Manually running through the program step-by-step and updating a trace table to simulate execution.
90
How do you set up a trace table?
Identify all variables and create a column for each, plus an output column to note outputs during each step.
91
During a dry run, what do you record in the trace table?
The values of variables after each line or step and any output generated.
92
Why is it important to include no data tests?
Because no data is not invalid but still might cause undesirable behavior that should be checked.
93
Why can't you test every erroneous input?
Because there are infinite possible invalid inputs, so you select a representative range.
94
What does testing boundary data help identify?
Errors that occur at the edge of input ranges where the program might behave unexpectedly.
95
What kinds of inputs are considered normal or typical test data?
Inputs that should be accepted and processed correctly, like valid menu choices 1, 2, or 3.
96
What is the purpose of using test data in different scenarios?
To ensure the program handles all expected and unexpected inputs correctly.