Fit (Unit 4)
Fit (Unit 4)
1
• Efficiency and Productivity: Software streamlines various processes,
automating tasks and improving efficiency in both personal and
professional settings.
• Innovation and Advancements: Software is the foundation for
innovation, enabling the development of new technologies and
applications that drive progress in various fields.
Types of Software
It is a collection of data that is given to the computer to complete a
particular task. The chart below describes the types of software:
Above is the diagram of types of software. Now we will briefly describe each
type and its subtypes:
1. System Software
• Operating System
• Language Processor
• Device Driver
2. Application Software
• General Purpose Software
• Customize Software
• Utility Software
2
System Software
System software is software that directly operates the computer
hardware and provides the basic functionality to the users as well as to the
other software to operate smoothly. Or in other words, system software
basically controls a computer’s internal functioning and also controls hardware
devices such as monitors, printers, and storage devices, etc. 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.
Types of System Software
1. Operating System: It is the main program of a computer system. When
the computer system ON it is the first software that loads into the
computer's memory. Basically, it manages all the resources such
as computer memory, CPU, printer, hard disk, etc., and provides an
interface to the user, which helps the user to interact with the computer
system. It also provides various services to other computer software.
Examples of operating systems are Linux, Apple macOS, Microsoft
Windows, etc.
2. Language Processor: As we know that system software converts the
human-readable language into a machine language and vice versa. So,
the conversion is done by the language processor. It converts programs
written in high-level programming languages like Java, C, C++, Python,
etc(known as source code), into sets of instructions that are easily
readable by machines(known as object code or machine code).
3. Device Driver: A device driver is a program or software that controls a
device and helps that device to perform its functions. Every device like a
printer, mouse, modem, etc. needs a driver to connect with the
computer system eternally. So, when you connect a new device with
your computer system, first you need to install the driver of that device
so that your operating system knows how to control or manage that
device.
3
Features of System Software
• System Software is closer to the computer system.
• System Software is written in a low-level language in general.
• System software is difficult to design and understand.
• System software is fast in speed (working speed).
• System software is less interactive for the users in comparison to
application software.
Application Software
Software that performs special functions or provides functions that are
much more than the basic operation of the computer is known as application
software. Or in other words, application software is designed to perform a
specific task for end-users. It is a product or a program that is designed only to
fulfill end-users' requirements. It includes word processors, spreadsheets,
database management, inventory, payroll programs, etc.
Types of Application Software
1. General Purpose Software: This type of application software is used for a
variety of tasks and it is not limited to performing a specific task only. For
example, MS-Word, MS-Excel, PowerPoint, etc.
2. Customized Software: This type of application software is used or
designed to perform specific tasks or functions or designed for specific
organizations. For example, railway reservation system, airline
reservation system, invoice management system, etc.
3. Utility Software: This type of application software is used to support the
computer infrastructure. It is designed to analyze, configure, optimize
and maintains the system, and take care of its requirements as well. For
example, antivirus, disk fragmenter, memory tester, disk repair, disk
cleaners, registry cleaners, disk space analyzer, etc.
Features of Application Software
• An important feature of application software is it performs more
specialized tasks like word processing, spreadsheets, email, etc.
• Mostly, the size of the software is big, so it requires more storage space.
4
• Application software is more interactive for the users, so it is easy to use
and design.
• The application software is easy to design and understand.
• Application software is written in a high-level language in general.
Written in a high-level
Written in a low-level language.
language.
Less interactive for the users. More interactive for the users.
5
System Software
Operating System
What is an Operating System?
An Operating System is a System software that manages all the
resources of the computing device.
• Acts as an interface between the software and different parts of the
computer or the computer hardware.
• Manages the overall resources and operations of the computer.
• Controls and monitors the execution of all other programs that reside in
the computer, which also includes application programs and other
system software of the computer.
• Examples of Operating Systems are Windows, Linux, macOS, Android,
iOS, etc.
6
• Manages memory and Files
• Provides Security
Functions of the Operating System
• Resource Management: The operating system manages and allocates
memory, CPU time, and other hardware resources among the various
programs and processes running on the computer.
• Process Management: The operating system is responsible for starting,
stopping, and managing processes and programs. It also controls the
scheduling of processes and allocates resources to them.
• Memory Management: The operating system manages the computer's
primary memory and provides mechanisms for optimizing memory
usage.
• Security: The operating system provides a secure environment for the
user, applications, and data by implementing security policies and
mechanisms such as access controls and encryption.
• Job Accounting: It keeps track of time and resources used by various jobs
or users.
• File Management: The operating system is responsible for organizing
and managing the file system, including the creation, deletion, and
manipulation of files and directories.
• Device Management: The operating system manages input/output
devices such as printers, keyboards, mice, and displays. It provides the
necessary drivers and interfaces to enable communication between the
devices and the computer.
• Networking: The operating system provides networking capabilities such
as establishing and managing network connections, handling network
protocols, and sharing resources such as printers and files over a
network.
• User Interface: The operating system provides a user interface that
enables users to interact with the computer system. This can be
a Graphical User Interface (GUI), a Command-Line Interface (CLI), or a
combination of both.
7
• Backup and Recovery: The operating system provides mechanisms for
backing up data and recovering it in case of system failures, errors, or
disasters.
• Virtualization: The operating system provides virtualization capabilities
that allow multiple operating systems or applications to run on a single
physical machine. This can enable efficient use of resources and
flexibility in managing workloads.
• Performance Monitoring: The operating system provides tools for
monitoring and optimizing system performance, including identifying
bottlenecks, optimizing resource usage, and analyzing system logs and
metrics.
• Time-Sharing: The operating system enables multiple users to share a
computer system and its resources simultaneously by providing time-
sharing mechanisms that allocate resources fairly and efficiently.
• System Calls: The operating system provides a set of system calls that
enable applications to interact with the operating system and access its
resources. System calls provide a standardized interface between
applications and the operating system, enabling portability and
compatibility across different hardware and software platforms.
• Error-detecting Aids: These contain methods that include the error
messages, and other debugging and error-detecting methods.
Objectives of Operating Systems
• Convenient to use
• User Friendly
• Easy Access
• Management of Resources
• Controls and Monitoring
• Fair Sharing of Resources
Types of Operating Systems
• Batch Operating System
• Time-sharing Operating System
8
• Distributed Operating System
• Network Operating System
• Real-time Operating System
• Multiprocessing Operating System
• Single-User Operating Systems
• Multi-User Operating Systems
• Embedded Operating Systems
• Cluster Operating Systems
Examples of Operating Systems
• Windows (GUI-based, PC)
• GNU/Linux (Personal, Workstations, ISP, File, and print server, Three-tier
client/Server)
• macOS (Macintosh), used for Apple's personal computers and
workstations (MacBook, iMac).
• Android (Google's Operating System for
smartphones/tablets/smartwatches)
• iOS (Apple's OS for iPhone, iPad, and iPod Touch)
9
• Examples: Disk defragmenters, antivirus software, file management
tools, disk cleanup tools.
2. Programming Languages:
• High-level languages: Languages like Python, Java, C++, etc., are used to
write utility programs.
• Low-level languages: Assembly language and machine language are used
for more direct hardware interaction.
• Compilation/Interpretation: High-level code is typically compiled (or
interpreted) into machine code that the computer's CPU can
understand.
3. Machine Language:
• Definition: Machine language is the fundamental language of a
computer, consisting of binary code (zeros and ones) directly executable
by the CPU.
• Necessity: All programs, including utility programs, must eventually be
translated into machine code to be executed by the computer.
• Hexadecimal Representation: Machine code is often represented in
hexadecimal for easier reading and debugging by humans.
Machine Language
What is Machine Language?
Machine language is a low-level programming language that consists of
binary bits i.e. only 0 and 1. The data present in binary form is the reason for its
fast execution. In Machine language, instructions are directly executed by the
CPU. Machine language is also known as object code or machine code.
Machine language is binary language.
10
languages. High level language is not understood by computer directly so it is
converted into low level machine language to understand the meaning of code
and perform execution. Computers compile the code written by us and
translate into machine code and then execute it. Computers are only able to
understand machine language.
Features of Machine Language
• Machine language is a low-level language.
• Machine language consists of only 0 and 1 bits.
• Machine languages are platform dependent.
• It is nearly impossible to learn machine language for humans because it
requires a lot of memorizations.
• Machine language is used to create and construct drivers as well.
Understand the Complexity of Machine language
In machine language every character, integer and special symbols are
written in form of 0 and 1 . To understand machine language let's take an
example of a machine language instruction. This is a simple addition operation:
01100110 00001010. This binary sequence represents an instruction that tells
the computer to add two numbers together.
Meaning of Binary bits in Machine Language:
• The 1s (one) represents the true or on states.
• On the other hand, the 0s (zero) represent the off or false states.
• That's why no human can remember the binary codes of machine
languages. As a result, learning these languages is not possible for
humans.
Machine Language Instruction Components
1. Operand(s)
The operand(s) represents the data that the operation must be
performed on. This data can take various forms, depending on the processor's
architecture. This can be a register containing a value, a memory address
pointing to a location in memory where the data is stored, or a constant value
embedded within the instruction itself.
11
2. Opcode
The opcode (Operation code) represents the operation that the
processor must perform. This indicate that the instruction is an arithmetic
operation such as addition, subtraction, multiplication, or division.
Advantages of Machine Language
• Machine languages are faster in execution because they are in binary
form.
• Machine language does not need to be translated, because it is already
present in simple binary form.
• The CPU directly executes the machine language.
• The evolution of the computer system and operating system over the
time period is due to machine language.
• Machine languages are used in developing a high-grade computer
system.
Disadvantages of Machine Language
• Machine language are complex to understand and memorize.
• Writing codes in machine language is time-consuming.
• It is very difficult to resolve bugs and errors present in the codes and
programs.
• Codes written in machine languages are more prone to error.
• Machine languages are not easy to modify.
• Machine language are platform Independent.
Assembly Language
Assembly language is a low-level programming language that acts as a
symbolic representation of machine code, providing a more human-readable
form of instructions for a computer's processor. It bridges the gap between
high-level languages and the binary instructions that a computer directly
executes.
12
Key Characteristics:
• Low-Level: Assembly language operates closer to the computer's
hardware than high-level languages like Python or Java.
• Mnemonic Codes: Instead of using binary numbers, assembly language
uses mnemonic codes (short, memorable abbreviations) to represent
machine instructions. For example, ADD, SUB, MOV are common
mnemonics.
• One-to-One Correspondence: Each assembly instruction typically
corresponds to a single machine code instruction.
• Hardware Dependence: Assembly language is specific to a particular
computer architecture (e.g., x86, ARM) because it directly interacts with
the CPU's instruction set.
• Assembler: An assembler program translates assembly language code
into machine code that the CPU can understand.
Why Use Assembly Language?
• Fine-Grained Control: Assembly language allows programmers to control
hardware resources at a very detailed level, which can be crucial for
performance optimization in specific applications.
• Direct Hardware Interaction: It enables direct interaction with hardware
components like memory, registers, and peripherals.
• Niche Applications: Assembly language is still used in areas where
performance is critical, such as embedded systems, device drivers, and
performance-critical sections of operating systems.
• Understanding Hardware: Learning assembly language can provide a
deeper understanding of how computers work at a fundamental level.
Example:
1. Load the values into registers: MOV EAX, 5 (moves the value 5 into the
EAX register) and MOV EBX, 7 (moves the value 7 into the EBX register).
2. Perform the addition: ADD EAX, EBX (adds the contents of EBX to EAX,
storing the result in EAX).
3. The result (12) is now in EAX .
13
Advantages of Assembly Language
• It provides precise control over hardware and hence increased code
optimization.
• It allows direct access to hardware components like registers, so it
enables tailored solutions for hardware issues.
• Efficient resource utilization because of low level control, optimized
code, resource awareness, customization etc.
• It is ideal for programming microcontrollers, sensors and other hardware
components.
• It is used in security researches for finding security vulnerabilities,
reverse engineering software for system security.
• It is very essential for the making the operating
systems, kernel and device controllers that requires hardware interaction
for its functionality.
Disadvantages of Assembly Language
• Complex and very hard to learn the language especially for beginners.
• It is highly machine dependent. So, it limits portability.
• It is really hard to maintain the code, especially for large scale projects.
• It is very time consuming since it is really hard to understand and very
length of code.
• Debugging is very challenging to programmers.
High-Level Language
High-level languages are programming languages that are used for
writing programs or software that can be understood by humans and
computers. High-level languages are easier to understand for humans because
they use a lot of symbols letters phrases to represent logic and instructions in a
program. It contains a high level of abstraction compared to low-level
languages.
14
Characteristics of High-Level Language
• Abstraction: High-level language is the language that hides the complex
details of how computers work. This allows users to focus on what the
program should do instead of how it will run on the machine or compiler.
• Human-Readable Syntax: A program written in high-level language
contains words and symbols that are easier to understand by humans.
This allows users to read and write code in a very simple way.
• Portability: Programs written in a high-level language can be run on
different types of computers without any changes. This means we can
use the same code on various devices.
• Easy to Use: High-level languages are user-friendly, with clear commands
and helpful tools that make writing, and testing code easier.
• Productivity: High-level languages are easy to use, and help
programmers write code faster and build features more quickly.
• Automatic Memory Management: These languages take care of
memory, so we don't have to worry about allocating and freeing up
memory manually.
• Enhanced Debugging and Error Handling: High-level languages come
with tools that make finding and fixing mistakes in our code easier.
Examples of Some High-Level Languages
• Python
• Java
• C++:
• Ruby
• JavaScript
15
just executes it or performs instructions in it without compiling. This happens
in the case of interpreted languages such as Python, Ruby, and JavaScript
Compiled Languages
• Machine code generation- In this, the code is compiled by compilers into
machine code then they are executed.
• In intermediate representation, the code is first, compiled to
intermediate representation which is saved so that there is no need to
read the source file again. When it's saved it forms a byte code that can
be executed by the machine.
some compiled languages are C, C++, and Java.
Transcompile Languages
This is also known as Source-to-source translation Because in this the source
code of one language is converted into the source code of another
programming language. This is done so that code can be used for multiple
platforms. Some transcompile languages are TypeScript, CoffeeScript, etc.
Use of High-Level Language
• Web Development
• Data Analysis
• DBMS(Data Base Management System
• Game Development
Advantages of High-Level Languages
• The biggest advantage of using high-level languages is that they are easy
to understand, remember, learn, write codes, to debug.
• There are different libraries available that can be used for development,
many defined operators, data types, and frameworks also reduce the
amount we need to write.
• They are portable to use, which means we can use their code for
different platforms without much modification.
16
• It provides a higher level of abstraction, which means it hides the
complexities of hardware from the programmer. You don't need to know
about hardware before writing a program.
Disadvantages of High-level Languages
• High-level languages are slower as compared to low-level languages
because there is more level of abstraction with hardware so they require
more processing and more memory for execution
• High-level languages have less control over hardware, because of the
complexities of hardware for the programmer in high-level languages.
• For the maximum utilization of hardware or CPU in terms of
performance low-level languages are best.
Key Characteristics:
• End-user focus: Application software is designed to be used directly by
individuals or groups to accomplish tasks.
17
• Specific functionality: Each application is designed to perform a
particular set of tasks, such as writing documents, browsing the internet,
or playing games.
• Variety of uses: Application software can be used for personal,
educational, or business purposes, improving productivity, creativity, and
communication.
• Examples: Common examples include Microsoft Word, Google Chrome,
WhatsApp, and video games.
• Distinction from system software: While system software manages the
computer's internal operations, application software interacts with the
user to achieve specific goals.
Types of Application Software:
• Productivity software: Tools for creating and managing documents,
spreadsheets, presentations, etc. (e.g., Microsoft Word, Excel,
PowerPoint).
• Communication software: Programs for sending and receiving messages,
emails, and other forms of communication (e.g., email clients, messaging
apps).
• Web browsers: Software for accessing and navigating the internet (e.g.,
Google Chrome, Firefox, Safari).
• Multimedia software: Programs for playing and editing audio and video
files (e.g., media players, video editing software).
• Gaming software: Programs for playing interactive games.
• Utility software: Programs for system maintenance and management
(e.g., antivirus software, disk defragmenters).
Advantages of Application Software
18
Scalable Access Control: Businesses can restrict access and monitor
usage with cloud-based dashboards.
Boosted Productivity: AI automation and intuitive interfaces reduce
manual effort.
Disadvantages of Application Software
High Costs: Developing or licensing advanced software, like AI-driven
ERP systems, can strain budgets.
Cybersecurity Risks: Cloud-based apps face threats like phishing or
ransomware, requiring robust security measures.
Maintenance Overhead: Regular updates and compatibility issues
demand ongoing attention.
The word processing software is used to apply the basic editing and design and
also helps in manipulating the text to your pages whereas the word processor,
is a device that provides editing, input, formatting, and output of the given text
with some additional features.
• Wordpad
• Microsoft Word
• Lotus word pro
• Notepad
• WordPerfect (Windows only),
19
• AppleWorks (Mac only),
• Work pages
• OpenOffice Writer
Features :
20
• It helps in Copy the text along with moving deleting and pasting the text
within a given document.
• It helps in Formatting text like bold, underlining, font type, etc.
• It provides the function of creating and editing the formats of tables.
• It helps in Inserting the various elements from some other types of
software.
Advantages :
• It benefits the environment by helping in reducing the amount of
paperwork.
• The cost of paper and postage waste is being reduced.
• It is used to manipulate the document text like a report
• It provides various tools like copying, deleting and formatting, etc.
• It helps in recognizing the user interface feature
• It applies the basic design to your pages
• It makes it easier for you to perform repetitive tasks
• It is a fully functioned desktop publishing program
• It is time-saving.
21
• It is dynamic in nature for exchanging the data.
• It produces error-free documents.
• Provide security to our documents.
Disadvantages:
• It does not give you complete control over the look and feel of your
document.
• It did not develop out of computer technology.
Spreadsheet
Spreadsheet software, like Microsoft Excel or Google Sheets, is used to
organize, analyze, and present data in a table format. It allows for calculations,
formatting, and visualization of data through charts and graphs. This data can
then be used to create presentations, reports, or other forms of data-driven
communication.
Spreadsheet Software:
• Organization: Spreadsheets organize data into rows and columns,
making it easy to manage and manipulate large datasets.
• Calculations: They automate calculations using formulas and functions,
simplifying complex computations and analysis.
• Formatting: Spreadsheets offer various formatting options for text,
numbers, and cells, enhancing readability and visual appeal.
• Visualization: They can generate charts and graphs from data, enabling
users to visualize trends and patterns.
• Collaboration: Many spreadsheet applications offer real-time
collaboration features, allowing multiple users to work on the same
document simultaneously.
Presentation:
• Data-Driven Slides: Spreadsheets can be used to create presentations,
where data is presented in a visually appealing way, using charts, graphs,
and formatted tables.
22
• Navigation: Excel, in particular, allows for the creation of presentations
with navigation buttons that link to different sheets or sections of the
spreadsheet.
• Interactive Elements: Spreadsheets can include interactive elements like
dropdown boxes or buttons, making presentations more dynamic.
Examples of Spreadsheet Software:
• Microsoft Excel: A widely used spreadsheet application included in the
Microsoft Office suite.
• Google Sheets: A free, web-based spreadsheet application offered by
Google.
• LibreOffice Calc: A free and open-source spreadsheet application part of
the LibreOffice suite.
• Apache OpenOffice Calc: Another free and open-source spreadsheet
application.
• Numbers: Apple's spreadsheet software, part of the iWork suite.
Graphics Software
Graphics software is a type of computer program that is used to create
and edit images. There is a wide range of graphics software available on the
market, ranging from simple programs that allow users to create and edit basic
images, to complex tools that can be used to create detailed 3D models and
animations. Some of the most popular graphics software programs include
Adobe Photoshop, Corel Painter, and Autodesk Maya.
Characteristics:
• A graphics software program is a computer application used to create
digital images.
• Graphics software programs can be used to create both vector and raster
images.
• Common features of graphics software programs include the ability to
create, edit, and save images in a variety of formats.
• Some graphics software programs also offer features such as the ability
to create animations or 3D models.
23
• Popular examples of graphics software programs include Adobe
Photoshop, GIMP, and Inkscape.
Components:
• Image editors: Common image editors include Photoshop, Illustrator,
and Inkscape.
• Vector graphics editors: Common vector graphics editors include
CorelDRAW and Inkscape.
• 3D modeling software: Common 3D modeling software includes Maya,
3ds Max, and Cinema 4D.
• Animation software: Common animation software includes Adobe After
Effects, Apple Motion, and Autodesk Maya.
• Video editing software: Common video editing software includes Adobe
Premiere Pro, Apple Final Cut Pro, and Avid Media Composer.
Types:
• Vector graphics software: used for logos, illustrations, and diagrams.
• Raster graphics software: used for photos and web graphics.
• 3D graphics software: used for product visualization and gaming.
• Animation software: used for movies, commercials, and video games.
Applications:
• It can be used to create and edit logos, and other graphical elements.
• It can be used to create website layouts and design elements.
• It can be used to create illustrations, visual presentations, and digital art.
• It can be used to edit and enhance photos, images, and animation.
• It can be used to create and edit website designs, presentation slides,
and marketing materials.
Advantages:
• Graphics software provides users with a wide range of tools to create,
edit and manipulate images.
24
• It is often easy to use image editing, web design, advertising and
printing.
• It possible to create complex images with ease.
• It provides users with a wide range of tools to create, edit, and
manipulate images.
• It can be used to create both vector and bitmap images.
• It is often used in conjunction with other software programs, such as
word processors and spreadsheets, to create comprehensive documents
and presentations.
Disadvantages:
• Many graphics software programs are expensive
• It requires a lot of memory to store huge files.
• Some graphics software programs can be complex and difficult to use,
• It requires a powerful computer to work with the project smoothly.
• It can be time-consuming to create graphics.
• Some graphics software programs only offer limited functionality, which
can be frustrating for users who want to do more with their images.
DBMS
A DBMS, or Database Management System, is software that allows users
to create, manage, and interact with databases. It provides a structured way to
store, organize, and retrieve data, ensuring data integrity, security, and efficient
access. Essentially, a DBMS acts as an intermediary between users or
applications and the database itself.
25
Key Functions of a DBMS:
• Data Storage and Retrieval: DBMS handles the physical storage of data
and provides mechanisms for efficient data retrieval through queries.
• Data Definition and Manipulation: Users can define the structure of the
database (tables, fields, relationships) and manipulate the data (add,
update, delete) using languages like SQL.
• Data Integrity: DBMS enforces rules and constraints to ensure data
accuracy and consistency.
• Security: DBMS provides access controls and authentication mechanisms
to protect data from unauthorized access.
• Concurrency Control: DBMS manages simultaneous access to the
database by multiple users, preventing conflicts and ensuring data
consistency.
• Backup and Recovery: DBMS provides tools for backing up the database
and restoring it in case of failures.
Types of DBMS:
• Relational DBMS (RDBMS): The most common type, using tables to
organize data with relationships between them (e.g., MySQL,
PostgreSQL, Oracle).
• NoSQL DBMS: Designed to handle large volumes of unstructured or
semi-structured data (e.g., MongoDB, Cassandra).
• Hierarchical DBMS: Uses a tree-like structure to organize data (e.g.,
IBM's Information Management System).
• Network DBMS: Allows for more complex relationships using a graph-
like structure.
• Object-Oriented DBMS: Represents data as objects, similar to object-
oriented programming.
Examples of DBMS:
• MySQL
• PostgreSQL
26
• Oracle Database
• Microsoft SQL Server
• MongoDB
________________________________________________________________
27