Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 15

IT FOR MANAGERS

SU
BMITTED BY :

ANOOP S PILLAI

ROLL NO: 06

PGDM-IB
SOFTWARE LICENSING
A software license is a legal instrument governing the usage or redistribution of copyright protected
software. A typical software license grants an end-user permission to use one or more copies of
software in ways where such a use would otherwise constitute infringement of the software
publisher's exclusive rights under copyright law. In effect, the software license acts as a promise
from the software publisher to not sue the end-user for engaging in activities that would normally
be considered exclusive rights belonging to the software.

Software licensing is a contract of agreement between the software publisher and the end user,
sometimes referred to as the End User License Agreement, or EULA. Though software licensing
can be a paper agreement, it is most often imbedded in the software itself as part of the installation
process. This aborts the installation process. In most cases, end users click in agreement whether
they actually read the license or not.

Most notably, software licensing protects the copyright by placing restrictions on the end user in
relation to the product. Duplication for purposes other than backup, installation on more than one
computer, editing the code, or changing the program in any way is usually forbidden. Software
licenses might also restrict reverse engineering and bypassing controls intended to cut down on
pirating.

Software licenses can generally be fit into the following categories:

 Proprietary licenses

 Free software license/Open source licenses

The feature that distinguishes them is significant in terms of the effect they have on the end-user's
rights.

 Proprietary software licenses

The hallmark of proprietary software licenses is that the software publisher grants a license to use
one or more copies of software, but that ownership of those copies remains with the software
publisher (hence use of the term "proprietary”. Only a very limited set of well-defined rights are
conceded to the end-user.

One example of such a proprietary software license is the license for Microsoft Windows. As is
usually the case with proprietary software licenses, this license contains an extensive list of
activities which are restricted, such as: reverse engineering simultaneous use of the software by
multiple users, and publication of benchmarks or performance tests.

 Free software license

Free software is not 'free' in the sense of unconditional enjoyment of the software. It is a software
which is licensed to the end user under a License which follows the substantially the model terms
prescribed by the FSF advocated GNU GPL and other similar software License Agreements. In
other words, the Original publisher/Author retains the actual Title (copyrights) to the software
licensed to the Licensee. (There is no change in the ownership of the software. This License instead
of granting limited rights to the Licensee grants all Rights (which for other intellectual property
products like books etc is 'this right and not all') except the right sell license it on different terms.
The only restricting clause in this kind of software license is the one which restricts the right of
Licensee to further License the software on different terms than under the free software license.
This one condition makes it obligatory for the Licensee to further License any derivative software
built from the open source software to be licensed only on Open source license. The overall effect
of the Licensing system of the free software movement is perpetuation of free use of software.
Commercial Licensing for a profit is also prohibited by the above free software License.

An example of a Free Software license is the General Public License (GPL). This license is aimed
at giving the end-user significant permission, such as permission to redistribute, reverse engineer,
or otherwise modify the software. These permissions are not entirely free of obligations for the
end-user, however. The end-user must comply with certain terms if the end-user wishes to exercise
these extra permissions granted by the GPL. For instance, any modifications made and
redistributed by the end-user must include the source code for these, and the end-user is not
allowed to re-assert the removed copyright restrictions back over their derivative work.

BUGS (SOFTWARE DEFECTS)


A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it
from behaving as intended (e.g., producing an incorrect or unexpected result). Most bugs arise from
mistakes and errors made by people in either a program's source code or its design, and a few are
caused by compilers producing incorrect code.

A program that contains a large number of bugs, and/or bugs that seriously interfere with its
functionality, is said to be buggy.

Reports detailing bugs in a program are commonly known as bug reports, fault reports, problem
reports, trouble reports, change requests, and so forth.

Bugs can have a wide variety of effects, with varying levels of inconvenience to the user of the
program. Some bugs have only a subtle effect on the program's functionality, and may thus lie
undetected for a long time. More serious bugs may cause the program to crash or freeze leading to
a denial of service. Others qualify as security bugs and might for example enable a malicious user
to bypass access controls in order to obtain unauthorized privileges.

The results of bugs may be extremely serious. Bugs in the code controlling the Therac-25 radiation
therapy machine were directly responsible for some patient deaths in the 1980s. In 1996, the
European Space Agency's US$1 billion prototype Ariane 5 rocket was destroyed less than a minute
after launch, due to a bug in the on-board guidance computer program. In 2002, a study
commissioned by the US Department of Commerce' National Institute of Standards and
Technology concluded that software bugs, or errors, are so prevalent and so detrimental that they
cost the US economy an estimated $59 billion annually, or about 0.6 percent of the gross domestic
product.

PREVENTION

Bugs are a consequence of the nature of human factors in the programming task. They arise from
oversights made by computer programmers during design, coding and data entry. For example: In
creating a relatively simple program to sort a list of words into alphabetical order, one's design
might fail to consider what should happen when a word contains a hyphen. More complex bugs can
arise from unintended interactions between different parts of a computer program. This frequently
occurs because computer programs can be complex — millions of lines long in some cases — often
having been programmed by many people over a great length of time, so that programmers are
unable to mentally track every possible way in which parts can interact. Another category of bug
called a race condition comes about either when a process is running in more than one thread or
two or more processes run simultaneously, and the exact order of execution of the critical
sequences of code have not been properly synchronized.
Debugging

Finding and fixing bugs, or "debugging", has always been a major part of computer programming.
Maurice Wilkes, an early computing pioneer, described his realization in the late 1940s that much
of the rest of his life would be spent finding mistakes in his own programs. As computer programs
grow more complex, bugs become more common and difficult to fix. Often programmers spend
more time and effort finding and fixing bugs than writing new code.

Debugging is still a tedious task requiring considerable manpower. Since the 1990s, particularly
following the Ariane 5 Flight 501 disaster, there has been a renewed interest in the development of
effective automated aids to debugging. For instance, methods of static code analysis by abstract
interpretation have already made significant achievements, while still remaining much of a work in
progress.

Bug Management

It is common practice for software to be released with known bugs that are considered non-critical.
While software products contain an unknown number of unknown bugs when shipped,
measurements during the testing may provide a statistically reliable estimate of the number of
likely bugs remaining. Most big software projects maintain a list of "known bugs". This list informs
users about bugs that are not fixed in the current release, or not fixed at all, and often a workaround
is offered additionally.

There are various reasons for such a list:

• The developers often don't have time to fix all non-severe bugs.

• The bug could be fixed in a new version or patch that is not yet released.

• The changes to the code required to fix the bug would be large, and would bring with them
the chance of introducing other bugs into the system.

Given the above, it is often considered impossible to write completely bug-free software of any real
complexity. So bugs are categorized by severity, and low-severity non-critical bugs are tolerated, as
they do not impact the proper operation of the system, for the majority of users.

Common Types of Computer Bugs

o Conceptual error (code is correctly written, but the programmer or designer really intended
for it to do something else)

o Division by zero
o Use of the wrong operator, such as performing assignment instead of equality test

o Null pointer dereference

o Infinite loops and infinite recursion

o Using an uninitialized variable

o Accessing memory not owned (Access violation)

o Resource leaks, where a system resource such as memory or file handles is exhausted by
repeatedly allocating new units and never releasing them.

o Buffer overflow, in which a program tries to store data past the end of an array.

o Deadlock

o Off by one error

o Race condition

o Arithmetic overflow or underflow

o Loss of arithmetic precision due to rounding, for instance in type conversion or in output
formatting

o Loss of arithmetic precision due to numerically unstable algorithms

o Unprotected Critical section resulting in failure to mutually exclude access to a variable


common to more than one concurrent process. Unprotected critical sections can lead to race
conditions. Time-of-check-to-time-of-use (TOCTTOU) is a form of unprotected critical
section.

o Unpropagated updates; e.g. programmer fixes bug for "myAdd" but forgets to fix same bug
in "mySubtract" due to lack of code reuse (these errors mitigated by the Don't Repeat
Yourself philosophy)

o Comments out of date or incorrect; e.g. "Returns an integer", "The following function is
bug-free"
SOFTWARE COPYRIGHTS
Software copyright, the relatively recent extension of copyright law to machine-readable software.
It is used by proprietary software companies to prevent the unauthorized copying of their software.
It is also used by proponents of open source software to encourage the disclosure of improvements
to source code.

Historically, computer programs were not effectively protected by copyrights because transfixing a
computer program into the memory of an electronic information system is not permanent without a
storage device, and because programs were regarded as a simple list of instructions for the
computer to process and hence not copyrightable. Computer companies, therefore, used software
license agreements (also known as "end-user license agreements" or EULAs) to prevent
unauthorized copying.

When the federal courts interpreted the Copyright Act to give computer programs the same
copyright status as literary works, companies continued to license their products to avoid transfer
of their copyright to the end user via the doctrine of first sale. They also wanted to retain search and
seizure powers to uncover unauthorized copying.

Original graphics, designs, and text appearing in a software user interface may qualify as
copyrightable look and feel. They can also be protected with a design patent.

Fair use is a defense to an allegation of copyright infringement under section 107 of the Copyright
Act. Courts use a four factor test to determine the validity of the fair use defense. The court will
weigh each factor, and no factor is dispositive.

The factors are:

(1) the purpose and character of the use, (e.g., is the use commercial? Educational?)

(2) the nature of the copyrighted work

(3) the amount and substantiality of the copied material in relation to the copyrighted work as a
whole

(4) the effect on the market.

The Fair Use defense is applicable to other forms of electronic media on the internet. For example,
a search engine may, without permission, copy copyrighted images into its database and display
thumbnails of those images in response to user searches. The copy is considered fair use and
intended to direct the searcher to the full-size image.

INDIA
Software is copyrightable in India, but enforcement is difficult.

SOFTWARE UPGRADES
Software Upgrades extended warranty service includes feature enhancements, incremental
functionality, maintenance and bug fixes for each product you purchase. The standalone Software
Upgrades offering, as well as software upgrades included in extended warranty packages, enable
you to take advantage of incremental software functionality provided by new software releases. It
does not include software that is released as a separately ordered product.

Access to feature enhancements, incremental functionality, maintenance and bug fixes for the
products you purchase (excluding separately orderable software releases and advanced features).

The term upgrade refers to the replacement of a product with a newer version of that same product.
It is most often used in computing and consumer electronics, generally meaning a replacement of
hardware, software or firmware with a newer or better version, in order to bring the system up to
date or to improve its characteristics. The word is also used by audiophiles to describe the
replacement of a product with a better quality product with the aim of bringing enhancements to
sound quality.

Computing And Consumer Electronics

Common hardware upgrades are installing additional memory (RAM), adding larger hard disks,
replacing microprocessor cards or graphics cards, and installing new versions of software, although
many other upgrades are often possible as well.

Common software upgrades include changing the version of an operating system, office suite, anti-
virus program, or various other tools.

Common firmware upgrades include the updating of the iPod control menus, the XBox 360
dashboard, or the non-volatile flash memory that contains the embedded operating system for
consumer electronics.

Software and firmware upgrades are often downloaded from the Internet. Often the download is a
patch—it does not contain the new version of the software in its entirety, just the changes that need
to be made. Software patches usually aim to improve functionality or solve problems with security.
Rushed patches have been known to cause more harm then good and are therefore sometimes
regarded with scepticism for a short time after release

A software or firmware upgrade can be major or minor and the release version is increased
accordingly. A major upgrade will change the version number, whereas the minor will usually
follow with a ".01", ".02", ".03", etc. For example, version 10.03 means that that is the third minor
upgrade of version 10. The minor upgrades (or updates) are generally free, but the major versions
must be purchased

When you make an upgrade of the same product from one company to the other, you are making a
competitive upgrade.

RISKS

Although upgrades are for the purpose of improving a product, there are risks involved—including
the possibility that the upgrade will worsen the product.

When hardware is upgraded, there is a risk that it will not be compatible with other pieces of
hardware in the system. For example, an upgrade of RAM may not be compatible with existing
RAM in the computer. Other hardware components may not be compatible after either an upgrade
or downgrade, due to the non-availability of compatible drivers for the hardware with a specific
operating system. Conversely, there is the same risk of non-compatibility when software is
upgraded or downgraded for previously functioning hardware to no longer function.

When software is upgraded, there is a chance that the new version (or patch) will contain a bug,
causing the program to malfunction in some way or not function at all. For example, in October
2005, a glitch in a software upgrade caused trading on the Tokyo Stock Exchange to be shut down
for most of the day[2]. Other similar gaffes can be observed from important government systems[3]
to freeware on the internet.

Upgrades can also worsen a product subjectively. A user may prefer an older version even if a
newer version is perfectly functioning.

OPEN SOURCE
Open source is a development method for software that harnesses the power of distributed peer
review and transparency of process. The promise of open source is better quality, higher reliability,
more flexibility, lower cost, and an end to predatory vendor lock-in.

Open source software is software whose source code is available at no cost to developers or users.
There are many examples:

• GNU suite of software developed by the Free Software Foundation


• The Linux operating system
• Apache Web server
• Sendmail SMTP(Send Mail Transprot Protocol) e-mail server
• The Perl programming language
• The Netscape Mozilla browser
• Sun’s StarOffice applications suite

It is more reliable than commercial software. Because the code is available to many developers,
more bugs are discovered early and quickly and are fixed immediately. Support for open source is
also available from firms that provide products derived from the software. An example is Red Hat
for Linux.

OPEN SYSTEM

Open systems are computer systems that provide some combination of interoperability, portability,
and open software standards.

• Interoperability is a property referring to the ability of diverse systems and organizations


to work together (inter-operate). The term is often used in a technical systems engineering
sense, or alternatively in a broad sense, taking into account social, political, and
organizational factors that impact system to system performance.
• Porting is the process of adapting software so that an executable program can be created for
a computing environment that is different from the one for which it was originally designed
(e.g. different CPU, operating system, or third party library). The term is also used in a
general way to refer to the changing of software/hardware to make them usable in different
environments. Software is portable when the cost of porting it to a new platform is less than
the cost of writing it from scratch. The lower the cost of porting software, relative to its
implementation cost, the more portable it is said to be.
• An Open standard is a standard that is publicly available and has various rights to use
associated with it. The terms "open" and "standard" have a wide range of meanings
associated with their usage. The term "open" is usually restricted to royalty-free
technologies while the term "standard" is sometimes restricted to technologies approved by
formalized committees that are open to participation by all interested parties and operate on
a consensus basis.

If hardware, operating systems, and application software are designed as open systems, the user
will be able to purchase the best software for the job without worrying whether it will run on
particular hardware.

Recent advances towards the open systems goal involves using JAVA Language, which can run on
many types of computers, in place of a traditional operating systems.

SOFTWARE EVALUATION & SELECTION


Software Evaluation and Selection can become an emotive issue in some companies. Those tasked
with finding software or those involved in the software selection and comparison process or
software requirements specification often base their selection on the fact that they like "the look" of
a particular software application. Whilst the range of features available in modern business
software applications can be overwhelming this approach is clearly wrong. Your approach to the
process of selecting software must be measured and scientific using appropriate software
evaluation criteria. You must list the features that you require and check to ensure that the
applications you are considering can effectively provide them.

There have been recorded instances of failed business or ERP software implementations actually
causing companies to go into liquidation, when wrong selection of business or enterprise software
applications has been done.

SME's (Small and Medium Enterprises) must be able to tell the business software vendors exactly
what they want because their expectations may differ from what is actually being offered as a
solution.

How does one Specify Software Evaluation Criteria, Find and Evaluate a Software
Application?

It's really quite straightforward. This website includes an embedded software evaluation form on a
comparison spreadsheet. It lists lots of the criteria that are common to all software applications and
which you should be checking for suitability. It also includes fields that allow you to enter your
own details for each of the software applications you are considering. You may want to compare or
evaluate ERP systems, business systems, management systems, accounting or payroll software
applications. The software comparison spreadsheet can be used for any of these software packages.
software requirements specification and evaluation spreadsheet is basically a matrix, or software
comparison tool. It allows you to provide a weighting factor for the standard criteria and also for
the features you include yourself. A weighting factor is used to ensure that the criteria that are
important to you are correctly scored according to their weight of importance.

For example if you are seeking to find and evaluate CAD software 3D modeling may be important.
You can add this to the list of features to be compared and evaluated. There are a few user defined
fields available but should you require your own copy of the software evaluation spreadsheet you
can purchase a copy here.

Sometimes, the best solution to a business problem involves purchasing software applications
instead of building them. This can be a complicated and daunting process, especially if the software
is relatively expensive. ITS has experience with purchasing software and can help in many ways.

After an application has been purchased, the project moves to the application implementation and
integration phase of the software development life cycle.

RFP Masters™ - Ready-to-Use RFP templates packaged with a full set of software evaluation and
acquisition management tools. Available for all large-scale application systems, including
accounting, enterprise content management, manufacturing, purchasing, warehouse management
software, and other solutions. Each RFP Master™ includes:

FEATURE SUPPORT MATRIX (FSM) - this powerful function identifies feature Availability,
Delivery Mode, Cost, and RISK inherent in each proposal. Minimizes on-going support
requirements, and REDUCE the Total Cost of Ownership.

3-D BAR CHART COMPARISON - View 3-D Bar Chart Weighted Score Comparisons
illustrating how well competing vendor RFP responses or software demos fit your requirements.

SIDE-BY-SIDE COMPARISONS - Enjoy a color-coded, "apples-to-apples" side-by-side


software feature comparison, at the detail level, between competing vendor RFP responses
(proposals) and demos.

EXTENDED EVALUATION MATRIX - offers an in-depth set of ratios and charts for the
evaluation and side-by-side comparison of the DELIVERY METHOD and RISK inherent in
competing vendor proposals at the detail level. Helps LOWER On-Going Support Requirements.

CUTOVER CHECKLIST - help ensure a successful transition to the new system. Very detailed,
this checklist lays out a detailed "step-by-step" path to the new system in an orderly manner.
REDUCE Implementation Costs.
WORKFLOW PLANNING CHECKLISTS - helps organize & plan business process
reengineering (BPR) efforts during implementation of the selected software solution. Helps
LOWER Training Costs.Seven Steps to Responsible Software Selection

Step 1. Analyze Needs

The responsible teacher (or materials selection committee) should first determine whether or not
the computer is the appropriate medium to use to satisfy particular instructional goals and
objectives. There is always the possibility that a careful needs analysis will result in a decision to
use some other teaching-learning strategy.

NEEDS & GOALS. A need is the difference between "where we are now" (e.g. 60% of the
students in the ninth grade score above minimum competence on the state science test) and "where
we would like to be" (e.g. 90% of the students in ninth grade score above minimum competence on
the state science test). "Where we would like to be" is another way of defining a goal.

OBJECTIVES. An objective describes "where we would like to be" in more specific terms (e.g.
90% of all ninth grade students will exceed the minimum level of competence on the state
competency test administered in the second semester of ninth grade). Objectives must include
conditions under which the desired behavior will be demonstrated and the criteria for measuring
that behavior.

Step 2. Specify Requirements

If a careful needs analysis determines that computer assisted instruction is one of the methods that
will be used to meet identified instructional objectives, the teacher (or materials selection
committee) should then specify the requirements for the computer software. Factors to consider in
specifying requirements for software include: compatibility with available hardware; cost (Will the
school need multiple copies of the software? Will a site license be necessary? ); user friendliness;
level of interaction desired; adequacy of documentation; access to technical support via toll-free
number; and of course, direct correlation with the instructional objectives and curriculum
requirements identified in the needs analysis. Ellsworth and Hedley (1993) suggest that educators
should apply the following criteria within the context of their objectives and the students' needs:
content; instructional presentation; demands placed on the learner; technical features; and
documentation and management features.

Step 3. Identify Promising Software

If requirements are specified in detail, the teacher (or materials selection committee) will have a
good head start when it comes to identifying promising software. There are many ways to identify
promising software, and the responsible selector should use as many of them as possible. Catalogs
still remain an important source for descriptions of software. Most district level educational
communications/media centers are on catalog mailing lists from virtually all software producers
and wholesalers. Software is advertised, described, and often reviewed in magazines and journals
found in school, university, and public libraries. The Educational Products Information Exchange
(EPIE) produces The Educational Software Selector (TESS), a database containing descriptions
and reviews of thousands of currently published educational software programs.

The above are but a few sources for identifying promising software. The more precisely the
requirements are specified in Step 2, the easier it will be to screen out those products that are least
likely to meet the user's specifications and the easier it will be to focus on more promising
products.

Step 4. Read Relevant Reviews

After a list of promising software has been identified (using the suggestions outlined in Step 3), the
teacher (or materials selection committee) may be able to narrow or expand the list by reading
relevant software reviews. It is very important to realize, however, that reading reviews should not
take the place of previewing, described in Step 5. Software reviews may be found in educational
journals, some of which may be identified by searching the ERIC database using appropriate
descriptors (e.g. software, selection, evaluation, elementary, secondary).

Step 5. Preview Software

The most effective way to judge whether software is appropriate or not is to observe students as
they interact with the program. Are the educational objectives achieved when the student uses the
program? The responsible teacher should not purchase software without previewing it with his or
her own students. Preview as many programs as you can find that appear to meet your selection
criteria. Some software vendors will allow free preview of an entire program. Some vendors will
provide a free demonstration disk containing a subset of a larger program. Some vendors will not
allow preview without a purchase order, but will allow the teacher to return the program within a
specified time limit with no financial obligation. In some situations, a teacher may be able to
borrow a program from another teacher for preview purposes. As a general rule, if there is no way
to preview software with your own students--avoid that software.

Step 6. Make Recommendations


After potential software has been previewed, it is time to make recommendations for purchase. The
responsible software selector should be able to:

• select the most desirable software after a systematic evaluation of all alternatives in terms of
educational objectives and constraints;

• establish a quantitative method for rating each alternative against the selection criteria
established in Step 2;

• evaluate the relative importance of each selection criterion, (ie. previewing should probably
be rated relatively high in importance); and

• create a written record outlining the reasons why a piece of software is recommended or not
recommended for purchase.

Step 7. Get Post-Use Feedback

After software is purchased and used with students, it is important for the teacher to determine the
conformance or discrepancy between all of the enabling objectives specified in Step 1 and the
student performance actually obtained using the chosen computer software. The teacher should
keep records on the relative extent to which each objective is met or not met. Objectives not met
may be addressed by some other software program or by another teaching/learning method.

You might also like