Types Of Software | Programming Languages

Software is a general term for the various kinds of programs used to operate computers and related devices.Software can be thought of as the variable part of a computer and hardware the invariable part. Software is a collection of data or instructions that tells the computer how to work. In contrast to hardware which is physical component, from which the system is built and actually performs the work.

Types of Software:

Software can be generally divided into two categories : 

i. System Software 

ii. Application Software

System Software:
   The class of programs that control and support the computer system and its information processing activities. 
• It facilitates the programming, testing, and debugging of computer programs .
• It is usually independent of any specific type of application.
• It supports application software by directing the basic functions of the computer.

 System Software can be grouped into two major functional categories : 
System Control Program and System Support Program. 
i. System Control Program: It control the use of the hardware, software and data resources of a computer system. The main system system control program is the Operating System. The OS supervises the overall operation of the computer, including monitoring the computer’s status and scheduling operations. It allocates CPU time and main memory to programs running on the computer, and also provides an interface between the user and the hardware Service Provided by the Operating System. 
• Process management managing the program or programs running on the processor at a given time. 
• Multitasking (or multiprogramming) managing two or more tasks, programs, running on the computer system at the same time.
• Time-sharing a number of users operate on-line with the same CPU, but each uses a different input/output terminal. 
• Multithreading a form of multitasking that focuses on running multiple tasks within a single application simultaneously. 
• Multiprocessing a computer system with two or more processors that can run more than one program or thread at a given time by assigning them to different processors. 
• Virtual memory simulates more main memory than actually exists in the computer system. 
• File Management and Security managing the arrangement of, and access to, files held in secondary storage. 
• Fault Tolerance the ability of a system to produce correct results and continue to operate even in the presence of faults or errors. 
• Graphical User Interface (GUI) allows users to have direct control of visible objects and actions that Types of OS. 
• Mobile Device Operating Systems. 
• Desktop and Notebook Computer Operating System. 
• Departmental Server Operating System. 
• Enterprise Server Operating System.
 • Supercomputer Operating System

ii. System Support Programs:
System support programs support the operations, management, and users of a computer system by providing a variety of support services. Example of system support programs are : 
• System utility programs accomplish common tasks such as sorting records, checking the integrity of diskettes, creating directories and sub-directories, restoring accidentally erased files, locating files within the directory structure, managing memory usage, and redirecting output. 
• System performance monitors monitor the processing of jobs on a computer system and produce reports containing detailed statistics concerning the use of system resources. 
• System security monitors monitor the use of a computer system to protect it and its resources from unauthorized use, fraud, or destruction.

Application Software:

Instructions that direct a computer system to perform specific information processing activities and provide functionality for users are called Application Software. Application software, or simply applications, are often called productivity programs or end-user programs because they enable the user to complete tasks such as creating documents, spreadsheets, databases, and publications, doing online research, sending email, designing graphics, running businesses, and even playing games. Application software is specific to the task it is designed for and can be as simple as a calculator application or as complex as a word processing application. 

Types of Application Software:

 • Proprietary application software: It addresses a specific or unique business need for a company. 
Off-the-shelf application software: It is developed programs sold to many organizations may be customizable or may be standard package. 
Personal Application Software: It is one of the off-the-shelf application programs that are not linked to any specific business function, but instead support general types of processing.
it is designed to help individual users increase their productivity various types of personal application software are listed below : 
– Spreadsheets 
– Data Management 
– Word processing 
– Desktop Publishing 
– Graphics
 – Multimedia 
– Communications 
– Speech recognition software 
– Groupware

 Software Suites:

 • Collections of application software packages that integrate the functions of the packages. 
• Examples : Microsoft Office, Novell Perfect Office, and Lotus SmartSuite. 
• Generally include : a spreadsheet program, word processor, database program, and graphics package with the ability to move document, data and diagrams among them.

Software Issues
i. Software Selection:
 Factors to be considered while selecting a software are: 
• size and location of the current and future user base. 
• system administration tools. 
• initial and subsequent costs. 
• current and future system capabilities 
• existing computing environment. 
• in-house technical skills 

ii. Software Evaluation:
 Quality of a software can be evaluated on the basis of following points:
 • ease of use in development. 
 • maintenance
 • data handling
 • graphic presentation
 • environments and hardware • vendor support • security • documentation • output option • learning 

iii. Software Licensing:
copyright - exclusive legal right to reproduce, publish, and sell the software licenses - permission granted under the law to engage in an activity otherwise unlawful.

iv. Software Upgrades:
 -revised software may offer valuable enhancements but may offer little in terms of additional capabilities -revised software may contain bugs. 

v. Shareware, Freeware, and Cheapware Shareware - low price software Freeware - free copyrighted software Cheapware - free public-domain software.

vi. Open Systems a paradigm of computing products that work together use the same operating system with compatible software on all the different computers in a system.

Programming Languages:

A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behaviour of a machine or to express algorithms. 
Types of Programming Language:
Machine Language Machine code or machine language is a set of instructions executed directly by a computer’s central processing unit (CPU). Each instruction performs a very specific task, such as a load, a jump, or an ALU operation on a unit of data in a CPU register or memory. It is considered as
the first-generation language, it is the lowest-level computer language consisting of the internal representation of instruction and data. • Assembly Language An assembly (or assembler) language, often abbreviated asm, is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture’s machine code instructions. It represents machine language instructions and data locations in primary storage by using mnemonics.It is the next level up from machine language but is still considered a lower-level language. It is user-friendly compared to machine language . Translating an assembly language program into machine language is accomplished by a system software program called an assembler. 
Procedural Language:
Procedural language is a type of computer programming language that specifies a series of well-structured steps and procedures within its programming context to compose a program. It contains a systematic order of statements, functions and commands to complete a computational task or program. It is also called ”third-generation language” and considered as the first level of higher-level programming language. Procedural language require the programmer to specify, step by step, exactly how the computer must accomplish a task. Because computers understands only machine language, higher level language must be translated into machine language prior to execution. This task is accomplished by systems software called language translators. A language translator convert the high level program called source code into machine language code called object code. The translation of a high level language program to object code is done by a software called compiler. It translates the entire program at once. On contrary, as interpreter is a compiler that translates and execute one source program statement at a time. Examples of procedural language : GO, FORTRAN, Pascal, BASIC. 
Non Procedural Language:
 A computer language that does not require writing traditional programming logic. Also known as a ”declarative language”, users concentrate on defining the input and output rather than the program steps. It is also called fourth-generation language(4GLs). It allows users to specify the desired result without having to specify the detailed procedures needed to achieve the result. The languages simplify and accelerate the programming process, as well as reduce the number of coding errors. It also enables non-technical users to carry out specific functional tasks. It is commonly used in database applications as query languages, report generators and data manipulators. For Example: SQL: Structured Query Language 
Natural Programming Languages :
They are known as fifth generation- language or intelligent languages. Natural Language Programming (NLP) is an ontology-assisted way of programming in terms of natural language sentences. A structured document with content, sections and subsections for explanations of sentences forms a NLP document, which is actually a computer program. 
Visual Programming Languages:
 A visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. It uses mouse, icons, symbols , pull-down menu etc. to make programming easier. Eg. Visual Basic, Visual C++
• Hypertext Markup Language 
• Extensible Markup Language 
• Component ware 
• Object Oriented Programming Language 

             Software and Software Crisis

No comments

Powered by Blogger.