Software <3 Flashcards

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

What is the analysis stage of software development?

A

The stage where an initial description of the problem to be solved is examined and turned into a precise description of exactly what the software will be able to do.

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

What must the Systems Analyst be able to do?

A

Communicate effectively with the client in order to discover exactly what problem is that they want to solve

Communicate with the development team in order to accurately describe what needs to be produced.

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

Why is the analysis stage of software development important?

A

The initial problem description has to be clearly stated and the software specification agreed upon

Or subsequent stages will suffer from delays and difficulties due to the need to re-analyse the task and rewrite the software specification.

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

The Systems Analyst will create a software specification at the end of the Analysis stage of software development. What is a software specification?

A

The software specification describes what the software to be created must be able to do.

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

What is the design stage of software development?

A

When the software specification created by the systems analyst is turned into a design which can be used by the team of programmers to write the code.

The more time spent on this stage, the less time will be needed to be spent on the next one.

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

What is Top Down Design?

A

Any software problem can be broken down into smaller more easily managed problems.

These problems can subsequently be further broken down into a set of simple steps.

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

Advantages of Modular Design?

A
  • Modules can be tested independently.
  • A well written module may be able to be re-used in another application.
  • Modules can mirror the structure of the data being processed by the application.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Stepwise refinement?

A

The process of designing the logic of each module.

This involves breaking the module down into successively smaller steps, eventually resulting in a set of pseudocode instructions which can be converted into the chosen programming language.

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

What is the the implementation stage?

A

(If the design has been written in enough detail)

The implementation stage should just be a matter of using the design to create the source code for the application.

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

Testing a piece of software has several purposes.What should it check?

A
  • The software meets the specification
  • It is robust
  • It is reliable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What does testing do?

A

Testing can only demonstrate the presence of errors, it cannot demonstrate their absence.

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

What 2 things should testing be?

A

Systematic, which means testing in a logical order

Comprehensive which means testing every possible scenario.

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

What is the documentation stage?

A

When the guides to using and installing the software are produced.

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

what should the user guide for the software should include?

A

A comprehensive guide to the menu options, and how each one functions.

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

what is the evaluation stage?

A

Where the software is critically examined by both the client and the developer.

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

What do we evaluate for?

A
  • Robustness
  • Maintainability
  • Efficiency
  • Usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the three types of software maintenance?

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

What is corrective maintenance

A

Fixing errors that were not detected during testing but which occur during actual use of the program.

The developer will be responsible for any costs incurred by this type of maintenance.

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

What is adaptive maintenance?

A

Fixing issues caused by when the program’s environment changes.

The cost is usually borne by the client but there may be negotiation depending upon how predictable the change in circumstances was.

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

What is perfective maintenance?

A

When the client requests changes or improvements to the program which were not in the original software specification.

The cost of perfective maintenance is likely to be borne by the client.

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

What is agile software development?

A

Breaks a project down into a series of short development goals, often called sprints

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

What does agile software development focus on?

A

It focuses on small scale developments, and with teams of people who have a flexible approach to changes in requirements.

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

What are the benefits of the Agile method?

A
  • The client is involved throughout the process, giving constant feedback on prototypes of the software during development.
  • Collaboration within teams of developers throughout the process.
  • Reduced development time.
  • Increased responsiveness to changing circumstances.
  • More reduced costs due to the efficiency of using small groups of developers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the STRENGTHS of Iterative Methodology (traditional)?

A
  • Rigid planning structure
  • Good for large teams
  • Helps to plan and track large software projects
  • Clear agreement on outcomes at start of project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What are the STRENGTHS of Agile Methodology?

A
  • Copes well with little cumulative changes as the project progresses.
  • Good for small-scale projects like most Apps
  • Ongoing involvement of client allows changes to be agreed quickly
  • Changes cause less delay or can be tackled in the next version.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What are the WEAKNESSES of Iterative Methodology (traditional)?

A
  • Very rigid approach does not deal well with mid-project changes
  • Can over-complicate simple projects
  • Unidentified issues at the analysis stage can be time-consuming and costly to fix
  • Little involvement of client after analysis.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What are the WEAKNESSES of Agile Methodology?

A

]-Works best with small teams

  • Needs close version control and tracking of changes
  • Can be difficult to determine the full scope of the project in the early stages
  • Usually no legally binding agreement at the start
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

As part of the software specification, what are the four areas are analysed and agreed upon?

A
  • The overall purpose
  • The scope
  • Boundaries
  • Functional requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What is the purpose of a program?

A

General statement about what the program is required to do. It should clarify the main point(s) of the program between the developers and clients

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

What does the scope clarify?

A

What the project must cover, often written as a list of deliverables.

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

What does the boundaries clarify?

A

What the project will not cover.

32
Q

What should a software specification do?

A

It describes what a program must do

33
Q

What is top down analysis?

A

This allows the developers to break this complex problem description into a series of smaller sub-problem descriptions.

34
Q

What does data flow show?

A

The movements of items of data into and out of each part of the program.

35
Q

What is an integer?

A

A negative or positive number including zero with no decimal point

36
Q

What is a real number?

A

A negative or positive number including zero with a decimal point

37
Q

What is a boolean?

A

A value which can be either true or false

38
Q

What is an array?

A

A structured data type storing values of the same type

39
Q

What do simple data types include?

A
  • INTEGER
  • REAL
  • CHARACTER
  • BOOLEAN
40
Q

What do structured data types include:

A
  • ARRAY
  • STRING
  • RECORD
41
Q

How are integers stored?

A

Using two’s complement notation

42
Q

How are real numbers stored?

A

Using floating point notation which uses an exponent and a mantissa

43
Q

How are characters stored?

A

As Extended ASCII codes (8 bit / 256 character set) or if more than 256 are needed then they are stored using Unicode

44
Q

How are booleans stored?

A

Using 1 bit - as on or off

45
Q

What is a record?

A

Contain variables of different types

Allows us to keep related items of data about a person or thing together, which is more logical than tying things together in multiple parallel arrays.

46
Q

What is an algorithm?

A

A detailed sequence of steps which, when followed, will accomplish a task

47
Q

What is an index?

A

A position in an array

48
Q

What is a standard algorithm?

A

Certain algorithms that appear in program after program

49
Q

What is input validation?

A

Making sure that the data input by the user is acceptable

50
Q

What is the linear search algorithm?

A

Used to find an item in a list

51
Q

What does counting occurrences do?

A

Sets a total to zero at the beginning and increments it as items are found to match the search item

52
Q

How do you find the maximum/minimum

A

Sets an initial value to the first item in the array then compares it to the remaining items

53
Q

What is a computational construct?

A

Features of a high level language which have been designed to make this task easier.

A computational construct is a system of data representation and control structures used to solve problems using a computer through a programming language.

54
Q

What are the three control structures?

A

Sequence, selection and iteration

55
Q

What is variable declaration?

A

When a variable is created in a program

56
Q

What is a local variable?

A

One which only exists within the sub-program where it is being used.

57
Q

What is a global variable?

A

Has a wider scope - it exists and can be altered throughout the entire program.

This means that if its value is changed inside a sub-program, that value will remain changed and will affect its value wherever in the program it is used, possibly unintentionally

58
Q

What is modulus division?

A

A type of division where two integer numbers are divided and the remainder is returned.

59
Q

What does asc(char) do?

A

returns the ASCII code of a character

60
Q

What does char(char) do?

A

returns the character from an ASCII code

61
Q

What are sub-programs?

A

Named blocks of code which can be run from within another part of the program.

For instance, an input validation sub-program may be called several times asking for different inputs.

This makes your program easier to understand and makes writing code more efficient

62
Q

What is a method?

A

An object oriented language is a function that is defined inside a class.

63
Q

What are CSV files?

A

Comma-Separated Value files are a standard file format for exchanging organised data between programs such as databases and spreadsheets.

As implied by the name, they are simply text files with each data item (similar to a field in a database) separated by a comma value, and each row (record) separated by a line break.

64
Q

What is a computational construct?

A

A combination of control structures which can be used to make solving programming problems easier

65
Q

What is internal commentary?

A

Short statements embedded in the source code describing how that part of the program functions in order to aid code readability

66
Q

What is systematic testing

A

Where tests are done in a way which is planned, and which can be documented as a result.

The testing results are documented, in a clear list matching test data with results, so that time is not wasted repeating work done already, and the developers know exactly what has and hasn’t been tested.

67
Q

What is comprehensive testing?

A

When every aspect and functional requirement of the software is tested.

68
Q

What is beta testing?

A

When you test it in the environment which it has been designed for

69
Q

Why is Beta testing important?

A
  • It is essential that the client is able to test the software and make sure that it meets the specification they agreed to at the analysis stage
  • Although the programming team will have tested the software with appropriate test data, it is can be difficult for the programming team to test their work as a user who might make unpredictable mistakes rather than as a developer who is very familiar with the application they have been building
  • It is important that the people who are actually going to use the software are able to test it
70
Q

What is a test plan?

A

A set of test data which is created in order to systematically and comprehensively test the software which the client has requested in order to ensure that it meets the original specification when delivered.

71
Q

A test plan will include:

A
  • The software specification against which the results of the tests will be evaluated
  • A schedule for the testing process
  • Details of what is and what is not to be tested
  • The test data and the expected results
  • Documentation of the testing process
72
Q

What is debugging?

A

The process of finding and correcting errors in code.

73
Q

What is a dry run?

A

Simply a manual run-through the pseudocode or source code of the program

74
Q

What is fitness for purpose?

A

Making sure that the program meets all the requirements that were agreed in the software specification drawn up during the analysis of the problem, or meets the clients’ needs if using an agile methodology

75
Q

What is an execution error?

A

an execution (or run-time) error is one which causes the program to stop (crash) when it is run

76
Q

What is efficient programs?

A

Make sensible use of coding constructs that run with the least amount of code required to be executed