Computer software refers to the electronic instructions and procedures that command and control the operation of a computer.
TYPES OF SOFTWARE
There are mainly two types of software.
- System Software
- Application software
System software refers to a category of software that enables the computer to work and as well control devices connected to it.
Or It refers the software that performs tasks related to the operation and performance of the computer system.
System software is a set of programs designed to manage operations of the computer and avail computer resources to the user.
Functions of system software
- Booting the computer
- Making sure that all hardware elements are working properly
- Performing operations such as retrieving, loading, executing and storing application programs
- Storing and retrieving files
- Performing a variety of system utility functions.
CATEGORIES OF SYSTEM SOFTWARE
There are three categories of system software.
- Operating system
- Utility programs
OPERATING SYSTEM SOFTWARE
Operating system is a type of system software that performs daily activities of a computer. These are programs that manage the computer resources.
Types of operating system
- Stand-alone operating system
- Network operating system
- Embedded operating system
Examples of Operating System Software
- Windows operating system
- Linux , Unix, Ubuntu Operating System
- Chrome operating system
- Novell operating system
- Android for mobile phones
Function of Operating System (Os)
- It helps in processor management e.g. multitasking and time sharing.
- Control the use of peripheral devices.
- It provides an environment that enables installation of application software
- Controls the booting process of a computer
- Monitors system performance.
- Helps in administering security
- It helps in file management.
- It helps in connecting devices to work with computer(configuring of devices)
- Responsible for scheduling computer tasks/jobs
- Helps to establish network connections.
Forms of Operating System User Interfaces
There are two forms of Operating user interfaces.
- Command-Line User Interface:
- Graphical User interface
Command-Line User Interface:
With a command line interface, a user types keyboard or press special keys on the keyboard to enter data and instructions. The set of commands a user uses to interact with the computer is called command language. Examples are DOS, UNIX, Linux.
You are provided with a virtually empty screen with a blinking cursor where commands are keyed and the computer executes them by pressing the enter key.
Advantages of Command User Interface:
- Commands are executed faster.
- Consumes limited Random Access Memory
- Cannot easily affected by viruses
- Ideal for programming and programmers
- Commands can be grouped together.
Disadvantages of Command User Interfaces
- Commands are not easily memorized
- Requires a lot of knowledge to master the commands
- Commands have to be typed correctly
- No graphics on the screen.
- A mouse cannot be used
Graphical User Interface (GUI)
Graphical user interface allows the user to use menus and visual images such as icons, buttons and other graphical objects to issue commands.
Advantages of Graphical User Interface (GUI)
- It is user friendly because it is easy to learn and work with
- There is no need to type and memorize any command language.
- The interface is similar for any application.
- You are provided with a coloured screen with icons each representing a program.
- A mouse may be used.
Disadvantages of Graphical User Interface (GUI)
- Require much more memory and as well as the processor
- Require much more desk space to hold the files
- Difficult to automate for expert users
- Easily affected by viruses
- Not good for programmers.
This is parts of system software which are designed to configure, analyze, optimize and maintain a computer in its operation.
Functions of the Utility Programs
- It detects and protects a computer against computer viruses
- It reduces screen burnout (ghosting) by playing a screen saver
- It increases desk space by compressing data files
- It checks disk errors and sometimes fixes them
- It stores the system functionality (i.e. system store)
- It enables computers to sort files in order.
- It enables a user to merge files
- It defragments hard disks
- It enables a user to encrypt files.
Common Utilities used
Antivirus utility: used to search, find and remove viruses from the computer
System archives: These output a stream or a single file when provided with a directory/set of files.
Disk checkers: these scan an operating hard drive for logical (file system) and physical errors
Backup utility: makes a copy of all information stored on the hard disk onto another storage medium e.g external hard disk, dvds, etc.
Cryptographic utilities: used to encrypt and decrypt streams of files.
Data compression utilities: output a smaller file when provided with a file.
Disk compressors: these compress/reduce the size of the file thus increasing the capacity of the disk.
Disk defragmenters: These detect computer files whose content is scattered in several locations on the hard disk and move fragments to one location to increase efficiency.
Screen savers: these prevent phosphor burn-in on CRT and plasma monitors by filling it with moving images, patterns when the computer is not in use.
Sorting utilities: these help to organize data in a given order.
Memory testers: these check for memory failures.
Disk partition editors: these divide a drive into multiple logical drives, each with its own file system which can be mounted by the operating system to be treated as an individual drive.
File synchronization utilities: these maintain consistency between two sources. They enable redundancy or making copies of data.
System profilers: provide detailed information about the software installed and hardware attached to the computer.
Network utilities: these analyze a computer’s network connectivity, configure network settings, check data transfer or log events.
This is a small program that tells the operating system how to communicate with the device. Each device on a computer (e.g. a mouse) has its own specialized set of commands and thus requires its own specific driver. The operating system loads each device’s driver when the computer boots up.
To communicate with the hardware devices, the operating system relies on device drivers.
• A device driver is a program that accepts instructions and then converts them into commands that the device understands.
• Each device on a computer, such as the keyboard, mouse, monitor, printer, card reader/writer, and scanner, has its own device driver.
These refer to the languages used to write a computer instruction, program software. A person who writes a program is called a programmer.
Functions of Software Programmer
- He writes a computer program
- He maintains a computer program
- He upgrades a computer
TYPES OF PROGRAMMING LANGUAGES
Programming languages are of two types
- Low level programming language
- High level programming language
Low level languages
This is a computer program written in machine code language, the language understood by a computer. It is also referred to as binary language because it consists of only two digits. The digits of 0s and 1s
Types of low-level languages
- Machine code language (First generation)
- Assembly language (Second generation)
Assembly (low-level) languages
This is a language which consist of mnemonic symbols (English like words) used to represent the binary digits of zeros and ones of machine language. Assembler languages are used to develop system software.
However computers can only understand machine language, thus assembler languages must be translated into machine language for execution.
Advantages of Low level languages/Machine code
- Machine code program are executed faster.
- They don’t require either a compiler or interpreters except assembly
- They are suitable to developing operating systems.
Disadvantages of Low level languages
- They are difficult to learn and understand.
- The instructions are expressed in binary form ( 0 and 1s)
- The programs are machine dependent hence difficult to be used by other machines of different family.
High level programming languages
This is a computer program written in official language (known to man) but should be converted to machine code for a computer to understand.
High level languages consist of statements or sequences text including words, numbers and punctuation, much like written natural languages.
Advantages of High level Languages
- They are machine independent and can be used by other computers.
- They are user friendly and problem oriented.
- They are easier to learn, write, correct and revise than assembler and machine languages.
- They can be used for development of application software.
Disadvantages of High level Languages
- They require to be translated to machine code
- They are not executed faster.
Examples of high level languages
|C++, C#(C-sharp) PERL FORTRAN PHP, COBOL, PASCAL, Python, Java Script Java, C|
Language processors: These have to translate high level languages to machine code languages which the processor can understand. They are software designed to translate from high level language to low-level language.
Examples of language processors
A compiler: a compiler is a program which translates a whole source program from high level language to low level language which can easily be understood by the computer.
An interpreter: This is a program that translates the source program line by line while the program is running from high level language to low level language.
The assembler: This translates assembler instructions from assembley language to machine code language or the binary code.
The linkers: These combine compiled programs and determine where the program will be located in the memory.
These are applications/software used to write computer language/codes. Some also compile.
Examples of language editors
- Trouble c
- Sublime Text
- Dev C, C++
- Notepad ++
Common terms used in programming
Source code is a program instruction written as text file by the programmer that must be translated by a compiler or interpreter or assembler into an object code before execution.
Source code cannot be understood by the computer until it has been translated into machine code.
Execution is the process by which a computer system performs the instructions of a computer program.
Object code is a program code in machine language that is ready for execution by the computer.
Bug is a logical problem in the program source code that stops the program to give wrong results/ from running
Debugging is the process of detecting, checking and identifying problems and errors in the source code.
This is a software program that performs a specific and user function. Application software is installed on operating system.
Application software consists of programs designed to perform specific tasks for end-users. For example typing a letter.
TYPES OF APPLICATION SOFTWARE
Application software is categorized into two:
- Off-shelf packages
- Customized programs/ Bespoke/ Tailor-made programs
OFF SHELF PACKAGES
- These are programs already written and ready to be run upon their purchase.
Main categories of off shelf packages
These are programs that enable you to perform word processing functions, they are document production applications.
Word processing software
An application software with which a user creates, edits save, format And print letters reports and other documents. E.g. word processing software, EZ word, word perfect etc
An application with which a user can organize data in rows and columns create graphs and can perform calculations e.g. Ms excel, Lotus 123, VisiCalc
An application with which a user can organize content on a slide for viewing by the audience. Ms power point, Harvard graphics, Corel presentation
An application with which one can store lots of data for future manipulation
Desktop publishing software
Application software with which one can design publications like news papers, wedding cards certificates etc
Imaging software application software with which done can edit, retouch a photograph.
Web browsing software
Web browsing software used for displaying and viewing webpages from the internet or html documents on computers.
- Mozilla Firefox,
- Internet Explorer
- Netscape Navigator
Web authoring software
Web authoring software – These are used by webmasters for building websites. Examples include:
- Microsoft FrontPage,
- Adobe Dreamweaver,
- Microsoft Expression Web,
- Antenna Web Design Studio
- Sublime text 3
Media Players for Audio and Video
Media Players for Audio and Video playback on computers. Examples include:
- Windows Media Player,
- Nero Showtime,
- Power DVD,
- VLC Media Player
- Virtual DJ, e.t.c.
Graphics software – Used by graphic designers to create and design artistic graphics and to manipulate visual images on a computer such as
logos, cartoons etc.
- Adobe Photo shop,
- Corel Draw,
- Adobe Illustrator etc.
Accounting software helps companies to record and report their financial transactions. With accounting soft-ware, you perform accounting activities related to the general ledger, accounts receivable, accounts payable, purchasing, invoicing, job costing, payroll functions, etc. Examples include Quick Books
Audio and video editing software
Audio editing software lets users produce studio quality soundtracks. With video editing software, you can modify video clips: you can reduce the length of a video clip, reorder a series of clips, or add special effects such as words that move horizontally across the screen etc.
- Adobe Premier Video Editor
- Ulead Video Editor
- Adobe Audition for –audio
- Fruity Loops Studio-audio
Images viewing software
This refers to computer applications primarily used for previewing digital photographs on the computer screen.
Many have basic features such as viewing thumbnails, slideshows, printing and simple editing such as cropping and resizing.
Examples of Image viewers include: Microsoft Office Picture Manager, Windows Photo viewer, Picasa photo viewer, etc.
Reference software provides valuable and thorough information for all individuals. Popular reference software includes encyclopedias, dictionaries, health/medical guides, and travel directories.
Examples include: Encyclopaedia Britannica 2011 Ultimate Reference DVD
Microsoft Student with Encarta Premium, e.t.c.
Note Taking software
Note taking software enables users to enter typed text, handwritten comments, drawings, or sketches anywhere on a page and then save the page as part of a notebook .The software can convert handwritten comments to typed text or store the notes in handwritten form. Examples include Microsoft Office OneNote
Text editors are simple word processors that are generally used to type without any special formatting. Text editors are mainly used to create small notes, memos and programs. Examples of common text editors are: Notepad,
Notepad++, Sublime Text, Gedit etc.
These are programs developed as electronic game that involve human interaction with a user interface to generate visual feedback on a computer.
Common computer games include solitaire, chess titans, Racing, StarCraft, Need for Speed, GTA Vice City, and Alien Shooter.
Email Software / Email client
Email software (Commonly known as email client) is a computer program used to access and manage a user’s email account.Web applications that provide message management, composition, and reception functions are sometimes also commonly referred to as webmail.
Popular locally installed email clients include Microsoft Outlook, Pegasus Mail, Mozilla’s Thunderbird, KMail, Evolution and Apple Mail. Popular web-based email clients include: GMail, Yahoo! Mail, mail.com, Lycos mail, and Hotmail.
Advantages of off-shelf packages
- They are relatively cheaper than bespoke packages.
- They are readily available for purchase.
- They are user friendly; many have a graphical user interface, sample manuals provided on purchase.
- The user does not face research and development costs or problems since the package is already in operation.
- The user faces limited risk since the user has an option to seek information from existing users about the package before making a decision to purchase.
Disadvantages of off-shelf packages
- They hardly full fill users’ specific needs perfectly.
- They are standardized implying it may be hard to make adjustments.
- They may not be recommended where a particular company wants to gain competitive advantage over others.
- Where the package does too much compared to the company needs, the amount of extra space occupied in the hardware can lead to memory wastage.
- The package may also be limited to a particular operating system like Microsoft Office for Windows operating system.
- It may be easy to manufacture viruses that may tamper with such application programs.
These are tailor made programs constructed to meet specific user requirements. They are specifically designed to meet user requirements.
Merits of customized programs
- Ability to satisfy user’s specific needs
- The company will be able to perform tasks with its software that its competitors cannot do with theirs thereby gaining a competitive advantage.
- They can easily be modified or upgraded.
- Ownership is to the company that ordered for the software.
Disadvantages of customized software
- Time taken to develop the package may be long yet requirements could be urgent.
- The cost of paying programmers makes them expensive. The organisation has to incur development and consultancy costs in this case.
- They are not flexible i.e. not meant to do various tasks.
- They are expensive to maintain. When they breakdown programmers who are expensive have to be called in
- In-case of breakdown, the company may be brought to a standstill
- There is a greater probability of bugs in bespoke programs.
- They are not compatible with all computer types i.e. they are designed for specific computer types.
- The program may not run which means that the programmer has to design another one. This could even lead to more costs on the side of the user as well as causing delays
Shareware is copyrighted software that is distributed at no cost for a trial period. To use a shareware program beyond that period, you send payment to the program developer. In some cases, a scaled-down version of the software is distributed free, and payment entitles the user to the fully functional product.
Copyrighted software refers to computer programs with restrictions regarding use, modification, and redistribution. You have to pay for copyrighted software and must not copy it without permission from the manufacturer. Copying copyrighted software without paying for it is clearly unethical and illegal.
Freeware is copyrighted software provided at no cost by an individual or a company that retains all rights to the software. Therefore, other programmers cannot include freeware in applications they intend to sell.
Open source software is software provided for use, modification, and redistribution. This software has no restrictions from the copyright holder. Open source software usually can be downloaded from the Web at no cost.
Public-domain software has been donated for public use and has no copyright restrictions. Anyone can copy or distribute public domain software to others at no cost.
Web-based software refers to programs hosted by a Web site. Users access and interact with Web-based software from any computer or device that is connected to the Internet. Many Web sites allow free access to their programs; some charge a fee. Examples of Web-based software include e-mail,
Website builders, online games, travel and mapping software ,e.t.c.
Special Purpose (Specialized) Software
This refers to computer programs developed and dedicated to accomplish particular jobs only. Programs that run on special purpose computers like ATMs are special purpose software.
Other Examples of specialized software include:
- Business – Transaction and Sales Management software.
- Science and Engineering software etc..
This refers to a Wide a variety of application programs that perform many common tasks.
• Varieties of General purpose application programs include Word processing programs, Spreadsheet programs, web browsers, Graphics programs, etc.
A software suite is a collection of several applications that are bundled together and sold or distributed as a single package. The software programs may have correlative features and functionality or they may be completely different from one another but share a similar theme.
When you install the suite, you install the entire collection of applications at once instead of installing each application individually. At a minimum, suites typically include the following software applications: word processing, spreadsheet, database, and presentation graphics,
Examples of software suites
- Microsoft Office
- Libre Office Productivity Suite.
- Open Office.Org
- Word Perfect Office X5
- Quickoffice & OfficeSuite
- ProOffice Free 3.0
- Lotus Smart Suite
- Adobe Master Suite
Advantages of using software suites
- Costs significantly cheaper than buying each of the application package separately
- Easy to learn and use because applications within a suite usually use a similar interface and share common features such as clip art and toolbars.
- Easy installation because all the various applications can be installed at once.
Common Terminologies used in Software
Software needs to be accessed before it can be used. There are many terms used for the process of accessing software including running, executing, starting up, opening, and others. A program can also be referred to as an application and the two words are used interchangeably.
This is a document that provides legally binding guidelines for the use and distribution of software.
This refers to the legal contact between licensor and /or author and the purchaser of a piece of software which establishes the purchaser’s’ rights.
Software piracy This is the illegal duplication of copyrighted software.
Software bug refers to an error in the programming code that does not permit it to function well.
Beta software is a type of software provided to people for testing purposes.
Software release is the process of issuing/letting the software or application for publication, use and distribution.
Software version refers to variation of an earlier or original type with minor changes to the existing version or type. Eg. ITunes 12.0, ITunes 12.2.3
Hot fix: This is a software program that is designed to fix a bug or security hole in software program.
Spy ware: This is a software application that is designed to gather information about a person or organization without their knowledge that may send such information to another entity.
Software Patch: This is a software program that is designed to modify, correct, and fix problems in software.
Software update: This is a software application that provides fixes for features that are not working as intended or adds minor software enhancements and compatibility.
Software upgrade: This is a process of replacing a product with a newer version of the same product.
Firmware: This is a permanent software that is programmed or embedded in a hardware usually read-only-memory by the manufacturer.
Characteristics of Good computer software
- …provides the required functionality.
- …is usable by real (i.e. simple) users.
- …is predictable, reliable and dependable.
- …functions efficiently.
- …has a “life-time” (measured in years).
- …provides an appropriate user interface.
- …is accompanied by complete documentation.
- …can be easily customized/configured.
- …can be “easily” maintained and updated.
Factors to consider before obtaining a software program
- Correctness — does the software do what it is suppose to do (according to the design specs)?
- Robustness — how does the software respond to unexpected conditions (wrong input)?
- User-friendliness — is the software easy to use by users from the intended audience?
- Adaptability — how difficult is it to modify the software to adjust to an ever-changing world?
- Cost effectiveness
Characteristics of good software
- Suitability. This is the essential Functionality characteristic and refers to the appropriateness (to specification) of the functions of the software.
- Accurateness. This refers to the correctness of the functions, an ATM may provide a cash dispensing function but is the amount correct?
- Interoperability. A given software component or system does not typically function in isolation. It concerns the ability of a software component to interact with other components or systems.
- Compliance. Where appropriate certain industry (or government) laws and guidelines need to be complied with. This s addresses the compliant capability of software.
- Security. This relates to unauthorized access to the software functions.
- Fault tolerance. The ability of software to withstand (and recover) from component, or environmental, failure.
- Understandability. Determines the ease of which the systems functions can be understood, relates to user mental models in Human Computer Interaction methods.
- Learnability. Learning effort for different users, i.e. novice, expert, casual etc.
- Maintainability. Characterizes the amount of effort to change a system.
- Stability. Characterizes the sensitivity to change of a given system that is the negative impact that may be caused by system changes.
- Replace ability. Characterizes the plug and play aspect of software components, that is how easy is it to exchange a given software component within a specified environment.