Chapter 4 Flashcards

1
Q

Identify the common stages of software
development life cycles (SDLCs).

A

Feasibility Study, Analysis, Design, Coding, Testing,
Installation, Evaluation and
Maintenance.

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

Define white box testing.

A

A form of testing carried out by software development teams in which the test plan
is based on the internal structure of the program. All of the possible routes through the program are tested.

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

Define black box testing.

A

The program as a wh ole is tested from the perspective of the user , it checks all possible user inputs produce valid results.

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

Define Alpha testing

A

Testing carried out by the software company, in-house. If specifications were not clearly defined by the client, or the client didn’t themselves know what they wanted, issues will be flagged as this stage.

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

Define Beta testing

A

The program is released to a select few users who will use the program and provide feedback on useability and functionality. Feedback is given to devs.

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

What is TELOS?

A

A method of analysis used by designers
to evaluate the feasibility of a project. It considers technical, economic, legal and
operational aspects of the project, as
well as scheduling.

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

What are agile methodologies?

A

A collection of methodologies which aim
to improve the flexibility of software
development. They respond quickly to
changes in user requirements.

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

Describe Waterfall model

A

It completes the stages in a linear, sequential order.
-Each phase has a well defined start and end
-Each phase has clear criteria for completion
-The company interacts with the client at the start and end, but infrequently during development. Traditional and some what outdated.

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

Pros and cons of waterfall

A

Pros:
-Simple and easy to mange
-Clearly documented at each stage, so can fixed easily
-Each stage has clear goals

Cons:
-Lack of flexibility
-No risk analysis
-Limited user involvement, only start and end

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

Describe RAD

A

Rapid Application development: Successive prototypes are produced, shown to the client, evaluated and feedback is used to inform the next iteration. Good features from multiple prototypes can be combined in this process. Small to medium, with unclear requirements.

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

Pros and Cons of RAD

A

Pros:
-Full project requirement spec not necessary
-Regular client input
-Flexible to changing requirements

Cons:
-Regular client contact; may be impractical
-Many prototypes = expensive
-Poor documentation

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

Describe spiral model

A

Less riskier version of RAD- more time is spent on planning and risk accessing. Used for large long term projects.

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

Pros and Cons of Spiral model

A

Pros:
-Focuses on risks, potentially saving lots of time and money
-Good for unclear requirements
-Good for large complex projects

Cons:
-Risk management = specialised: expensive
-Overkill for small projects
-Lack of focus on code efficiency

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

Describe extreme programming

A

Used for smaller evolving projects.
- Keep the model simple and immediate
- Get rapid feedback from the client
- Keep up-to speed with client’s changing requirements
-Incrementally expand and improve the model over continuous prototyping and iteration. May use pair programming, one codes other gives feedback.

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

Pros and cons of extreme programming

A

Pros:
-Produces high quality code, fast
-Lots of client involvement
- Requirements can evolve

Cons:
- Pair programming = expensive
-Scope creep - the client may expand on requirements during development
-Client must invest lots of time with devs

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

Key qualities of algorithms

A

-Inputs must be clearly defined - what is valid and what is invalid?
- Must always produce a valid output for any defined input
- Must be able to deal with invalid inputs
- Must always reach a stopping condition
- Must be well-documented for reference
- Must be well-commented so modifications can easily be made

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

Define programming paradigm

A

A style of programming or a way organising/ conceptualising a program.

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

What is the low level paradigm

A

Assembly:
- Uses mnemonics to represent opcodes.
- Hardware dependent
- Runs efficiently, used in embedded systems

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

Define Imperative programming

A

Imperative programming paradigms use code that clearly specifies the actions to be
performed to dictate how the problem is solved e.g. Python, C.

20
Q

Define Procedural programming

A

The program can be broken down into subtasks, to modularise the problem. Uses coding constructs of sequence, selection and iteration e.g. Python, C.

21
Q

Define Declarative programming

A

They tell the computer what to do but not how to do it, e.g. sql queries, haskell

22
Q

Define OOP

A

Object-Oriented Programming: Instances of objects are created from class templates. Objects are given attributes and methods e.g. Python, Smalltalk

23
Q

Define sequence

A

Simple, sequential instructions

24
Q

Define selection

A

A choice/decision AKA condition check where one of two outcomes can be taken.

25
Q

Define iteration

A

Where code is either iterated definitely or indefinitely.

26
Q

Define subroutines

A

A named sequence of instructions that can be reused and called from other parts of the program.

27
Q

Define local variables

A

Exist only within a subroutine. Makes memory use more efficient, cannot be modified outside subroutine.

28
Q

Pros and Cons of coding constructs

A

Pros:
-Teams can work independently on subroutines
-Local variables make efficient use of memory
-Subroutines can be reused as many times as wanted

Cons:
- Can be hard to keep overview of program of it gets complicated
-Procedural langs harder to model IRL problems and complex GUI’s then OOP langs.

29
Q

Define Inheritance

A

A class can inherit from another class and this relationship
between classes is shown using the diagram to the right. The subclass (or derived class) will possess all of the methods and
attributes of the superclass (or parent class) and can have its
own additional properties

30
Q

Define Polymorphism

A

Objects can behave differently depending
on their class. This can result in the same method producing different outputs depending on the object involved. There are two categories of polymorphism: overriding and overloading.

Overriding is redefining a method within a subclass and altering the code so that it functions differently and produces a different output.

Overloading is passing in different parameters into a method

31
Q

Define Encapsulation

A

Attributes are declared as private so can only be altered by public methods.
Every class must also have a constructor method, which is called ‘new’. A constructor
allows a new object to be created.

32
Q

Immediate Addressing

A

The operand is the actual value upon which the instruction is to be
performed, represented in binary

33
Q

Direct Addressing

A

The operand gives the address which holds the value upon which the
instruction is to be performed. Direct addressing is used in LMC.

34
Q

Indirect Addressing

A

The operand gives the address of a register which holds another address,
where the data is located.

35
Q

Indexed Addressing

A

An index register is used, which stores a certain value. The address of the
operand is determined by adding the operand to the index register. This is
necessary to add an offset in order to access data stored contiguously in
memory such as in arrays

36
Q

ADD

A

Add the value at the given memory address to the
value in the Accumulator

37
Q

SUB

A

Subtract the value at the given memory address
from the value in the Accumulator

38
Q

STA

A

Store the value in the Accumulator at the given
memory address

39
Q

LDA

A

Load the value at the given memory address into the
Accumulator

40
Q

INP

A

Allows the user to input a value which will be held in
the Accumulator

41
Q

OUT

A

Prints the value currently held in the Accumulator

42
Q

HLT

A

Stops the program at that line, preventing the rest of
the code from executing.

43
Q

DAT

A

Creates a flag with a label at which data is stored.

44
Q

BRZ

A

Branches to a given address if the value in the Accumulator is zero. This is a conditional branch.

45
Q

BRP

A

Branches to a given address if the value in the Accumulator is positive. This is a conditional branch.

46
Q

BRA

A

Branches to a given address no matter the value in the Accumulator. This is an unconditional branch.