Open Source Slides - Je-LoonPresentation Transcript
How Is Open Source Affecting Software Development? Je-Loon Yang
What is open source?
From a developers perspective, open source is a combination of two important properties:
Visible source code
A right to make unencumbered derivatives
Ex: Microsoft’s shared source and library vendors’ code licenses for developing derivative products from nonvisible code.
Designed Primarily by Richard Stallman
Involves four key rights inherent for users, developers, and reprogrammers
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 neighbor
The freedom to improve the program, and release your improvements to the public, so that the whole community benefits
A small group of Free Software developers concerned that the term “free” was being misunderstood by both developers and users
It’s basically the same thing as free software
Individuals and corporations are free to develop code that instantiates or works with the open standards
HTML, software like IE, Dreamweaver, Firefox, and Opera
SQL, software like Oracle, MySQL
The owner of the source code can offer different groups of users differential access to view the source code
No right to change the code
Defined by OSI (Open Source Initiative)
The license shall not restrict any party from selling or giving away the software
The program must include source code, and must allow distribution in source code as well as compiled form
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
Integrity of The Author's Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software
No Discrimination Against Persons or Groups
No Discrimination Against Fields of Endeavor
Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties
License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program's being part of a particular software distribution
License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed along with the licensed software
License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.
Range of code adoption
Code adoption can happen at the level of a few lines of code, a method, a class, a library, a component, a tool, or a complete system.
Software Reuse Possibilities
Open up on three axes
What to reuse
Promoted by the available software’s breadth and price
How to reuse it
Diverse granularity and interfacing options
Where to reuse it
Inherent portability of source code over most binary packaged component technologies
Software Reuse Possibilities (2)
Movement along three axes increases the breadth of software reuse opportunities in any development effort.
Free Software Foundation
http:// www.fsf.org /
Comprehensive Perl Archive Network
Influence on software products
Design based on existing software elements
The reused open source code will typically be of higher quality than the custom-developed code’s first incarnation
Functionality will often be far more complete than what the bespoke development would afford
Influences on software products (2)
Reusing open source components can also affect the licensing model of the resultant product.
Some open source license dictate under which license you can distribute derivative products.
Quality varies widely without standardized processes and metrics exist for assessing
Underlying source code
Associated mailing list archives
Some software repositories even provide metrics of activities based on the factors above
Benefit from reusing widely deployed and scrutinized algorithms and protocols
Adversaries having access to the source can more efficiently locate and exploit vulnerabilities
Large open source development projects increase the visibility, accessibility, and adoption prospects of important software engineering processes such as version control, peer reviews, issue tracking, release engineering, and regression testing.
These processes are standard in any CMM level 3 and above organization.
Process Issues (2)
Developers reusing software in source form can read the code and can often learn valuable coding practices from well-engineered software
Ours is one of the few creative professions where writers are not allowed to read each other’s work
Open source and non-open source development tools both have strengths and weaknesses. Most likely, they are both here to stay.
Before developing with an open source, users should take a look at the license to make sure the rights. Some licenses make the developing software an open source, too.
Diomidis Spinellis, Clemens Szyperski, “How Is Open Source Affecting Software Development?”, IEEE Software, January/February 2004, pp 28-33
Stephane Lussier, “How Open Source Changed the Way My Team Works”, IEEE Software, January/February 2004, pp 68-72
Michel Ruffin and Christof Ebert, Alcatel, “Using Open Source Software in Product Development: A Primer”, IEEE Software, January/February 2004, pp 82-86
Johndan Johnson-Eilola, “Open Source Basics: Definitions, Models, and Questions”, ACM Special Interest Group for Design of Communications Proceedings of the 20th annual international conference on Computer documentation, pp 79-83
Free Software Foundation, http:// www.fsf.org /
Open Source Initiative OSI, http://www.opensource.org