1.2.3 Software Development Flashcards

1
Q

What is the Agile methodology?

A

An iterative process that produces incremental prototypes of software over short, fast-paced sprints.
Each prototype is user tested and any feedback and change in requirements will be accounted for in future sprints.

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

What is extreme programming?

A

A type of the agile methodology that is more responsive to changing user needs with short development cycles and very frequent cycles and very frequent software releases.
Checkpoints are incorporated to change or to add new user requirements.

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

What is rapid application development?

A

A method capable of speedy responses to changes in technologies and user requirements through repeated prototyping, continual evaluations, and strict time limits.
The user will quickly receive a reduced functionality mock-up of the program.

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

What is the spiral model?

A

An iterative version of the waterfall model where stages are refined and repeated until the final product is complete.
The first cycle works towards an initial prototype, and each successive cycle produces a refined prototype.

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

What is the waterfall lifecycle?

A

Each stage of development is completed one at a time in a linear order. Results from a completed stage are input into the next.
Any previous stage can be returned to in light of feedback; however, the stage that follows needs to be worked through again.

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

What are the 7 most common stages within software development life cycles?

A

Analysis
Design
Development
Testing
Implementation
Evalution
Maintence

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

Explain analysis in software development life cycles ?

A

Stakeholders state their requirements, which are used to define the problem and the system requirements.

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

What are aspects of the design stage in software development life cycles?

A

Inputs: volume, methods, frequency
Outputs: volume, methods, frequency
Security features: level required, access levels Hardware set-up: compatibility
User interface: menus, accessibility, navigation A test plan may also be designed at this stage.

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

Explain what the development stage is within software development life cycles?

A

The design from the previous stage is used to split the project into individual, self-contained modules, which are allocated to teams for programming.

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

Explain the testing stage within software development life cycles?

A

The program is tested against the test plan formed in the Design stage.
This includes alpha, beta, white box, and black box testing.

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

Explain the implementation stage within software development life cycles?

A

Once the software has been tested and reviewed, it is installed onto the users’ systems.

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

Explain the evaluation stage within software development life cycles?

A

The effectiveness of the software is evaluated against the system requirements.
Different criteria are considered, including robustness, reliability, portability and maintainability.

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

How might requirements for a project be decided by?

A

Analysing strengths and weaknesses of current solution
Considering inputs, outputs, stored data and amount of data involved

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

Explain the maintenance stage within software development life cycles?

A

Any errors or improvements that could be made to the software are flagged up by the end-users.
Programmers will regularly send out software updates to fix any bugs, security issues or make any necessary improvements

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

What is alpha testing?

A

Alpha testing is carried out in-house by the software development teams within the company. Bugs are pinpointed and fixed

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

What is beta testing?

A

Beta testing is carried out by end-users after alpha testing has been completed. Feedback from users is used to inform the next stage of development.

17
Q

What is white box testing?

A

This is carried out by software development teams in which the internal structure of the program is known. All of the possible routes through the program are tested.

18
Q

What is black box testing?

A

Software is tested without testers being aware of the internal structure of the software. The test plan traces through inputs and outputs within the software.

19
Q

What are algorithms?

A

Algorithms are a set of instructions used to solve a problem.

20
Q

What aspects define a good algorithm?

A

Inputs must be clearly defined - what is valid and what is invalid?
Must always produce a valid output for any defined input
Must be able to deal with invalid inputs
Must always reach a stopping condition
Must be well-documented for reference
Must be well-commented so modifications can easily be made

21
Q

What are the advantages of Waterfall method?

A

Straightforward to manage
Clearly documented

22
Q

What are the disadvantages of Waterfall method?

A

Lack of flexibility
No risk analysis
Limited user involvement

23
Q

What are uses of the waterfall method?

A

Static, low-risk projects which need little user input, such as a piece of general-purpose software

24
Q

What are the pros of agile method?

A

Produces high-quality code
Flexible to changing requirements
Regular user input

25
Q

What are the cons of agile method?

A

Poor documentation
Requires consistent interaction between user and programmer

26
Q

What are the uses of the agile method?

A

Small to medium projects with unclear initial requirements.

27
Q

What are the pros of extreme programming?

A

Produces high quality code
Constant user involvement means high usability

28
Q

What are cons of extreme porgramming?

A

High cost of two people working on one project
Teamwork is essential
End-user may not be able to be present

29
Q

What are the uses of extreme programming?

A

Small to medium projects with unclear initial requirements requiring excellent usability.

30
Q

What are pros of the spiral method?

A

Thorough risk-analysis and mitigation
Caters to changing user needs
Produces prototypes throughout

31
Q

What are the cons of the spiral method?

A

Expensive to hire risk assessors
Lack of focus on code efficiency
High costs due to constant prototyping

32
Q

What are uses of the spiral method?

A

Large, risk-intensive projects with a high budget.

33
Q

What are the pros of rapid application development?

A

Caters to changing user requirements
Highly usable finished product
Focus on core features, reducing development time

34
Q

What are the cons of rapid application development?

A

Poorer quality documentation
Fast pace may reduce code quality

35
Q

What are the uses of rapid application process?

A

Small to medium, low-budget projects with short time-frames.