Tuesday, December 23, 2014

Basics of Software P- 04. Information Communication Technology for Libraries

इस ब्लॉग्स को सृजन करने में आप सभी से सादर सुझाव आमंत्रित हैं , कृपया अपने सुझाव और प्रविष्टियाँ प्रेषित करे , इसका संपूर्ण कार्य क्षेत्र विश्व ज्ञान समुदाय हैं , जो सभी प्रतियोगियों के कॅरिअर निर्माण महत्त्वपूर्ण योगदान देगा ,आप अपने सुझाव इस मेल पत्ते पर भेज सकते हैं - chandrashekhar.malav@yahoo.com

Basics of Software

P- 04. Information Communication Technology for Libraries *

By :Usha Munshi,Paper Coordinator

0. Objectives

The primary objectives of this module are to impart basic knowledge and understanding of :
  • Fundamental Definition of Software
  • Various kinds of software, including Systems-Software, Application-Software and related important sub-categories for each.
  • Relevant software related issues such as Software bugs, Open Source Software and Software Licensing.

1. Software: Definition

Software means computer instructions or data. Anything that can be stored electronically is software, in contrast to storage devices and display devices which are called hardware.
The terms software and hardware are used as both nouns and adjectives. For example, you can say: "The problem lies in the software," meaning that there is a problem with the program or data, not with the computer itself. You can also say: "It's a software problem."
The distinction between software and hardware is sometimes confusing because they are so integrally linked. Clearly, when you purchase a program, you are buying software. But to buy the software, you need to buy the disk (hardware) on which the software is recorded.

2. Categories of Software

Software is often divided into two categories
a)     System software
b)     Application Software
Alternate Text

3.0 Understanding System Software

System software (or systems software) is computer software designed to operate and control the computer hardware and to provide a platform for running application software.
System software includes the following:
  1. The operating system (prominent examples being z/OS, Microsoft Windows, Mac OS X and Linux), allows the parts of a computer to work together by performing tasks like transferring data between memory and disks or rendering output onto a display device. It also provides a platform to run high-level system software and application software.
  2. Utility software helps to analyze, configure, optimize and maintain the computer.
  3. Device drivers such as computer BIOS and device firmware provide basic functionality to operate and control the hardware connected to or built into the computer.
  4. user interface "allows users to interact with a computer."[3] Since the 1980s the graphical user interface (GUI) has been perhaps the most common user interface technology. The command-line interface is still a commonly used alternative.

3.1 The role of System Software

Alternate Text

3.2 Types of System software

a)     Operating systems
b)     Utility programs
c)     Middleware

  1. Operating system
An Operating System is a program that acts as an intermediary between the user of a computer and computer hardware. The purpose of an operating system is to provide an environment in which user can execute programs in a convenient and efficient manner. It is the first program loaded into the computer's memory after the computer is switched on. Popular operating systems include MS-DOS, OS/2, Windows and UNIX.

The operating system is an important component of the computer system, because it sets the standards for the application programs that run on it. All programs must be written to talk to the operating system.
Various functions of Operating System:

1)     Memory Management
2)     Processor Management
3)     Device Management
4)     File Management
Alternate Text

a)     Memory Management Functions
Operating System manages the primary memory of the system. It allocates the memory, on the request of a process, which is being run at that time. It also keeps a check that at a particular time, how many bytes of memory are in use and which process is using it. It also keeps track of what part of it is free. In case of a multi-user system, it decides on priority basis, which user will have access to memory and when. How much of it is used depends on the requirements.
b)     Processor Management Functions
Operating System also takes care of the processor. It allocates the processor to the user. In case of multi-user system, it allocates the processor time to different users as and when needed and in such a way that every user has a minimum waiting time.
c)      Device Management Functions
It keeps track of all the devices i.e. peripherals attached to the computer such as I/O devices etc. When needed, it allocates the devices in such a way that each can be efficiently used. It initiates the I/O operations and allocates them along with other devices to the user
d)     File Management Functions
Writing and retrieving the information on/from the secondary storage device is the function of an Operating System. It follows a complete methodology for  maintaining the files, so that  different sets of information do not get mixed up and exactly the same set of information is supplied, which is required by the user.

3.3 Types of Operating Systems

a)     Single user Operating Systems
These Operating Systems allow only one user to work on a computer at a time.
Example:  MS-DOS
b)     Multi user Operating System
These Operating Systems allow more than one user to work on the computer at the same time. These operating systems allocate memory in such a way that different users can work simultaneously without disturbing each other. They also allocate the processing time in such a way that every user gets a very quick response from the machine. These are also known as Time Sharing Operating Systems
Example: LINUX, UNIX, XENIX,VMS, Windows NT.

Alternate Text
Figure: Operating System Interface
Enterprise Operating Systems
a)     z/OS
b)     MPE/iX
c)     HP-UX
d)     Linux
Workgroup Operating Systems
a)     Windows Server
b)     UNIX
c)     NetWare
d)     Red Hat Linux
e)     Mac OS X Server

Operating Systems for Small Computers, Embedded Computers, and Special-Purpose Devices
a)     Palm OS
b)     Windows Embedded
c)     Windows Mobile

Alternate Text

3.4 Some Popular Operating Systems

DOS (Disk Operating System) gained a reputation by supporting operating systems developed by IBM and Windows. DOS was prominent in the industry up until support was terminated for Windows ME. Though it's not as sophisticated as modern systems, DOS offers many advantages to the user. This system is very stable and rarely endures crashes. It can display content on an arcade monitor without the aid of special hardware and the use of batch files offer a high degree of customization. While the system is still used, DOS has become more difficult to manage as support is limited.
The Linux operating system is developed on a kernel based on Unix. It is known as one of the most secure platforms, yet Linux is often viewed as more complex. Linux is the result of an open-source project, allowing users and developers to access the source code for free. Because it requires less hardware, Linux is capable of providing exceptional performance even on a smaller hard disk. Large communities of users exist for this system, constantly contributing to the code and making improvements. The server-based concept of Linux has resulted in fewer home users and a lack of multimedia support for the system.
Mac OS X
Mac OS X is Apple's trademark operating system software for their line of Macintosh computers. The system was based in part on Unix and mimics it's format with the administrative controls. Mac OS X software requires a low level of maintenance with fewer occurrences of computers worms, viruses and spyware. The Apple operating system does have some disadvantages, primarily in regard to software and hardware compatibility.
The Microsoft Windows operating system is the most popular choice and currently has a stronghold over the market. This platform has made significant advancements from version 1.0 all the way to the new Vista system. The Windows system is highly compatible, feature-rich and has a much larger selection of software applications. Unlike the Linux kernel, Windows is proprietary software and tends to be more expensive than others. Despite widespread usage, Windows has been heavily associated with the term "insecure" as a number of security vulnerabilities have made it the most targeted system. Frequently exploited by hackers and malicious code writers, it is recommended that any Windows operating system with internet access be protected by some form of security software. Although the XP version is still popular among users, support for this system will conclude in 2009 as more emphasis will be placed on developing the Vista series.

4. Utility Programs

Utility software is system software designed to help analyze, configure, optimize or maintain a computer.
Utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, and application software and data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an advanced level of computer knowledge - in contrast to application software, which allows users to do things like creating text documents, playing video games, listening to music or viewing websites.

4.1 Utility software categories

1.      Anti-virus utilities scan for computer viruses
2.      Archivers output a stream or a single file when provided with a directory or a set of files. Archive utilities, unlike archive suites, usually do not include compression or encryption capabilities. Some archive utilities may even have a separate un-archive utility for the reverse operation.
3.      Backup software can make copies of all information stored on a disk and restore either the entire disk (e.g. in an event of disk failure) or selected files (e.g. in an event of accidental deletion).
4.      Clipboard managers expand the clipboard functionality of an operating system .
5.      Cryptographic utilities encrypt and decrypt streams and files.
6.      Data compression utilities output a shorter stream or a smaller file when provided with a stream or file.
7.      Data synchronization utilities establish consistency among data from a source to target data storage and vice versa. There are several branches of this type of utility:
8.      File synchronization utilities maintain consistency between two sources. They may be used to create redundancy or backup copies but are also used to help users carry their digital music, photos and video in their mobile devices.
9.      Revision control utilities are intended to deal with situations where more than one user attempts to simultaneously modify the same file.
    10. Disk checkers can scan operating hard drive.
    11. Disk cleaners can find files that are unnecessary to computer operation, or take up considerable amounts of space. Disk cleaner helps the user to decide what to delete when their hard disk is full.
    12. Disk compression utilities can transparently compress/uncompress the contents of a disk, increasing the capacity of the disk.
    13. Disk defragmenters can detect computer files whose contents are broken across several locations on the hard disk, and move the fragments to one location to increase efficiency.
    14. Disk partitions can divide an individual drive into multiple logical drives, each with its own file system which can be mounted by the operating system and treated as an individual drive.
    15. Disk space analyzers for the visualization of disk space usage by getting the size for each folder (including sub folders) & files in folder or drive. showing the distribution of the used space.
    16. Disk storage utilities
    17. File managers provide a convenient method of performing routine data management tasks, such as deleting, renaming, cataloging, uncataloging, moving, copying, merging, generating and modifying data sets.
    18. Hex editors directly modify the text or data of a file. These files could be data or an actual program.
    19. Memory testers check for memory failures. 
    20. Network utilities analyze the computer's network connectivity, configure network settings, check data transfer or log events.
    21. Registry cleaners clean and optimize the Windows registry by removing old registry keys that are no longer in use.
    22. Screensavers were desired to prevent phosphor burn-in on CRT and plasma computer monitors by blanking the screen or filling it with moving images or patterns when the computer is not in use. Contemporary screensavers are used primarily for entertainment or security.
    23. System monitors for monitoring resources and performance in a computer system.
    24. System profilers provide detailed information about the software installed and hardware attached to the computer.
    Alternate Text
    Alternate Text
    Figure: Utility Software
    [Source: http://1.bp.blogspot.com/-_GsTWl6Qryg/ Ud_CF5B0QbI/AAAAAAAAAao/ fhV7GQu14kg/s1600/ software.jpg]

    5. Middleware

    Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application.

    6.0 Application Software

    Application software is all the computer software that causes a computer to perform useful tasks beyond the running of the computer itself. A specific instance of such software is called a software application, application program, application or app.
    The term is used to contrast such software with system software, which manages and integrates a computer's capabilities but does not directly perform tasks that benefit the user. The system software serves the application, which in turn serves the user.
    Examples include accounting software, enterprise software, graphics software, media players, and office suites.

    6.1 Categorization of Application Software as per the Functional Criteria

    Depending on the functions rendered by the application software, there are many types of application software:
    1. An application suite consists of multiple applications bundled together. They usually have related functions, features and user interfaces, and may be able to interact with each other, e.g. open each other's files. Business applications often come in suites, e.g. Microsoft Office, LibreOffice and iWork, which bundle together a word processor, a spreadsheet, and so on but suites exist for other purposes, e.g. graphics or music.
    2. Enterprise software addresses the needs of an entire organization's processes and data flow, across most all departments, often in a large distributed environment. (Examples include financial systems, customer relationship management (CRM) systems and supply). Departmental Software is a sub-type of enterprise software with a focus on smaller organizations and/or groups within a large organization. (Examples include travel expense management and IT Helpdesk.)
    3. Enterprise infrastructure software provides common capabilities needed to support enterprise software systems. (Examples include databases, email servers, and systems for managing networks and security.)
    4. Information worker software lets users create and manage information, often for individual projects within a department, in contrast to enterprise management. Examples include time management, resource management, documentation tools, analytical, and collaborative. Word processors, spreadsheets, email and blog clients, personal information system, and individual media editors may aid in multiple information worker tasks.
    5. Content access software is used primarily to access content without editing, but may include software that allows for content editing. Such software addresses the needs of individuals and groups to consume digital entertainment and published digital content. (Examples include media players, web browsers, and help browsers.)
    6. Educational software is related to content access software, but has the content and/or features adapted for use in by educators or students. For example, it may deliver evaluations (tests), track progress through material, or include collaborative capabilities.
    7. Simulation software simulates physical or abstract systems for either research, training or entertainment purposes.
    8. 8.      Media development software generates print and electronic media for others to consume, most often in a commercial or educational setting. This includes graphic-art software, desktop publishing software, multimedia development software, HTML editors, digital-animation editors, digital audio and video composition, and many others.
    9. Product engineering software is used in developing hardware and software products. This includes computer-aided design (CAD),computer-aided engineering (CAE), computer language editing and compiling tools, integrated development environments, and application programmer interfaces.

    6.2 Categorization of Application Software as per the Design Criteria

    Depending on the design criteria, the various types of Application Software are

    a)     Proprietary software

    Proprietary software or closed source software is computer software licensed under exclusive legal right of the copyright holder with the intent that the licensee is given the right to use the software only under certain conditions, and restricted from other uses, such as modification, sharing, studying, redistribution, or reverse engineering. Usually the source code of proprietary software is not made available.

    b)     Commercial-Off-The-Shelf Software

    Commercial-Off-The-Shelf Software (COTS) is pre-built software usually from a 3rd party vendor. COTS can be purchased, leased or even licensed to the general public.
    COTS provide some of the following advantages.
    a)     Applications are provided at a reduced cost.
    b)     The application is more reliable when compared to custom built software because its reliability is proven through the use by other organizations.
    c)     COTS is more maintainable because the systems documentation is provided with the application.
    d)     The application is higher quality because competition improves the product quality.
    e)     COTS is of higher complexity because specialists within the industry have developed the software.
    f)      The marketplace not industry drives the development of the application.
    g)     The delivery schedule is reduced because the basic schedule is operations.

    Comparison of Proprietary and Off-the-Shelf Software
    Alternate Text
    Figure: Comparison of Proprietary and Off-the-Shelf Software

    c)   Personal Application Software
    Personal application is which that is use for our personal or professional work.
     Examples of Personal Application Software

    Alternate Text
    Alternate Text

    7.0 Software Issues and Trends

    Since software is an important part of computer systems issues such as software bugs, licensing, upgrades and global support have received increased attention.

    7.1 Software Bugs

    software bug is a defect in a computer program that keeps it from performing in the matter intended.
    Some bugs are subtler and can go unnoticed until it is to late. An example is the denial of service attack on Yahoo! in 1999.

    7.2 Open Source Software

    Open source software is software that freely available to anyone in a form that can be easily modified. The example is MySQL and php. A number of open source programs are available including Linux and Apache.
    Advantages of Open Source Software
    a)     Customizability
    Everybody has the right to modify the source code, This means the code can be implemented in order pieces of software and adapted to changing environment
    b)     Quality
    In general, open source software gets closest to what user want because those users can have a hand in making. Users and developers make what they want and they make high quality of source.
    c)     Cost 
    1)     Most current Open Source are available free of royalties
    2)     Individuals and smaller companies may aid in developing the software reducing number of programmers to pay the salaries.

    Disadvantages of Open Source Software

    a)     No guarantee
    It is impossible to know if a project will ever reach a suitable stage on time and even if it reaches, it may have many bugs or problems later and no one guarantees the software and nobody is bound to give you regular updates since it is free.

    b)     No support
    Since it is free, there is no support even thought there are many helps available on the internet, the users have to have self-motivation to help them install and to run open software without any support.

    c)     Not reliable
    Because the users can modify the source by themselves, the source could have some problems and may not be reliable.

    Examples of Open-Source Software
    Alternate Text

    7.3 Software Licensing

    In general, software manufacturers want to license their software to lock in steady, predictable stream of revenue from customers.
    *Client should be aware of EULA.
    EULA (End User License Agreement)

    The type of license used for most software. An EULA is a legal contract between the manufacturer and/or the author and the end user of an application. The EULA details how the software can and cannot be used and any restrictions that the manufacturer imposes.
    The contract between the licensor and purchaser, establishing the purchaser's right to use the software.
    Software Upgrades

    Software companies revise their programs and sell new versions periodically. In some cases the revised software offers new and valuable enhances.
    Example of upgrades includes service packs provide by Microsoft for their operating systems.
    Global Software Support

    Globalization has ensured that computer networks stretch to all corners of the earth. Software producers need to ensure they provide global support otherwise people will go to their competition instead.

    8. Summary

    1)     Computer programs: sequences of instructions for the computer
    2)     Systems software: coordinates the activities of hardware and programs
    3)     Applications software: helps users solve particular problems
    4)     Operating system (OS): set of computer programs that controls the computer hardware and acts as an interface with application programs
    5)     Graphical user interface (GUI): user interface that uses icons and menus displayed on screen to send commands to the computer system
    6)     Time-sharing: allows more than one person to use a computer system at the same time
    7)     Proprietary software: one-of-a-kind program for a specific application, usually developed and owned by a single company
    8)     Off-the-shelf software: existing software program that is purchased
    9)     Enterprise resource planning (ERP) software: manages a company’s vital business operations for an entire multisite, global organization
    10) Programming languages: allow humans to communicate instructions to be executed by a computer
    11) Most software products are protected by law using copyright or licensing provisions
    12) Open-source software is freely available to anyone in a form that can be easily modified

    9. References

    1. http://www.webopedia.com/TERM/S/systems_software.html
    2. http://en.wikipedia.org/wiki/Software
    3. http://en.wikipedia.org/wiki/System_software
    4. http://en.wikipedia.org/wiki/Application_software
    5. http://en.wikipedia.org/wiki/Middleware
    6. http://en.wikipedia.org/wiki/Utility_software
    7. https://zaipul.wikispaces.com/Information+Technology
    8. http://nielit.in/elearning.aspx
    9. http://yukiinformationsystem.blogspot.in/2012/10/software-issues-and-trends.html
    10. http://www.slideshare.net/SowminiGowda/04-software-system-and-application-software

    No comments: