Computer Application Unit 4
Computer Application Unit 4
System Software
Application Software
SYSTEM SOFTWARE
The system software is a collection of programs designed to operate, control, and extend the processing
capabilities of the computer itself. System software is generally prepared by the computer manufacturers.
These software products comprise of programs written in low-level languages, which interact with the
hardware at a very basic level. System software serves as the interface between the hardware and the end
users.
Some examples of system software are Operating System, Compilers, Interpreter, Assemblers, etc.
APPLICATION SOFTWARE
Application software products are designed to satisfy a particular need of a particular environment. All
software applications prepared in the computer lab can come under the category of Application software.
Application software may consist of a single program, such as Microsoft’s notepad for writing and editing a
simple text. It may also consist of a collection of programs, often called a software package, which work
together to accomplish a task, such as a spreadsheet package.
Examples of Application software are the following:
Payroll Software
Student Record Software
Inventory Management Software
Income Tax Software
Railways Reservation Software
Microsoft Office Suite Software
Microsoft Word
Microsoft Excel
Microsoft PowerPoint
Computer hardware
A computer basically consists of various electronic components which are supported by electrical devices
and mechanical systems. All these electronic, electrical. Mechanical devices used in a computer are called
the hardware of the computer.
Motherboard, CPU, floppy disk, keyboard, mouse, webcam, CS drive, USB flash drive, monitor and power
supply units are examples of hardware peripheral devices connected to a digital computer.
So, hardware represents the physical and tangible components of a computer. i.e. we can define hardware as
the components that can be seen and touched. We can also say that the electronic, electrical and mechanical
equipment that makes up a computer is called hardware.
Input devices
Output devices
CPU
Storage devices
Memory
These primary hardware parts of a computer work alongside software system to perform calculations,
organize information and additionally to connect with different computers. So, the hardware components of
a computer are actuated and controlled with the help of software. This is the basic relationship between
hardware and software.
Computer software
The computer software is nothing but a set of well-written instructions or programmes written in different
programming languages like JAVA, C++, Python etc. These set of instructions or programs govern the
operation of a computer system and make the hardware run. The software can be classified into mainly two
categories –
System Software
Application Software
System software is the programs used to handle the computer hardware and to execute the application
software. The operating systems and language processors (Assembler, interpreter, Compiler etc) are also
system software.
They are the software designed to solve specific tasks or problems like MS Office, AutoCAD, MATLAB
etc. So, this type of software is specified to one specific application.
So. we have already discussed the computer hardware and software in details. From this, you might already
notice the basic relationship exists between hardware and software. Now let’s point out the important
relationship between hardware and software in details.
Hardware and software both are interdependent on each other. Each of them should work
along to form computer produce a helpful output.
The software can not be used if there is no support of any hardware device.
When there is no proper instructions given, the hardware cannot be used and is useless.
To get a selected job done on the pc, the relevant software package has to be loaded into
the hardware.
Hardware could be a former expense.
Software development is incredibly pricey and could be a continued expense.
The different software package can be loaded on hardware to run totally different jobs.
The software acts as an associate interface between the user and therefore the hardware.
We can say the hardware and software are the heart and soul of a digital computer.
Different kinds of languages have been developed to perform different types of work on the computer.
Basically, languages can be divided into two categories according to how the computer understands them.
LOW-LEVEL LANGUAGES
Low-level computer languages are either machine codes or are very close them. A computer cannot
understand instructions given to it in high-level languages or in English. It can only understand and execute
instructions given in the form of machine language i.e. binary. There are two types of low-level languages:
Machine Language
Assembly Language
Machine language is the lowest and most elementary level of programming language and was the first type
of programming language to be developed. Machine language is basically the only language that a computer
can understand and it is usually written in hex.
In fact, a manufacturer designs a computer to obey just one language, its machine code, which is represented
inside the computer by a string of binary digits (bits) 0 and 1. The symbol 0 stands for the absence of an
electric pulse and the 1 stands for the presence of an electric pulse. Since a computer is capable of
recognizing electric signals, it understands machine language.
Advantage of Machine language
Assembly language was developed to overcome some of the many inconveniences of machine language.
This is another low-level but very important language in which operation codes and operands are given in
the form of alphanumeric symbols instead of 0’s and l’s.
These alphanumeric symbols are known as mnemonic codes and can combine in a maximum of five-letter
combinations e.g. ADD for addition, SUB for subtraction, START, LABEL etc. Because of this feature,
assembly language is also known as ‘Symbolic Programming Language.’
This language is also very difficult and needs a lot of practice to master it because there is only a little
English support in this language. Mostly assembly language is used to help in compiler orientations. The
instructions of the assembly language are converted to machine codes by a language translator and then they
are executed by the computer.
HIGH-LEVEL LANGUAGES
High-level computer languages use formats that are similar to English. The purpose of developing high-level
languages was to enable people to write programs easily, in their own native language environment
(English).
High-level languages are basically symbolic languages that use English words and/or mathematical symbols
rather than mnemonic codes. Each instruction in the high-level language is translated into many machine
language instructions that the computer can understand.
A compiler is a computer program that transforms code written in a high-level programming language into
the machine code. It is a program which translates the human-readable code to a language a computer
processor understands (binary 1 and 0 bits). The computer processes the machine code to perform the
corresponding tasks.
A compiler should comply with the syntax rule of that programming language in which it is written.
However, the compiler is only a program and cannot fix errors found in that program. So, if you make a
mistake, you need to make changes in the syntax of your program. Otherwise, it will not compile.
Role of Compiler
Interpreter
An interpreter is a computer program, which coverts each high-level program statement into the machine
code. This includes source code, pre-compiled code, and scripts. Both compiler and interpreters do the same
job which is converting higher level programming language to machine code. However, a compiler will
convert the code into machine code (create an exe) before program run. Interpreters convert code into
machine code when the program is run.
Role of Interpreter
The interpreter converts the source code line-by-line during RUN Time.
Interpret completely translates a program written in a high-level language into machine
level language.
Interpreter allows evaluation and modification of the program while it is executing.
Relatively less time spent for analyzing and processing the program
Program execution is relatively slow compared to compiler
Therefore, proper and correct instructions should be provided to the computer so that it can provide the
desired output. Hence, a program should be developed in such a way that it ensures proper functionality of
the computer. In addition, a program should be written in such a manner that it is easier to understand the
underlying logic.
(i) Portability
Portability refers to the ability of an application to run on different platforms (operating systems) with or
without minimal changes. Due to rapid development in the hardware and the software, nowadays platform
change is a common phenomenon. Hence, if a program is developed for a particular platform, then the life
span of the program is severely affected.
(ii) Readability
The program should be written in such a way that it makes other programmers or users to follow the logic of
the program without much effort. If a program is written structurally, it helps the programmers to understand
their own program in a better way. Even if some computational efficiency needs to be sacrificed for better
readability, it is advisable to use a more user-friendly approach, unless the processing of an application is of
utmost importance.
(iii) Efficiency
Every program requires certain processing time and memory to process the instructions and data. As the
processing power and memory are the most precious resources of a computer, a program should be laid out
in such a manner that it utilizes the least amount of memory and processing time.
(iv) Structural
To develop a program, the task must be broken down into a number of subtasks. These subtasks are
developed independently, and each subtask is able to perform the assigned job without the help of any other
subtask. If a program is developed structurally, it becomes more readable, and the testing and documentation
process also gets easier.
(v) Flexibility
A program should be flexible enough to handle most of the changes without having to rewrite the entire
program. Most of the programs are developed for a certain period and they require modifications from time
to time. For example, in case of payroll management, as the time progresses, some employees may leave the
company while some others may join. Hence, the payroll application should be flexible enough to
incorporate all the changes without having to reconstruct the entire application.
(vi) Generality
Apart from flexibility, the program should also be general. Generality means that if a program is developed
for a particular task, then it should also be used for all similar tasks of the same domain. For example, if a
program is developed for a particular organization, then it should suit all the other similar organizations.
(vii) Documentation
Documentation is one of the most important components of an application development. Even if a program
is developed following the best programming practices, it will be rendered useless if the end user is not able
to fully utilize the functionality of the application. A well-documented application is also useful for other
programmers because even in the absence of the author, they can understand it.