1.2 Software and software development Flashcards

1
Q

What is the Spiral Model as a software development lifecycle? (1.2.3)

A
  • Manages risk-heavy
  • Analyses requirements, pinpoints risk, creates iteration, evaluates next
  • Specialists necessary, expensive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the definition of an algorithm, and what qualities do good algorithms
have? (1.2.3)

A

Algorithm: set instructions for solving a problem

Qualities:

  • Clearly defined inputs
  • Always produces valid output
  • Deals with invalid inputs
  • Reaches stopping condition
  • Well-documented & well-commented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is virtual memory? (1.2.1)

A
  • Hard drive section acting as RAM
  • When insufficient RAM space
  • Currently unused sections moved 🡆 virtual
  • Causes disk-thrashing, swaps too frequent
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a virtual machine, and what is intermediate code? (1.2.1)

A

Virtual machine: software implementation of computer system, can be environment
with translator for intermediate code.

Intermediate code: code halfway between machine / object code, independent of
processor architecture, longer execution than low-level.

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

How does the shortest-remaining-time scheduling algorithm work, and what are its
benefits and drawbacks? (1.2.1)

A

How:

  • Queue storing jobs processed by remaining completion time
  • Least completion time first

Benefits:

  • Reduces waiting job amount

Drawbacks:

  • Job time estimation required
  • Job priority / urgency unaccounted
  • Long waiting for big tasks if many short-time jobs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the 2 main categories of programming paradigms? (1.2.4)

A

Imperative: clearly specified actions performed

Declarative: states desired result, program determines best way to obtain with
user abstract

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

What is paging and segmentation? (1.2.1)

A

Paging: fixed-size physically-divided sections

Segmentation: logically-divided variable-sized following program structure

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

What is polymorphism in Object Oriented Programming? (1.2.4)

A

Enables different objects with same function & different behaviour, reusing
components

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

What does the BIOS do? (1.2.1)

A
  • First program upon startup
  • Runs test sequence before memory loads OS
  • POST (Power-on self test) ensures hardware functionality
  • Checks CPU clock
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are interrupts, and how does the Interrupt Service Routine work? (1.2.1)

A

Interrupts: signals indicating process requires attention

ISR:

  • Checks interrupt register at FDE end
  • If prioritised, current contents transferred 🡆 stack
  • ISR loaded, flag signals start / end
  • Process repeated until no more, contents popped back
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the difference between applications, systems, and utility software, with
examples of each? (1.2.2)

A

Application: used by end-user, performs 1 specific task (e.g. word processor,
browser)

Systems: manages computer resources, ensures performance (e.g. OS, drivers,
utility)

Utility: maintains high performance, specific function (e.g. defragmentation,
backup, compression)

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

What is the Waterfall as a software development lifecycle? (1.2.3)

A
  • Stages sequenced
  • Clear structure, easy following
  • Changes require stage revisits
  • Low user involvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are linkers and loaders? (1.2.2)

A

Linkers:

  • Software linking external modules / lbraries
  • Static (copied directly)
  • Dynamic (addresses to external library)

Loaders:

  • OS-provided programs
  • Fetches library from memory location
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the conditions of open-source software, and what are its advantages /
disadvantages? (1.2.2)

A

Open-source:

  • Used without license
  • Distributed with source code

Advantages:

  • Improved by community
  • Modifiable

Disadvantages:

  • Inadequate support, no manuals
  • Lower security
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is inheritance in Object Oriented Programming? (1.2.4)

A

Subclass inherits all superclass methods / attributes, can have additional
properties

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

What are the stages of compilation? (1.2.2)

A
  1. Lexical analysis (whitespace/comment removal, keywords/identifiers 🡆 tokens)
  2. Syntax analysis (tokens checked against rules, syntax flags, abstract syntax tree)
  3. Code generation (produces machine code)
  4. Optimisation (reduces execution time, removes redundancy)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

How does the multi-level feedback queues scheduling algorithm work, and what are
its benefits and drawbacks? (1.2.1)

A

How:

  • Multiple queues
  • Each queue ordered by priority

Benefits:

  • Considers different job priorities

Drawbacks:

  • Difficult implementation
18
Q

What are the definitions for class, object, and attributes in Object Oriented
Programming? (1.2.4)

A

Class: template for object, defines state / behaviour

Object: Particular class instance

Attributes: Object’s properties

19
Q

What are the advantages and disadvantages of OOP? (1.2.4)

A

Advantages:

  • High reusability
  • Relibability in encapsulation
  • Easy maintenance

Disadvantages:

  • Harder coding
  • Unsuitable for smaller problems
20
Q

Why are libraries used within programming? (1.2.2)

A
  • Pre-compiled incorporable within others
  • Error-free
  • Saves time / effort developing & testing
  • Reusable
21
Q

How does the first-come-first-served scheduling algorithm work, and what are its
benefits and drawbacks? (1.2.1)

A

How:

  • Jobs chronologically processed

Benefits:

  • Straightforward implementation

Drawbacks:

  • Job priority / urgency unaccounted
  • Long processes make shorter wait
22
Q

What is encapsulation in Object Oriented Programming? (1.2.4)

A

Creating public methods, making sure attributes not directly accessible /
editable to user.

23
Q

What are the characteristics of assembly languages? (1.2.4)

A
  • Low-level
  • Mnemonics (abbreviating instruction)
  • Processor-specific commands
  • 1 assembly line 🡆 1 machine code line
24
Q

What is the Rapid Application Development as a software development lifecycle?
(1.2.3)

A
  • Iterative, partially functioning prototypes
  • User requirements through focus groups
  • Incomplete solution given as trial
  • User feedback generates next
  • Final prototype fully meets requirements
  • Used where unclear requirements
  • Potential code inefficiency
25
Q

What are the 4 modes of addressing memory? (1.2.4)

A
  • Immediate: operand actual value for instruction
  • Direct: gives value’s address
  • Indirect: gives register with value’s address
  • Indexed: address given by index register addition
26
Q

What are device drivers? (1.2.1)

A
  • Programs allowing OS ⇔ hardware interaction
  • Specific to OS & computer architecture
27
Q

What is an assembler and how does it work? (1.2.2)

A
  • Assembly low-level platform-specific language
  • Assembles turn assembly 🡆 machine code
  • 1 line assembly 🡆 1 line machine code
28
Q

How does the shortest-job-first scheduling algorithm work, and what are its
benefits and drawbacks? (1.2.1)

A

How:

  • Queue storing jobs ordered by completion time requirement
  • Longest jobs serviced at end

Benefits:

  • Waiting time reduced 🡆 suitable for multi-user OS

Drawbacks:

  • Job priority / urgency unaccounted
  • Long waiting for big tasks if many short-time jobs
29
Q

How does the round-robin scheduling algorithm work, and what are its benefits
and drawbacks? (1.2.1)

A

How:

  • Each job has time slice
  • Once slice used, added back with another slice

Benefits:

  • All jobs attended to

Drawbacks:

  • Longer jobs have longer runtime
  • Job priority / urgency unaccounted
30
Q

What do the HLT, DAT, BRZ, BRP, and BRA instructions do? (1.2.4)

A

HLT: Stops program at line, prevents rest

DAT: Reserve location for data after completion

BRZ: Branches if accumulator = zero

BRP: Branches if accumulator = positive

BRA: Branches regardless

31
Q

What is an interpreter and how does it work? (1.2.2)

A
  • Translates & executes code line-by-line
  • Produces error if erronous line
  • Slower than compiled
  • Can be multiplatform
  • Useful for testing
32
Q

What is Extreme Programming as a software development lifecycle? (1.2.3)

A
  • Agile model
  • Team: programmers, representative end-user
  • User anecdotes determine system requirements
  • Produces high-quality & highly-usable software
  • Documentation less qualitative
33
Q

What are the conditions of closed-source software, and what are its advantages /
disadvantages? (1.2.2)

A

Closed-source: license required, inaccessible source code

Advantages:

  • Regular updates / maintenance
  • Expert support / manuals
  • High professional security

Disadvantages:

  • License restricts use
  • Unmodifiable, individual improvements impossible
34
Q

What are the 4 types of testing in a software development lifecycle? (1.2.3)

A
  • Alpha (in-house by team)
  • Beta (end-users, feedback)
  • White-box (all possible routes, by team)
  • Black-box (traces end-user IO, unaware of structure)
35
Q

What functions and purposes do operating systems fulfill? (1.2.1)

A
  • Memory management
  • Scheduling algorithms
  • File management
  • Peripheral management
  • Interrupt handling
  • User management
  • User interface
36
Q

How do the 5 types of operating systems differ? (1.2.1)

A

Distributed:

  • Task load across multiple device processors

Embedded:

  • Performs small range of specific tasks
  • Catered towards specific device
  • Limited functionality, difficulty updating
  • Consumes less power

Multi-tasking:

  • Enables user simulatenous task-handling
  • Time-slicing, quick switching between programs in memory

Multi-user:

  • Multiple users, 1 computer
  • Scheduling allocating fair process times between jobs

Real-time:

  • Time-critical computer systems
  • Designed performance in guaranteed time-frame
37
Q

What is a compiler and how does it work? (1.2.2)

A
  • Translates high-level into machine code at once
  • Initial compilation process longer
  • Platform-specific
  • Runnable without translator
38
Q

What are the characteristics of procedural languages? (1.2.4)

A
  • Simple implementation
  • Traditional data structures
  • Sometimes inefficient
  • Structured programming (sequence / selection / iteration / recursion)
39
Q

What are the advantages and disadvantages of each software development lifecycle
methodology? (1.2.3)

A

Waterfall:
* Advantages: straightforward, clearly documented
* Disadvantages: lacks flexibility, no risk analysis, limited user involvement
Agile:
* Advantages: high-quality, flexibility, user input
* Disadvantages: poor communication, consistent interaction
Extreme:
* Advantages: high quality & usability
* Disadvantages: high cost, interdependency
Spiral:
* Advantages: risk mitigation, flexible, prototyping
* Disadvantages: expertise & prototyping expensive, lacking efficiency
RAD:
* Advantages: flexibility, highly usable, quick
* Disadvantages: poor documentation, code quality reduced

40
Q

What is the Agile Methodologies as a software development lifecycle? (1.2.3)

A
  • Collection improving SDLC flexibility
  • Adapts to user requirement changes quickly
  • Can have different stages developed simulatenously
  • Prototype delivered earlier, iteratively
  • Less documentation focus
  • User satisfaction prioritised
41
Q

What are opcode and operand? (1.2.4)

A

Opcode: specifies instruction performed & addressing mode

Operand: holds value for data to be instructed upon