System Analysis Methods
1. Purpose of System Analysis
System analysis identifies what a system must do before it is designed or
built. It focuses on requirements, constraints, stakeholders, and
current system weaknesses.
2. Key Stages
Feasibility Study — assesses whether the project is viable
(technical, economic, legal, operational, time).
Requirements Elicitation — gathering user needs.
Requirements Specification — producing a formal document
(often a requirements specification).
Design — modelling the system before implementation.
3. Requirements Types
Functional requirements — what the system must do (e.g.,
“system must store customer records”).
Non-functional requirements — constraints (e.g., performance,
security, usability, reliability).
4. Methods of Investigation
Interviews — detailed but time-consuming.
Questionnaires — broad reach but shallow detail.
Observation — reveals real workflows but may alter behaviour.
Document analysis — examines existing forms, logs, manuals.
5. Modelling Tools
Data Flow Diagrams (DFDs) — show data movement.
Entity Relationship Diagrams (ERDs) — show database
structure.
Flowcharts — show process logic.
Use Case Diagrams — show interactions between users and
system.
6. Feasibility Types (TELOS)
Technical — do we have the tech?
Economic — cost vs benefit.
Legal — GDR, copyright, etc.
Operational — will users accept it?
Schedule — can it be done in time?
🔄 Writing and Following Algorithms
1. Algorithm Characteristics
Good algorithms are:
Correct — solve the problem.
Efficient — reasonable time/space.
Deterministic — same input → same output.
Finite — must terminate.
2. Pseudocode Conventions (OCR)
OCR uses a readable pseudocode style:
IF … THEN … ELSE … ENDIF
FOR … TO … NEXT
WHILE … ENDWHILE
REPEAT … UNTIL
ARRAY[x]
PROCEDURE / FUNCTION
3. Tracing Algorithms
You must be able to:
Follow pseudocode line-by-line.
Track variable values.
Understand loops and recursion.
Predict output.
4. Algorithmic Techniques
Linear search — check each item.
Binary search — divide and conquer (sorted lists only).
Bubble sort — repeated swaps.
Insertion sort — build sorted list gradually.
Merge sort — recursive divide and merge.
Dijkstra’s algorithm — shortest path.
A search* — heuristic-based pathfinding.
5. Complexity (Big-O)
O(1) — constant time.
O(n) — linear.
O(n²) — quadratic (e.g., bubble sort).
O(log n) — binary search.
O(n log n) — merge sort.
🧠 Programming Paradigms
1. Imperative Paradigm
Programs are sequences of instructions that change program state.
Includes:
Procedural programming — uses procedures/functions.
Low-level programming — direct hardware manipulation.
Strengths:
Easy to understand.
Good for step-by-step tasks.
2. Object-Oriented Paradigm (OOP)
Based on objects, classes, encapsulation, inheritance,
polymorphism.
Key ideas:
Encapsulation — hide internal state.
Inheritance — reuse behaviour.
Polymorphism — same interface, different behaviour.
Composition — objects contain other objects.
Strengths:
Models real-world entities.
Encourages modularity and reuse.
3. Functional Paradigm
Based on pure
Compare the imperative and functional programming paradigms.
Include at least two differences in how programs are structured and
executed.
9. Long answer (8 marks)
A company is developing a system that processes large volumes of data in
parallel. Discuss whether a functional or object-oriented paradigm
would be more suitable, justifying your answer with reference to features
of each paradigm.
⚙️Assembly Language — Practice Questions
10. Trace question (5 marks)
The following assembly code uses OCR-style instructions. State the final
value stored in R1.
Code
LDR R1, 3
LDR R2, 1
LOOP: ADD R1, R2
INC R2
CMP R2, 4
JLT LOOP
11. Addressing modes (4 marks)
Describe the difference between direct and indexed addressing, giving
an example of when indexed addressing would be used.
12. Long answer (8 marks)
Explain how conditional branching works in assembly language and
discuss how it can be used to implement iteration structures such as
loops. Include an example in your explanation.