1.2 Software and software development Flashcards
What is the Spiral Model as a software development lifecycle? (1.2.3)
- Manages risk-heavy
- Analyses requirements, pinpoints risk, creates iteration, evaluates next
- Specialists necessary, expensive
What is the definition of an algorithm, and what qualities do good algorithms
have? (1.2.3)
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
What is virtual memory? (1.2.1)
- Hard drive section acting as RAM
- When insufficient RAM space
- Currently unused sections moved 🡆 virtual
- Causes disk-thrashing, swaps too frequent
What is a virtual machine, and what is intermediate code? (1.2.1)
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 does the shortest-remaining-time scheduling algorithm work, and what are its
benefits and drawbacks? (1.2.1)
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
What are the 2 main categories of programming paradigms? (1.2.4)
Imperative: clearly specified actions performed
Declarative: states desired result, program determines best way to obtain with
user abstract
What is paging and segmentation? (1.2.1)
Paging: fixed-size physically-divided sections
Segmentation: logically-divided variable-sized following program structure
What is polymorphism in Object Oriented Programming? (1.2.4)
Enables different objects with same function & different behaviour, reusing
components
What does the BIOS do? (1.2.1)
- First program upon startup
- Runs test sequence before memory loads OS
- POST (Power-on self test) ensures hardware functionality
- Checks CPU clock
What are interrupts, and how does the Interrupt Service Routine work? (1.2.1)
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
What is the difference between applications, systems, and utility software, with
examples of each? (1.2.2)
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)
What is the Waterfall as a software development lifecycle? (1.2.3)
- Stages sequenced
- Clear structure, easy following
- Changes require stage revisits
- Low user involvement
What are linkers and loaders? (1.2.2)
Linkers:
- Software linking external modules / lbraries
- Static (copied directly)
- Dynamic (addresses to external library)
Loaders:
- OS-provided programs
- Fetches library from memory location
What are the conditions of open-source software, and what are its advantages /
disadvantages? (1.2.2)
Open-source:
- Used without license
- Distributed with source code
Advantages:
- Improved by community
- Modifiable
Disadvantages:
- Inadequate support, no manuals
- Lower security
What is inheritance in Object Oriented Programming? (1.2.4)
Subclass inherits all superclass methods / attributes, can have additional
properties
What are the stages of compilation? (1.2.2)
- Lexical analysis (whitespace/comment removal, keywords/identifiers 🡆 tokens)
- Syntax analysis (tokens checked against rules, syntax flags, abstract syntax tree)
- Code generation (produces machine code)
- Optimisation (reduces execution time, removes redundancy)
How does the multi-level feedback queues scheduling algorithm work, and what are
its benefits and drawbacks? (1.2.1)
How:
- Multiple queues
- Each queue ordered by priority
Benefits:
- Considers different job priorities
Drawbacks:
- Difficult implementation
What are the definitions for class, object, and attributes in Object Oriented
Programming? (1.2.4)
Class: template for object, defines state / behaviour
Object: Particular class instance
Attributes: Object’s properties
What are the advantages and disadvantages of OOP? (1.2.4)
Advantages:
- High reusability
- Relibability in encapsulation
- Easy maintenance
Disadvantages:
- Harder coding
- Unsuitable for smaller problems
Why are libraries used within programming? (1.2.2)
- Pre-compiled incorporable within others
- Error-free
- Saves time / effort developing & testing
- Reusable
How does the first-come-first-served scheduling algorithm work, and what are its
benefits and drawbacks? (1.2.1)
How:
- Jobs chronologically processed
Benefits:
- Straightforward implementation
Drawbacks:
- Job priority / urgency unaccounted
- Long processes make shorter wait
What is encapsulation in Object Oriented Programming? (1.2.4)
Creating public methods, making sure attributes not directly accessible /
editable to user.
What are the characteristics of assembly languages? (1.2.4)
- Low-level
- Mnemonics (abbreviating instruction)
- Processor-specific commands
- 1 assembly line 🡆 1 machine code line
What is the Rapid Application Development as a software development lifecycle?
(1.2.3)
- 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