Unit 3 - Software Development Flashcards

1
Q

What happens in the analysis stage?

A

gathers info about:
- what a current system does, what the new system needs to do

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

What is included in the design stage?

A

A software design will include:
- description of the data (data type, format, and validations)
- database design if appropriate
- 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
3
Q

What is included in the implementation stage?

A

This stage includes:
- Coding and testing the software
- Writing 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
4
Q

What types of testing are there?

A
  • black box
  • white box
  • alpha
  • beta
  • acceptance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

define black box testing

A

carried out independently of the code used in the program. It looks at the program specification and creates a set of test data that covers all the inputs, outputs, and program functions

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

define white box testing

A

when we can see the code and can test all the different pathways throughout the code

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

define alpha testing

A

carried out by the software developer’s in-house team and by the user to detect errors in the definition of system requirements

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

define beta testing

A

used when commercial software is being developed. The software is given to several potential users who agree to use the software and report any faults. Usually carried out on a separate machine

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

advantages of beta testing

A

advantages of beta testing are that the users may try to do things that the developers may not have anticipated which can therefore lead to errors being discovered

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

define acceptance testing

A

the evaluation where the user tests every aspect of the software to make sure it does what it is supposed to do. It will be evaluated against the original specification

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

what are the different types of maintenance

A
  • corrective
  • adaptive
  • perfective
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

define corrective maintenance

A

bugs will usually be found when the software is put into action, no matter how thoroughly it was tested

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

define adaptive maintenance

A

over time, user requirements will change, and the software will have to be adapted to meet new needs

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

define perfective maintenance

A

even if the software works well, there may be ways of making it even better (faster, easier to use, etc.)

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

what is the waterfall model

A

each stage is completed then documented before the next is begun. the customer does not see the product until it is completed. any change to be made often leads to the project being started again

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

advantages of the waterfall model

A
  • The model is simple to understand and use
  • Each stage is separate and self-contained with well-defined outcomes and written documentaries, which
    makes the project straightforward to manage
  • The model works well for smaller projects where requirements are very well understood
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

disadvantages of waterfall model

A
  • There is not much user evolvement after the analysis stage, when the specification document is agreed which could lead to disagreements.
  • No working software is produced until late in the cycle.
  • The user is presented with the finished product and if it is not what was required, it is too late to make
    changes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

what is the spiral method

A

an abstract description of the systems life cycle where there are four defined quadrants - planning, risk analysis, use of design methods, client and management evaluation. once one stage of development has gone full circle , the next takes place and so on until completion

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

advantages of spiral method

A
  • well-defined steps = easy to manage
  • Software is produced early so problems and issues can be identified
  • user gives feedback on each prototype and required changes can be made early in the process
  • Functionality can be added during the process
  • result is more likely to be what the user wants
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

disadvantages of spiral method

A
  • time-consuming and therefore the finished product takes longer to develop
  • a system is more costly to develop because of the time involved
  • not suitable for smaller projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

when to use spiral method

A
  • medium to high-risk projects
  • users are unsure of their needs and what the possibilities are
  • requirements are complex
  • large projects which may take years to develop, during which time new technologies may develop and
    significant changes occur
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

what is the agile method

A

software is developed in rapid incremental cycles and each version builds on previous functionality. each version is also thoroughly tested before release. it is good for small, time-critical projects.

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

advantages of agile method

A
  • rapid continuous delivery of useful software leads to customer satisfaction
  • customers, developers, and testers constantly interact with each other
  • working software is delivered frequently
  • software is easily adapted to changing circumstances
  • late changes in requirements can be implemented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

disadvantages of agile method

A
  • lack of emphasis on necessary design and documentations
  • project can fail to deliver if the customer is not clear about the desired outcome
  • not suitable for novice programmers, experienced programmers capable of making good decisions are
    required
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

when to use agile method

A
  • when new changes need to be implemented - small incremental changes can be made frequently for little cost
  • in an expanding or developing business where users’ needs are continuously changing and developing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

define extreme programming

A
  • the key focus is on the quality of the code
  • it is a type of agile paradigm
  • it is designed to allow development to respond to changing user requirements
  • it involves the use of paired programming
  • the program is reviewed regularly and is iterative in nature
  • it is well suited to applications such as anti-virus software as the types of virus / threats are continually changing. in order to detect viruses effectively there needs to be an emphasis on code quality.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

define rapid application development

A

workshops and focus groups gather requirements rather than using a formal document. prototyping is used to continually refine the system in response to user feedback. each part of the system is produced within a strict time limit – not perfect, but good enough. software components are used whenever possible.

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

define algorithm

A

a set of step-by-step instructions used to solve a problem or complete some well-defined tasks in a finite number of steps

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

name some types of algorithms

A
  • search
  • sort
  • route
  • queuing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

name some routing problems

A
  • routing packets of data around the internet by the shortest route
  • finding the shortest route for a salesperson to cover his territory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

what makes a good algorithm

A
  • have clear and precisely stated steps that produce the correct output for any set of valid inputs
  • always terminate at some point
  • perform the task efficiently, in as few steps as possible
  • be designed in such a way that other people will be able to understand and modify it if necessary
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

what are flowcharts used for

A

used to show the flow of data throughout a program

33
Q

what is pseudocode used for

A

used to work out the logic in algorithms and is not language specific

34
Q

what is a bubble sort

A
  • simplest
  • starting with first item is compared with the adjacent item and swapped if larger
  • end of first pass the largest item is at the end
35
Q

code for bubble sort

A

names = [“Jane”, “Fred”, “Vicky”, “Eric”, “Bella,” “Millie”]
numItems = len(names)
for i = 0 to numItems – 2
for j = 0 to (numItems –2 -i)
if names[j] > names[j+1]
temp = names[j + 1]
names[j+ 1] = names[j]
names[j] = temp
endif
next j
next i

36
Q

name some searching algorithms

A
  • binary
  • linear
37
Q

what does a linear search do

A

starts at the beginning of every list and examines every item

38
Q

what does a binary search do

A

“divide and conquer” strategy to halve the search area each time and item is examined

39
Q

code for binary search

A

low and high are the indices of the first and last

# items in the list
found = False
while found == False AND high >= low
middle = (low + high) div 2
if list (middle) = x then
found = True
else
if list (middle) > x then
high = middle
else
low = middle + 1
endif
endif
endwhile

40
Q

what makes a good program

A
  • comments
  • standard for identifiers (CamelCaps)
  • indentation
  • no unnecessary statements
  • modular structures (no module longer than a page)
41
Q

what is a programming paradigm

A

a style of programming

42
Q

name 7 programming paradigms

A
  • procedural
  • declarative
  • object orientated
  • logic
  • functional
  • imperative
  • structured
43
Q

what is procedural programming

A

any high level language in which porgram statements can be grouped in self-contained blocks called procedures and functions. these procedures have their own variables, not accessible outside the procedure

44
Q

what programs support procedural programming

A

Python, BASIC, Pascal, C

45
Q

what is object orientated programming

A

a method of programming that classifies real world objects into classes and encapsulated those objects with attributes and behaviours

46
Q

what supports OOP

A

Java, C++, Python

47
Q

OOP: define attributes

A

each attribute is a data item that helps define or describe the object

48
Q

OOP: define class

A

a blueprint that defines the properties of all objects of the same type

49
Q

OOP: define instantation

A

process of making an object from the class definition

50
Q

OOP: define methods

A

methods must define every operation that is allowed to be carried out on an attribute

51
Q

define reference variable

A

memory location of an object

52
Q

OOP: define constructor

A

special method called when an object is instantiated

53
Q

OOP: define encapsulation

A

all of the object’s attributes are contained and hidden in the object and access to them is restricted to operations of that class

54
Q

OOP: define private attributes

A

hidden within the class

55
Q

OOP: define public methods

A

must be provided to access or modify attributes

56
Q

OOP: how to access or modify attributes

A

getters and setters

57
Q

OOP: define inheritance

A

a technique that allows one class to inherit attributes and methods of another class

58
Q

OOP: define polymorphism

A

the ability of the system to process objects differently depending their data type or class

59
Q

what is declarative programming

A

a method that abstracts the control flow of logic and instead involves stating what the task or desired outcome is

60
Q

what supports declarative programming

A

SQL, Prolog

61
Q

what is prolog

A

instead of defining how a problem is to be solved, the programmer states the facts and rules associated with the problem

62
Q

prolog: define fact

A

a fact is a rule and a rule is true depending on a given condition

63
Q

name some advantages of OOP

A
  • extensive planning phase = fewer weaknesses
  • encapsulation = source code can be written, tested and maintained independently
  • good framework for code library
  • reusability
  • easy to maintain
64
Q

declarative: define backtracking

A
  • given a problem to solve, Prolog selects a route through the maze of facts and rules
  • it will backtrack to the last decision point and try another route until either the goal is achieved or there are no further routes to try
65
Q

when to use declarative programming

A

programming expert systems

66
Q

what is logic programming

A
  • logic programming is a form of declarative programming.
  • it is a paradigm that expresses the logic of computation without expressing its control flow.
  • program consists of logical statements.
67
Q

what is functional programming

A

functions are used as the fundamental building blocks. statements are written as a series of functions which accept input data as arguments and return an output

68
Q

what supports functional programming

A

Haskell, Python, C#, Java

69
Q

what is imperative programming

A
  • languages which support imperative programming consistent of a series of instructions that tell the computer what to do with the input in order to solve a problem
  • procedural programming to imperative programming with procedure calls
70
Q

what is structured programming

A
  • structured programming could also be defined as a programming paradigm – a way of writing a program.
  • it is a kind of procedural (imperative) programming which uses the constructs sequence, selection, iteration, and recursion rather than “goto” statement.
  • modular techniques are used to split a large program into manageable chunks
71
Q

what defines a low level language

A
  • one line of code takes one processor clock cycle to execute
  • specific to the processor (no portability)
72
Q

what are advantages of a low level language

A
  • memory efficient
  • little time to process
  • can access specific hardware
73
Q

what is assembly language

A
  • uses mnemonics
  • different assembly languages for each type of processor
  • assembler translates assembly language into machine code
74
Q

name 4 different addressing methods

A
  • immediate
  • direct
  • indirect
  • index
75
Q

define immediate addressing

A

uses the data in the address field as a constant that is needed by the program
- operand holds the actual value

76
Q

define direct addressing

A

uses the data stored in the address field without alteration
- the operand holds the memory address of the value to be operated on

77
Q

define indirect addressing

A

uses the address field to hold the address of a location that contains the required address
- the operand is the location which holds the data wanted

78
Q

define index addressing

A
  • the address of the operand is obtained by adding a constant value to the contents of a general register
  • indexed addressing mode is used to access an array whose elements are in successive memory locations
  • by incrementing the value in the index register, successive memory locations can be accessed
79
Q

what defines a high level language

A
  • one line of code takes multiple clock cycles to execute
  • can be used on any processor