1.2.3 - Software Development Flashcards

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

What are 4 steps that are used when developing software?

A

1) Feasibility study

2) Requirements specification

3) Testing

4) Documentation

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

What is the purpose of the feasibility study?

A

Purpose is to carry out initial enquiries to see if there are any reasons why the new system may not be acceptable
before starting to produce it and determine whether the problem can be solved.

Without it, time and money may be spent on a project that is likely to fail. The plan may be revised if the study highlights problems.

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

What parameters do analysts consider in the feasibility study?

A

Technical feasibility – Is there hardware/software available to implement the solution?

Economic feasibility/cost benefit analysis – Is the proposed solution possible to run economically?

Social feasibility – Is the effect on the humans involved too extreme to be socially acceptable/environmentally
sound?

Effect on company’s practices and workforce – Is there enough operational skill in the workforce to be capable of
running the new system?

What is the expected effect on the customer? - If customer not impressed then there may not be a point.

Legal/ethical feasibility – Can the proposed system solve the problem within the law?

Time available – Is the time scale acceptable for the proposed system to be possible?

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

What is the purpose of the requirements specification?

A

The specification document is developed between the client and software developers that creates an understanding of the problem and presents solutions.

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

What requirements must be considered in the requirements specification?

A

-Input requirements
- Output requirements
- Processing requirements
- Clients agreement to requirements
- Hardware requirements
- Software requirements

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

What are the 4 types of testing?

A

Black box testing
White box texting
Alpha testing
Beta testing

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

What is black box testing?

A

Test different possible suitable predefined sets of inputs to see if they produce the expected output according to the design without considering how the program works, so you need to test all possible types of situations without understanding or looking at the code.

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

What is white box testing?

A

Understands the complete structure and logic of the program. It uses the source code to test the actual steps of the algorithms to make sure all parts work as intended so you need to check every possible condition statement and path through the algorithm with dry runs and trace tables.

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

What is alpha testing?

A

Alpha testing is done by the programmers, developers and employees within the software company playing the
role of the user during development to find bugs in the program. May use emulators rather than actual hardware or software.

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

What is beta testing?

A

Uses the beta version which is the pre-released test version of the program.

It is nearly complete and already tested by the programmers involved in the production.

The program is given to a group of third party users to use as intended and test under normal operating conditions.

The aim is to report any errors or bugs in the program which the programmer overlooked such as functions which do not work and incompatibility issues with other software or hardware.

They may also report on desirable improvements.

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

What are two types of documentation produced alongside a programme?

A

User documentation
Technical documentation

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

What is a user documentation?

A

gives instructions to ensure software users can successfully use the system to produce the desired results.

It may contain information such as:
1) descriptions of required I/O procedures, sample outputs from given inputs
2) using processing tools
3) instructions to operate the system
4) backing up and archiving procedures,
5) file searching and maintenance
6) simple maintenance procedures (how to replace external storage device)
7) error messages and their meaning
8) troubleshooting

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

What is a technical documentation?

A

explains how the system works. This is useful for a technician who may need to maintain and further develop or alter the system in the future. It may contain information such as:
- DFDs (data flow diagram) showing the flow of data through the system
- System flow charts showing how parts of the system interrelate
- Flowcharts showing the operations involved in the algorithm
- ERDs (Entity relationship diagrams) showing how data tables relate to each other.

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

What are 5 programming methodologies?

A

Waterfall
Agile
Spiral
Extreme
Rapid Application-Development

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

What are the 5 stages in the waterfall lifecycle model?

A

Analysis

Design

Implementation

Evaluation

Maintenance

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

What are the advantages of the waterfall lifecycle model?

A

1) Tends to suit large scale projects with static/stable base requirements

2) Establishes requirements in early stages and subsequent stages focus on these

3) Focuses on the end user at the start and then they may be consulted at different points throughout the project

4) The development phase focuses on code that meets the requirements/design

5) Ideal for supporting inexperienced project teams and where requirements are defined

6) Orderly sequence of development ensures quality documentation with reliability and maintainability of the developed software

7) Progress of system development is easily measurable

8) Project progresses forward, with only slight movement backward

17
Q

What are the disadvantages of the waterfall lifecycle model?

A

1) If a change does occur in the requirements, the lifecycle cannot respond easily, often at the cost of time and money.

2) It can be inflexible and limit changing requirements

3) Dependent upon clear definition of requirements as there is little ‘splash-back’

4) Produces excessive documentation, and keeping it updated as the project progresses is time-consuming

5) Missing system components are often discovered during design and coding

7) System performance cannot by tested until the system is almost fully coded

18
Q

What is an agile methodology?

A

These are a group of methods designed to cope with changing requirements through producing the software in an iterative manner; i.e. it is produced in versions, each building on the previous and increasing the requirements it meets.

This means that if, on seeing a version, the user realises they haven’t fully considered a requirement, they can have it added in a future iteration.

An example of an agile development methodology is extreme programming.

19
Q

What is extreme programming?

A

Takes on an agile approach and is iterative in nature (the program is coded, tested and improved repeatedly) with
iterations typically a week long. A representative of the customer becomes part of the team. They help decide the
‘user stories’ (XP’s equivalent of requirements), decide what tests will be used to ensure they have been correctly
implemented and answer any questions about any problem areas the programmers might have.

20
Q

What are the advantages of extreme programming?

A

1) New requirements can be adopted throughout

2) An end user is integral throughout

3) Pair programming and strict programming standards are used to ensure the code in each iteration is well-tested, robust and of good enough quality to be used in the final product

4) Code is created quickly and modules become available for use by the client as they are completed

21
Q

What are the disadvantages of extreme programming?

A

1) The client has to ensure that they are represented on the development team to accept completed code and to discuss any potential changes

2) Emphasis on coding rather than design results in a lack of documentation, making it unsuitable for larger projects

22
Q

What is the spiral model?

A

Progresses by evaluating and dealing with risk.

The analyst begins by collecting data followed by each of the other stages leading to evaluation, which will lead to a return to data collection to modify the results.

The different stages are refined each time the spiral is worked through, iterating until the project is complete.

Is normally used for mission-critical projects, as well as projects where risks are involved and also in games development.

23
Q

What are the advantages of the spiral model?

A

1) Large amount of risk analysis ensures the riskiest parts of the project are identified and dealt with first so issues are addressed early in project development

2) A software prototype is created early in the life cycle and refined with each spiral iteration

24
Q

What are the disadvantages of the spiral model?

A

1) Highly skilled development team needed to perform risk analysis

2) Development costs can be high due to number of prototypes being created and increased customer collaboration

25
Q

What is Rapid Application Development (RAD)?

A

RAD is a method for designing software where a mock-up or prototype system of the program is designed and
produced with reduced functionality to a set deadline.

It is then tested and evaluated to obtain feedback from the end users to suggest improvements.

These results are used to inform and refine the design of the next prototype.

The process cycle is repeated with each iteration improving the program until the final, fully functional version of the product is produced.

Used where the requirements of the system are not well defined and the development team is authorised to make design decisions without the need for detailed consultation with their senior managers.

26
Q

What are the advantages of RAD?

A

1) End user can see a working prototype early in the project

2) End user is more involved in the design and can change the requirements as the product becomes clearer to influence the direction the program is taking

3) Overall development time is quicker than alternative methods reducing development costs

4) Concentration on the essential elements needed for the user with an emphasis on fast completion

27
Q

What are the disadvantages of RAD?

A

The emphasis on speed of development may impact the overall system quality

Potential for inconsistent designs and a lack of
attention to detail in respect of administration and
documentation

Not suitable for safety-critical systems