Software Development Fundamentals

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which of the following is a primary advantage of the agile method?

  • Ease of scaling
  • Static requirements
  • Rapid development (correct)
  • Large documentation

Name one typical example of a desktop application.

Word processor

Waterfall model is suitable for small scale systems.

False (B)

A mobile application is typically developed for a ______ device.

<p>mobile</p> Signup and view all the answers

Match the following types of applications with their descriptions:

<p>Desktop Application = Installed on a single computer Web Application = Used over the Internet Mobile Application = Installed on mobile devices Agile Method = Adopts incremental development</p> Signup and view all the answers

Which programming languages can be used for developing web applications?

<p>HTML, JavaScript, and PHP (A)</p> Signup and view all the answers

In the agile method, the first version of the system typically contains all functions.

<p>False (B)</p> Signup and view all the answers

What is the main phase involved in system analysis?

<p>Exploring current situation and defining requirements</p> Signup and view all the answers

What is a characteristic of compiled programs?

<p>They are faster to execute than interpreted programs. (A)</p> Signup and view all the answers

All programming languages fit into only one of the three categories: Machine Language, Assembly Language, or High-level Language.

<p>True (A)</p> Signup and view all the answers

An example of a _____ language is Python.

<p>High-level</p> Signup and view all the answers

What type of software is specifically designed to address user needs in a particular field or occupation?

<p>Specialized application</p> Signup and view all the answers

Match the following software types with their definitions:

<p>OEM Software = Sold and bundled with hardware Shareware = Trial software available for a limited time Freeware = Free software for personal use Open-Source Software = Software whose source code is available for modification</p> Signup and view all the answers

Which of the following is NOT a general-purpose application?

<p>Custom Database for a Specific Company (B)</p> Signup and view all the answers

Demo software provides full access to all features of the program without limitations.

<p>False (B)</p> Signup and view all the answers

What is the role of a linker in the hierarchy of program execution?

<p>To convert object code into executable code.</p> Signup and view all the answers

What is the first phase of the software development life cycle?

<p>Planning (C)</p> Signup and view all the answers

The problem analysis phase involves writing program specifications.

<p>True (A)</p> Signup and view all the answers

What is the purpose of the design phase in the software development life cycle?

<p>To develop a detailed logic plan and devise a method of solution.</p> Signup and view all the answers

In the testing and integration phase, programmers focus on finding and correcting __________.

<p>errors</p> Signup and view all the answers

Which of the following tools can be used during the design phase?

<p>Flowcharts (D)</p> Signup and view all the answers

Match each phase of the software development life cycle with its primary focus:

<p>Planning = Define problem statement Problem Analysis = Write program specifications Design = Develop logic plan Implementation = Create user interface and code</p> Signup and view all the answers

The implementation phase occurs before the design phase in the software development life cycle.

<p>False (B)</p> Signup and view all the answers

What is one key activity during the testing and integration phase?

<p>Debugging the program</p> Signup and view all the answers

What is the purpose of the Power-On Self-Test (POST) in the boot sequence?

<p>To conduct a self-check of hardware components (A)</p> Signup and view all the answers

BIOS and UEFI are responsible for initializing essential hardware components and identifying the boot device.

<p>True (A)</p> Signup and view all the answers

What is the main function of the boot loader?

<p>To load the operating system kernel into memory</p> Signup and view all the answers

The ______ is responsible for managing system resources and providing essential services.

<p>kernel</p> Signup and view all the answers

Match the following components with their correct descriptions:

<p>POST = Self-check of hardware components BIOS/UEFI = Firmware that initializes hardware Boot Loader = Loads the operating system kernel Kernel = Core part of the operating system</p> Signup and view all the answers

Which step follows the BIOS/UEFI initialization during the boot process?

<p>Boot Loader Execution (D)</p> Signup and view all the answers

The final step of the boot process is loading user space processes and services.

<p>False (B)</p> Signup and view all the answers

What follows the loading of the operating system kernel?

<p>Init Process</p> Signup and view all the answers

What component of an operating system is responsible for deciding which process runs on the CPU next?

<p>CPU Dispatcher (A)</p> Signup and view all the answers

The First-Come, First-Served scheduling algorithm may lead to a situation where short processes are delayed by long processes.

<p>True (A)</p> Signup and view all the answers

What is a context switch?

<p>A process of saving the state of the currently running process and loading the state of a new process.</p> Signup and view all the answers

In Round Robin scheduling, each process is allowed to run for a limited amount of time called a _____ or quantum.

<p>time-slice</p> Signup and view all the answers

Match the CPU scheduling algorithms with their characteristics:

<p>First-Come, First-Served = Processes run in the order they arrive Shortest Job First = Shortest job is run first Round Robin = Processes take turns running in a cyclic order Priority Scheduling = Processes are scheduled based on priority level</p> Signup and view all the answers

Which scheduling algorithm aims to minimize total processing time but may lead to starvation for longer processes?

<p>Shortest Job First (C)</p> Signup and view all the answers

In multilevel queue scheduling, processes are treated equally regardless of their type.

<p>False (B)</p> Signup and view all the answers

What is one disadvantage of the Shortest Job First scheduling algorithm?

<p>It may lead to starvation for longer processes.</p> Signup and view all the answers

What is the primary purpose of Secure Boot?

<p>To ensure only signed and trusted boot components run (D)</p> Signup and view all the answers

Fast Boot involves only the traditional cold boot method.

<p>False (B)</p> Signup and view all the answers

What state does a process enter when it is waiting for an event to occur?

<p>Waiting or blocked</p> Signup and view all the answers

A process is in the ______ state when it has been initialized but is waiting to be executed.

<p>Ready</p> Signup and view all the answers

Match the process states with their descriptions:

<p>New = Initial state when a process is first created Running = Process is being executed on a CPU Terminated = Process has finished execution and resources are released Suspended = Optionally indicates a state where the process is paused</p> Signup and view all the answers

Which boot process allows the operating system to load from external storage devices?

<p>Boot from External Media (C)</p> Signup and view all the answers

Throughput measures how responsive a system feels to users.

<p>False (B)</p> Signup and view all the answers

What happens when a process enters the terminated state?

<p>The process finishes its execution and resources are released.</p> Signup and view all the answers

Flashcards

Planning (Problem Definition)

The first phase of the software development life cycle (SDLC) where the problem is clearly defined and the boundaries are established. It involves understanding the problem statement, requirements, and desired outcomes. This phase lays the groundwork for the entire development process.

Problem Analysis

The second phase of the SDLC where detailed specifications are created for the program's inputs, processes, outputs, and user interface. It involves a thorough analysis of the problem to accurately describe the required functionality and data flow.

Design

The third phase of the SDLC where the logical plan for the program is developed using tools like pseudo-code or flowcharts. It involves breaking down the program into modules and designing algorithms for each one.

Implementation

The fourth phase in the SDLC where the program is actually coded using a programming language. It involves creating the user interface and writing code that implements the algorithms and logic outlined in the design phase. It also includes internal documentation for better understanding of the code.

Signup and view all the flashcards

Testing and Integration

The fifth phase of the SDLC where the program is tested rigorously to find and fix errors (debugging) until it operates correctly and has safeguards to ensure desired results. This phase involves testing each module individually and then integrated together to ensure the program meets all requirements.

Signup and view all the flashcards

Waterfall Model

A software development model where the process is divided into distinct, sequential phases, often used for large-scale systems or projects distributed across multiple locations.

Signup and view all the flashcards

Agile Method

A software development methodology that emphasizes iterative development cycles, prioritizing rapid delivery of functional software, and adapting to changing requirements.

Signup and view all the flashcards

Desktop Application

A software application that can be installed and executed on a single computer system.

Signup and view all the flashcards

Web Application

A software application designed to be accessed and used through a web browser, typically running on a client-server architecture.

Signup and view all the flashcards

Mobile Application

A software application specifically designed to be installed and used on mobile devices like smartphones or tablets.

Signup and view all the flashcards

System Analysis

The initial stage of software development where the existing system is analyzed, and the requirements for the new system are defined.

Signup and view all the flashcards

Design Phase

The stage where the system design is developed, outlining how the requirements will be implemented and converted into a working system.

Signup and view all the flashcards

Development Phase

The process of building and implementing the software system based on the defined design and requirements.

Signup and view all the flashcards

Machine Language

A type of programming language that directly interacts with the computer's hardware and uses binary code (0s and 1s). It's the most basic level of programming.

Signup and view all the flashcards

Assembly Language

A programming language that uses mnemonics (short codes) to represent machine instructions, making it easier for humans to understand. It's still a low-level language.

Signup and view all the flashcards

High-level Language (HLL)

A programming language designed for humans, using English-like keywords and structures. It requires a translator (compiler or interpreter) to convert the code into machine-readable instructions.

Signup and view all the flashcards

Compiler

A software program that translates an entire program written in a high-level language into machine code, allowing the computer to execute it. It's like a language interpreter for programmers.

Signup and view all the flashcards

Interpreter

A software program that translates one line of code at a time in a high-level language into machine code. It's often used for interactive programming.

Signup and view all the flashcards

Program Translation

The process of converting a program from one level of programming to another, involving steps like using a compiler or interpreter to translate the code into machine- understandable instructions.

Signup and view all the flashcards

Source Code

A sequence of instructions written in a programming language that a computer can understand and execute. It's the core of a software program.

Signup and view all the flashcards

Executable Code

A version of the program that has been translated into machine code by a compiler or interpreter, ready for execution.

Signup and view all the flashcards

Process Scheduling

The process of managing the execution of multiple processes in a system, focusing on CPU efficiency and fair execution for all processes.

Signup and view all the flashcards

Boot from External Media

The operating system can boot the computer from external storage devices like USB drives or external hard drives. This is helpful for troubleshooting, installing new software, or running a portable operating system.

Signup and view all the flashcards

Secure Boot

A security feature in modern BIOS that ensures only signed and trusted bootloaders and operating system components are allowed. This prevents malicious code from loading.

Signup and view all the flashcards

Fast Boot/Hybrid Boot

A combination of traditional cold boot (full startup) and hibernation. The operating system saves its state to disk during shutdown, allowing for significantly faster startup times.

Signup and view all the flashcards

Waiting/blocked State

A process is waiting for an event like completing I/O operations or resource availability before it can continue.

Signup and view all the flashcards

Terminated State

A process has successfully completed its execution and no longer needs resources.

Signup and view all the flashcards

Ready State

A process is ready to be executed but is waiting for its turn to be assigned a processor.

Signup and view all the flashcards

Running State

A process is being actively executed by the CPU.

Signup and view all the flashcards

What is OS boot?

The process of starting up a computer and loading the operating system into memory.

Signup and view all the flashcards

What is POST (Power-On Self-Test)?

A self-check performed by the computer hardware during the booting process to ensure that all essential components are functioning properly.

Signup and view all the flashcards

What is BIOS/UEFI?

Firmware stored on the motherboard (ROM/Flash memory) that provides low-level communication between the operating system and hardware. It initializes hardware components and identifies the boot device.

Signup and view all the flashcards

What is a boot loader?

A small program on the boot device that loads the operating system kernel into memory.

Signup and view all the flashcards

What is the operating system kernel?

The core part of the operating system that manages system resources and provides essential services.

Signup and view all the flashcards

What is the 'Init Process'?

The process of initializing essential system processes and services by the kernel after it's loaded into memory.

Signup and view all the flashcards

What is 'user space'?

The space in memory where applications and user interfaces run. It's activated after system processes are initialized during the boot process.

Signup and view all the flashcards

What is the login prompt or GUI?

The final stage of the boot process where the user is presented with a login prompt (text-based) or a graphical user interface (GUI) to access the operating system.

Signup and view all the flashcards

CPU Dispatcher

The component of an operating system responsible for deciding which process will run next on the CPU by selecting from a pool of ready processes, performing context switching to save and load process states, and allocating the CPU to the chosen process.

Signup and view all the flashcards

First-Come, First-Served (FCFS)

A CPU scheduling algorithm that uses a first-in, first-out (FIFO) queue for process execution, meaning the process waiting longest gets executed first. It's simple and fair.

Signup and view all the flashcards

Shortest Job First (SJF)

This scheduling algorithm selects the process with the shortest estimated running time to execute next. It aims to minimize the average waiting time for all processes.

Signup and view all the flashcards

Round Robin (RR)

A preemptive CPU scheduling algorithm where each process gets a fixed time slice, called a quantum, to run before it's interrupted. This provides a fairer distribution of CPU time.

Signup and view all the flashcards

Priority Scheduling

A scheduling algorithm that assigns priorities to different processes, allowing higher-priority processes to be executed first. This can be used to prioritize important tasks.

Signup and view all the flashcards

Multilevel Queue Scheduling

A scheduling technique that divides processes into multiple queues based on their priority or characteristics, allowing for different scheduling policies within each queue.

Signup and view all the flashcards

Convoy Effect

A situation where a short process experiences a long wait time because it's stuck behind a longer process in a First-Come, First-Served (FCFS) scheduling queue.

Signup and view all the flashcards

Starvation

A situation in Shortest Job First (SJF) scheduling where a longer process might never get executed because shorter processes are always prioritized, leading to starvation of the longer process

Signup and view all the flashcards

Study Notes

Computer System Introduction

  • A computer system comprises interconnected units: input unit, memory unit, control unit, ALU (Arithmetic Logic Unit), registers, and output unit.
  • These units work together to process input data into output information.
  • Mobile devices, often classified as computers, are commonplace and play an increasingly important role in global communication.

A World of Information

  • Computers are ubiquitous, found in various settings like work, school, and homes.
  • Computers serve as primary tools for local and global communication worldwide.
  • ATMs (Automated Teller Machines), onboard navigation systems in vehicles, and leisure activities (like gaming and listening to music) are typical examples of embedded computer applications.

What Is a Computer?

  • A computer is an electronic device governed by instructions stored within its memory.
  • Computers can process data according to specified rules, producing and storing results for future use.

Data and Information

  • Computers process raw data into usable information.
  • Data is unprocessed information, including text, numbers, images, audio, and video.
  • Information carries meaning useful to humans.

Computer Characteristics

  • Computers operate at high speeds using electronic circuits.
  • Modern computer components are generally reliable and rarely fail.
  • Consistently, identical inputs and processes will produce the same results.
  • Computers rapidly transfer data between storage and memory for processing and future storage.
  • Computers can communicate with other computers, enabling resource sharing.

Computer Misuse

  • Prolonged or improper use of computers can lead to health problems affecting hands, wrists, elbows, eyes, neck, and back.
  • Poor workplace design, posture, and inadequate breaks can increase health risks.
  • Computer addiction and technology overload are behavioral health concerns.
  • Violations of privacy can occur through misuse or disclosure of personal information.

Networks and the Internet

  • A computer network connects multiple computers and devices via communications.
  • Networks allow shared resources (hardware, software, data, and information).
  • The server controls resources, while clients (workstations) request them.
  • The Internet is the world's largest computer network, connecting numerous businesses, government agencies, and individuals.

The Internet

  • People use the Internet daily for a variety of reasons, including communication, research, shopping, banking, online training, and entertainment (e.g., online games, video watching).
  • Downloading music, photos, and video sharing are common online activities.
  • Instant messaging (IM) allows real-time interactions, similar to group discussions.
  • Web sites, pages are interconnected, and a collection of related pages forms a website.
  • Informal websites, such as blogs, consist of dated articles.
  • A website that lets people use software, such as sending emails or preparing documents, is called a web Application.

Computer System Components

  • A computer has various electronic, electronic, and mechanical components, called hardware.
  • Input devices (keyboard, mouse, microphone, scanner, web cam) allow data entry.
  • Output devices (printer, monitor, speakers) display information.
  • The system unit, a housing for the computer's circuitry, usually includes a motherboard.
  • Storage devices (hard drives, optical discs) hold data, instructions, and information permanently.
  • Communications devices (modems) allow computer-to-computer interaction via various media.

System Unit

  • The system unit acts as a housing for the computer's electronic parts, and is typically attached to a circuit board referred to as a motherboard.
  • Key components include the processor (CPU) and memory.
  • Processors interpret and execute instructions.
  • Memory stores instructions and data.

Storage Devices

  • Storage devices hold data, instructions, and information for later use.
  • These devices include USB drives, hard drives, and memory cards.
  • Storage devices record or retrieve items to and from storage media.

Communications Devices

  • Communications devices enable a computer to send and receive information to other computers or mobile devices.
  • Modems and other communication devices use different transmission media, including cables, telephone lines, and wireless connections (e.g., cellular, satellite).

Operating System Introduction

  • The operating system (OS) facilitates communication between computer hardware and applications, enabling efficient user interaction.
  • Basic functions include process management (managing different programs), memory management (allocating memory to running processes), file system management (organizing files on storage), and device management (controlling communication with hardware devices)

Key Components of an Operating System

  • Kernel: The operating system's core that manages hardware and provides fundamental services
  • Device Drivers: Software to handle communications between the OS and hardware devices
  • File System: Manages the storage, organization, and retrieval of data

Shell/User Interface

  • The user interface allows users to communicate with the operating system; it can be a command-line interface or a graphical user interface.
  • Command-line interfaces (CLIs) help experienced users with automation tasks.
  • The Graphical User Interface (GUI) uses graphical elements (icons, buttons) for user-friendly interaction.

Types of Operating Systems

  • Single-user, single-tasking: supports a single user and one task at a time.
  • Single-user, multi-tasking: allows a single user to run multiple programs at the same time.
  • Multi-user: supports multiple users simultaneously.
  • Real-time operating systems (RTOS): designed for systems requiring immediate responses to events, common in embedded environments (e.g., industrial control systems, robotics).

Evolution of Operating Systems

  • Key eras of OS development, ranging from batch processing to personal computer operating systems and networked environments.
  • The concept of time-sharing, enabling simultaneous access by multiple users, had a notable impact on the evolution of operating systems.

OS Boot

  • The boot process initializes computer hardware and loads the operating system into memory.
  • It includes steps like Power-On Self-Test (POST), BIOS/UEFI initialization, boot loader execution, kernel loading, user space initialization, and user interface opening.
  • Cold vs. warm booting differ in their starting state.

Hibernate

  • Hibernation saves the contents of computer memory to disk before shutting down, allowing a quick return to the saved state when needed.

Types of boot processes

  • BIOS boot, UEFI boot, network boot (PXE), fast boot/hybrid boot, secure boot, and boot from external media.
  • Different types of boot processes and underlying procedures cater to different needs and system architectures.

Memory Management

  • Memory management is the technique of controlling and coordinating computer memory.
  • Proper memory management is important for efficiently using RAM, handling multitasking, and preventing conflicts between running programs.

Memory Hierarchy

  • Memory is organized in a hierarchical structure with varying access speeds and capacities.
  • Registers, cache, and main memory (RAM) are used for short-term data storage, while hard disks and SSDs are for long-term storage.
  • Data transfer between levels is optimized for speed and accessibility on demand.

Address Spaces

  • Process address space refers to the valid memory range a process can use during runtime.
  • Kernel address space is the reserved portion of memory for the OS kernel, offering critical functionality.

Memory Allocation Strategies

  • Memory allocation strategies (fixed or dynamic partitioning) manage processes' use of memory efficiently and avoid conflicts.

Fragmentation

  • Memory fragmentation refers to the waste of memory space caused by scattered unused memory blocks.

Memory Allocation Algorithms

  • Algorithms, like first fit, best fit, and worst fit, handle memory allocation requests.
  • These algorithms prioritize different objectives (speed, efficiency) to suit various circumstances.

Programming

  • Programs consist of instructions in a language that a computer understands.
  • Programming involves writing and executing instructions for use with electronic devices.

Programming Language

  • A programming language is a way of communicating with computers.
  • Programming languages allow complex tasks by providing standard structures, code formats, and syntax for writing instructions in high-level languages.

Compilers

  • Programmers use high-level languages, as they are easier to write and understand compared to the machine's own binary language.
  • Compilers translate high-level language code into machine language code, making translated content executable on a computer.

Integrated Development Environment (IDE)

  • An IDE is a development tool that integrates many development tools (compiler, debugger, editor) to support programmers' ease in constructing code and eliminating errors.

Object-Oriented Programming (OOP)

  • OOP is a programming paradigm that focuses on objects, which represent real-world entities, grouping both data and actions.
  • OOP facilitates easier code maintenance and reusability.

Documentation

  • Documentation, including both internal and external documents, is a crucial aspect of the software development lifecycle.

Algorithm Introduction

  • Algorithm is a sequence of well-defined steps to solve a problem.
  • Well-defined, unambiguous instructions allow successful task completion.

Algorithm (Examples)

  • Examples illustrated the ordered steps to achieve specific goals.

Algorithm (Control Structures)

  • Control structures (sequential, selection, iterative) govern the order and logic in which instructions are executed in an algorithm.

Flowchart (Control Structures)

  • Flowcharts graphically represent algorithms using diagrams.
  • The specific steps are well defined in a flowchart.

Flowchart (Examples)

  • Flowchart examples illustrated how to perform particular tasks step by step.

Pseudocode

  • Pseudocode uses a simpler format than flowcharts or programs for algorithm presentation and is often used to design algorithms before formal implementation.
  • It can represent algorithms through short, readable, and formally-styled English.

System Development Life Cycle

  • System development life cycle (SDLC) describes the different stages during the lifespan of a software product from conception to maintenance, including design, implementation, testing and maintenance.
  • Several phases include planning (problem definition), analysis, design, implementation, testing, and integration, maintenance.
  • Retirement is also an important stage in the software development life cycle.

System Analysis

  • System analysis involves finding out problems and documenting requirements and defining the scope for the software to be written; ensuring that requirements are complete and valid.

System Analysis Activities

  • Activities within the system analysis phase such as data gathering, requirement definition, requirement prioritizing, prototyping, validation and documentation.

Design Process

  • Design transforms user requirements into a form suitable for programmers to code and implement.
  • Key aspects of the design process include planning architecture, and modules.

Design Process Activities

  • Crucial activities in design, such as architectural design, abstract specification, interface design, component design, data structure design, and algorithm design.

Architecture Design

  • Architecture design is the abstract design that pinpoints main modules and connections.

High-Level Design

  • High-level design examines how subsystems, modules, and interactions fit together in the application.

Detailed Design

  • Detailed design specifics the system's logical structure and interfaces among the modules.

Implementation and Testing

  • This phase converts the design into an actual application using a programming language.
  • Testing is essential to ensure the app runs efficiently and addresses all issues found in the code.

Programming Languages and Compilers

  • Programmers use high-level languages to write code that is easier to understand, than machine code
  • Compilers translate this code into machine language code (executable binary) to run on the computer.

Integrated Development Environment (IDE)

  • IDE tools help develop applications and eliminate errors easily.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser