Software development Flashcards

(134 cards)

1
Q

What are the main objectives of system analysis methods?

A

To understand and compare lifecycle models and evaluate when each is appropriate

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

What types of problems can be solved using computer systems?

A

Processing large datasets
Designing/manufacturing products
Managing products or businesses
Creating games
Running simulations

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

What are the main stages of the systems lifecycle?

A

Analysis
Design
Implementation and testing
Installation
Maintenance

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

What is the purpose of the analysis stage?

A

To define the problem clearly and identify system requirements

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

What might analysis consider?

A

Future growth and development
The type of problem
User needs and constraints

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

What is the purpose of the design stage?

A

To plan how the system will work, including structure, data, interfaces and security

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

What design considerations are included in system design?

A

Processing: algorithms, modular structure
Data structures: files, databases, queues, trees
Output: format, medium, frequency
User interface: layout, input methods
Security: protection from corruption or hacking
Hardware: choosing suitable components

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

What is the purpose of programming in system development?

A

To break the problem into modules and smaller tasks, then write the program code that implements the solution

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

Why must a system be thoroughly tested?

A

To ensure all errors are found and removed before the system is finalised

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

What is black box testing?

A

Testing based on the specification, checking inputs and outputs without looking at the internal code

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

Why is black box testing called functional testing?

A

Because it checks whether the system performs the functions described in the specification

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

What is white box testing?

A

Testing based on the internal code structure, checking logic paths, missing functions and errors

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

Why is white box testing called glass box testing?

A

Because the tester can see inside the code

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

What is alpha testing?

A

Testing carried out by the developer’s in-house team to find errors and omissions in the specification

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

What is beta testing?

A

Testing by external users before release to identify real-world issues and gather feedback.

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

Why is beta testing useful?

A

It reveals problems developers may have missed and helps refine the product before launch

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

What happens during implementation?

A

Coding and testing are completed, errors corrected, the software is installed, and early monitoring begins

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

What is post-implementation review?

A

A critical evaluation of the system 3-6 months after installation to assess effectiveness, usability and maintainability

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

Who should carry out post-implementation review?

A

Users, technical staff, and ideally an independent reviewer

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

What is the purpose of evaluation?

A

To judge whether the system meets requirements, identify shortcomings and gather user feedback for improvements

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

What does a post-implementation review focus on?

A

Comparing actual vs expected performance
Assessing each part of the system
Identifying unexpected benefits or problems
Proposing further development

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

What is the waterfall lifecycle model?

A

A linear development model where each stage is completed fully before moving to the next

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

What are the stages of the waterfall model?

A

Analysis
Design
Implementation
Evaluation
Maintenance

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

What is the key drawback of the waterfall model?

A

If something is missing, developers must go backwards - changes late in the process are difficult and expensive

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
How involved is the client in the waterfall model?
Involved mainly at the start and end with little input in between
26
Why was the waterfall model originally used?
It came from manufacturing, where late changes were costly; it suited large, complex software projects needing strong upfront design
27
What is the spiral model?
An iterative development model where the system is built through repeated cycles, each producing a refined prototype
28
What happens in each loop of the spiral model?
Analysis Design Implement Evaluate Produce a prototype
29
What is the main advantage of the spiral model?
Risks are identified early, and the system improves through continuous refinement
30
When is the spiral model most suitable?
Large, high risk or complex projects where requirements may evolve
31
What is agile methodology?
An iterative development approach that focuses on simplicity, rapid feedback, and continuous user involvement
32
What are the main steps in the agile model?
Requirement gathering Quick design Build prototype Prototype evaluation Refine prototype Create final system
33
Why does agile use prototypes?
To gather frequent user feedback and refine the system in small, manageable increments
34
What is the main advantage of agile development?
It adapts quickly to changing requirements and reduces the risk of building the wrong system
35
When is agile most suitable?
When requirements are unclear, likely to change, or when rapid delivery is needed
36
What is extreme programming?
An agile methodology focused on improving software quality and responsiveness through frequent releases and continuous customer involvement
37
What are key features of extreme programming?
Frequent small releases Constant customer feedback Pair programming Test driven development Continuous integration
38
What is the main goal of extreme programming?
To produce high quality software that meets customer needs through rapid, iterative improvements
39
How does extreme programming handle changing requirements?
By using short development cycles and regular checkpoints to adjust the system quickly
40
What is Rapid Application Development?
A development methodology focused on fast delivery using user involvement, prototyping, and reusable components
41
Why was RAD introduced?
To prevent long projects from becoming outdated or abandoned due to changing technology and user requirements
42
What are the key features of RAD?
Requirements gathered through workshops and focus groups Continuous prototyping with user feedback Strict time limits for each component Reuse of existing software components
43
What is the main advantage of RAD?
It produces useful, working parts of the system quickly even if they are not perfect
44
When is RAD most suitable?
Large projects where requirements change frequently and user involvement is essential
45
What is a drawback of RAD?
Developers may constantly chase new user suggestions, making the target move
46
What type of project is the waterfall model best suited for?
Very small, well-defined projects needing close supervision
47
What is the main drawback of the waterfall model?
Minimal user involvement after the initial analysis stage
48
Why are spiral and agile considered improvements over waterfall?
They recognise that users dont often know exactly what they want and need iterative development to refine requirements
49
What types of projects suit extreme programming and RAD?
Large projects requiring continuous user involvement and rapid iterations
50
What is a shared drawback of extreme programming and RAD?
They can be derailed by constant new suggestions, making the system a moving target
51
What is an algorithm?
A precise, step‑by‑step set of instructions designed to solve a problem or perform a task.
52
What are the key properties of a computational algorithm?
Clear, precise steps Produces correct output for valid inputs Handles invalid inputs Always terminates Efficient (few steps) Understandable and modifiable by others
53
Why must an algorithm always terminate?
To ensure it eventually produces an output rather than running indefinitely
54
Why must an algorithm handle invalid inputs?
To prevent crashes and ensure the system behaves predictably when given unexpected data
55
What is a search algorithm used for?
Finding information quickly within large datasets, such as locating webpages on the internet.
56
What is a route‑finding algorithm?
An algorithm that determines the shortest or most efficient path between two points (e.g., GPS navigation, internet routing)
57
What is a compression algorithm?
A method of reducing file size so data can be stored or transmitted more efficiently (e.g., MP3, ZIP).
58
What is an encryption algorithm?
A method of encoding data so it cannot be read without the correct key, used for secure communication.
59
Who uses encryption algorithms?
Banks, governments, online retailers, messaging apps, and anyone needing secure data transmission.
60
What type of algorithmic strategy does binary search use?
Divide and conquer — repeatedly splitting the problem into smaller parts
61
Why is pseudocode useful before coding?
It helps plan the logic clearly, avoid mistakes, and translate ideas into code more easily.
62
What is the purpose of a trace table?
To record changes in variables during a dry run so you can follow the algorithm’s logic step‑by‑step.
63
When should you use a trace table?
When interpreting an algorithm, debugging, or checking how variables change during loops and conditionals.
64
What are the four strategies for interpreting algorithms?
* Read the comments * Look at variable names * Follow the program steps * Use test data
65
What does the MOD operator do?
It returns the remainder after integer division.
66
What is a programming paradigm?
A style or approach to programming that defines how solutions are structured and how code is written
67
Why do different programming paradigms exist?
Different types of problems require different approaches, so many paradigms and languages have been developed to suit various tasks.
68
What is procedural programming?
A paradigm where problems are solved using sequences of instructions, including assignment, iteration, and selection.
69
What are the advantages of procedural programming?
* Easy to read * Easy to reuse * Uses modular techniques * Good for general‑purpose programming
70
What is declarative programming?
A paradigm where you describe what the problem is, not how to solve it.
71
What is functional programming?
A paradigm where functions are the main building blocks; used in languages like Haskell.
72
What is object‑oriented programming (OOP)?
A paradigm based on objects and classes, used for large applications; supported by Java and Python.
73
What data types do procedural languages typically support?
Integer, real, character, Boolean, string
74
What data structures do procedural languages support?
Arrays, records, and abstract data types such as stacks, queues, trees, and hash tables.
75
What is a class in object‑oriented programming?
A blueprint describing the attributes (data) and methods (behaviours) that objects of that type will have.
76
What is an object?
An instance of a class created using the class definition and specific data.
77
What is inheritance in OOP?
A mechanism where a subclass automatically receives the attributes and methods of a superclass.
78
What is a superclass?
The general class whose attributes and behaviours are inherited by subclasses.
79
What is a subclass?
A more specific class that inherits from a superclass and may add extra attributes or behaviours
80
What does inheritance allow you to do?
Reuse code, reduce duplication, and create hierarchical relationships between classes.
81
What does it mean when attributes are marked `private`?
They cannot be accessed directly from outside the class; they must be accessed through public methods.
82
Why are attributes usually private in OOP?
To enforce encapsulation — protecting data from accidental modification and ensuring controlled access
83
What is encapsulation?
The bundling of data and methods inside a class, with restricted access to internal attributes.
84
How is inheritance shown in pseudocode?
Using the keyword inherits
85
What is the benefit of using a superclass for data structures?
It avoids duplication by placing shared attributes and methods in one place, improving maintainability.
86
What is polymorphism?
The ability of a programming language to process objects differently depending on their class or data type.
87
How does polymorphism work in OOP?
A method call can behave differently depending on the object that invokes it — subclasses may override inherited methods.
88
What happens if a subclass does not override an inherited method?
The superclass version of the method is used
89
What is encapsulation?
Restricting direct access to attributes so they can only be accessed or modified through class methods.
90
What is a constructor?
A special procedure used to create and initialise a new object
91
How does inheritance relate to constructors?
A subclass can call the superclass constructor to initialise inherited attributes.
92
What are the advantages of the object‑oriented paradigm?
* Encourages modular design * Supports extensive planning and better system structure * Objects can be written, tested, and maintained independently * Encapsulation hides implementation details * Easy to create new objects with small differences * Reusable, pre‑tested objects reduce development time * Supports large code libraries with clean interfaces * Easier maintenance than procedural programs due to modularity
93
Why is OOP good for large applications?
Its modular structure, reuse of objects, and encapsulation make complex systems easier to manage and maintain.
94
What is assembly language?
A low‑level language that uses mnemonic codes instead of binary machine code, with each instruction translating directly to one machine‑code instruction.
95
What is the role of an assembler?
It translates assembly language mnemonics into machine code that the CPU can execute.
96
What does `ADD` do?
Adds the contents of a memory address to the accumulator. Code: 1xx
97
What does `SUB` do?
Subtracts the contents of a memory address from the accumulator. Code: 2xx
98
What does `STA` do?
Stores the accumulator value into a memory address. Code: 3xx
99
What does `LDA` do?
Loads the accumulator with the contents of a memory address. Code: 5xx
100
What does `BRA` do?
Unconditional branch — jumps to the given address. Code: 6xx
101
What does `BRZ` do?
Branches if the accumulator is zero. Code: 7xx
102
What does `BRP` do?
Branches if the accumulator is zero or positive. Code: 8xx
103
What does `INP` do?
Inputs a value into the accumulator. Code: 901
104
What does `OUT` do?
Outputs the value in the accumulator. Code: 902
105
What does `HLT` do?
Stops program execution.
106
What does `DAT` do?
Reserves a memory location to store data. Code: 0
107
What does the accumulator (ACC) do in assembly language?
It stores the current value being processed by arithmetic or logic instructions.
108
What is an unconditional branch?
BRA — jumps to a label regardless of the accumulator value.
109
What is a conditional branch?
A branch that depends on the accumulator value, such as BRZ or BRP.
110
When does `BRZ` branch?
When the accumulator value is zero.
111
When does `BRP` branch?
When the accumulator value is zero or positive.
112
What is the structure of a machine‑code instruction?
It contains an opcode (operation), an addressing mode, and an operand (the data or address to operate on).
113
What does the opcode represent?
The basic operation to be performed, such as ADD, SUB, LDA
114
What do the last two bits of the opcode represent?
The addressing mode
115
What is immediate addressing?
The operand contains the actual value to be used.
116
What is direct addressing?
The operand contains the memory address of the value to be used.
117
What is indirect addressing?
The operand contains the address of a memory location that holds another address — allowing access to a wider range of memory.
118
What is indexed addressing?
The operand is added to the value in an index register to calculate the final address — used for accessing arrays stored in consecutive memory locations.
119
Why is indexed addressing useful?
It allows efficient access to array elements without rewriting instructions for each index.
120
What are the advantages of the waterfall lifecycle model?
The waterfall model is very easy to understand and follow and each stage can only be started when the previous one completes. Waterfall is very easy to manage as the team is only focusing on one stage at a time. Waterfall has fewer production issues during development due to the amount of time invested in user requirements, analysis and design
121
Disadvantages of the waterfall lifecycle model
It can be very difficult or impossible for a project team to capture all of the user requirements in one go. Often the client doesn’t know what they want, and this would cause big issues for the rest of the process Waterfall is inflexible and doesn’t cope with changing requirements part way through the project. This can cause delays and significant cost increases as additional work will be required. Waterfall doesn’t work very well for very complex or long term projects as it would take too long to get through each stage of the process
122
When is waterfall lifecycle model suitable
Waterfall works well for small to medium projects. Waterfall is especially effective when the client has a very clear and precise picture of what they want to be developed.
123
Benefits of agile methodology
With an agile methodology, the client can take a product to market more quickly. Clients can receive incremental updates for the product. The final product has absolute certainty that it is what the client wanted as they are constantly involved with its development over each iteration
124
Disadvantages of agile methodology
Agile offers less predictability compared to waterfall for timings and costings as the process constantly repeats. Agile methodology requires higher time input from the client as they are constantly required for feedback and consultation at all stages of the development process. Agile methodology can easily go off track and a project can last well beyond the initial idea, meaning high costs and high time input.
125
Suitability of agile methodology
Agile is best suited to projects where the client has a good idea of what they want, but also has a lot of time they can invest into controlling the project and feeding back on it.
126
Benefits of extreme programming
Like agile, extreme programming can produce a product quickly for the client to be able to sell or use. The product is then quickly incremented for improvements and additional features. The project is constantly refactoring in response to continuous client feedback. This can save time and money for developing. The project is at lower risk of failure, as the client has guided the project with their continuous feedback.
127
Disadvantages of extreme programming
The project can be too code focused and not design focused so may not be the best possible product and extreme programming produces little to no documentation. If the developers are split geographically it can cause issues when it is time for code review
128
Benefits of spiral methodology
With the spiral methodology, a product can be developed at each cycle and more added to the system after each spiral. This means the user sees a system very early on. Spiral makes use of prototypes. The client is able to see the product being developed to ensure it is what they want.
128
Suitability of extreme programming
Extreme programming is best suited to projects where the client has a constantly changing set of requirements, but needs a product quickly to get to market and for the lowest possible price.
129
Disadvantages of spiral model
Like other agile methodologies, spiral can easily fall off track and the costs and time scales can escalate quickly. The client is needed to make a significant time investment for feedback and evaluation to steer the project. Spiral, again like other agile methodologies, produces poor quality documentation compared to waterfall.
130
Suitability of spiral model
Spiral is best suited to projects where the client can heavily invest their time in guiding what is being produced. The client should have a clear idea of what they want.
131
Benefits of RAD
Rapid application development allows a product to be made and put to market extremely quickly. The project is relevant to the client and the market by the time it is released. Like other agile methodologies, RAD produces iterative deliverables. This means improved versions can be released.
132
Disadvantages of RAD
Like other agile methodologies, RAD requires a heavy time input from the client to feedback and guide the project. The system focuses on delivering a product that is simply 'good enough', not perfect.
133
Suitability of RAD
RAD is best suited to large projects that have short time scales, where it is important to have a timely release to keep market relevance.