1.2.3 Software Development Flashcards

craig + dave videos - 27 to 31

You may prefer our related Brainscape-certified flashcards:
1
Q

what is the software development lifecycle?

A

the distinct phases which programmers go through when developing a solution for a computer system

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

what is a software development methodology?

A

the arrangement and how programmers move from one phase to another in the software development lifecycle

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

what are the stages of the SDLC?

A
  • feasibility
  • requirements
  • analysis and design
  • implementation
  • testing
  • deployment
  • evaluation
  • maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

what are the 5 methodologies?

A

waterfall
rapid application development
sprial
agile
extreme programming

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

what are the features of the waterfall lifecycle?

A
  • each phase has a well defined start and end point with identifiable deliverables
  • once you end one phase, you never really return to it and move onto the next one
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what are the features of rapid application development (RAD)?

A
  • produces successive prototypes of the software until the final version is produced and approved
  • following approval of the feasibility of the program, increasingly refined prototypes are made wit reduced functionality
  • each prototype is designed, coded, tested and evaluated with the user
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what are the four main quadrants of the spiral methodology?

A
  • determine objectives
  • identify and resolve risks
  • development and test
  • plan for next iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what are the features of the spiral model?

A
  • risk driven
  • provides a guide for the team where the decisions on the software development methodology are made based on the risks identified
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what is agile development?

A

a group of methodologies which focus on the idea that requirements will shift and change during development and this can only be dealt with in an iterative way.

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

what are sprints in agile methodologies?

A

short, time boxed periods when a team has focused goals to complete a set amount of work
- should only be a bite sized piece of focused work

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

what is extreme programming?

A

a framework for software development

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

what is the aim of extreme programming?

A

produce high quality code and promote developers’ quality of life by adopting a set of common practices

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

what are the values of extreme programming?

A
  • simplicity
  • communication
  • feedback
  • courage
  • respect
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what are the 5 core practices of extreme programming which are generally thought to boost overall quality of any solution to almost any project?

A
  • collective code ownership
  • continuous integration
  • code standards
  • refactoring
  • paired programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what are some benefits of the waterfall methodology?

A
  • simplicity = easy to manage
  • everyone knows responsibilities at each stage
  • clear deliverables
  • easy to see if project running to schedule
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

what are the drawbacks of the waterfall methodology?

A
  • carries a lot of risk
  • user doesn’t get to see product for the first time until the end is near
  • misunderstanding requirements can lead to the problems not easy to fix
  • requirements must be well understood so not suitable for complex projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

when would the waterfall model be used?

A

ease of management means it is suitable for large scale development projects
- have to be well understood and carry little risk

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

what are the advantages of RAD?

A
  • requirements don’t need to be clear from the start
  • focus groups involving user can be used to gather info without formal documents at first
  • continuous feedback from client means solution is likely to have excellent usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what are the disadvantages of RAD?

A
  • focuses on usability rather than how product works - got good where efficiency is important
  • regular contact with client must be kept at all times
  • 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

when is RAD good to use?

A

for projects where initial requirements are not fully understood and iterative nature prevents development being side-tracked

17
Q

what are the advantages of the spiral model?

A
  • risk management centred
  • good for high risk projects
18
Q

what are the disadvantages of the spiral model?

A
  • expensive as risk management is a highly specialised skill
  • if risk analysis done badly, project suffers
19
Q

when is the spiral model good?

A
  • large scale problems that involve high degrees of risk
20
Q

what are the advantages of agile and extreme programming methodologies?

A
  • emphasises programming so end code is high quality
  • core principles and processes promote respect and collaboration which is likely to lead to a productive team
21
Q

what are the disadvantages of agile and extreme programming methodologies?

A
  • requires a team of programmers working closely which is an issue if team is far apart
  • client must commit to a full time representative working with the team
  • some processes are costly (eg. paired programming)
22
Q

when is agile and extreme programming good?

A

when the emphasis on the project is on the quality of the finished code

23
Q

what is an algorithm?

A

a sequence of steps designed to perform a task

24
Q

how can algorithms be written?

A

pseudocode
flowcharts
high-level language

25
Q

what is pseudocode?

A

text based method of representing algorithms
- like simplified programming code

26
Q

why is pseudocode good?

A

allows us to lay down logic without worrying about rules + syntax of a particular language

27
Q

how do you refine an algorithm?

A
  • find areas which need modifying
  • change appropriate areas
28
Q

what are the 6 flowchart symbols?

A
  • terminal
  • process
  • decision
  • input/output
  • subroutine
  • like
29
Q

why do programs need to be tested?

A

to make sure it works as intended

30
Q

what are the most common test strategies?

A
  • black-box
  • white-box
  • alpha
  • beta
31
Q

what does black-box testing check?

A

if an input produces the expected output

32
Q

how is black-box testing done to test the inputs and outputs of a program?

A

choose appropriate test data that covers a range of situations

33
Q

what is white-box testing?

A

tests the algorithms in the code and makes sure all parts of the algorithms function as intended
- checks efficiency

34
Q

when are alpha and beta testing done?

A

when software is nearly ready for release and can be tested as a complete solution

35
Q

when and with who does alpha testing occur?

A

occurs before beta
limited to internal employees and their friends or family
very early software with bugs and rough

36
Q

when and with who is beta testing done?

A

opened to a wider community through a public beta program
- almost finished version

37
Q

what are the types of test data?

A
  • no data
  • erroneous data
  • normal data
  • boundary data
38
Q

what is erroneous data?

A

data that should be rejected by the program

39
Q

what is normal data?

A

data that should be accepted without errors

40
Q

what is boundary or extreme data?

A

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

41
Q

what is tracing execution?

A

examining a printed extract of program code and running through the program

42
Q

how do you perform tracing execution?

A

take each line at a time and write out the current state of each variables in a trace table noting the outputs.

43
Q

what is the structure of a trace table?

A
  • each variable has its own column
  • a new row should be added if the state of a variable changes
44
Q

what does regular feedback with the user allow?

A
  • keeps project focused
  • makes sure you develop the actual system they need
  • provides opportunities for discussion
  • makes the user feel part of the finished solution