Component 1.2: Software and Software Development

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/57

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

58 Terms

1
New cards

Basic Input Output System (BIOS)

A program that initializes and tests the hardware of a computer system and loads the operating system.

2
New cards

Device Drivers

Software programs that allow the operating system to control and communicate with peripheral devices such as printers, scanners, and keyboards.

3
New cards

Distributed Operating Systems

Operating systems that are spread over multiple servers on a network, acting as a single system to provide increased reliability and scalability.

4
New cards

Embedded Operating Systems

Specialized operating systems designed to run on devices with limited resources, such as smartphones, IoT devices, and embedded systems.

5
New cards

First Come First Served (FCFS)

A scheduling algorithm where processes are dealt with in the order they arrive, without considering their execution time or priority.

6
New cards

Intermediate Code

Code that is partly translated between a high-level programming language and machine language, often used in virtual machines and interpreters.

7
New cards

Interrupts

Signals from hardware, software, or clocks that alert the CPU to handle a specific event or request.

8
New cards

Interrupt Service Routines (ISR)

Routines that handle interrupts if they have a higher priority than the current task being executed by the CPU.

9
New cards

Memory Management

The efficient organization and allocation of main memory (RAM) to programs, ensuring optimal utilization and preventing conflicts.

10
New cards

Multi-level Feedback Queues

A scheduling algorithm that uses multiple queues with different priorities to schedule processes, allowing for a balance between responsiveness and fairness.

11
New cards

Multi-tasking Operating Systems

Operating systems capable of running multiple tasks or processes simultaneously, providing the illusion of parallel execution.

12
New cards

Multi-User Operating Systems

Operating systems designed to support multiple users simultaneously, typically with a mainframe computer and multiple terminals or remote access.

13
New cards

Operating System

A set of programs that manage the resources and operations of a computer system, including hardware, software, and user interactions.

14
New cards

Paging

A memory management technique that partitions memory into fixed-sized physical divisions called pages, allowing for efficient allocation and retrieval of data.

15
New cards

Real Time Operating Systems

Operating systems designed for applications that require processing and responding to events within strict time constraints, ensuring timely and predictable execution.

16
New cards

Round-Robin

A scheduling algorithm where each process is given an equal time slice or quantum, allowing for fair sharing of CPU time among multiple processes.

17
New cards

Scheduling

The process of allocating processor time to each application or process for efficient multitasking, ensuring fairness and responsiveness.

18
New cards

Segmentation

A memory management technique that partitions memory into variable-sized logical divisions called segments, allowing for flexible allocation and protection of data.

19
New cards

Shortest Job First (SJF)

A scheduling algorithm that selects the process with the shortest estimated running time, minimizing waiting time and improving overall system performance.

20
New cards

Shortest Remaining Time

A scheduling algorithm that selects the process with the shortest estimated time remaining to complete, ensuring efficient utilization of CPU time.

21
New cards

Virtual Machines

Instances where software emulates the functionality of a physical machine, allowing multiple operating systems or environments to run on a single physical machine.

22
New cards

Virtual Memory

An allocated area of secondary storage, such as a hard disk, used to supplement the available physical memory (RAM) by temporarily storing inactive job pages.

23
New cards

Applications Generation Applications

Programs that enable users to create or develop specific applications, providing tools and frameworks for software development.

24
New cards

Assembler

A translator that converts assembly language, a low-level symbolic language, into machine code, which can be directly executed by the computer's hardware.

25
New cards

Closed Source

Proprietary software that restricts access to its source code, making it unavailable for modification or redistribution by users.

26
New cards

Code Generation

The final stage of compilation, where the compiler translates the intermediate code into equivalent machine code that can be executed by the computer.

27
New cards

Compilation

The process of converting high-level language source code, such as C++ or Java, into machine code that can be understood and executed by the computer.

28
New cards

Compilers

Translators that convert high-level programming languages into machine code, enabling the execution of programs on a computer.

29
New cards

Interpreters

Translators that check the source program for syntax errors and execute it line by line, converting and executing the code on the fly.

30
New cards

Lexical Analysis

The first stage of compilation, where the source code is scanned to remove spaces, comments, and identify tokens for further processing.

31
New cards

Libraries

Collections of pre-compiled programs or modules that provide reusable functions and resources, which can be loaded and used by other programs.

32
New cards

Linkers

Programs that link object code files and modules together, resolving references and creating a single executable program or library.

33
New cards

Loaders

Programs that load executable object programs and required libraries into memory, preparing them for execution by the computer's hardware.

34
New cards

Open Source

Software that provides freely available source code, allowing users to view, modify, and distribute the code according to open-source licenses.

35
New cards

Optimization

The process of making object code as efficient as possible by removing redundancies, improving performance, and reducing resource consumption.

36
New cards

Syntax Analysis

The second stage of compilation, where the compiler checks the statements and tokens of the source code for syntax errors and structural correctness.

37
New cards

Translator

A program that converts code from one computer language to another, enabling interoperability and portability of software across different platforms.

38
New cards

Utilities

System software programs that provide various tools and functionalities for maintenance, optimization, diagnostics, and other system-related tasks.

39
New cards

Agile Methodologies

Iterative software development processes that focus on producing incremental prototypes, embracing change, and delivering value to customers.

40
New cards

Extreme Programming

A responsive Agile Methodology that emphasizes short development cycles, frequent releases, and close collaboration between developers and customers.

41
New cards

Rapid Application Development

A software development method that enables quick responses to changes in technologies and requirements, emphasizing iterative and prototyping approaches.

42
New cards

Spiral Model

An iterative version of the Waterfall model, where development stages are refined and repeated in cycles, incorporating feedback and producing prototypes.

43
New cards

Waterfall Lifecycle

A software development approach where development stages are completed one at a time in a linear order, with each stage building upon the previous one.

44
New cards

Assembly Language

A low-level programming language that closely resembles machine code, using mnemonic instructions to represent operations and registers.

45
New cards

Attributes

Data recorded as variables associated with objects, defining their characteristics or properties.

46
New cards

Classes

Templates or blueprints that define attributes and methods to create objects, encapsulating data and behaviors within a single entity.

47
New cards

Direct Addressing

The simplest addressing mode in assembly language, where the operand directly specifies the memory address of the data.

48
New cards

Encapsulation

A programming concept that maintains data integrity by allowing only class methods to access and modify the data, hiding the internal implementation details.

49
New cards

Immediate Addressing

An addressing mode in assembly language where the operand contains constant data directly in the address field of the instruction.

50
New cards

Indexed Addressing

An addressing mode in assembly language where the operand address is calculated by adding an index or offset to a base address, allowing for flexible data access.

51
New cards

Indirect Addressing

An addressing mode in assembly language where the operand stores the address of the required data, allowing for dynamic and indirect data access.

52
New cards

Inheritance

A programming concept where subclasses inherit methods and attributes from a parent class, promoting code reuse and hierarchical organization of classes.

53
New cards

Methods

Program subroutines or functions that represent actions or behaviors that objects can perform, encapsulating reusable code within a class.

54
New cards

Object-Oriented Languages

Programming languages that organize code around objects, which are instances of classes, with attributes and behaviors defining their characteristics and actions.

55
New cards

Objects

Instances of a class that have defined attributes and behaviors, representing specific entities or concepts within a program or system.

56
New cards

Polymorphism

A programming concept where objects of different classes can be treated as objects of a common superclass, allowing them to use the same method to perform an action.

57
New cards

Procedural Languages

High-level programming languages that use self-contained functions and procedures to structure code and solve problems, focusing on step-by-step execution.

58
New cards

Programming Paradigms

Different styles or approaches to computation and programming, chosen based on the specific problem and requirements of the software being developed.