[Unit 1.2.3] Software Development Flashcards

Software Development

1
Q

what are the 5 key elements of software development

A

feasibility study
requirements specification
testing
documentation
software development methodologies

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

what is feasibility study

A

investigation to see if project is viable

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

what are the reasons a project might fail a feasibility study

A

not economically feasible
not legally feasible
not technically feasible
not enough time to complete project

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

what is the requirement specification

A

document listing all functionality system should have.
agreement between client and developer

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

through what process are requirements acquired

A

requirements elicitaion

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

why can requirement elicitation be a difficult process

A

users have difficulty expressing what they want
users have unrealistic expectations

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

what is testing in terms of software development

A

ensures program works as it should.

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

what are the four different types of testing in software development

A

destructive
alpha
beta
acceptance

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

what is destructive testing

A

trying to crash the program or behave unexpectedly.

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

what is alpha testing

A

product used by people who have worked on the project

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

what is beta testing

A

product used by people outside of software development company

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

what is acceptance testing

A

testing the program against the requirement specification

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

what 4 documents are made during software development

A

requirements specification
design (algorithms/UI)
technical (how works/maintained)
user (how to operate)

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

what is software development life cycle

A

process of planning, creating, testing & deploying software

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

what is the waterfall lifecycle model

A

sequence of stages that only start after prior is finished.
linear model but can OCCASSIONALLY go back a stage

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

what are the 6 stages of the waterfall lifecycle model

A

requirement elicitation
analysis - what solutions available
design - produce solution
implementation - developers write code
testing
maintenance - fix bugs

17
Q

what are the advantages of the waterfall lifecycle

A
  • easy to manage as team focused on one stage at a time
  • everyone has clear responsibilities
  • suitable for large scale projects
  • can work on multiple projects at once
18
Q

what are the disadvantages of the waterfall lifecycle

A
  • dependant on quality of requirement elicitation.
  • if requirements change model is inflexible.
  • working software produced late in lifecycle
  • feedback at end of product
  • not suitable for high risk projects
19
Q

what is the spiral lifecycle model

A

same as waterfall but develops software in 4 iterative cycles.
each cycle adds a new element to solution
each cycle ends with a prototype
prioritises riskiest elements first.

20
Q

what are the four phases in the spiral model

A

determine objectives
identify & resolve risks
development & testing
plan next iteration

21
Q

what are the advantages of the spiral model

A
  • manages risk well
  • flexible (changes incorporated in later iterations)
  • good client involvement
  • good for large & risky projects
  • good for long term projects
22
Q

what are the disadvantages of the spiral model

A
  • many phases, increasing efforts
  • high level of risk analysis required
  • risk analysts are expensive
  • client invests a lot of time into project
23
Q

what is agile software development

A

ways of developing software that is iterative and focuses on prototypes and feedback

24
Q

what are the two types of agile programming

A

rapid application development (RAD)
extreme programming (XP)

25
Q

what are the advantages of agile programming generally

A

flexible
good for small - medium projects
customer feedback

26
Q

what is scope creep

A

when client keeps adding requirements after each prototype

27
Q

what are the disadvantages of agile programming generally

A

scope creep

28
Q

what are the stages of rapid application development

A

analysis & design –> build, demonstrate, refine –> testing –> implementation

29
Q

what is rapid application development

A

prioritising rapid prototype and user feedback

30
Q

what are the advantages of rapid application development

A
  • product out quickly
  • good where requirements aren’t clear at the start
  • continuous feedback
  • good when UI is important aspect
  • more projects done on time
31
Q

what are the disadvantages of rapid application development

A
  • may not be most efficient code
  • heavy time input from client
  • scope creep
32
Q

what is extreme programming

A

emphasis on quality of code

33
Q

what are user stories

A

how the requirements are split up. descriptions of different ways the system will be used, what it will look like, and what it’s expected to do

34
Q

what are the key features of extreme programming

A

user stories
representatives embedded in development team
pair programming
short development cycles

35
Q

what are the advantages of extreme programming

A
  • final code is of very high quality
  • product produced quickly
  • low risk of failure due to user stories
36
Q

what are the disadvantages of extreme programming

A
  • little documentation made
  • client commits a lot of time
  • a lot of communication needed
  • scope creep
37
Q

4 differences between extreme programming and rapid application development

A
  • XP focus on code quality
  • XP has shorter development cycles
  • XP releases working versions of system component not prototype
  • XP has client in team not just feedback