You are on page 1of 5

Common Types of Computer Software

Computer Software is the languages of the computer. And like the human languages, there are
many different computer languages. Essentially, Computer software can be divided into three
main groups depending on their use and application these are:
1. System software or Operating System software
Is the software used by the computer to translate inputs from various sources into a
language which a machine can understand? Basically the System software or the operating
system software coordinates the different hardware components of a computer. There are
many OS in the market. The most popular OS are from the stable of Windows, Microsoft has
migrated to Vista, its latest offering in the market. It may come as a surprise to some ` that
there are other operating systems used by others. Among these UNIX is use for large office
setups with extensive networking. XENIX is software which has now become redundant. HP
–UX and AIX are some operating system used by HP computers. Apache OS is quite popular
with web servers. IBM is still uses proprietary operating system for its main frames.
Proprietary systems are generally built with the help of a variant of UNIX operating system.
2. Application software
A normal user rarely gets to see the operating system or to work with it. But all of us are
familiar with application software which we must use to interact with computer. Popular
examples of application software are the Microsoft office suite which include word, excel, and
PowerPoint. We have used this application extensively. Internet Explorer, Mozilla Firefox is two
applications software used to access the internet.
Application Software - also provides support to the physical components of computers.
System software coordinates all external devices of computer system like printer, keyboard,
displays etc.
Application software is used for commercial purpose. The application software is
widely used in educational, business and medical fields. Computer games are the most popular
forms of application software. Industrial automation, databases, business software and
medical software prove to be of great help in the respective fields. Educational software is
widely used in educational institutes across the globe.
3. Programming Languages;
Programmers use the programming software to develop the programming languages
necessary to run computer software. Compliers, interpreters, linkers and text editors are some
of the basic tools used in programming software.
Programming program or Programming Languages

Now this is a kind of computer software which is used exclusively by computer


programmers. Unless we are also programmers, we are unlikely to come across programming
languages. A simple way to understand programming languages is to think of them as
bricks which can be used to create application and operating system. C++, Java and SIMLAB
are some popular programming languages. Generally java is used for internet application. C++ is
a language of a professional developers and used extensively in developing operating
system. PHP is another languages used for internet applications. There is a new class of
languages which are utilized for mobiles. These are light weight, modular languages which
are used to design mobile application.
Computer software fall under three basic categories; system software or operating
system software, application software, and Programming languages. We usually use application
on a day to day basis. These application are themselves created using programming languages.
OTHER TYPES OF SOFTWARE

There are many different types of software, which can be a little confusing for the uninitiated.
Following is a brief definition of each type, and the differences between them.
Retail software: This type of software is sold off the shelves of retail stores. It includes
expensive packaging designed to catch the eye of shoppers and, as such, is generally more
expensive. An advantage of retail software is that it comes with printed manuals and installation
instructions, missing in hard-copy form from virtually every other category of software.
However, when hard-copy manuals and instructions are not required, a downloadable version off
the Internet will be less expensive, if available.
OEM software: OEM stands for "Original Equipment Manufacturer" and refers to software
sold in bulk to resellers, designed to be bundled with hardware. For example, Microsoft has
contracts with various companies including Dell Computers, Toshiba, Gateway and others.
Microsoft sells its operating systems as OEM software at a reduced price, minus retail
packaging, manuals and installation instructions. Resellers install the operating system before
systems are sold and the OEM CD is supplied to the buyer. The "manual" consists of the Help
menu built into the software itself. OEM software is not legal to buy unbundled from its original
hardware system.
Shareware: This software is downloadable from the Internet. Licenses differ, but commonly the
user is allowed to try the program for free, for a period stipulated in the license, usually thirty
days. At the end of the trial period, the software must be purchased or uninstalled. Some
shareware incorporates an internal clock that disables the program after the trial period unless a
serial number is supplied. Other shareware designs continue to work with "nag" screens,
encouraging the user to purchase the program.
Crippleware: This software is similar to shareware except that key features will cease to work
after the trial period has ended. For example, the "save" function, the print function, or some
other vital feature necessary to use the program effectively may become unusable. This
"cripples" the program. Other types of crippleware incorporate crippled functions throughout the
trial period. A purchase is necessary to unlock the crippled features.
Demo software: Demo software is not intended to be a functioning program, though it may
allow partial functioning. It is mainly designed to demonstrate what a purchased version is
capable of doing, and often works more like an automated tutorial. If a person wants to use the
program, they must buy a fully functioning version.
Adware: This is free software that is supported by advertisements built into the program itself.
Some adware requires a live Internet feed and uses constant bandwidth to upload new
advertisements. The user must view these ads in the interface of the program. Disabling the ads
is against the license agreement. Adware is not particularly popular.
Spyware: Spyware software is normally free, but can be shareware. It clandestinely "phones
home" and sends data back to the creator of the spyware, most often without the user's
knowledge. For example, a multimedia player might profile what music and video files the
software is called upon to play. This information can be stored with a unique identification tag
associated with the specific program on a user's machine, mapping a one-to-one relationship. The
concept of spyware is very unpopular, and many programs that use spyware protocols were
forced to disclose this to users and offer a means to turn off reporting functions. Other spyware
programs divulge the protocols in their licenses, and make acceptance of the spyware feature a
condition of agreement for using the software.
Freeware: Freeware is also downloadable off the Internet and free of charge. Often freeware is
only free for personal use, while commercial use requires a paid license. Freeware does not
contain spyware or adware. If it is found to contain either of these, it is reclassified as such.
Public domain software: This is free software, but unlike freeware, public domain software
does not have a specific copyright owner or license restrictions. It is the only software that can be
legally modified by the user for his or her own purposes. People are encouraged to read
licenses carefully when installing software, as they vary widely.

GENERAL SECURITY, PRIVACY LEGISLATION AND COPYRIGHT


The security of software is threatened at various points throughout its life cycle, both by
inadvertent and intentional choices and actions taken by “insiders”—individuals closely
affiliated with the organization that is producing, deploying, operating, or maintaining the
software, and thus trusted by that organization—and by “outsiders” who have no affiliation with
the organization. The software’s security can be threatened:
 during its development: A developer may corrupt the software—intentionally or
unintentionally—in ways that will compromise the software’s dependability and
trustworthiness when it is operational.
 during its deployment (distribution and installation): If those responsible for
distributing the software fail to tamperproof the software before shipping or uploading, or
transmit it over easily intercepted communications channels, they leave the software
vulnerable to intentional or unintentional corruption. Similarly, if the software’s installer
fails to “lock down” the host platform, or configures the software insecurely, the software
is left vulnerable to access by attackers.
 during its operation: Once COTS and open source software has gone operational,
vulnerabilities may be discovered and publicized; unless security patches and updates are
applied and newer supported versions (from which the root causes of vulnerabilities have
been eliminated) are adopted, such software will become increasingly vulnerable. Non-
commercial software and open source software (OSS) may also be vulnerable, especially
as it may manifest untrustworthy behaviors over time due to changes in its environment
that stress the software in ways that were not anticipated and simulated during its testing.
Any software system that runs on a network-connected platform has its vulnerabilities
exposed during its operation. The level of exposure will vary depending on whether the
network is public or private, Internet-connected or not, and whether the software’s
environment has been configured to minimize its exposure. But even in highly controlled
networks and “locked down” environments, the software may be threatened by malicious
insiders (users, administrators, etc.).
 during its sustainment: If those responsible for addressing discovered vulnerabilities in
released software fail to issue patches or updates in a timely manner, or fail to seek out
and eliminate the root causes of the vulnerabilities to prevent their perpetuation in future
releases of the software, the software will become increasingly vulnerable to threats over
time. Also, the software’s maintainer may prove to be a malicious insider, and may
embed malicious code, exploitable flaws, etc., in updated versions of the code.
Both research and real-world experience indicate that correcting weaknesses and vulnerabilities
as early as possible in the software’s life cycle is far more cost-effective over the lifetime of the
software than developing and releasing frequent security patches for deployed software.

Software Assurance
The main objective of software assurance is to ensure that the processes, procedures, and
products used to produce and sustain the software conform to all requirements and standards
specified to govern those processes, procedures, and products. Software security and secure
software are often discussed in the context of software assurance. Software assurance in its
broader sense refers to the assurance of any required property of software. For software
practitioners at the National Aeronautics and Space Administration (NASA), software assurance
refers to the assurance of safety as a property of software. Similarly, in other communities,
software assurance may refer to assurance of reliability or quality. In the context of this article,
software assurance is concerned with assuring the security of software.
An increasingly agreed-upon approach for assuring the security of software is the software
security assurance case, which is intended to provide justifiable confidence that the software
under consideration
(1) is free of vulnerabilities;
(2) functions in the “intended manner,” and this “intended manner” does not compromise the
security or any other required properties of the software, its environment, or the information it
handles; and
(3) can be trusted to continue operating dependably under all anticipated circumstances,
including anomalous and hostile environmental and utilization circumstances—which means that
those who build the software need to anticipate such circumstances and design and implement
the software to be able to handle them gracefully. Such circumstances include
 the presence of unintentional faults in the software and its environment
 the exposure of the operational software to accidental events that threaten its security
 the exposure of the software to intentional choices or actions that threaten its security
during its development, deployment, operation, or sustainment
Software is more likely to be assuredly secure when security is a key factor in the following
aspects of its development and deployment:
 Development principles and practices: The practices used to develop the software and
the principles that governed its development are expressly intended to encourage and
support the consideration and evaluation of security in every phase of the software’s
development life cycle. Some secure development principles and practices for software
are suggested later in this article.
 Development tools: The programming language(s), libraries, and development tools
used to design and implement the software are evaluated and selected for their ability to
avoid security vulnerabilities and to support secure development practices and principles.
 Testing practices and tools: The software is expressly tested to verify its security, using
tools that assist in such testing.
 Acquired components: Commercial off-the-shelf (COTS) and OSS components are
evaluated to determine whether they contain vulnerabilities, and if so whether the
vulnerabilities can be remediated through integration to minimize the risk they pose to
the software system.
 Deployment configuration: The installation configuration of the software minimizes the
exposure of any residual vulnerabilities it contains.
 Execution environment: Protections are provided by the execution environment that can
be leveraged to protect the higher level software that operates in that environment.
 Practitioner knowledge: The software’s analysts, designers, developers, testers, and
maintainers are provided with the necessary information (e.g., through training and
education) to give them sufficient security awareness and knowledge to understand,
appreciate, and effectively adopt the principles and practices that will enable them to
produce secure software.

You might also like