Back

Before Lecture

  • What is Software Engineering Is the process of creating software.
  • What is SRS Is the base of a software.
const a = b;

During the Lecture

What is Software?

Student’s Definition:

  • Definition 1: Is a set of instructions that tell a computer how to perform a specific task.
  • Definition 2: Software can’t be touched but can be seen.
  • Definition 3: Set of code which meets the user’s needs.
  • Definition 4: Software is a system which is used by an end user for decision-making.

Slide:

Software is a collection of instructions, data, and programs that tell a computer how to perform specific tasks, unlike hardware.

Software consists of:

  1. Program – Instructions or code.
  2. Data – All the inputs which are processed by the software.
  3. Document – Files or guidelines for the end user to tell them how to use the software.

So we can say that software is the combination of programs, data, and documents.


Types of Software

There are two main categories of software:

1. System Software

  1. Those software programs which provide a platform for application software to run.
  2. Software that manages the overall system resources (hardware, application software, devices, services, etc.).
  3. Software that acts as a bridge between the user and the computer. We can say it is an intermediary between the user and the computer or hardware.

Slide:

System software manages the computer’s hardware and provides a foundation for running applications. It operates in the background and ensures system stability and performance.

Types of system software:

  1. Operating System – Manages computer resources (e.g., Windows, Linux, macOS).
  2. Utility Programs – Perform maintenance tasks (e.g., antivirus, disk cleanup, etc.).
  3. Device Drivers – Allow the OS to communicate with hardware (e.g., printer drivers, GPU drivers, etc.).

Example: When you plug in a new printer, the device driver helps the OS recognize and use it.


2. Application Software

  1. Software installed over system software to solve specific user tasks.

Slide:

Application software is designed for end users to perform specific tasks. It is installed on top of the system software.

Types of Application Software:

  1. Productivity Software – Used for general tasks (e.g., Microsoft Word, Mail, Teams, etc.).
  2. Web Browsers – Used to browse the World Wide Web (e.g., Microsoft Edge, Google Chrome, Safari, etc.).
  3. Multimedia Software – Used to open media-related content (e.g., pictures, videos, audio).
  4. Business Software – Used for general business purposes (e.g., ERP, QuickBooks, CRM systems).
  5. Entertainment Software – Used for entertainment purposes (e.g., games, streaming apps like Netflix, Spotify, YouTube).

3. Programming Software

Software that helps developers create, debug, and maintain applications.

Examples:

  • Compilers – Convert code into machine code.
  • Text Editors – Used for writing code (e.g., VS Code, Notepad++).
  • Debuggers – Used to identify and fix coding errors (e.g., gdb).

4. Middleware Software

Acts as a bridge between different software applications or systems, ensuring smooth communication.

Example:

Using Stripe in your app for payment. Your website is using Stripe.

Other examples: Apache Kafka, MySQL Connector.


5. Firmware

Pre-installed software embedded in hardware devices, providing low-level control. It is stored in non-volatile memory (often ROM or flash memory) and is not easily changeable.

Also called: Embedded software, built-in software, pre-installed software.

Examples: BIOS, phone firmware, router firmware.


Summary Table:

Type of SoftwarePurposeExamples
System SoftwareManages hardware and system operationsWindows, Linux, macOS, Device Drivers
Application SoftwarePerforms specific user tasksMicrosoft Office, web browsers, media players
Programming SoftwareHelps developers write and debug programsPython, Java, C++ IDEs, Compilers
MiddlewareConnects different applications and systemsApache Kafka, MySQL Connector
FirmwareEmbedded software for hardware controlBIOS, Router Firmware, Embedded Systems

Types of Application Software

  1. Generic Software
    • Designed or developed for general purposes or a broad range, not specific.
    • Any organization or individual can use it.
    • Example: MS Office.
  2. Bespoke Software
    • Also called custom software.
    • Specifically designed and developed for an individual, organization, or business based on unique requirements.
    • Tailor-made to fit specific needs.

Examples:

  • Banking systems
  • Healthcare management systems
  • E-commerce platforms

Software Engineering vs. Computer Science

Software EngineeringComputer Science
More practicalMore theoretical
Create, design, and maintain softwareMore about principles

Definition

Software Engineering (SE):

The application of engineering principles to design, develop, test, and maintain software systems.

Focuses on the software lifecycle, team collaboration, and large-scale system development.

Lifecycle:

  1. Communication
  2. Planning
  3. Design
  4. Construction
    1. Testing
    2. Coding
  5. Deployment

Software engineering is about creating software.


Computer Science (CS):

The study of computation theory, algorithms, programming languages, and data structures.

Deals with mathematics, logic, and problem-solving to create new computing technologies.

Computer science is about creating new systems and exploring and advancing computing theory.


Comparison Table:

FeatureSoftware EngineeringComputer Science
FocusPractical application of computing to build softwareTheoretical concepts behind computing
Development ProcessUses SDLC, Agile, DevOpsResearch and problem-solving
Project TypeLarge-scale software applicationsComputing algorithms, AI, and security
Mathematics RequirementModerateHigh
Career OptionsSoftware Development, DevOps, TestingAI, Cybersecurity, Research
Primary GoalBuild and maintain reliable software systemsExplore and advance computing theory