[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
what are the advantages of agile programming generally
flexible good for small - medium projects customer feedback
26
what is scope creep
when client keeps adding requirements after each prototype
27
what are the disadvantages of agile programming generally
scope creep
28
what are the stages of rapid application development
analysis & design --> build, demonstrate, refine --> testing --> implementation
29
what is rapid application development
prioritising rapid prototype and user feedback
30
what are the advantages of rapid application development
- 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
what are the disadvantages of rapid application development
- may not be most efficient code - heavy time input from client - scope creep
32
what is extreme programming
emphasis on quality of code
33
what are user stories
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
what are the key features of extreme programming
user stories representatives embedded in development team pair programming short development cycles
35
what are the advantages of extreme programming
- final code is of very high quality - product produced quickly - low risk of failure due to user stories
36
what are the disadvantages of extreme programming
- little documentation made - client commits a lot of time - a lot of communication needed - scope creep
37
4 differences between extreme programming and rapid application development
- 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