23
How Is Open Source How Is Open Source Affecting Software Affecting Software Development? Development? Je-Loon Yang Je-Loon Yang

How Is Open Source Affecting Software Development?

  • Upload
    horace

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

How Is Open Source Affecting Software Development?. Je-Loon Yang. Introduction. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: How Is Open Source Affecting Software Development?

How Is Open Source How Is Open Source Affecting Software Affecting Software

Development?Development?

Je-Loon YangJe-Loon Yang

Page 2: How Is Open Source Affecting Software Development?

2

IntroductionIntroduction►What is open source?What is open source?

From a developers perspective, open source iFrom a developers perspective, open source is a combination of two important properties:s a combination of two important properties:►Visible source codeVisible source code►A right to make unencumbered derivativesA right to make unencumbered derivatives

Ex: Microsoft’s shared source and library venEx: Microsoft’s shared source and library vendors’ code licenses for developing derivative dors’ code licenses for developing derivative products from nonvisible code.products from nonvisible code.

Page 3: How Is Open Source Affecting Software Development?

3

TerminologyTerminology► Free SoftwareFree Software

Designed Primarily by Richard StallmanDesigned Primarily by Richard Stallman Involves four key rights inherent for users, developers,Involves four key rights inherent for users, developers, and reprogrammers and reprogrammers

►The freedom to run the program, for any purposeThe freedom to run the program, for any purpose►The freedom to study how the program works, and adapt it tThe freedom to study how the program works, and adapt it to your needso your needs►The freedom to redistribute copies so you can help your neigThe freedom to redistribute copies so you can help your neighborhbor►The freedom to improve the program, and release your imprThe freedom to improve the program, and release your improvements to the public, so that the whole community benefiovements to the public, so that the whole community benefitsts

Page 4: How Is Open Source Affecting Software Development?

4

Terminology(2)Terminology(2)►Open SourceOpen Source

A small group of Free Software developers A small group of Free Software developers concerned that the term “free” was being concerned that the term “free” was being misunderstood by both developers and misunderstood by both developers and usersusers

It’s basically the same thing as free It’s basically the same thing as free softwaresoftware

Page 5: How Is Open Source Affecting Software Development?

5

Terminology(3)Terminology(3)►Open StandardsOpen Standards

Individuals and corporations are free to develIndividuals and corporations are free to develop code that instantiates or works with the opop code that instantiates or works with the open standardsen standards Example Example

►HTML, software like IE, Dreamweaver, Firefox, and HTML, software like IE, Dreamweaver, Firefox, and OperaOpera►SQL, software like Oracle, MySQLSQL, software like Oracle, MySQL

Page 6: How Is Open Source Affecting Software Development?

6

Terminology(4)Terminology(4)►Shared sourceShared source

The owner of the source code can offer The owner of the source code can offer different groups of users differential different groups of users differential access to view the source codeaccess to view the source code

No right to change the codeNo right to change the code

Page 7: How Is Open Source Affecting Software Development?

7

CriteriaCriteria►Defined by OSI (Open Source Initiative)Defined by OSI (Open Source Initiative)

Free Redistribution Free Redistribution ►The license shall not restrict any party from The license shall not restrict any party from

selling or giving away the software selling or giving away the software Source Code Source Code

►The program must include source code, and The program must include source code, and must allow distribution in source code as well must allow distribution in source code as well as compiled form as compiled form

Page 8: How Is Open Source Affecting Software Development?

8

Criteria(2)Criteria(2) Derived Works Derived Works

►The license must allow modifications and derived works, The license must allow modifications and derived works, and must allow them to be distributed under the same and must allow them to be distributed under the same terms as the license of the original softwareterms as the license of the original software

Integrity of The Author's Source Code Integrity of The Author's Source Code ►The license may restrict source-code from being The license may restrict source-code from being

distributed in modified form distributed in modified form onlyonly if the license allows if the license allows the distribution of "patch files" with the source code for the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The the purpose of modifying the program at build time. The license must explicitly permit distribution of software license must explicitly permit distribution of software built from modified source code. The license may built from modified source code. The license may require derived works to carry a different name or require derived works to carry a different name or version number from the original softwareversion number from the original software

Page 9: How Is Open Source Affecting Software Development?

9

Criteria(3)Criteria(3) No Discrimination Against Persons or Groups No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor No Discrimination Against Fields of Endeavor Distribution of License Distribution of License

►The rights attached to the program must apply to The rights attached to the program must apply to all to whom the program is redistributed without all to whom the program is redistributed without the need for execution of an additional license by the need for execution of an additional license by those partiesthose parties

License Must Not Be Specific to a Product License Must Not Be Specific to a Product ►The rights attached to the program must not The rights attached to the program must not

depend on the program's being part of a particular depend on the program's being part of a particular software distribution software distribution

Page 10: How Is Open Source Affecting Software Development?

10

Criteria(4)Criteria(4) License Must Not Restrict Other Software License Must Not Restrict Other Software

►The license must not place restrictions on The license must not place restrictions on other software that is distributed along with other software that is distributed along with the licensed software the licensed software

License Must Be Technology-Neutral License Must Be Technology-Neutral ►No provision of the license may be predicated No provision of the license may be predicated

on any individual technology or style of on any individual technology or style of interface. interface.

Page 11: How Is Open Source Affecting Software Development?

11

Range of code adoptionRange of code adoption►Code adoption can happen at the level Code adoption can happen at the level

of a few lines of code, a method, a of a few lines of code, a method, a class, a library, a component, a tool, or class, a library, a component, a tool, or a complete system.a complete system.

Page 12: How Is Open Source Affecting Software Development?

12

Software Reuse PossibilitiesSoftware Reuse Possibilities►Open up on three axesOpen up on three axes

What to reuseWhat to reuse►Promoted by the available software’s breadth Promoted by the available software’s breadth

and priceand price How to reuse itHow to reuse it

►Diverse granularity and interfacing optionsDiverse granularity and interfacing options Where to reuse itWhere to reuse it

►Inherent portability of source code over most Inherent portability of source code over most binary packaged component technologiesbinary packaged component technologies

Page 13: How Is Open Source Affecting Software Development?

13

Software Reuse Possibilities Software Reuse Possibilities (2)(2)

►Movement along three axes increases Movement along three axes increases the breadth of software reuse the breadth of software reuse opportunities in any development opportunities in any development effort.effort.

Page 14: How Is Open Source Affecting Software Development?

14

WebsitesWebsites►Free Software FoundationFree Software Foundation

http://http://www.fsf.orgwww.fsf.org//►FreshMeatFreshMeat

http://http://freshmeat.netfreshmeat.net►SourceForgeSourceForge

http://http://sourceforge.netsourceforge.net►Comprehensive Perl Archive NetworkComprehensive Perl Archive Network

http://http://www.cpan.comwww.cpan.com

Page 15: How Is Open Source Affecting Software Development?

15

Influence on software Influence on software productsproducts

►Design based on existing software Design based on existing software elementselements The reused open source code will typically The reused open source code will typically

be of higher quality than the custom-be of higher quality than the custom-developed code’s first incarnationdeveloped code’s first incarnation

Functionality will often be far more Functionality will often be far more complete than what the bespoke complete than what the bespoke development would afforddevelopment would afford

Page 16: How Is Open Source Affecting Software Development?

16

Influences on software products Influences on software products (2)(2)

►Reusing open source components can Reusing open source components can also affect the licensing model of the also affect the licensing model of the resultant product. resultant product.

►Some open source license dictate Some open source license dictate under which license you can distribute under which license you can distribute derivative products.derivative products.

Page 17: How Is Open Source Affecting Software Development?

17

MetricMetric►Quality varies widely without Quality varies widely without

standardized processes and metrics exist standardized processes and metrics exist for assessingfor assessing

► IndicatorsIndicators Underlying source codeUnderlying source code Associated mailing list archivesAssociated mailing list archives Bug-tracking databasesBug-tracking databases

►Some software repositories even provide Some software repositories even provide metrics of activities based on the factors metrics of activities based on the factors aboveabove

Page 18: How Is Open Source Affecting Software Development?

18

SecuritySecurity►Pros: Pros:

Benefit from reusing widely deployed and Benefit from reusing widely deployed and scrutinized algorithms and protocolsscrutinized algorithms and protocols

►Cons:Cons: Adversaries having access to the source Adversaries having access to the source

can more efficiently locate and exploit can more efficiently locate and exploit vulnerabilitiesvulnerabilities

Page 19: How Is Open Source Affecting Software Development?

19

Process IssuesProcess Issues►Large open source development Large open source development

projects increase the visibility, projects increase the visibility, accessibility, and adoption prospects of accessibility, and adoption prospects of important software engineering important software engineering processes such as version control, peer processes such as version control, peer reviews, issue tracking, release reviews, issue tracking, release engineering, and regression testing. engineering, and regression testing.

►These processes are standard in any These processes are standard in any CMM level 3 and above organization.CMM level 3 and above organization.

Page 20: How Is Open Source Affecting Software Development?

20

Process Issues (2)Process Issues (2)►Developers reusing software in source Developers reusing software in source

form can read the code and can often form can read the code and can often learn valuable coding practices from learn valuable coding practices from well-engineered softwarewell-engineered software

►Ours is one of the few creative Ours is one of the few creative professions where writers are not professions where writers are not allowed to read each other’s workallowed to read each other’s work

Page 21: How Is Open Source Affecting Software Development?

21

ConclusionConclusion►Open source and non-open source Open source and non-open source

development tools both have development tools both have strengths and weaknesses. Most strengths and weaknesses. Most likely, they are both here to stay.likely, they are both here to stay.

►Before developing with an open Before developing with an open source, users should take a look at the source, users should take a look at the license to make sure the rights. Some license to make sure the rights. Some licenses make the developing software licenses make the developing software an open source, too.an open source, too.

Page 22: How Is Open Source Affecting Software Development?

22

ReferencesReferences► Diomidis Spinellis, Clemens Szyperski, “Diomidis Spinellis, Clemens Szyperski, “How Is Open Source How Is Open Source

Affecting Software Development?Affecting Software Development?”, IEEE Software, January/Februa”, IEEE Software, January/February 2004, pp 28-33ry 2004, pp 28-33► Stephane Lussier, “How Open Source Changed the Way My Team WorStephane Lussier, “How Open Source Changed the Way My Team Works”, IEEE Software, January/February 2004, pp 68-72ks”, IEEE Software, January/February 2004, pp 68-72► Michel Ruffin and Christof Ebert, Alcatel, “Using Open Source SoftwarMichel Ruffin and Christof Ebert, Alcatel, “Using Open Source Software in Product Development: A Primer”, IEEE Software, January/Februae in Product Development: A Primer”, IEEE Software, January/February 2004, pp 82-86ry 2004, pp 82-86► Johndan Johnson-Eilola, “Open Source Basics: Definitions, Models, aJohndan Johnson-Eilola, “Open Source Basics: Definitions, Models, and Questions”, ACM Special Interest Group for Design of Communicatnd Questions”, ACM Special Interest Group for Design of Communications Proceedings of the 20th annual international conference on Compions Proceedings of the 20th annual international conference on Computer documentation, pp 79-83uter documentation, pp 79-83► Free Software Foundation, Free Software Foundation, http://http://www.fsf.orgwww.fsf.org//► Open Source Initiative OSI, Open Source Initiative OSI, http://www.opensource.orghttp://www.opensource.org► ONLamp, ONLamp, http://www.onlamp.comhttp://www.onlamp.com► Yahoo Taiwan Knowledge+, Yahoo Taiwan Knowledge+, http://http://tw.knowledge.yahoo.comtw.knowledge.yahoo.com

Page 23: How Is Open Source Affecting Software Development?

23

Questions?Questions?