Introduction to Software Engineering, Software Process, Prescriptive Process Models and Specialized
Process Models – Agile Process Model -Agile Manifesto and Principles
INTRODUCTION TO SOFTWARE ENGINEERING
Define: Software.
Software is: (1) instructions (computer programs) that when executed provide desired
features, function, and performance; (2) data structures that enable the programs to
adequately manipulate information; and (3) descriptive information in both hard copy and
virtual forms that describes the operation and use of the programs.
What is Software?
The software is a group or collection of instructions or commands that guide a computer in
performing specific tasks. i.e., tell a computer what to do. In other words, the software is a
computer program designed to process user inputs and direct or tell the computer what to do.
Example: MS-Word, MS-Excel, PowerPoint, etc.
Types of Software:
Basically there are 2 major types of software’s available:
1. Application software
2. System software
Types of Software
System Software Application Software
Language Customized
Operating General Purpose
Processor and Software
System MS Word,
Device Driver Ex. Railways
Ex. Linus, Excel,
Ex. Interpreter, Reservation
Windows Etc., Photoshop Etc.,
Compiler etc., System Etc.,
,Application Software: Application software refers to programs or sets of instructions
designed to perform specific tasks or solve particular problems for the user. It is a product or
a program that is designed only to fulfill the end-users’ requirements.
Unlike system software, which manages and controls hardware components (like operating
systems), application software focuses on user-specific functions.
Examples:
Productivity Software:
Microsoft Word: A word processing program used for creating documents, reports,
letters, etc.
Microsoft Excel: A spread sheet application for data analysis, calculations, and
creating charts.
PowerPoint Presentation: It is used to make presentations for personal and
professional purposes.
Database Software: designed to create databases and to store, manage, search, and
extract the information contained within them.
Examples. Oracle, Microsoft SQL Server, and MySQL etc.,
Multimedia Software: Software used for creating, editing, and managing multimedia
content like videos, music, and images.
Examples include Adobe Photoshop, Adobe Premiere Pro, and Apple’s Final Cut Pro.
Graphics Software: Graphics software refers to a program or collection of programs
that enable a person to manipulate images or models visually on a computer.
Examples: Adobe Illustrator and Corel DRAW.
Web Browsers: Software used to access and view websites.
Examples: Google Chrome, Mozilla Firefox, and Apple’s Safari.
Communication Software: This includes email clients like Microsoft Outlook and
Thunderbird, as well as instant messaging apps and video conferencing tools like
Zoom and Skype.
Gaming Software: Computer games, ranging from simple card games to high-end
graphics-intensive games.
Educational Software: Tools and games created for educational purposes, e.g.,
language learning software, encyclopedias, and e-learning platforms.
Enterprise Software: Large scale software solutions designed for businesses and
organizations, such as Customer Relationship Management (CRM) systems,
, Enterprise Resource Planning (ERP) systems, and Supply Chain Management (SCM)
software.
System Software: System Software System software is designed to manage the hardware
components of a computer and provide a platform for running application software. It is like
an interface between hardware and user applications, it helps them to communicate with each
other because hardware understands machine language(i.e. 1 or 0) whereas user applications
are work in human-readable languages like English, Hindi, German, etc. so system software
converts the human-readable language into machine language and vice versa.
1. Operating System (OS):
This is the most crucial system software, providing a user interface and controlling the
computer hardware so that software can function. It acts as an intermediary between
hardware and user applications.
Examples: Windows (Microsoft), macOS (Apple), Linux , Android, iOS
2. Device Drivers
Device drivers are specialized programs that allow the operating system to communicate with
hardware devices like printers, graphics cards, audio devices, and more. Each hardware
device requires a specific driver.
Examples: Printer drivers, Graphics card drivers, USB device drivers
3. Utility Programs
Utility software provides maintenance and optimization tools for the computer system. These
programs help in managing resources, protecting data, and improving system performance.
Examples:
o Antivirus software (e.g., Norton, McAfee)
o Disk cleanup tools (e.g., CCleaner)
o Backup software (e.g., Acronis True Image)
o File compression tools (e.g., WinRAR, 7-Zip)
o Disk defragmenters
4. Firmware
Firmware is a specialized type of software that is permanently programmed into hardware
devices. It provides low-level control for the device’s hardware and is essential for booting
the system.
Examples:
, o BIOS (Basic Input/Output System)
o UEFI (Unified Extensible Firmware Interface)
o Embedded software in routers, cameras, and printers
5. Shells
A shell is a user interface that allows interaction with the operating system. It interprets user
commands and passes them to the kernel of the operating system for execution.
Examples:
o Command Prompt (Windows)
o PowerShell (Windows)
o Bash (Linux and macOS)
6. System Management Software
This software helps in monitoring and controlling the overall health and performance of the
computer system.
Examples:
o Task managers (e.g., Windows Task Manager)
o Performance monitoring tools (e.g., Resource Monitor)
o Network monitoring tools (e.g., Wireshark)
Types of Software Products:
Software engineers are concerned with developing software products (i.e., software
which can be sold to a customer).
1. Generic Products: These are standalone systems developed by a software company and
sold on the open market to any customer who wishes to purchase them.
Examples include software for personal computers like databases, word processors, graphic
design tools, and project management software.
This category also includes "vertical applications," which are specialized software designed
for specific purposes, such as library management systems, accounting software, or systems
for maintaining dental records.
2. Customized (or Bespoke) Products: These are tailored systems created for a specific
customer. A software development team is commissioned to build the software to meet the
unique needs of that customer.
Examples of customized products include control systems for electronic devices, software
designed to support specific business processes, and air traffic control systems.