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
What are the 4 modes of addressing memory? (1.2.4)
* 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
What are device drivers? (1.2.1)
* Programs allowing OS ⇔ hardware interaction * Specific to OS & computer architecture
27
What is an assembler and how does it work? (1.2.2)
* Assembly low-level platform-specific language * Assembles turn assembly 🡆 machine code * 1 line assembly 🡆 1 line machine code
28
How does the shortest-job-first scheduling algorithm work, and what are its benefits and drawbacks? (1.2.1)
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
How does the round-robin scheduling algorithm work, and what are its benefits and drawbacks? (1.2.1)
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
What do the HLT, DAT, BRZ, BRP, and BRA instructions do? (1.2.4)
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
What is an interpreter and how does it work? (1.2.2)
* Translates & executes code line-by-line * Produces error if erronous line * Slower than compiled * Can be multiplatform * Useful for testing
32
What is Extreme Programming as a software development lifecycle? (1.2.3)
* Agile model * Team: programmers, representative end-user * User anecdotes determine system requirements * Produces high-quality & highly-usable software * Documentation less qualitative
33
What are the conditions of closed-source software, and what are its advantages / disadvantages? (1.2.2)
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
What are the 4 types of testing in a software development lifecycle? (1.2.3)
* 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
What functions and purposes do operating systems fulfill? (1.2.1)
* Memory management * Scheduling algorithms * File management * Peripheral management * Interrupt handling * User management * User interface
36
How do the 5 types of operating systems differ? (1.2.1)
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
What is a compiler and how does it work? (1.2.2)
* Translates high-level into machine code at once * Initial compilation process longer * Platform-specific * Runnable without translator
38
What are the characteristics of procedural languages? (1.2.4)
* Simple implementation * Traditional data structures * Sometimes inefficient * Structured programming (sequence / selection / iteration / recursion)
39
What are the advantages and disadvantages of each software development lifecycle methodology? (1.2.3)
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
What is the Agile Methodologies as a software development lifecycle? (1.2.3)
* 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
What are opcode and operand? (1.2.4)
Opcode: specifies instruction performed & addressing mode Operand: holds value for data to be instructed upon