Unit 3 - Software Development Flashcards

1
Q

Software development life cycles (SDLCs)​ all consist of the following stages:

A

■ Analysis
■ Design
■ Development
■ Testing
● Alpha testing
● Beta testing
● White box testing
● Black box testing
○ Implementation
○ Evaluation
○ Maintenance

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

Waterfall lifecycle

A

● Stages are ​completed in
sequence​, from start to finish
● Clear structure makes this a
model that is easy to follow
● To make a change,
programmers must revisit all
stages ​in between
● Low​ user involvement

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

Agile methodologies

A

● Collection of ​methodologies
which aim to​ improve the
flexibility​ of SDLCs ( Software Development Life Cycle )
● Adapt quickly​ to changes in user
requirements.
● Different sections of the program
are ​developed in parallel ​so can be at ​different stages of development​ simultaneously
● Working prototype​ is ​delivered early on​ and improved in an ​iterative manner
● Less of a focus on documentation
● User satisfaction​ is prioritised

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

Spiral model

A

● Used to ​manage risk-heavy projects
● Has ​four ​key stages:
○ Analysing system requirements
○ Pinpointing and mitigating risks
○ Development, testing and
implementation
○ Evaluating to inform the next
iteration
● Project ​terminated ​if too risky
● Specialist​ risk-assessors​ must be hired which is expensive

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

Extreme programming

A

● Example of an ​agile model
● Development team is a ​pair of programmers and a representative end-user
● ‘​User stories​’ are used to determine system requirements
● Produces ​high-quality code​ and ​highly-usable software
● Programmers work ​no longer than forty hours a week
● Hard to produce high quality documentation

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

Rapid application development

A

● Iterative methodology ​which uses ​partially functioning prototypes
● User requirements are ​gathered using focus group
● ‘Incomplete’ version​ of the solution is given to the user to trial
● User feedback​ is used to generate next, ​improved prototype
● Final prototype ​matches user requirements​ fully
● Used where ​user requirements are incomplete or unclear at the start
● Code may be ​inefficient

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

Writing and following algorithms

A

● Algorithm = A ​set of instructions used to solve a problem
● All good algorithms have certain ​key qualities:
○ 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

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

Waterfall - Merits, Drawbacks and Uses

A

Merits
- Straightforward to manage
- Clearly documented
Drawbacks
- Lack of flexibility
- No risk analysis
- Limited user
involvement
Uses
Static, low-risk projects which need little user input, such as a piece of general-purpose software

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

Agile - Merits, Drawbacks and Uses

A

Merits
- Produces high
quality code
- Flexible to changing
requirements
- Regular user input
Drawbacks
- Poor
documentation
- Requires
consistent
interaction
between user
and programmer
Uses
Small to medium
projects with unclear
initial requirements.

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

Spiral - Merits, Drawbacks and Uses

A

Merits
- Thorough
risk-analysis and
mitigation
- Caters to changing
user needs
- Produces prototypes
throughout
Drawbacks
- Expensive to
hire risk
assessors
- Lack of focus on
code efficiency
- High costs due
to constant
prototyping
Uses
Large, risk-intensive
projects with a high
budget.

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

Extreme programming - Merits, Drawbacks and Uses

A

Merits
- Produces high
quality code
- Constant user
involvement means
high usability
Drawbacks
- High cost of two
people working
on one project
- Teamwork is
essential
- End-user may
not be able to
be present
Uses
Small to medium
projects with unclear
initial requirements
requiring excellent
usability.

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

Rapid Application Development - Merits, Drawbacks and Uses

A

Merits
- Caters to changing
user requirements
- Highly usable
finished product
- Focus on core
features, reducing
development time
Drawbacks
- Poorer quality
documentation
- Fast pace and
late changes
may reduce
code quality
Uses
Small to medium,
low-budget projects
with short
time-frames.

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

Define White Box Testing ( Structural )

A

A form of testing carried out by software
development teams in which the test plan
is based on the internal structure of the
program. All of the possible routes through
the program are tested.
one downfall maybe the fact that it can’t test what isn’t there

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

Define Black Box Testing ( Functional )

A

It is testing that is solely carried out in the code. It involves looking at the program specification and creating a set of data that covers all of the inputs and outputs and program functions

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

Define Alpha Testing

A

Alpha testing is carried out by the software developer’s in-house testing team. It is essential because it often reveals both errors and omissions ( things that are left out) in the system requirements definition

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

Define 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

Define Implementation

A

Once the testing stage has been used to make the appropriate changes to
the software, it is installed onto the users’ systems. putting the plan into effect

18
Q

Define Evaluation

A

After the implementation stage, the effectiveness of the software is evaluated
against the system requirements defined at the analysis stage to evaluate its
suitability in solving the problem. Different criteria are considered, including
robustness, reliability, portability and maintainability.

19
Q

Define maintenance

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 needed improvements.

20
Q

Define Algorithm

A

An algorithm is a set of instructions used to solve a problem

21
Q

What are the key Qualities of 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