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
when to use agile method
- 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
26
define extreme programming
- 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.
27
define rapid application development
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.
28
define algorithm
a set of step-by-step instructions used to solve a problem or complete some well-defined tasks in a finite number of steps
29
name some types of algorithms
- search - sort - route - queuing
30
name some routing problems
- routing packets of data around the internet by the shortest route - finding the shortest route for a salesperson to cover his territory
31
what makes a good algorithm
- 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
32
what are flowcharts used for
used to show the flow of data throughout a program
33
what is pseudocode used for
used to work out the logic in algorithms and is not language specific
34
what is a bubble sort
- 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
code for bubble sort
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
name some searching algorithms
- binary - linear
37
what does a linear search do
starts at the beginning of every list and examines every item
38
what does a binary search do
“divide and conquer” strategy to halve the search area each time and item is examined
39
code for binary search
# 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
what makes a good program
- comments - standard for identifiers (CamelCaps) - indentation - no unnecessary statements - modular structures (no module longer than a page)
41
what is a programming paradigm
a style of programming
42
name 7 programming paradigms
- procedural - declarative - object orientated - logic - functional - imperative - structured
43
what is procedural programming
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
what programs support procedural programming
Python, BASIC, Pascal, C
45
what is object orientated programming
a method of programming that classifies real world objects into classes and encapsulated those objects with attributes and behaviours
46
what supports OOP
Java, C++, Python
47
OOP: define attributes
each attribute is a data item that helps define or describe the object
48
OOP: define class
a blueprint that defines the properties of all objects of the same type
49
OOP: define instantation
process of making an object from the class definition
50
OOP: define methods
methods must define every operation that is allowed to be carried out on an attribute
51
define reference variable
memory location of an object
52
OOP: define constructor
special method called when an object is instantiated
53
OOP: define encapsulation
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
OOP: define private attributes
hidden within the class
55
OOP: define public methods
must be provided to access or modify attributes
56
OOP: how to access or modify attributes
getters and setters
57
OOP: define inheritance
a technique that allows one class to inherit attributes and methods of another class
58
OOP: define polymorphism
the ability of the system to process objects differently depending their data type or class
59
what is declarative programming
a method that abstracts the control flow of logic and instead involves stating what the task or desired outcome is
60
what supports declarative programming
SQL, Prolog
61
what is prolog
instead of defining how a problem is to be solved, the programmer states the facts and rules associated with the problem
62
prolog: define fact
a fact is a rule and a rule is true depending on a given condition
63
name some advantages of OOP
- 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
declarative: define backtracking
- 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
when to use declarative programming
programming expert systems
66
what is logic programming
- 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
what is functional programming
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
what supports functional programming
Haskell, Python, C#, Java
69
what is imperative programming
- 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
what is structured programming
- 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
what defines a low level language
- one line of code takes one processor clock cycle to execute - specific to the processor (no portability)
72
what are advantages of a low level language
- memory efficient - little time to process - can access specific hardware
73
what is assembly language
- uses mnemonics - different assembly languages for each type of processor - assembler translates assembly language into machine code
74
name 4 different addressing methods
- immediate - direct - indirect - index
75
define immediate addressing
uses the data in the address field as a constant that is needed by the program - operand holds the actual value
76
define direct addressing
uses the data stored in the address field without alteration - the operand holds the memory address of the value to be operated on
77
define indirect addressing
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
define index addressing
- 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
what defines a high level language
- one line of code takes multiple clock cycles to execute - can be used on any processor