0% found this document useful (0 votes)
31 views20 pages

OST Notes

Bca

Uploaded by

Anu K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views20 pages

OST Notes

Bca

Uploaded by

Anu K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

lOMoARcPSD|53747132

Open source tools

BCA (Bengaluru North University)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])
lOMoARcPSD|53747132

Module 1:Open source Software

Open source tools


Open source software is code that is designed to be publicly accessible—anyone can see,
modify, and distribute the code as they see fit.
Or
The term open source refers to any program whose source code is made available for use or
modification as users or other developers see fit.
Examples FreeBSD,Mozilla Firefox,LibreOffice,Linux,Open
Office,Python,GNU,Ubuntu,MySQL

Advantages of open source tools

● Cost-effectiveness: OSS is often free to use, or much less expensive than proprietary
software. This can save businesses and individuals a significant amount of money on
software costs.
● Transparency: Because the source code of OSS is publicly available, anyone can
inspect it to see how the software works and to identify any potential security
vulnerabilities. This makes OSS more transparent and trustworthy than proprietary
software.
● Flexibility: OSS can be customised and extended to meet the specific needs of users.
This flexibility is not always available with proprietary software, which may be locked
down to prevent users from making changes.
● Security: OSS is generally more secure than proprietary software because the source
code is open to scrutiny by a large community of developers. This community can
quickly identify and fix security vulnerabilities.
● Community support: OSS projects often have active communities of developers and
users who provide support and help to improve the software. This community
support can be invaluable for businesses and individuals who are using OSS.
● Innovation: OSS projects are often at the forefront of innovation in the software
industry. This is because developers are free to experiment with new ideas and to
contribute their changes to the project.
● Reduce vendor lock-in: Because OSS is not controlled by a single vendor, businesses
are not locked into a particular product or service. This gives businesses more
flexibility and choice.
● Improve agility: OSS can help businesses to improve their agility by making it easier
to develop and deploy new software applications.
● Increase customer satisfaction: By using OSS, businesses can offer their customers
more choice and flexibility. This can lead to increased customer satisfaction.

Needs of open sources

● To promote education and training: OSS projects can be used by students and
developers to learn new skills and to contribute to the software development
community.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

● To support social and environmental causes: Many OSS projects are used to support
social and environmental causes, such as providing educational resources to
underserved communities or developing software to monitor climate change.
● To give users more control: With OSS, users have more control over the software they
use. They can inspect the source code, make changes, and even redistribute the
software. This gives users more flexibility and choice.
● To increase security: OSS is generally more secure than proprietary software because
the source code is open to scrutiny by a large community of developers. This
community can quickly identify and fix security vulnerabilities.
● To promote collaboration: OSS projects often involve developers from all over the
world working together to create a better product. This collaboration can lead to
more innovative and powerful software.
● To reduce costs: OSS is often free to use and distribute, which can save businesses
and individuals a significant amount of money on software costs.
● To improve innovation: OSS projects are often at the forefront of innovation in the
software industry. This is because developers are free to experiment with new ideas
and to contribute their changes to the project.

Principles of open source and Standard Requirements of open


sources

1. Free redistribution: The software must be freely redistributable, without any royalty
or other fee.
2. Source code: The source code must be available to anyone who wants it.
3. Derived works: The original licence must allow modifications and derived works, and
the licence for the modified works must be the same as the original licence.
4. Integrity of the author's source code: The original source code must be included with
any modified works, and the licence must clearly state what changes are allowed and
prohibited
5. No discrimination against persons or groups: The licence must not discriminate
against any person or group of persons.
6. No discrimination against fields of endeavour: The licence must not restrict the use of
the software to any specific field of endeavour.
7. Distribution of licence: The rights attached to the software must apply to all to whom
the software is redistributed, without the need for any additional licence.
8. Licence must not be specific to a product: The licence must not be specific to a
particular product or service.
9. Licence must not restrict other software: The licence must not place any restrictions
on other software that is distributed along with the licensed software.
10. Licence must be technology-neutral: The licence must not be tied to any particular
technology or platform.
11. Transparency: The development process of OSS is open and transparent, so that
anyone can see how the software is developed and contribute to it.
12. Collaboration: OSS projects are often developed by a community of developers from
all over the world. This collaboration leads to more innovative and powerful software.
13. Community: OSS projects often have active communities of users and developers who
provide support and help to improve the software.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Free software -FOSS

Free software, also known as free and open-source software (FOSS), is software that gives
users the freedom to run, copy, distribute, study, change, and improve it. This is in contrast
to proprietary software, which is restricted by copyright, patents, or other legal mechanisms.

The term "free software" can be confusing because it can refer to both the price of the
software and the user's freedom to use it. Free software is often free to use, but it can also be
sold. The important thing is that users have the freedom to do what they want with the
software, even if they have to pay for it.

The Free Software Foundation (FSF) defines free software as software that respects the four
essential freedoms of users:

● The freedom to run the program, for any purpose.


● The freedom to study how the program works, and adapt it to your needs.
● The freedom to redistribute copies so you can help your neighbour.
● The freedom to improve the program, and release your improvements to the public,
so that everyone benefits.

Free software is important because it promotes innovation, collaboration, and education. It


also gives users more control over the software they use.
Here are some of the benefits of using free software:

Cost-effectiveness: Free software is often free to use and distribute, which can save
businesses and individuals a significant amount of money on software costs.
● Transparency: Because the source code of free software is publicly available, anyone
can inspect it to see how the software works and to identify any potential security
vulnerabilities. This makes free software more transparent and trustworthy than
proprietary software.
● Flexibility: Free software can be customised and extended to meet the specific needs
of users. This flexibility is not always available with proprietary software, which may
be locked down to prevent users from making changes.
● Security: Free software is generally more secure than proprietary software because
the source code is open to scrutiny by a large community of developers. This
community can quickly identify and fix security vulnerabilities.
● Community support: Free software projects often have active communities of
developers and users who provide support and help to improve the software. This
community support can be invaluable for businesses and individuals who are using
free software

Proprietary software

Proprietary software, also known as closed-source software, is computer software where the
source code is not made available to the general public. This means that the software is
owned and controlled by a single entity, such as a company or organisation.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Proprietary software users typically agree to a licence agreement that restricts how they can
use, distribute, and modify the software.

Examples of proprietary software include:


Microsoft Windows
Adobe Photoshop
Microsoft Office Suite
Google Chrome

Advantages of proprietary software

● Commercial support: Proprietary software vendors typically offer commercial


support to their customers. This can include technical support, bug fixes, and security
updates.
● Investment protection: Businesses that invest in proprietary software can be
confident that their software will continue to be supported and updated by the
vendor.
● Customization: Some proprietary software vendors offer customization services to
their customers. This allows businesses to tailor the software to their specific needs.
● Innovation: Proprietary software vendors have a financial incentive to innovate and
develop new features and functionality for their software.

Disadvantages of proprietary software:

● Cost: Proprietary software can be expensive to purchase and maintain.


● Vendor lock-in: Businesses that rely on proprietary software can become locked into
a relationship with the vendor. This can make it difficult and expensive to switch to a
different software solution.
● Lack of control: Users of proprietary software have less control over the software than
they would with open-source software. This includes the inability to modify the
software or to inspect the source code for security vulnerabilities.

Licence

A licence (or licence) is an official permission or authorization to do [Link] licence


defines the terms and conditions under which the user can use the software.

Types of licence

There are many different types of open source licences, but they can generally be divided into
two main categories: permissive and copyleft.

Permissive licences give users the most freedom to use, modify, and distribute the software.
Some common permissive licence include:

MIT License
Apache License
BSD License

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Copyleft licence require users to distribute any modified versions of the software under the
same copyleft licence. This is known as the "copyleft" principle. Some common copyleft
licence include:

GNU General Public License (GPL)


Mozilla Public License (MPL)
Eclipse Public License (EPL)

The choice of open source licence for a particular software project depends on the
preferences of the copyright holder. Permissive licences are often used for software that is
intended to be used by a wide range of users, including commercial software developers.
Copyleft licences are often used for software that is intended to be part of a larger ecosystem
of open source software

Feature Permissive Licence Copyleft Licence

Freedom to use Yes Yes

Freedom to modify Yes Yes

Freedom to distribute Yes Yes

Requirement to distribute No Yes


modified versions under the
same licence

Permissive Licence
Types

MIT licence
The MIT License is a permissive free software licence originating at the Massachusetts
Institute of Technology (MIT) in the late 1980s. As a permissive licence, it puts only very
limited restrictions on reuse and has, therefore, high licence compatibility.

The MIT License allows users to use, modify, and distribute the software for any purpose,
including commercial purposes, without having to pay royalties or disclose the source code.
The only requirement is that the licence and copyright notice be included in all copies or
substantial portions of the software.

The MIT License is one of the simplest and most permissive free software licences, and is
used by many popular software projects, including the X Window System, Ruby on Rails,
[Link], Lua, and jQuery.

Here are some of the key features of the MIT License:

● Permissive: The MIT License is a permissive licence, which means that there are few
restrictions on how the software can be used, modified, and distributed. This makes

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

the MIT License a good choice for software projects that need to be compatible with
proprietary software or that need to be used in a wide variety of settings.
● Transparency: The MIT License requires that the source code of the software be
made available to anyone who receives the software. This allows users to audit the
code for security vulnerabilities and to make changes to meet their specific needs.
● Community support: There are a number of active communities that provide support
for MIT-licensed software projects. This includes mailing lists, forums, and bug
tracking systems

Apache Licence
The Apache License is a permissive free software licence that was written by the Apache
Software Foundation (ASF). It allows users to use, modify, and distribute the software for
any purpose, including commercial purposes, without having to pay royalties or disclose the
source code.

The Apache License is one of the most popular open source licences, and is used by many
popular software projects, including the Apache HTTP Server, the Apache Tomcat web
application server, and the Apache Hadoop distributed computing framework.

Here are some of the key features of the Apache License:

● Permissive: The Apache License is a permissive licence, which means that there are
few restrictions on how the software can be used, modified, and distributed. This
makes the Apache License a good choice for software projects that need to be
compatible with proprietary software or that need to be used in a wide variety of
settings.
● Transparency: The Apache License requires that the source code of the software be
made available to anyone who receives the software. This allows users to audit the
code for security vulnerabilities and to make changes to meet their specific needs.
● Community support: The Apache Software Foundation provides a variety of
resources and support for Apache-licensed software projects. This includes mailing
lists, forums, and bug tracking systems.
● The Apache License is an important licence for the free and open-source software
movement. It helps to promote the development of high-quality, free and
open-source software that can be used in a wide variety of settings.
● The Apache License is a flexible and permissive licence that can be used for a wide
variety of software projects. It is a good choice for software projects that need to be
compatible with proprietary software or that need to be used in a wide variety of
settings

BSD licence
The BSD License is a family of permissive free software licences that impose minimal
restrictions on the use and distribution of covered software. This is in contrast to copyleft
licence, which have share-alike requirements. The original BSD licence was used for its
namesake, the Berkeley Software Distribution (BSD), a Unix-like operating system. The
original version has since been revised, and its descendants are referred to as modified BSD
licence.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

The modified BSD licence (in wide use today) is very similar to the licence originally used for
the BSD version of Unix. The BSD licence is a simple licence that merely requires that all
code retain the BSD licence notice if redistributed in source code format, or reproduce the
notice if redistributed in binary format. The BSD licence (unlike some other licences e.g.
GPL) does not require that source code be distributed at all.
Here are some of the key features of the BSD License:

● Permissive: The BSD License is a permissive licence, which means that there are few
restrictions on how the software can be used, modified, and distributed. This makes
the BSD License a good choice for software projects that need to be compatible with
proprietary software or that need to be used in a wide variety of settings.
● Transparency: The BSD License requires that the source code of the software be
made available to anyone who receives the software. This allows users to audit the
code for security vulnerabilities and to make changes to meet their specific needs.
● Community support: There are a number of active communities that provide support
for BSD-licensed software projects. This includes mailing lists, forums, and bug
tracking systems.

Copyleft licence
Types

GPL
The GNU General Public License (GPL) is a series of widely used free software licenses that
guarantee end users the four freedoms to run, study, share, and modify the software. The
license was the first copyleft for general use and was originally written by the founder of the
Free Software Foundation (FSF), Richard Stallman, for the GNU Project. The license grants
the recipients of a computer program the rights of the Free Software Definition. These GPL
series are all copyleft licenses, which means that any derivative work must be distributed
under the same or equivalent license terms.

The GPL is one of the most popular open source software licenses, and is used by a wide
variety of software projects, including the Linux operating system, the GNU Compiler
Collection (GCC), and the Apache web server.

The GPL is designed to protect the freedom of software users and to promote the
development of free software. The license requires that any modified versions of the software
be distributed under the same license, which ensures that the software remains free and
open source.
Here is a summary of the key features of the GPL:

● Copyleft: The GPL is a copyleft license, which means that any derivative work of the
software must also be released under the GPL. This ensures that the software remains
free and open source.
● Four freedoms: The GPL guarantees users the four freedoms of free software:
● The freedom to run the program for any purpose.
● The freedom to study the source code and make changes to it.
● The freedom to redistribute the program, with or without modifications.
● The freedom to distribute copies of your modified versions.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

● Transparency: The GPL requires that the source code of the software be made
available to anyone who receives the software. This allows users to audit the code for
security vulnerabilities and to make changes to meet their specific needs.
Here are some of the benefits of using the GPL:

● It protects the freedom of software users. The GPL ensures that users have the right
to run, study, share, and modify the software. This means that users are not locked
into the features and functionality that are provided by the vendor.
● It promotes the development of free software. The GPL requires that any modified
versions of the software be released under the same license. This ensures that the
software remains free and open source.
● It encourages collaboration and innovation. The GPL makes it easy for developers to
build on the work of others. This has led to the development of many popular and
successful software applications, such as the Linux operating system and the Apache
web server.

LGPL
The GNU Lesser General Public License (LGPL) is a free software license that is designed to
allow software to be used in both free and proprietary software. The LGPL is a copyleft
license, which means that any derivative work of the software must also be released under
the LGPL. However, the LGPL allows proprietary software to link to LGPL-licensed libraries
without having to release the source code for the proprietary software.

The LGPL is often used for software libraries, such as the GNU C Library (glibc). This allows
developers to use LGPL-licensed libraries in their proprietary software without having to
release the source code for their proprietary software.
Here are some of the key features of the LGPL:

● Copyleft: The LGPL is a copyleft license, which means that any derivative work of the
software must also be released under the LGPL. This ensures that the software
remains free and open source.
● Linking exception: The LGPL allows proprietary software to link to LGPL-licensed
libraries without having to release the source code for the proprietary software. This
makes the LGPL a good choice for software libraries.
● Transparency: The LGPL requires that the source code of the software be made
available to anyone who receives the software. This allows users to audit the code for
security vulnerabilities and to make changes to meet their specific needs.
● The LGPL is an important license for the free and open source software movement. It
helps to promote the development of high-quality, free software libraries that can be
used in both free and proprietary software.
● The LGPL is a powerful license that can be used to promote the development of free
software libraries. However, it is important to understand the terms of the licence
before using it.

MPL
The Mozilla Public License (MPL) is a free and open-source software licence that is used by
many popular software projects, including the Firefox web browser, Thunderbird email
client, and Gecko rendering engine. The MPL is a weak copyleft licence, which means that it

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

allows derivative works of the software to be released under different licences, including
proprietary licences.

The MPL is designed to be flexible and to allow software developers to choose the licence
that best meets their needs. The licence also aims to protect the freedom of software users
and to promote the development of free and open-source software.
Here are some of the key features of the MPL:

● Weak copyleft: The MPL is a weak copyleft licence, which means that it allows
derivative works of the software to be released under different licences, including
proprietary licences. This makes the MPL a good choice for software projects that
need to be compatible with proprietary software.
● Transparency: The MPL requires that the source code of the software be made
available to anyone who receives the software. This allows users to audit the code for
security vulnerabilities and to make changes to meet their specific needs.
● Permissive terms: The MPL allows users to use, modify, and distribute the software
for any purpose, including commercial purposes. This makes the MPL a good choice
for software projects that need to be used in a wide variety of settings.
● The MPL is an important licence for the free and open-source software movement. It
helps to promote the development of high-quality, free and open-source software that
can be used in both free and proprietary software.

EPL
The Eclipse Public License (EPL) is a free and open-source software licence that is used by
many popular software projects, including the Eclipse IDE, the Eclipse Rich Client Platform
(RCP), and the Eclipse Modeling Framework (EMF). The EPL is a weak copyleft licence,
which means that it allows derivative works of the software to be released under different
licences, including proprietary licences.

The EPL is designed to be business-friendly and to allow software developers to choose the
licence that best meets their needs. The licence also aims to protect the freedom of software
users and to promote the development of free and open-source software
Here are some of the key features of the EPL:

● Weak copyleft: The EPL is a weak copyleft licence, which means that it allows
derivative works of the software to be released under different licences, including
proprietary licences. This makes the EPL a good choice for software projects that
need to be compatible with proprietary software.
● Transparency: The EPL requires that the source code of the software be made
available to anyone who receives the software. This allows users to audit the code for
security vulnerabilities and to make changes to meet their specific needs.
● Permissive terms: The EPL allows users to use, modify, and distribute the software
for any purpose, including commercial purposes. This makes the EPL a good choice
for software projects that need to be used in a wide variety of settings.

Difference between strong copyleft and weak copyleft


The main difference between strong copyleft and weak copyleft is how they affect the
licensing of derivative works.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Strong copyleft licence require that all derivative works of the software be released under the
same licence as the original software. This is known as the "viral" effect of copyleft, as it
ensures that the software remains free and open source.

Weak copyleft licence only require that the source code for derivative works be made
available, but do not require that the derivative works be released under the same licence as
the original software. This means that derivative works of weak copyleft-licensed software
can be released under proprietary licences.

Patent
A patent is a type of intellectual property that gives the inventor the exclusive right to make,
use, sell, and offer to sell an invention for a limited period of time. Patents are granted by
governments in exchange for the disclosure of the invention to the public.

Importance
● They promote innovation. Patents give inventors the exclusive right to their
inventions for a period of time, typically 20 years. This gives them an incentive to
invest in research and development, and to bring their inventions to market.
● They protect intellectual property. Patents prevent others from copying and profiting
from an inventor's invention without their permission. This helps to ensure that
inventors are rewarded for their creativity and hard work.
● They encourage technology transfer. Patents can be used to licence technology to
other companies, which can help to bring new products and services to market more
quickly. This can also lead to job creation and economic growth.
● They provide a competitive advantage. Patents can give companies a competitive
advantage over their rivals by preventing them from copying their products and
technologies. This can lead to increased profits and market share.
Benefits
● Attract investors. Investors are more likely to invest in companies that have strong
patent portfolios.
● Raise capital. Companies can use their patents to secure loans and other forms of
financing.
● Form partnerships. Companies can licence their patents to other companies in order
to form partnerships and develop new products and services.
● Deter counterfeiting. Patents can help to deter counterfeiting by making it easier to
identify and prosecute counterfeit products.

Contracts and licences and related issues

Contracts and licences are two important types of legal agreements that are often used in the
context of intellectual property.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Contracts are agreements between two or more parties that are legally binding. This means
that if one party breaches the contract, the other party can sue for damages. Contracts can be
used to govern a wide variety of activities, including the sale of goods and services, the
provision of services, and the transfer of intellectual property.

Licences are a type of contract that grants one party permission to use the intellectual
property of another party. Licences can be granted for a variety of different types of
intellectual property, including patents, trademarks, copyrights, and trade secrets

Related issues

There are a number of related issues that can arise in the context of contracts and licences for
intellectual property. Some of these issues include:

● Ownership: It is important to establish who owns the intellectual property that is


being licensed or transferred. This is especially important in the case of work-for-hire
arrangements, where the ownership of the intellectual property may be in dispute.
● Scope of the licence: It is important to clearly define the scope of the licence,
including what rights are being granted and what restrictions are being imposed. For
example, the licence may restrict the licensee from using the intellectual property in
certain ways or from distributing it to third parties.
● Term and termination: The licence should specify the term of the licence and how it
can be terminated. For example, the licence may be terminated if the licensee
breaches any of the terms of the licence or if the licensor goes out of business.
● Dispute resolution: The licence should include a dispute resolution clause that
specifies how any disputes between the parties will be resolved. This may involve
mediation, arbitration, or litigation.

Applications
● Technology: OSS is used by technology companies of all sizes, from startups to large
enterprises. For example, Google uses OSS in its Android operating system and its
cloud computing platform.
● Finance: OSS is used by financial institutions to develop and operate their trading
systems and other software applications. For example, Goldman Sachs uses OSS in its
trading systems and its risk management software.
● Healthcare: OSS is used by healthcare organisations to develop and operate their
electronic health records (EHR) systems and other software applications. For
example, the US Department of Veterans Affairs uses OSS in its EHR system.
● Education: OSS is used by educational institutions to develop and deliver online
courses and other educational materials. For example, the Massachusetts Institute of
Technology (MIT) uses OSS in its OpenCourseWare program.
● Government: OSS is used by government agencies to develop and operate their
websites, databases, and other software applications. For example, the US
government uses OSS in its websites, its tax filing system, and its social security
system.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Open source operating systems FEDORA

Fedora is a free and open-source operating system based on the Linux kernel. It is developed
by the Fedora Project, a community of individuals that collaborate on the software
development and the distribution of the operating system. Fedora is sponsored by Red Hat, a
commercial Linux distributor.

Fedora is known for its rapid release cycle, with new versions being released every six
months. This allows users to access the latest software features and security updates quickly.
Fedora is also known for its strong focus on community involvement and its commitment to
free and open-source software.

Fedora is a versatile operating system that can be used for a variety of purposes, including:

Desktop computing: Fedora is a great choice for desktop computing, with a wide range of
software available for productivity, creativity, and entertainment.
Server computing: Fedora is also a popular choice for server computing, with a wide range of
software available for web hosting, database management, and other server-side tasks.
Development: Fedora is a great choice for software development, with a wide range of
programming languages, development tools, and IDEs available.

Benefits
● Free and open-source: Fedora is free to use and modify, and it is released under a
permissive open-source licence. This means that users can contribute to the
development of the operating system and they can use it for any purpose, including
commercial purposes.
● Rapid release cycle: Fedora has a rapid release cycle, with new versions being
released every six months. This allows users to access the latest software features and
security updates quickly.
● Strong community involvement: Fedora has a strong and active community of users
and developers. This community provides support to users and contributes to the
development of the operating system.
● Wide range of software available: Fedora has a wide range of software available,
including productivity software, creative software, entertainment software, server
software, and development tools.

Open source operating systems UBUNTU

Ubuntu is a free and open-source Linux distribution based on Debian. It is developed by


Canonical, a commercial company that provides support and services for Ubuntu. Ubuntu is
one of the most popular Linux distributions, and it is used by a wide range of users, including
individuals, businesses, and governments.

Ubuntu is known for its user-friendly interface, its wide range of software, and its strong
community support. Ubuntu is also known for its commitment to free and open-source
software.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Ubuntu can be used for a variety of purposes, including:

Desktop computing: Ubuntu is a great choice for desktop computing, with a wide range of
software available for productivity, creativity, and entertainment.
Server computing: Ubuntu is also a popular choice for server computing, with a wide range
of software available for web hosting, database management, and other server-side tasks.
Development: Ubuntu is a great choice for software development, with a wide range of
programming languages, development tools, and IDEs available

Benefits
● Free and open-source: Ubuntu is free to use and modify, and it is released under a
permissive open-source licence. This means that users can contribute to the
development of the operating system and they can use it for any purpose, including
commercial purposes.
● User-friendly interface: Ubuntu has a user-friendly interface that is easy to learn and
use, even for users who are new to Linux.
● Wide range of software available: Ubuntu has a wide range of software available,
including productivity software, creative software, entertainment software, server
software, and development tools.
● Strong community support: Ubuntu has a strong and active community of users and
developers. This community provides support to users and contributes to the
development of the operating system.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Module 2 Programming tools and techniques

Usage of design tools like or equivalent

Design tools like ArgoUML are used to create and maintain Unified Modeling Language
(UML) diagrams. UML diagrams are a standard way to visualise and document the design of
software systems. They can be used to model different aspects of a system, including its
structure, behaviour, and interactions.

Design tools can be used by a variety of stakeholders, including software developers, system
analysts, and business analysts. They can be used to:

● Communicate the design of a system to others: UML diagrams can be used to


communicate the design of a system to other stakeholders in a clear and concise way.
This can help to ensure that everyone has a shared understanding of the system and
that any potential problems are identified early on.
● Generate code: Some design tools can generate code from UML diagrams. This can
save developers time and reduce the risk of errors.
● Reverse engineer existing code: Some design tools can reverse engineer existing code
to create UML diagrams. This can be useful for understanding the design of an
existing system or for refactoring a system.

ArgoUML is a popular open-source design tool that supports a wide range of UML diagrams.
It is easy to use and has a number of features that make it a good choice for both beginners
and experienced users.

Here are some specific examples of how design tools like ArgoUML can be used:

● A software developer could use ArgoUML to create a class diagram to model the
classes and interfaces in a system.
● A system analyst could use ArgoUML to create a use case diagram to model the
interactions between the users and the system.
● A business analyst could use ArgoUML to create an activity diagram to model the
workflow of a business process.
Design tools can be a valuable tool for software development projects. They can help to
improve communication, reduce errors, and save time.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Version control systems like Git or equivalent

Version control systems (VCS) like Git are used to track changes to files over time. This
allows users to see who made which changes when, and to revert to previous versions of files
if necessary. VCS are essential for any software development project, but they can also be
used for other types of projects, such as writing documentation or creating websites.

Git is a distributed VCS, which means that each user has a complete copy of the repository on
their local machine. This makes it easy to work offline and to collaborate with others without
having to rely on a central server. Git is also very fast and efficient, making it ideal for large
projects.
Here are some specific examples of how a VCS like Git can be used:

● A software developer could use Git to track changes to the source code of a software
project.
● A writer could use Git to track changes to a document.
● A web developer could use Git to track changes to the files on a website.

Git

Git is an essential tool for any software development project, but it can also be used for
other types of projects, such as writing documentation or creating websites
Git is a distributed VCS, which means that each user has a complete copy of the repository on
their local machine. This makes it easy to work offline and to collaborate with others without
having to rely on a central server. Git is also very fast and efficient, making it ideal for large
projects.

Key features of Git :


● Branching: Git makes it easy to create branches of your repository. This allows you to
experiment with new features or to work on different parts of a project without
affecting the main codebase.
● Merging: Git also makes it easy to merge changes from different branches back into
the main codebase. This is useful for integrating work from different team members
or for reverting to a previous version of the codebase.
● Tracking changes: Git tracks all changes to files and folders over time. This allows you
to see who made which changes when, and to revert to previous versions of files if
necessary.
● Collaboration: Git makes it easy to collaborate with others on projects. Users can
share their repositories with others and work on the same files simultaneously.

Here are some examples of how Git can be used:


● A software developer could use Git to track changes to the source code of a software
project.
● A writer could use Git to track changes to a document.
● A web developer could use Git to track changes to the files on a website.
● A team of developers could use Git to collaborate on a single project.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

With Git

● Track changes to your code over time. Git creates a complete snapshot of your
codebase for every commit, so you can easily see what changes have been made and
when. This is essential for any software development project, as it allows you to
experiment with different ideas without fear of breaking your code.
● Collaborate with other developers on projects. Git makes it easy to share your code
with others and work on different parts of a project simultaneously. You can create
branches to work on different features or bug fixes, and then merge your changes
back into the main codebase when you are finished.
● Review code before it is merged into the main codebase. Git makes it easy to create
pull requests, which allow you to share your changes with others and get feedback
before merging them into the main codebase. This helps to ensure that the code is
high quality and meets the project's standards.
● Recover from lost code. Git creates a complete snapshot of your codebase for every
commit, so you can easily revert to a previous version if you accidentally overwrite or
delete a file.

Without Git

Without Git, it can be difficult to track changes to your code over time, collaborate with other
developers, and recover from lost code.

Here are some of the challenges of working without Git:

● Tracking changes: It can be difficult to keep track of changes to your code over time if
you are not using a version control system. This can lead to problems such as
accidentally overwriting code or losing track of changes that you have made.
● Collaboration: It can be difficult to collaborate with other developers on projects if
you are not using a version control system. This is because it can be difficult to merge
changes from multiple sources without introducing conflicts.
● Code review: It can be difficult to review code before it is merged into the main
codebase if you are not using a version control system. This can lead to problems
such as bugs and security vulnerabilities being introduced into the codebase.
● Recovery: It can be difficult to recover from lost code if you are not using a version
control system. If you accidentally overwrite or delete a file, you may not be able to
get it back

GitHub

GitHub is a cloud-based hosting service that helps developers store and manage their code,
as well as track and control changes to their code over time. It also provides a platform for
developers to collaborate on projects and share their code with others.

GitHub is built on top of Git, a version control system that allows developers to track changes
to their code and create branches and merges to experiment with different ideas. GitHub
makes it easy to use Git by providing a web interface and other tools to help developers
manage their code.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

GitHub is used by millions of developers around the world, including both individuals and
teams working on projects of all sizes. It is a popular choice for both open source and
commercial software development.
Steps to create git hub
1. Create a GitHub account. You can create a GitHub account for free at [Link].
2. Create a new repository. Once you have a GitHub account, you can create a new
repository. A repository is a place where you can store your code and track changes
over time.
3. Clone the repository to your local machine. Once you have created a repository, you
can clone it to your local machine. This will create a copy of the repository on your
computer.
4. Make changes to the code. You can now make changes to the code in the local
repository.
5. Add the changes to the staging area. Once you have made your changes, you need to
add them to the staging area. The staging area is a temporary place where you can
store the changes that you want to commit.
6. Commit the changes. Once you have added your changes to the staging area, you can
commit them. This will create a snapshot of the changes and store it in the repository.
7. Push the changes to the remote repository on GitHub. Once you have committed your
changes, you need to push them to the remote repository on GitHub. This will make
your changes available to other people who have access to the repository.

There are three types of GitHub accounts:

● Personal accounts: Personal accounts are free and can be used by


anyone. Personal accounts can own an unlimited number of public
and private repositories.
● Organisation accounts: Organization accounts are designed for teams
of developers. Organisation accounts can have multiple members and
can own an unlimited number of public and private repositories.
● Enterprise accounts: Enterprise accounts are designed for large
organisations. Enterprise accounts can have multiple organisations
and can host their own GitHub servers.

Bug tracking system

A bug tracking system (BTS) or defect tracking system is a software application that helps
teams keep track of and manage bugs and other issues in their software projects. BTSs
typically allow users to create and manage bug reports, track the status of bugs, and assign
bugs to developers or other team members

Trac

Trac is an open-source, web-based bug tracking and project management system. It is


designed to be easy to use and flexible, and it can be used for a variety of different projects,
including software development, web design, and technical support.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

Trac is a powerful tool that can help you to improve your bug tracking and project
management processes. It is free and open-source, and it is available for download from the
Trac website.

Here are some of the benefits of using Trac:

● Easy to use: Trac is designed to be easy to use, even for users with no prior experience
with bug tracking systems.
● Flexible: Trac can be customised to meet the specific needs of your project.
● Feature-rich: Trac provides a wide range of features for bug tracking, project
management, and documentation.
● Free and open-source: Trac is free to download and use, and it is licensed under the
BSD licence.

Bugzilla

Bugzilla is an open-source bug tracking system that is used by many companies to track and
manage bugs in their software products. It is a powerful tool that can be used to track a wide
variety of bugs, including functional bugs, performance bugs, and security bugs.
Bugzilla is a powerful tool that can help you to improve your bug tracking and software
development processes. It is free and open-source, and it is available for download from the
Bugzilla website.

Here are some of the benefits of using Bugzilla:

● Powerful: Bugzilla is a powerful tool that can be used to track a wide variety of bugs.
● Flexible: Bugzilla can be customised to meet the specific needs of your project.
● Feature-rich: Bugzilla provides a wide range of features for bug tracking, software
development, and reporting.
● Free and open-source: Bugzilla is free to download and use, and it is licensed under
the Mozilla Public License

Bootstrap

Bootstrap is a free and open-source front-end CSS framework for developing responsive,
mobile-first websites. It includes HTML and CSS based design templates for typography,
forms, buttons, tables, navigation, modals, image carousels, and many others.
Bootstrap is one of the most popular front-end frameworks, and it is used by millions of
developers around the world. It is known for its simplicity, flexibility, and mobile-first
design.

Here are some of the benefits of using Bootstrap:

● Responsive design: Bootstrap is designed to create responsive websites that look good
on all devices, from desktops to smartphones.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])


lOMoARcPSD|53747132

● Mobile-first design: Bootstrap is built with a mobile-first approach, meaning that it is


designed to work well on smartphones and other small devices.
● Easy to use: Bootstrap is easy to use, even for beginners. It is well-documented and
includes a large number of examples.
● Flexible: Bootstrap is flexible and can be customised to meet the specific needs of
your project.
● Community support: Bootstrap has a large and active community of users and
developers. This means that there is a lot of support available if you need help.

Downloaded by Annapurna Kalloli (anuhkalloli13@[Link])

You might also like