Software

Introduction

  • The software enables a computer to perform all the useful and desired functions.
  • Different types of software help a computer to be used for multiple and varied purposes, in totally different areas of work.
  • Software is the second part of computer after hardware.
  • It is the software that enables a computer to perform all the useful and desired functions.
  • Different types of software help a computer to be used for multiple and varied purposes, in totally different areas of work.
  • Computer Programs – 
    • Programs are a set of instructions written in certain programming language to solve a problem.
    • To solve a given problem, we write various programs in different programming languages.

Definition

  • Software is a set of simple and step-by-step sequence of instructions that tell the hardware what to do and how to do it.
  • Software is organized set of instructions written in a defined order and to accomplish a specific task is called Computer Software.
  • A set of related and organised computer programs are collectively known as Software.

Features   

  • A computer software provides intelligence to the hardware, which otherwise is just a collection of circuits and pieces of plastic and metal.
  • A computer programmer writes the software in a particular programming language that gives a computer the ability to solve any business or scientific problem.
  • A programmer codes the program in the English like programming language which is easier to understand. This program is then translated into machine code by another computer program. This translated program, called the software is eventually executed to achieve the desired goal.
  • Software is an integral component of a computer system.
  • It is the software which directs a computer to do a specific task.

Evolution of Software

  • Since the very beginning of computer history, software evolution has been closely tied to the advances made in hardware. As hardware became faster, cheaper and with better capacity of storage, software became more complex and sophisticated.
  • With changing needs and improved hardware, the software has evolved in its various aspects.
  • The software architecture, its design paradigms, programming languages, its usage, costing and licensing have all changed and evolved over the years.
  • Evolution of software is based on various aspects. These are –

(A) On the basis of evolution of Software Architecture –

(a) Mainframe Software (b) File Server Software (c) Client Server Software (d) Internet Based Software

(B) On the basis of evolution of Software Design Paradigm –

(a) Non-Structured Software (b) Structured & Modular Software (c) Object Oriented Software (d) Component Based Software (e) Service Oriented Software

(C) On the basis of evolution of Programming Language –

(a) Procedural Language (b) Object Oriented Language

(D) On the basis of evolution of Software Licensing –

(a) Traditional Software (b) Transaction based Software (c) Rental Software (d) Technology Partnership Software

Software Licensing

Types of Software

Software can be broadly categorized into –

(A) System Software (B) Application Software (C) Utility Software/Utilities (D) Programming Software (E) Preserve Software (F) Open Source Software

(A) System Software

    • System software is set of programs which are used to run the computer system.
    • System software manages all the other resources of the computer.
    • It controls all the operations of the computer.
    • System software helps to run the computer hardware and overall the system.
    • It is designed to control the operations of a computer and coordinate all external devices like communication devices, printers, keyboards, display units, etc.
    • It manages all the computer resources like memory and processor time in optimal and stable manner.
    • System software provides a useful link between user and computer.
    • It also assists the computer in the efficient control, support, development and execution of application software.
    • System software is essential for computer hardware to be functional and useful.
    • Examples of system software are – Operating System (OS), Translators, Server Programs, Device Drivers, Communication Software etc.
    • Server Programs
      • Server Programs are dedicated computer programs that run as services and serve the needs or requests of other programs.
      • These services may run on a dedicated hardware or on the same computer as the requesting program. Also, one on more services may run on the same computer hardware.
      • Some common examples of different types of server programs are : – Web Server – for hosting websites. Print server – to manage multiple print requests for multiple printers. File server – to manages the storage and retrieval of shared computer files. Database server – to provide database services to other computer programs. Mail Server – to manages and transfers electronic mail messages.
    • Communications Software
      • In a networked environment, the communication software or network operating system allows computers to communicate with each other.
      • It enables sharing and transferring of data across the network.
      • It controls network operations and manages network security.

(B) Application Software

    • Application software is the set of programs necessary to carry out operations for a specified application.
    • These are programs written by programmers to enable computer to perform a specific task such as inventory control, accounting, railway reservation, billing or any such type of applications in real life.
    • These software are user-oriented applications.
    • Application software are user and application oriented utilities software focuses on system infrastructure.
    • Examples of applications software are – Media player, Calculator, Word Processor software, Spreadsheet software, Presentation software, Graphics software, Computer games/Entertainment software, Accounting software etc.
    • Application software is designed and developed to accomplish one or more specific  task or solve a particular problem.
    • Application software may be for commercial or scientific use.
    • There is wide range of application software available for varied purposes.
    • Some major categories of these applications include :

(a) Word Processing Software can be used to create, edit, format, save, view or print any text based document like letters, memos, reports, etc. MS Word is an example of word processing software

(b) Spreadsheet Software can be used to create any numeric based documents or as numeric data-analysis tool. For example it can be used to make budgets, financial statements, comparative charts, etc. MS Excel is an example of Spreadsheet software.

(c) Database Software can be used to store, maintain, manipulate and organize a large set of data. For example, it can be used to maintain address, phone number directory, client directory, etc. Oracle is an example of database software.

(d) Presentation Software like MS PowerPoint can be used to create and present slide show.

(e) Graphics Software can be used to manage and manipulate pictures, photographs, movies, etc. Photoshop, Illustrator and MS Paint are examples of graphics software.

(f) Multimedia Authoring Application can be used to create digital movies with sound, video, animation and interactive features. Mediator 9 is an example of multimedia authoring tool.

Other applications include: Entertainment and Education Software Industrial automation Business software like inventory management, airline reservation Video games Telecommunications Mathematical software Medical software Scientific software like molecular modeling, quantum chemistry software Image editing Simulation software Decision making software

    (C) Utility Software

      • Utility programs/software are also known as utilities.
      • Utilities help a user for system maintenance and performing routine tasks.
      • Utility programs help to manage, maintain and control computer resources.
      • These programs are available to help us with the day-to-day chores associated with personal computing and to keep your system running at peak performance.
      • It basically deals to optimize, manage, configure and analyze the computer system.
      • Generally utilities are included with the operating systems.
      • Utilities are specialized programs capable of doing a particular type of tasks.
      • Generally Utility programs play supporting roles and it is small programs for specific tasks.
      • Some of the common tasks/functions of utility software are – 
        • Formatting of drives
        • Scanning system for viruses
        • Checking the free space available in a memory
        • Checking the free space available in hard disk
        • Searching files
        • Taking backup of files
      • The utilities software can be categorized in following types on the basis of its type of work they perform : –
        • Disk Checkers
        • System Restore
        • Disk Defragmenters
        • Disk Management
        • Backup
        • Anti-virus Program
        • Disk Cleaners
        • Network Utilities
        • Data Compression etc.
      • Some utility programs are discussed below : –
      • Diagnostic Tools/Programs
        • A diagnostic program is a program written for the purpose of locating problems with the software, hardware, or both, or a network of systems.
        • A diagnostic program provides solutions to the user to solve issues.
        • In practical experience, these tools do not usually identify the exact cause of the system problem, but they often provide some information about what is in the system and how it is working.
        • Some of these are free or are included with common operating systems at no additional charge, while others are commercial products that range from affordable to rather pricey.
        • Here are some common software diagnostic tools.
          • Power-On Self Test (POST) :
            • This isn’t a separate diagnostic utility; rather it is in fact built into our system BIOS and it runs every time you start up your PC automatically. It is often the best indicator of system problems.
            • Don’t disable its error-reporting functions unless we really need to.
          • MEM.EXE :
            • This simple utility, built into Windows operating system that provides you with details about the memory configuration, as well as what is currently using our memory.
          • Microsoft Diagnostics :
            • Better known as “MSD.EXE”, this is a small DOS utility that takes a brief inventory of the contents of the PC and shows them to us in a text-based format.
            • This is very useful for seeing what disks are in the system, how much memory is installed, and also for checking system resource usage. It will show what type of BIOS we are using.
          • Windows Device Manager :
            • This is the most useful tool for identifying system configuration and resource usage information.
          • Norton System Information (SI) :
            • This utility is similar to the Microsoft Diagnostics, only more detailed in its later versions.
            • SI shows a great deal of information about what is in the PC, going well beyond what MSD gives us, but really is still an information utility as opposed to a true diagnostic.
            • This program is part of Symantec’s Norton Utilities.
          • Microsoft Scan Disk and Norton Disk Doctor :
            • These programs are used to check for hard disk problems.
            • This includes file system corruption and hard disk read errors.
            • They should be used when hard disk problems are suspected.
          • Scandisk
            • It is a utility provided with Windows computers.
            • Scandisk scans our disks to see if there are any potential problems on the disk, such as bad disk areas. Since disks are magnetic media, all disks, including our hard drive can be corrupted.
          • Microsoft Disk Defragmenter
            • This software assists us to keep reorganizing your disk drives. After files are saved, deleted and re-saved again, the disk can become fragmented – available space is in small blocks located throughout the disk.
            • Disk defragmenters gather those free spots and put them together to enable us to continue to save our data in the most efficient manner.
          • Norton Diagnostics :
            • This utility is meant to go beyond the System Information program and actually perform tests on the hardware to identify problems.
            • It includes tests of the processor and motherboard and system memory, and will identify some types of resource conflicts.
            • In reality, it is still quite limited in terms of the numbers of problems it will find.
          • QAPlus :
            • QAPlus from DiagSoft is a more advanced diagnostic suite that comes in several flavours, depending on what we need to do and how we want to do it.
            • This is a more expensive package but can give us much more detailed information about the system and help identify problem situations as well.
    • File View Programs
      • File view utilities are used to see the contents of a wide variety of documents even when we don’t have the application on our system.
      • A file viewer is limited-functionality software it does not have a capability to create a file, or modify the content of an existing one. Instead, it is used only to display or print the content.
      • File viewers do not edit files, but they are able to save data in a different file format.
      • All the fundamental types of file viewers are filters which translate binary files into plain text (one example antiword). Another common type of file viewer is a picture viewer that can display picture files of various formats.
      • Common features here are thumbnail preview and creation, and image zooming.
      • The primary reason behind limited functionality is marketing and control.
      • For example, a popular software program, Adobe Acrobat, can be used to create content for most computer platforms, under various operating systems. To ensure that people can access the documents created with Adobe Acrobat, the software publisher created a viewer program, the Acrobat Reader, and made it available for free.
      • This viewer application allows the content created by the proprietary authoring software to be readable on all supported operating-system platforms, free of charge, thus making it a more attractive solution.
      • There are many products which can qualify as a file viewer: Microsoft Word viewer or Microsoft PowerPoint viewer, and the Open Office equivalents are examples.
      • In a sense, a web browser is a type of file viewer, which translates, or renders, the HTML markups into a human-friendly presentation. Although HTML is plain text, viewing an HTML file in a browser and in a text editor produces significantly different results.
      • Google Docs is another very good example of online file viewer. Google Docs Viewer supports 12 new file types in, including all remaining Microsoft Office file types, Apple’s Pages format, and Adobe’s Photoshop and Illustrator files.
    • Computer Performance Enhancement Utilities
      • A number of utilities are available to improve the overall performance of the computer system by letting the speed up the system or increase storage space. These utilities range from those that come packaged with the operating system or can be purchased separately. Some utilities are –
      • Disk defragmenter utility reorganizes non contiguous files into contiguous files and optimizes their placement on the hard drive for increased reliability and performance.
      • Software Accelerators – There are many hardware and software accelerators available to enhance performance in a particular area. For example, download accelerators are software tools to increase the download speed, while graphic accelerators are co-processors that assist in drawing graphics.
      • Registry Mechanic or Registry Clean Expert – The Windows registry can quickly become crowded and hence slower to search when we remove unused programs that do not uninstall properly. There are utilities like Registry Mechanic or Registry Clean Expert that can help clean Windows registry to improve performance.

    (D) Programming Software

      • Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way.
      • It shields the application software programmer from the often complex details of the particular computer being used. 
      • Examples of Programming Software are : –
    (a) Compilers :
      • A compile is a program that translates the code written in a high-level programming language (called the source code) to the code in lower level language (the object code).
      • The compiler translates each source code instruction into a set of, rather than one object code instruction.
      • Generally, the object code is the machine language code.
      • When a compiler compiles a program, the source program does not get executed during the process, it only gets converted to the form that can be executed by the computer.
    (b) Debuggers :
      • A debugger or debugging tool is a computer program that is used to test and debug other programs (the target program).
      • Typically, debuggers offer functions such as running a program step by step (single-stepping) or breaking (pausing the program to examine the current state) at some event or specified instruction by means of a break point, and tracking the values of some variables.
      • Some debuggers have the ability to modify the state of the program while it is running, rather than merely to observe it.
      • It may also be possible to continue execution at a different location in the program to bypass a crash or logical error.
    (c) Interpreters :
      • Interpreter is another translation program.
      • It takes the source code instruction, one at a time, translates and executes it.
    (d) Linkers :
      • A linker or link editor is a program that takes one or more Object file codes generated by a compiler and combine them into a single executable program.
      • When large software, involving many programmers is to be developed, then the modular approach is adapted.
      • The software is divided into functional modules and separate source programs are written for each module.
      • Each of these source files can then be compiled independent of each other to create a corresponding object file.
      • Eventually, linker is used to combine all the object files and convert them into a final executable program.
    (e) Text editors :
      • A text editor is a type of program used for editing plain text files.
      • Many text editors for software developers include source code syntax highlighting and automatic completion to make programs easier to read and write.
      • Common text editors in Windows environment are Notepad and Textpad.

    (E) Preserve/Malware Software

      (For More Details, Click this Link) 

      (F) Open Source Software

      • Open Source Software (OSS) is software that comes with source code, and importantly also provides rights (typically reserved for copyright holders) to study, change and improve the software.
      • Primary objectives of the Open Source Software are as following : –
        • Encourage innovation at the grass-root level and facilitate collaborative software development involving individual talent than it being the prerogative of the large companies.
        • Reduce the software cost.
        • Improve quality and security
        • Avoid forced lock-in to vendor‘s proprietary software.
      • Open Source Initiative (OSI) is the patron of the Open Source Definiton (OSD) and is the community-recognized body to evaluate and approve the software as OSD compliant.
      • Some Key Criterion for OSD Compliance are : –
        • Free Redistribution :
          • The license should allow any party to sell or give away the software as a component of a larger software distribution containing programs from multiple sources.
          • The license shall not require a royalty or other fee for such sale.
        • Source Code :
          • The program must include source code, and must allow distribution in source code as well as in executable form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge.
        • Derived Works :
          • The license must allow changes to the existing source code and must allow them to be distributed under the same terms as the license of the original software.
        • No Discrimination against Specific Applications :
          • The license must not restrict anyone from making use of the program in a specific scenario.
          • For example, it may not restrict the program from being used in a business, or from being used in drug research.
        • License must Not Be Specific to a Product :
          • The rights attached to the program must not depend on the program being part of a particular software distribution.
        • License must Not Restrict Other Software :
          • The license must not place restrictions on other software that is distributed along with the licensed software.
          • For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
      • Some examples of Open Source Software are:
        • Programming language PHP – Scripting language suited for the web
        • Operating System GNU Project — A sufficient body of free software‖ Linux — operating system kernel based on Unix.
        • Server Software Apache — HTTP web server Tomcat web server — web container MySQL – database, popular for applications built on LAMP stack (Linux, Apache, MySQL, PHP/PERL/Python)
        • MediaWiki — wiki server software, the software that runs Wikipedia.
        • Client software Mozilla Firefox — web browser Mozilla Thunderbird — e-mail client
          Some typical challenges that used to be associated with the Open Source Software were lack of product support that typically comes with proprietary software, future upgrades, end-user training etc. Over a period of time, industry has evolved to overcome these challenges. For example, Red Hat Linux sells Linux operating system and provides product support, training as well.
      • Open Source Software is not always the best option for all the business needs. However, it does provide a good alternative to the proprietary software. One needs to do the required due-diligence to decide the right product for a specific situation.

      Loading


      0 Comments

      Leave a Reply

      Your email address will not be published. Required fields are marked *

      This site uses Akismet to reduce spam. Learn how your comment data is processed.