Open_source_(qb)
Open_source_(qb)
1 Mark Questions:
Apache License, Berkeley Software Distribution, Massachusetts institute of technology, GNU general
public license
Public domain software is any software that has no legal, copyright or Editing restrictions associated
with it. It is free and open-source software that can Be publicly modified, distributed or sold without any
restrictions.
As one person put it, “Open source is a development methodology; free software is a social movement.”
For the Open Source movement, nonfree software is a suboptimal solution. For the Free Software
movement, nonfree software is a social problem and free software is the solution.
13.Write any two differences between proprietary and open source licensing model.
Proprietary refers to software that is owned by the individual or company who published it. Open source
refers to software that is available for anyone to access or change the code.
Unlike open source, proprietary software can be modified only by the company that developed it and
you get no access to its source code. Depending on how much money you pay, you’ll get access to more
or fewer features.
(3m 1st)
A software that is available free of cost for use and distribution but cannot be modified as its source
code is Not available is called freeware. Examples of freeware are Google Chrome, Adobe Acrobat PDF
Reader, Skype, etc.
22.Write any two differences between free software and open source software.
3-Mark questions:
1. List and explain any four criteria’s of “distribution terms” of open source Software.
To comply with the Open Standards Requirement, an “open standard” must satisfy the following
Criteria. If an “open standard” does not meet these criteria, it will be discriminating against
open Source developers.
1. No Intentional Secrets: The standard MUST NOT withhold any detail necessary for
interoperable Implementation. As flaws are inevitable, the standard MUST define a process
for fixing flaws Identified during implementation and interoperability testing and to
incorporate said changes into a Revised version or superseding version of the standard to be
released under terms that do not violate the OSR.
2. Availability: The standard MUST be freely and publicly available (e.g., from a stable web site)
under Royalty-free terms at reasonable and non-discriminatory cost.
3. Patents: All patents essential to implementation of the standard MUST:O be licensed under
royalty-free terms for unrestricted use, or O be covered by a promise of non-assertion when
practiced by open source software
4. No Agreements: There MUST NOT be any requirement for execution of a license agreement,
NDA, Grant, click-through, or any other form of paperwork to deploy conforming
implementations of the Standard.
1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a
Component of an aggregate software distribution containing programs from several
Different sources. The license shall not require a royalty or other fee for such sale.
2. Source Code
The program must include source code, and must allow distribution in source code as well
As compiled form. Where some form of a product is not distributed with source code, there
Must be a well-publicized means of obtaining the source code for no more than a
Reasonable reproduction cost preferably, downloading via the Internet without charge. The
Source code must be the preferred form in which a programmer would modify the Program.
Deliberately obfuscated source code is not allowed. Intermediate forms such as The output
of a preprocessor or translator are not allowed.
3. Derived Works
The license must allow modifications and derived works, and must allow them to be
Distributed under the same terms as the license of the original software.
1. Secure: Operating System or platform are not perfectly secured but security aspect of FOSS
Attracted public organizations to consider FOSS solutions.
2. Stable and Reliable: FOSS servers are functioning fine for years without making any
Maintenance issues.
3. Reduced dependence on import of software: FOSS reduces the cost of proprietary software
Licenses.
4. Developing Local Software Capability: Everyone is able to modify and redistribute the
software Which helpsin learning and acts as an excellent training system.
The Unlicensed, Creative Commons License and WTFPL are based on a similar Approach.Public
domain software is similar to open source software, in which The source code of a program is
made publicly available. However, open source Software, while freely distributed, still retains
the original developer’s copyright. This means the developer can change the redistribution
policy at any time. Public Domain software is also similar to freeware, which refers to software
offered at no Charge. However, like open source software, freeware programs are still protected
By copyright. Therefore, users may not redistribute the software unless they receive Permission
from the original developer.
Since there are many similarities between freeware, open source, and public
Domain software, the terms are often used interchangeably. However, there are Important legal
differences between the licenses, so it is important for developers To choose the correct license
when releasing software programs. Public domain Software, which offers the least legal
protection, is most often published by Individuals or educational institutions, rather than
companies. When software is Offered as public domain, it is often labelled “PD” or may include
a Public Domain Mark (PDM).
9. Write the differences between proprietary and open source licensing model.
1. Open source Software: Open source software is computer software whose source code
is available openly on the internet and programmers can modify it to add new features
and capabilities without any cost. Here the software is developed and tested through
open collaboration. This software is managed by an open-source community of
developers. It provides community support, as well as commercial support, which is
available for maintenance. We can get it for free of cost. This software also sometimes
comes with a license and sometimes does not. This license provides some rights to
users.
BSD Licenses or the original BSD License and its two variants – the Modified BSDLicense (3-clause),
and the Simplified BSD License/FreeBSDLicense (2-clause) are a family of Permissive free software
licenses.The BSD License lets you freely modify and distribute your software’s code in the source or
Binary format as long as you retain a copy of the copyright notice, list of conditions, and the
Disclaimer. The original BSD License or the 4-clause BSD License also contains an advertising Clause
and a non-endorsement clause (detailed explanation about these clauses are offered in the
Following questions). The modified BSD License or the 3-clause BSD License was formed by
Removing the advertising clause from the original BSD License. Further, the FreeBSD version or the
2-clause BSD License was formed byremoving the non-endorsement clause from the modified BSD
License or the 3- clause BSD License.
The FSF (Free Software Foundation) was founded in the early eighties by Richard M. Stallman,
researcher at MIT’s Artificial Intelligence laboratory. The Foundation’s objective is to develop free
software. That is software that you can Freely copy, use, modify, and redistribute as you wish. The
only condition is that The source code of these programs must be freely available on demand.It is
important to understand that the term Free in Free Software Foundation does not refer to price, but
to freedom. These programs can be bought And sold, but there is always a legal way to obtain them
gratis.
GNU General Public License is the most popular open source licensearound. Richard Stallman
Created the GPL to protect the GNU software from becoming proprietary, and it is a specific
implementation of His “copyleft” concept.GPL is a copyleft license. This means that any software
that is written basedon any GPL component must be Released as open source. The result is that any
software that uses any GPL open source component (regardless Of its percentage in the entire code)
is required to release its full source code and all of the rights to modify And distribute the entire
code.
12.Write the differences between free software and open source software.
Module 2:
1 Mark Questions:
The simplest explanation is that open source licenses are legal and binding Contracts between the
author and the user of a software component, declaring that The software can be used in commercial
applications under specified conditions.The license is what turns code into an open source component.
5. Define copyright.
©Copyright is a bundle of rights granted to a creator providing him with exclusive rights over his
original Artistic and literary creation
6. What is Copy left?
Most of the creative works, including software programs and codes, comes within the domain of
Copyright protection and therefore can be copyrighted
7. Define Patent.
Unlike the holder of an Open Source license, the owner of a patent has exclusive rights over the
Patented software. No one else can make, use, modify,or sell patented software, and the source
code is not Available to the public.
Bug tracking is the process of logging and monitoring bugs or errors during software testing. It is also
referred to as defect tracking or issue tracking.
Images/multi-media.
Open source development tools.
Build a business case. It’s also a good time to start an open source project after you have developed
a sound business case that’s bolstered with outcomes that can be achieved, like any other product
you’re bringing to market. …
Allocate resources. …
Shotcut. …
LibreOffice. …
Mozilla Thunderbird. …
Mozilla Firefox. …
GIMP. …
Linux. …
The most popular permissive open source licenses are: Apache, MIT, BSD and Unlicense.
Licensing activity comes in two forms: Licensorsgive licenses to others; licensees receive licenses
from others.
18.List any four exclusive right attached to the holder of copyright.
So the owner of a copyright-protected work may decide how to use the work, and may prevent
others from using it without permission. National laws usually grant copyright owners exclusive
rights to allow third parties to use their works, subject to the legally recognized rights and interests
of others.
1) a request for the grant of a patent; 2) a description of the invention; 3) one or more claims for the
protection of an invention by a patent (hereinafter: patent claims), 4) a drawing referred to in the
description or claims, when appropriate; 5) an abstract.
As a noun, a software development methodology is a framework that is used to structure, plan, and
control the process of developing an information system – this includes the pre-definition of specific
deliverables and artifacts that are created and completed by a project team to develop or maintain
an application.
1 Top Pick. SpiraTeam. 5.0. Integrations: Visual Studio, Android Studio, Eclipse, TFS, HelixCore, VSS,
and Mercurial. …
3 Mark questions:
Distributions are another type of open-source project. Distributions are collections of software
that are published from the same source with a common purpose. The most prominent example
of a “distribution” is an operating system. There are many Linux distributions (such as Debian,
Fedora Core, Mandriva, Slackware, Ubuntu etc.) which ship the Linux kernel along with many
user-land components. There are other distributions, like ActivePerl, the Perl programming
language for various operating systems, and Cygwin distributions of open-source programs for
Microsoft Windows.
Other open-source projects, like the BSD derivatives, maintain the source code of an entire
operating system, the kernel and all of its core components, in one revision control system;
developing the entire system together as a single team. These operating system development
projects closely integrate their tools, more so than in the other distribution-based systems.
Finally, there is the book or standalone document project. These items usually do not ship as
part of an open-source software package. The Linux Documentation Project hosts many such
projects that document various aspects of the Linux operating system. There are many other
examples of this type of open-source project.
2. Write the process data model for open source software development
3. Explain the different types of open source projects
1. Mozilla Firefox Source Tree
Mozilla’s Firefox Source Tree contains dozens of projects on which you can get your hands dirty.
Not only they are welcoming new contributors, but they also provide extensive documentation
on how to contribute to their projects. Since the whole process seems long, they have a
separate and dedicated channel where you can ask doubts and ask for help. On their
documentation page, they have a column where they have specially mentioned websites, bugs,
open issues, etc. for students and people who want to start contributing to open source.
4. Firefox DevTools
This is another popular project of Mozilla that contains a set of web developer tools that are
built into the Firefox web browser. Core tools include Page Inspector, Web Console, JavaScript
Debugger, Network Monitor, Performance Tools, Responsive Design Mode, Accessibility
Inspector, Application panel, and many more. This means so many projects to contribute to! To
contribute to their codebase, you can join their community which explains how to get started,
and they also provide a tool that helps to find bugs that you can resolve.
5. Pandas Package
This powerful Python package is widely used in data manipulation and analysis and if you’re into
data science, data analysis, or machine learning, you would have definitely used it. You can also
contribute to the project activities as it currently has more than three thousand open issues to
be resolved! The project is open to bug fixes, documentation improvements, and bug reports.
They have a contributing guide and if the code seems confusing to you at first, try resolving
issues in the documentation.
Every open source project solves a specific problem. Talk with colleagues, chats, forums, and share
your idea. It all helps you on the first steps to understand important things, like which solutions
already exist, and to hear criticism. Talk with people who already have open source projects. They
can give you very valuable advice, so don’t be afraid to ask and take the initiative.
One important bit of advice which I got at that stage is to pay attention in the first place on the
documentation of the project. You can have a very good project, but no one will spend the time to
understand how it works.
The most important aspect, without which further steps are impossible, is motivation. The idea of
the project should inspire you primarily. Most often people get used to the tools with which they
work and fall into a comfort zone, so external opinions may be ambiguous.
Planning
The choice of a certain task manager is a matter of taste. It should have a clear picture of the tasks
and stages of your project.
Divide tasks into sub-tasks. Ideally, if one task does not take more than 3–4 hours, it is important to
enjoy the implementation of small tasks. This will help to avoid burnout and loss of motivation.
I use pivotal tracker. The main advantage is a free version for open source projects where you can
sort tasks by type (feature, bug, chore, release), and group them into releases and determined
deadlines.
Documentation
README
Contributing guidelines
Changelog
The README file not only explains how to use your project, but also the purpose of your project. If
you do not know how to properly write a README file, you can look at other known open source
projects or use a template.
The license guarantees that others can use, copy and modify the source code of the project. You
need to add this file to each repository with your open source project. MIT and Apache 2.0 GPLv3
are the most popular licenses for open source projects. If you are not sure what to choose, you can
use this convenient service.
The CONTRIBUTING file will help other developers contribute to the project. At the first steps of the
project, it is not necessary to pay close attention to this file. You can use the already prepared
template from another project.
Changelog contains a supported, chronologically-ordered list of significant changes for each version.
As with the CONTRIBUTING file, I do not advise paying special attention to this at an early stage.
Versioning
To track important changes for users and contributors, there is a semantic version. The version
number contains numbers and adheres to the following pattern X.Y.Z.
X major release
Y minor release
Z patch release
To automatically run tests and build, I use Travis CI. It’s also a good idea to add badges to display the
successful assembly of the build in the wizard, the test coverage (Codecov), and the documentation
(Inch CI).
6. List and explain the tools used for open source development.
Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and
is available for Windows, macOS, and Linux. It comes with built-in support for JavaScript, TypeScript,
and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java,
Python, PHP, Go).
Budibase is an open source low-code platform, bringing together everything required to build internal
tools and custom business apps, such as; dashboards, admin panels, approval apps, customer portals,
and everything in between. Within minutes, transform data and processes into powerful internal tools.
Vercel is a deployment and collaboration platform for frontend developers. Vercel puts the frontend
developer first, giving them comprehensive tools to build high-performance websites and
applications.Vercel enables developers to host websites and web services that deploy instantly and scale
automatically – all without any configuration.
GitLab is a single application that spans the entire software development lifecycle. If you’re not using
GitLab, your DevOps lifecycle is likely spread across any number of applications. These silos take
overhead to integrate, manage, configure, and maintain, slowing down your team and your
deployments. Moving to a single application will speed up your workflow and help you deliver better
software faster.
(Explained already)
Most of the creative works, including software programs and codes, comes within the domain of
Copyright protection and therefore can be copyrighted. However, it is to be noted that software and
Programming is an area where already existing programs many-a-times are used as a base to build
new Software or program. It is for this reason, many software owners tend to grant a license to its
users a license Allowing them to modify and alter their work. Such permission and license can be
referred to as Copyleft.Copyleft can be said to be a specific kind of a license that allows freeuse of
copyrighted material but Under certain terms and conditions, granted by the owner of the copyright
himself. For instance, software Having a copylefted license can be modified, used, distributed, or
reproduced provided the source code kept Open and available to the public.
A copylefted software must be transferred with a similar copyleft license to All its successive users
and the license also shall mandate any modification to the software shall be Copylefted in a similar
manner. In simpler words, copyleft is a license that provides original work to a Third person giving
him certain rights like that of copyingand modifying and any new work carved out Based on such
original work shall have a copyleft license in a similar manner.
Unlike the holder of an Open Source license, the owner of a patent has exclusive rights over the
Patented software. No one else can make, use, modify,or sell patented software, and the source
code is not Available to the public.Patent rights give the holder control over who uses software and
for what purpose. Though software Developers can protect their work using both copyrights and
patents, copyrights only protect the code itself.Patents, however, protect theprogram’s
functionality.Patents are better than copyrights for software developers because they protect the
program regardless of the Code and language used. In comparison, copyrights aren’t very practical
for developers. If you want to release Open Sourcesoftware while retaining some rights, a copyright
only gives you power over someone who steals Your work verbatim.The original idea of a patent
was to give the innovator who develops the idea a monopoly of time in which she/he can benefit by
commercial exploitation ofthe patent, protect by legal means from other wishing to copy the idea.
The expense of promoting a Free and Open Source venture (like introducing it in the related
gatherings) is typically lower.
Creating something under GPL may give free access to top-notch parts (likeQT) that are in any case
costly to purchase or not accessible by any stretch of the imagination.All things considered;
improvement of any product initially requires the designer time. Without a doubt, extremely famous
activities may hope to get an excellent code commitment for nothing.
Patent law is the branch of intellectual property law that deals with new inventions. Traditional
patents protect tangible scientific inventions, such as circuit boards, car engines, heating coils, or
zippers. However, over time patents have been used to protect a broader variety of inventions, such
as coding algorithms, business practices, or genetically modified organisms.
● new;
● useful; and
● not obvious.
Exactly what is eligible for patent protection is a topic of fierce debate, and courts often struggle to
determine what is a new, nonobvious invention.
Once granted, a patent gives the inventors the exclusive right to sell their invention for 20 years.
Sometimes inventors give other companies a license to manufacture and sell the invention in
exchange for a fee.
Bug tracking is the process of logging and monitoring bugs or errors during software testing. It is also
referred to as defect tracking or issue tracking. Large systems may have hundreds or thousands of
defects. Each needs to be evaluated, monitored and prioritized for debugging. In some cases, bugs
may need to be tracked over a long period of time.
“Defect tracking is an important process in software engineering, as complex and business critical
systems have hundreds of defects,” says Tutorials Point. “One of the challenging factors is
managing, evaluating and prioritizing these defects. The number of defects gets multiplied over a
period of time and to effectively manage them, a defect tracking system is used to make the job
easier.”
A task list is a set of tasks that each render on a separate line with a clickable checkbox. You can
select or deselect the checkboxes to mark the tasks as complete or incomplete.
You can use Markdown to create a task list in any comment on GitHub. If you reference an issue,
pull request, or discussion in a task list, the reference will unfurl to show the title and state.
If you add a task list to the body of an issue, the list has added functionality.
To help you track your team’s work on an issue, the progress of an issue’s task list appears in various
places on GitHub, such as a repository’s list of issues.
If a task references another issue and someone closes that issue, the task’s checkbox will
automatically be marked as complete.
If a task requires further tracking or discussion, you can convert the task to an issue by hovering over
the task and clicking in the upper-right corner of the task. To add more details before creating the
issue, you can use keyboard shortcuts to open the new issue form. For more information, see
“Keyboard shortcuts.”
Any issues referenced in the task list will specify that they are tracked in the referencing issue
14.Write a note on software engineering methodology.
A wide variety of such frameworks have evolved over the years, each with its own recognized
strengths and weaknesses. One software development methodology framework is not necessarily
suitable for use by all projects. Each of the available methodology frameworks are best suited to
specific kinds of projects, based on various technical, organizational, project and team
considerations.[2]
These software development frameworks are often bound to some kind of organization, which
further develops, supports the use, and promotes the methodology framework. The methodology
framework is often defined in some kind of formal documentation. Specific software development
methodology frameworks (noun) include
First thing first there will be a huge audience who will use your software so choose a critically
reviewed and evaluated license for official approval or acceptance.
Ask yourself how you want your software to be used by others, Are you building an open-source
library others will use to create their software?
If you choose a permissive license, others can take your code, alter it, and use it in their proprietary
software without releasing the code.
If you choose a copyleft license, anyone who uses your code will have to share their code in the
same way as it is.
Many of the companies can use your software for commercial purposes, you can put restrictions
under which they can do so. Also, you can ask for remuneration.
Always choose your audience wisely. A large organization with lots of intellectual developers may
not use your software fit prevents them from distributing their software commercially.
Don’t complex things too much, keep them simple. Don’t spend hours making decisions about
licenses. At the end of the day, all that you care about is the code.