unit 3 Flashcards

1
Q

what is the waterfall lifecycle?

A

a sequential software development process divided into distinct phases. Each phase must be completed before the next one begins.

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

what are the 6 steps in the model?

A

requirement gathering
system design
implementation
integration and testing
deployment
maintenance

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

what are the benefits of the waterfall model?

A

simple and linear
clear stages and milestones
suitable for well-defined projects (when requirements are unlikely to change during development)

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

what are the drawbacks of the waterfall model?

A

inflexible, expensive to fix late problems, long development cycle

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

when is the waterfall model suitable?

A

most suitable where requirements are well understood and unlikely to change

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

what are the steps in the agile model?

A

planning
design
coding
testing
integration
feedback and iteration

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

what are the benefits of an agile model?

A

highly adaptable
frequent communication
quality focus
customer collaboration

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

what are the drawbacks of an agile model?

A

requires experienced team members, intensive collaboration can lead to burnout
may lack documentation
scope creep (uncontrolled changes in requirements)

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

when is an agile model suitable?

A

suitable for small to medium sized projects where requirements can change and customer involvement is high

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

what is the spiral model?

A

combines aspects of both iterative and sequential processes

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

what are the steps in the spiral model?

A

planning
risk analysis
engineering
evaluation and feedback

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

what are the benefits of the spiral model?

A

flexibility
risk management
strong customer involvement
incremental releases

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

what are the drawbacks of the spiral model?

A

complexity
time-consuming
expensive
not suitable for small projects

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

when is the spiral model suitable?

A

most suitable for large, complex projects where requirements may change

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

what is RAD?

A

methodology that emphasises fast and iterative development

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

what are the steps in the RAD model?

A

requirement planning
user design
construction
cutover or deployment
maintenance and updates

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

what are the benefits of RAD model?

A

speed, user involvement, flexibility, incremental development

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

what are the drawbacks of RAD model?

A

dependent on strong team collaboration, potential lack of quality, not suitable for small projects, can lead to scope creep

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

when is the RAD model suitable?

A

suitable for projects where rapid delivery is required

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

what is a programming paradigm?

A

established conventions and practices that dictate how computer programs are structured and developed

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

define a procedural paradigm

A

an imperative paradigm which is structured around procedure calls

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

what is an example of a language that uses a procedural paradigm?

A

C, Go

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

define object-oriented paradigm

A

organises code around objects which combine data and functionality

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

what is an example of a language that uses object oriented paradigm?

A

java, C#, swift

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
define an assembly paradigm
low-level mnemonic representation of machine code for a specific computer architecture
26
what is an example of a language that uses assembly paradigm?
x86-64 assembly
27
what are the strengths of a procedural paradigm?
-efficient execution of straighforward tasks -a clear flow of control -ease of implementation for algorithms -strong emphasis on step by step procedure execution
28
what are the drawbacks of the procedural paradigm?
-can become unwieldly for large programs -lack of modularity can lead to code redundancy -not ideal for application with complex states -difficulty in managing and scaling the system as it grows
29
what are the strengths of OOP paradigm?
-enhances modularity with encapsulation -enables real-world modelling using objects -code reuse through inheritance -polymorphism allows flexibility in interface design
30
what are the drawbacks of OO paradigm?
-can lead to unnecessary complexity -inefficiency due to overhead(memory for objects) -not always intuitive for all types of problems -misuse can lead to overly complex inheritance hierarchies
31
what are the strengths of assembly paradigm?
-direct control over hardware -optimised performance due to low-level operations -a transparent understanding of how the machine operates -potential for very efficient code
32
what are the drawbacks of assembly paradigm?
-extremely steep learning curve -hardware specific, leading to a lack of portability -tedious and error-prone due to manual memory management -difficult to write, debug, and maintain large programs
33
what approach does procedural programming take?
it follows a step by step approach to breaking down tasks into routines and subroutines emphasises modular design
34
what is the purpose of assembly language?
-sits between high-level languages and machine code -allows developers to write more efficient, albeit more complex, code when compared to high level languages
35
what is the LMC?
little man computer
36
what does the LMC do?
a hypothetical computer model used for understanding the fundamental operations and mechanics of a computer
37
what is ADD?
add
38
what is SUB?
subtract
39
what is STA?
store
40
what is LDA?
load
41
what is BRA?
branch always
42
what is BRZ?
branch if zero
43
what is BRP?
branch if positive
44
what is INP?
input
45
what is OUT?
output
46
what is HLT?
halt
47
what is DAT?
data location
48
what is an addressing mode?
a way in which an instruction in assembly language/machine code can access data stored in memory
49
what are the different types of addressing modes?
immediate direct indirect indexed
50
what is immediate addressing?
operand is part of the instruction itself
51
what is direct addressing?
the memory address of the operand is directly specified
52
what is indirect addressing?
a register contains the memory address of the operand
53
what is indexed addressing?
combines a base address with an index to compute the new address
54
what is a class?
blueprint or template that is used to create objects
55
what is an object?
an instantiation of a class with its own state and behaviours
56
what is an attribute?
a value or variable associated with an object representing characteristics
57
what is a method?
a function defined within a class that encapsulates a set of actions performed by objects
58
what is the difference between a function and a procedure?
a function returns a value but a procedure does not
59
what is a constructor?
define the initial values of variables and perform and necessary setup to prepare the object for use
60
what is the difference between public and private methods?
public methods are accessible and can be invoked by any code within the same class or external classes private - only accessible within the same class public - changes have an impact on other parts of the code private - changes have a localised impact, only within the class
61
where a local variables accessed?
only accessible within the block or method in which they are declared
62
what is inheritance?
process that allows a class to inherit the properties and behaviour of another class
63
what is a base class?
serves as the blueprint or template for which the derived class inherits defines common properties and behaviours
64
what is a derived class?
the derived class inherits the attributes and methods of the base class
65
what is encapsulation?
the practice of grouping data (attributes) and methods (functions) within a class
66
what are the benefits of encapsulation?
ensures data remains secure and is not accidentally modified or misused helps organise code by keeping data within an object promotes code reusability reduces complexity by hiding implementation details of the object
67
what is polymorphism?
a concept in programming that allows objects to take on different forms or behaviours
68