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:
- Program – Instructions or code.
- Data – All the inputs which are processed by the software.
- 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
- Those software programs which provide a platform for application software to run.
- Software that manages the overall system resources (hardware, application software, devices, services, etc.).
- 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:
- Operating System – Manages computer resources (e.g., Windows, Linux, macOS).
- Utility Programs – Perform maintenance tasks (e.g., antivirus, disk cleanup, etc.).
- 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
- 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:
- Productivity Software – Used for general tasks (e.g., Microsoft Word, Mail, Teams, etc.).
- Web Browsers – Used to browse the World Wide Web (e.g., Microsoft Edge, Google Chrome, Safari, etc.).
- Multimedia Software – Used to open media-related content (e.g., pictures, videos, audio).
- Business Software – Used for general business purposes (e.g., ERP, QuickBooks, CRM systems).
- 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 Software | Purpose | Examples |
|---|---|---|
| System Software | Manages hardware and system operations | Windows, Linux, macOS, Device Drivers |
| Application Software | Performs specific user tasks | Microsoft Office, web browsers, media players |
| Programming Software | Helps developers write and debug programs | Python, Java, C++ IDEs, Compilers |
| Middleware | Connects different applications and systems | Apache Kafka, MySQL Connector |
| Firmware | Embedded software for hardware control | BIOS, Router Firmware, Embedded Systems |
Types of Application Software
- Generic Software
- Designed or developed for general purposes or a broad range, not specific.
- Any organization or individual can use it.
- Example: MS Office.
- 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 Engineering | Computer Science |
|---|---|
| More practical | More theoretical |
| Create, design, and maintain software | More 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:
- Communication
- Planning
- Design
- Construction
- Testing
- Coding
- 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:
| Feature | Software Engineering | Computer Science |
|---|---|---|
| Focus | Practical application of computing to build software | Theoretical concepts behind computing |
| Development Process | Uses SDLC, Agile, DevOps | Research and problem-solving |
| Project Type | Large-scale software applications | Computing algorithms, AI, and security |
| Mathematics Requirement | Moderate | High |
| Career Options | Software Development, DevOps, Testing | AI, Cybersecurity, Research |
| Primary Goal | Build and maintain reliable software systems | Explore and advance computing theory |