Unit 1.2.3 Software Development Flashcards

1
Q

What is the Software Development Lifecycle (SDLC)?

A
  • A systematic process made up of distinct phases that programmers follow to build, test, deploy and maintain high-quality software that meets it exceeds customer expectations, is completed on time and is efficient and robust.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the five methodologies?

A
  • Spiral
  • Rapid Application Development
  • Waterfall
  • Agile
  • Extreme Programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the phases in the SDLC?

A
  • Feasibility – is the problem solvable?​
  • Requirements – working out what the solution needs to do.​
  • Analysis and design – working out how the solution needs to do it.​
  • Implementation – coding the solution.​
  • Testing – checking if it actually works.​
  • Deployment – installing it in the target environment. ​
  • Evaluation - checking in with the user if it is complete
  • Maintenance – ensuring it continues to function properly by improvements, patches and updates.​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the waterfall methodology?

A
  • Each phase has a well defined start and end point with identifiable deliverables for the next phase
  • A slight evolution allows programmers to move back previous stages if they gain new knowledge and want to rework early stages
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Spiral methodology?

A
  • A concept that contains several elements of other models (waterfall, RAD and incremental)
  • A methodology with risk being the heart of many large-scale projects
  • Designed to account for these risks as they arise and deal with them before they become a major problem
  • Has four stages (evaluate, identify, construct and design)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Rapid Application Development (RAD) methodology?

A
  • Producing successive prototypes until a final software version is produced and approved
  • Following feasibility, increasingly refined prototypes are made with reduced functionality
  • They’re designed, coded, tested and evaluated with the end user
  • User may be happy with it or they want further improvements which will start a new cycle (iteration)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the Agile methodology?

A
  • Refers to a group of methodologies that focus on requirements changing during development
  • Product is built in a series of iterations (sprints)
  • These short time-boxed periods are when team shave focused goals to complete a set amount of work
  • Each sprint has increasing requirements and is shown to the user
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Extreme Programming methodology?

A
  • Involves an iterative approach much like RAD, but iterations are very short (a week long)​
  • Company requesting the software will often “embed” a user in the development team
  • New requirements will be built into successive iterations quickly and the user will be able to give instant feedback for the next iteration
  • A key feature of extreme programming is “paired programming”
  • It is claimed this approach produces much higher-quality code sooner, saving a lot of time and effort
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the benefits of the waterfall methodology?

A
  • Simplicity (easy to manage)
  • Everyone is very clear on their responsibilities at each stage
  • Clear deliverables
  • Easy to see if a project is running to schedule
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the drawbacks of the waterfall methodology?

A
  • Carries a lot of risk
  • User doesn’t see the product until the project is near its end
  • Misunderstanding requirements can lead to a project which isn’t easy to fix
  • Requirements must be very well understood - not suitable for complex projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the benefits of the Spiral methodology?

A
  • Risk management is at the heart of the model
  • Excellent for projects with a high level of risk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the benefits of the RAD methodology?

A
  • Requirements aren’t entirely clear from the start
  • Focus group with the user can be used to get requirements without needing the full formal requirement document upfront
  • Solution is likely to have excellent usability with the continuous feedback from the user
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the benefits of the agile/extreme programming methodologies?

A
  • Emphasises programming, so the quality of the end code is likely to be high
  • Core principles and processes promote respect and collaboration, leading to a productive development team
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the drawbacks of the Spiral methodology?

A
  • Complex nature of risk analysis increases cost (as it’s a specialised skill)
  • If risk analysis is done badly, the project suffers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the drawbacks of the RAD methodology?

A
  • Focus on usability rather than how the product works, which is not suited where code efficiency is important
  • Needs regular contact with client
  • Scales poorly for large projects with big teams
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the drawbacks of the agile/extreme programming methodologies?

A
  • Requires a team of programmers working in close collaboration - unlikely to work if they’re widely distributed geographically
  • Client must be able to have a full-time representative working with the development team
  • Some of the processes involved in extreme programming (e.g., paired programming) can be quite costly
17
Q

What is an algorithm?

A

A sequence of steps designed to perform a task.​ It may be constructed to describe the operation of a complete system or a particular part of it.​

18
Q

What is pseudocode?

A

Pseudocode is an alternative, text-based method of representing the sequence of steps in an algorithm.​

Writing pseudocode allows us to lay down the logic of a problem in a code-like format without worrying about the rules and syntax of a particular language.​

19
Q

What does it mean to refine an algorithm?

A

The process of producing code that correctly implements a specification.

20
Q

What is a flowchart?

A

A diagram that depicts a step-by-step approach to a process, system or computer algorithm.

21
Q

Why would a program need testing?

A

Any non-trivial program needs to be tested to make sure it works as intended.​

22
Q

What are the 4 testing strategies?

A
  • Black-box
  • White-box
  • Alpha
  • Beta
23
Q

What is black-box testing?

A

It involves checking every possible input to a program without concerning about the internal workings and structure of the program.​ Code efficiency is not important as long as inputs return the desired outputs.​

If all inputs produce the desired outputs, we can be satisfied the program works in all cases - however, this is often not feasible.​

24
Q

What is white-box testing?

A

Involves testing the algorithms in the code and making sure all parts of those algorithms function as intended by identifying and testing all the possible paths of execution through a program.​

On each test run, the path of execution is noted so it can be compared with other runs.​ It also checks the overall efficiency of the code.​

25
Q

What is alpha testing?

A

It typically occurs first and is limited internal employees and their friends and families.​

It is often a very early version of the finished software, quite rough around the edges and may still contain a number of bugs.​

26
Q

What is beta testing?

A

Beta testing is usually opened up to a much wider community through a public beta program.​
The program is in an almost-finished state. ​

The developers are looking to test areas like load balancing and multiple hardware compatibility.​

27
Q

What are the types of suitable test data?

A
  • No data
  • Erroneous/invalid data
  • Boundary/extreme/edge data
  • Normal/typical/valid data
28
Q

What is “No data”?

A

You should check the special case of no data being entered.

29
Q

What is “Erroneous Data”?

A

Data that should be rejected by the program.

30
Q

What is “Boundary Data”?

A

Data of the correct type that is on either edge of the accepted validation limits.

31
Q

What is “Normal Data”?

A

Data that should be accepted by the program without causing errors.