4.0 INTRODUCTION
In the previous units, we have learnt the basics of computer software and the
evolution of software. We also learnt the basic definition of Open Source
Software. As we go further we will learn in detail this concept and how it is
governed by the Open Source definition.
In this unit, we introduce the concept of Open Source software, its philosophy and
copyrights. We will also discuss its licensing arrangements under the Open
Source Definition
Any computer application development comes under the umbrella of a Project
Management process, which is supported by Project Managers. We will also
study the role of a Project manager and his responsibilities for development of
successful computer software. We will also see how the role and processes
followed by a Project Manager influence the success of a project and its team.
It is essential that we learn all the basics of Office Application software like Word
processing, Spread sheets, emailing etc. so that we are capable of handling all
types of roles and responsibilities when we enter the industry.
4.1 OBJECTIVES
By the end of this unit, you will know:
- the basics fundamentals of Open Source Software;
- the Project Management process;
- handling of a word processing or spreadsheet file;
- creation and modification of a database; and
- using emails to communicate with others
4.2 CONCEPTS OF OPEN SOURCE SOFTWARE
Open Source Software is a computer software which is available along with the
source code and software license that permits the code to be studied, modified and
improved. It is often developed in public and collaborative manner.
The free software philosophy formulated by Richard M. Stallman in 1983,
historically preceded the open source movement by a decade and provided some
of the key technological, legal and ideological foundations of the open source
movement.
The best-known philosophers of the free software movement besides Richard
Stallman are Eric Raymond, Bruce Perens, and Eben Moglen
Open source development, follows the model of the bazaar. In an open source
development model, roles are not clearly defined. The best features and
functionality evolve into popular use much as good ideas evolve into popular use
in the marketplace of ideas. Development is a collaborative process, resources are
not scarce, and no one person or organization directs the project. The users are
treated like co-developers and so they should have access to the source code of
the software.
The Open Source Initiative (OSI) was formed in 1998 with a mission to
harmonize the workings of the free software movement and commercial software
development. The purpose of the OSI was to ―build bridges among different
constituencies in the open-source community.‖
The OSI is the organization responsible for certifying software licenses as open
source licenses. Its website (www.opensource.org) gives a list of all the certified
licenses in existence. OSI previously certified almost any license agreement that
fit the open source definition. However, recently it announced a change in policy
that requires any newly certified license agreement not only to fit the open source
definition but also to be substantially different from existing certified licenses.
This is a part of the ―nonproliferation‖ movement in open source.
4.2.1 Introduction
There are two competing definitions. The free software definition was authored
by Richard Stallman and is more normative in nature. The open source software
definition was authored by Eric Raymond and is more descriptive in nature.
4.2.2.1 Free Software Definition
The Free software definition is based on the following four freedoms:
1. The freedom to run the program, for any purpose.
2. The freedom to study how the program works, and adapt it to your needs.
3. The freedom to redistribute copies so you can help your neighbor.
4. The freedom to improve the program, and release your improvements to the
public, so that the whole community benefits
4.2.2.2 Open Source Definition
The other definition is the Open source definition promulgated by OSI. This
broader definition includes permissive software licenses. The elements are:
- Free redistribution
- Source code available
- Derivative works permitted
- Integrity of the author’s source
- No discrimination against persons or groups
- No discrimination against fields of endeavor
- Distribution of license with derivative works
- License must not be specific to a product
- License must not restrict use of other software
- License must be Technological-natural
4.2.2 Open Source Development Model
The Open source development model is a collaborative model. It anticipates the
participation of many developers in the development of a single product or
module. Theoretically, any open source project can have hundreds or thousands of
contributors. In practice, however, this is rarely the case. Most open source
projects are relatively small, involving the work of one contributor or a small
number of contributors. Some open source projects, such as Linux or Apache, are
very large development projects. Nevertheless, although they may have many
contributors, these projects have a small number of gatekeepers, or ―committers,‖
who decide what contributions will be checked in to the official source tree.
In this sense, the model is not a pure model of the bazaar. It is more like a free
market with a specialist’s desk. In well-known open source projects, these
gatekeepers include some of the most respected computer scientists in the world.
The gatekeeper decides which modifications to be included in the source tree,
based on technical considerations, including security and stability of the code and
compatibility with other technology, and the desires of the community at large on
issues such as features and functionality.
The most popular open source utility used by the gatekeeper is the Concurrent
Versioning System (CVS), which is licensed under GPL. A revision control
system allows only designated persons to check code into the source tree. It also keeps track of published versions, what was added, changed, or deleted and when,
and who made the change; it further helps reconcile conflicting changes.
The main features of Open Source development model are:
- Users should be treated as co-developers
The users are treated like co-developers and so they should have access to the
source code of the software.
- Early releases
- Frequent integration
- Several versions
There should be at least two versions of the software. There should be a buggier
version with more features and a more stable version with fewer features. The
buggy version (also called the development version) is for users who want the
immediate use of the latest features, and are willing to accept the risk of using
code that is not yet thoroughly tested. The users can then act as co-developers,
reporting bugs and providing bug fixes.
- High modularization
The general structure of the software should be modular allowing for parallel
development on independent components.
- Dynamic decision making structure
4.2.3 Open Source Licensing
License defines the rights and obligations that a licensor grants to a licensee.
Open Source licenses grant licensees the right to copy, modify and redistribute
source code (or content). These licenses may also impose obligations (e.g.,
modifications to the code that are distributed must be made available in source
code form; an author attribution must be placed in a program/ documentation
using that Open Source, etc.).
All open source licenses, by definition, freely allow the licensee to exercise all of
the rights of copyright with respect to the licensed software. Some open source
software licenses contain explicit license grants, and some contain implicit ones.
All open source licenses contain broad warranty disclaimers and limitations of
liability. Most also include disclaimers of any license grant under any trademark
of the licensor—not that any such grant would necessarily be implied in the first
place.
When an author contributes code to an Open Source project (e.g.,
Apache.org),he/she does so under an explicit license (e.g., the Apache Contributor
License Agreement) or an implicit license (e.g., the Open Source license under
which the project is already licensing code). Some Open Source projects do not
take contributed code under a license, but actually require (joint) assignment of
the author’s copyright in order to accept code contributions into the project (e.g.,
OpenOffice.org and its Joint Copyright Assignment agreement).
Placing code (or content) in the public domain is a way of waiving an author’s (or
owner’s) copyrights in that work. No license is granted, and none is needed, to
copy, modify or redistribute a work in the public domain.
Examples of free software license / open source licenses include Apache License,
BSD license, GNU General Public License, GNU Lesser General Public License,
MIT License, Eclipse Public License and Mozilla Public License.
Check Your Progress – 1 👈
1. Give the names of a few Open Source Software applications ?
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………..
2. What are the advantages of using Open Source Software ?
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
3. How is the Open Source Code maintained with the developers distributed
across geographical regions ?
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………..
4. Give name of other industries besides software, where the concept of Open
Source is being implemented ?
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………..
0 Comments