Software Development Flashcards

Methodologies for software development

1
Q

Stages of Software Development

A
  1. Analysis
  2. Design
  3. Implementation
  4. Evaluation
  5. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Analysis

A

Systems analyst gathers information about what the current system does (if there is one) and what the new system needs to do.

They can do this by:
- Interviewing users
- Questionnaires
- Observing how the current system works
- Looking at existing documentation

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

User Requirements

A

Defines what the system will do, but not how to do it
Used to create the design and to evaluate the finished product

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

Design

A

Software design includes:
- Description of the data
- Input screens
- Output screens and reports
- How the data will be processed
- How the software will be tested

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

Implementation

A
  • Coding and testing the software
  • Writing up the user and technical documentation
  • Installing the software for the user
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Testing Strategies

A
  • Black Box Testing
  • White Box Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Black Box Testing

A
  • Carried out independently of the code used in the program
  • Looks at the program specification and creates a set of test data to cover all inputs, outputs and program functions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

White Box Tesing

A
  • Depends on the code logic
  • Tests are devised so each path through the code is tested at least once
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Alpha Testing

A
  • Carried out by the software developer’s in-house team and by the user
  • May reveal errors or omissions in the definition of the systems requirements
  • User may discover the system doesn’t do what it exactly wanted
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Beta Testing

A
  • Used for the development of commercial software
  • Software is given to numerous potential users, with the agreement that they will use the software and report any faults - real users may try to do things that software developers don’t anticipate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Evaluation

A
  • User now needs to test every aspect of the software to ensure it does everything that it’s supposed to do
  • Software evaluated against the initial user specification document

(This stage is also called Acceptance Testing)

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

Maintenance

A
  • Corrective Maintenance
  • Adaptive Maintenance
  • Perfective Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Corrective Maintenance

A

Maintenance focusing on fixing/correcting any bugs found when the software is put into action

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

Adaptive Maintenance

A

Software is adapted to meet the new requirements of users as these requirements may change over time

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

Perfective Maintenance

A

Software is changed to work faster, more efficiently, etc. regardless of whether it works

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

Waterfall Lifecycle

A
  • Each stage completed and documented before the next stage is begun
  • Customer doesn’t see the end product until it’s completed
  • Any change to be made often requires the project to be started all over again
17
Q

Advantages of the Waterfall Lifecycle

A
  • Model is simple to understand and use
  • Each stage is separate and self-contained, each with well defined outcomes and producing thorough documentation
  • Makes the project relatively straightforward to manage
  • Model works best for smaller projects where the requirements are very well understood
18
Q

Disadvantages of the Waterfall Lifecycle

A
  • Not much user involvement after the user specification is produced in the analysis stage
  • No working software is produced until later in the cycle
  • User is presented with the finished model, and if the model isn’t what they want, it’s typically too late to make changes
19
Q

Uses of Waterfall Lifecycle

A

Suitable when:
- Requirements are very clear and fixed
- No ambiguous requirements
- Technology is well understood
- Project is short

20
Q

Spiral Model

A
  • 4 Basic Steps: Analysis, design, implementation, evaluation
  • Software project repeatedly passes through these stages
  • Each successive loop around the spiral produces a more refines prototype until all requirements are met by the software
21
Q

Advantages of the Spiral Model

A
  • Well-defined steps make project easy to manage
  • Software produced at early stages so any issues can be identified early on
  • User can give feedback on each prototype so any changes can be made early on in the process
  • Extra functionality can be added during the process
  • End result more likely to be what the user wants
22
Q

Disadvantages of the Spiral Model

A
  • Very time-consuming so finished product takes longer to develop
  • System is more costly to develop due to the large amount of time taken
  • Not suitable for smaller projects
23
Q

Uses of Spiral Model

A
  • Medium to high-risk projects
  • When users are unsure of their needs and what the possibilities are
  • When requirements are complex
  • For large projects which may take years to develop, during which new technologies may develop and significant changes occur
24
Q

The Agile Model

A
  • Software developed in rapid incremental cycles
  • Each version builds on the functionality of the previous version
  • Each version is thoroughly tested before its release
  • Good for small, time-critical projects
  • Limited planning is needed to get started
25
Q

Advantages of the Agile Model

A
  • Rapid, continuous delivery of useful software which leads to customer satisfaction
  • Customers, developers and testers are in constant communication with one another
  • Working software is frequently delivered, in weeks rather than in months
  • Software easily adapted to changing circumstances
  • Even late changes in requirements can be implemented
26
Q

Disadvantages of Agile Model

A
  • Lack of emphasis on necessary design and documentation
  • Not suitable for novice programmers - experience programmers capable of making good decisions are required
  • Project can fail to deliver if the customer is not clear about their desired final outcome
27
Q

When To Use Agile Model

A
  • When new changes need to be implemented - small incremental changes can be made frequently and for little cost
  • In an expanding or developing business where users’ needs are constantly changing and developing
28
Q

Extreme Programming

A
  • Type of agile software development
  • Frequent releases of the software are made in short cycles
  • Intended to improve productivity and responsiveness to changing customer requirements
29
Q

What Are The Risks of Longer Projects?

A
  • Personnel change
  • Requirements change
  • Technology advances
  • Costs spiral upwards

These can lead to the project being cancelled

30
Q

Rapid Application Development

A
  • Workshops and focus groups gather requirements rather than using a formal document
  • Prototyping used to continually refine the system in response to user feedback
  • Each part of the system is produced within a strict time limit - maybe not perfect, but good enough
  • Software components are reused whenever possible