0% found this document useful (0 votes)
84 views

Moshi Co-Operative University (Mocu) : Open Source Software Development CIT 310

The document discusses open source software development including starting open source projects, types of open source projects like solo, monarchist, community and corporate projects, methods for open source development, tools for communication, version control, bug tracking and more in open source projects.

Uploaded by

Paschal William
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views

Moshi Co-Operative University (Mocu) : Open Source Software Development CIT 310

The document discusses open source software development including starting open source projects, types of open source projects like solo, monarchist, community and corporate projects, methods for open source development, tools for communication, version control, bug tracking and more in open source projects.

Uploaded by

Paschal William
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

MOSHI CO-OPERATIVE

UNIVERSITY (MoCU)

Open Source Software Development


CIT 310

The Evaluation of Free/Open Source Software


Development
Objectives
Introduction to open source software
Process-Data Model for open-source software
development
Types of open-source projects
Methods for open-source software development
Tools for open-source software development
The Freeware, Free Software, Shareware &
proprietary software
Open-source software development
Open-source software development is the
process by which open-source software, or similar
software whose source code is publicly available, is
developed by an open-source software project.
These are software products available with its source
code under an open-source license to study, change,
and improve its design.
Open-source software development has been a large
part of the creation of the World Wide Web
Process-Data Model for open-source
software development
Starting an open-source project
There are several ways in which work on an open-
source project can start:
An individual who senses the need for a project
announces the intent to develop a project in public.
A developer working on a limited but working
codebase, releases it to the public as the first version
of an open-source program.
The source code of a mature project is released to the
public.
A well-established open-source project can be divided
by an interested outside party.
Types of open-source projects
1. Solo
2. Monarchist
3. Community
4. Corporate
5. Foundation
Solo
Solo projects have only one or two developers
who are responsible for 100% of the code, decisions,
and support of the project.
They generally consist of one or two programmers
who decided to open source a custom project they
did in hopes of improving their professional image
and/or attracting other developers to help out
Monarchist
A Monarchist project is usually a Solo project which
"succeeded" and developed a large community.
While these projects can involve large numbers
of contributors, all decisions are made by the project
lead and a small number of "deputies" whom he/she
appoints.
Community
Community projects have a significant number
of contributors who run the project democratically
as peers.
While occasional majority votes may be taken, most
decisions are made by a combination
of volunteerocracy and consensus.
Larger projects may have a steering committee
of senior members who decide strategic direction,
contributor disputes, and who gets commit rights.
Corporate
Corporate projects generally consist of code which
was open sourced by a private company but not
completely alienated from them.
For many, it can be hard to tell the difference
between the project and the company: the majority
of programmers are company employees and the
company's marketing department determines strategic
direction for the project.
Foundation
• A non-profit foundation can be thought of as the end
point in formal organization of open source projects.
• Such projects are incorporated with officers
and directors and all decision-making formalized
by the necessities of corporate structure.
• Often this is done in response to the project being
critical to several large companies, who use the formal
structure to protect their mutual interests and ensure
themselves a voice
Methods
According to Fuggetta, A. (2003) mentioned the
appropriate methods as follows
“rapid prototyping, incremental and evolutionary
development, spiral lifecycle, rapid application
development, and, recently, extreme programming
and the agile software process can be equally applied
to proprietary and open source software”
Tools for OSSD
Communication channels Developers and users of
an open-source project are not all necessarily working
on the project in proximity.
They require some electronic means of
communications.
E-mail is one of the most common forms of
communication among open-source developers and
users.
Tools for OSSD Cont.…
Version control systems In OSS development the
participants, who are mostly volunteers, are distributed
amongst different geographic regions so there is need for
tools to aid participants to collaborate in the development of
source code.
Concurrent Versions System (CVS) is an example of a
source code collaboration tool being used in OSS projects.
CVS helps manage the files and codes of a project when
several people are working on the project at the same time.
Many open-source projects are now using distributed revision
control systems, which scale better than centralized
repositories such as SVN(Subversion revision control
system) and CVS.
Tools for OSSD Cont.…
Bug trackers and task lists Most large-scale
projects require a bug tracking system to keep track
of the status of various issues in the development of
the project. Some bug trackers include:
Bugzilla – a web-based bug tracker from Mozilla.
Mantis Bug Tracker – a web-based PHP/MySQL bug tracker.
Trac – integrating a bug tracker with a wiki, and an interface to the
Subversion version control system.
Redmine – written in Ruby, integrates issue tracking, wiki, forum,
news, roadmap, gantt project planning and interfaces with LDAP user
directory.
Tools for OSSD Cont.…
Testing and debugging tools Since OSS projects
undergo frequent integration, tools that help
automate testing during system integration are used.
An example of such tool is Tinderbox.
Tinderbox enables participants in an OSS project to
detect errors during system integration.
Tinderbox runs a continuous build process and
informs users about the parts of source code that
have issues and on which platform(s) these issues
arise
Tools for OSSD Cont.…
Package management A package management
system is a collection of tools to automate the process
of installing, upgrading, configuring, and removing
software packages from a computer
The Red Hat Package Manager (RPM) for .rpm and
Advanced Packaging Tool (APT) for .deb file format,
are package management systems used by a number
of Linux distributions
Freeware, Free Software,
Shareware & proprietary software
Freeware is software that is made available for use
by the author at no cost for an unlimited time.
However, the author may retain the copyright.
This means that users are not allowed to do anything
with the software that is not permitted by the author.
Cont.…….
Free software is software that can be used,
modified, copied and redistributed without restriction
and for no cost.
For software to be distributed as free software, the
source code (human readable form of the program)
must be made available to the recipient (along with
the free software license releasing the source code to
the public) to allow for modification.
Cont.…….
Shareware is both a type of software and a way to
distribute the software.
Authors of shareware give users a license to try out
the software for a specific period of time, usually for
30 days.
If a user wishes to continue using the software after
this trial period, he is required to register with the
author by paying the author a small fee
Cont.…….
Proprietary software, also known as closed-
source software, is non-free computer software for
which the software's publisher or another person
retains intellectual property rights—usually copyright
of the source code, but sometimes patent rights.

You might also like