open source slides - je-loon

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

Upload: softwarecentral

Post on 13-May-2015

679 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Open Source Slides - Je-Loon

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

Development?Development?

Je-Loon YangJe-Loon Yang

Page 2: Open Source Slides - Je-Loon

2

IntroductionIntroduction

►What is open source?What is open source? From a developers perspective, open source iFrom a developers perspective, open source i

s 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: Open Source Slides - Je-Loon

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 t

o your needso your needs►The freedom to redistribute copies so you can help your neigThe freedom to redistribute copies so you can help your neig

hborhbor►The freedom to improve the program, and release your imprThe freedom to improve the program, and release your impr

ovements to the public, so that the whole community benefiovements to the public, so that the whole community benefitsts

Page 4: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

5

Terminology(3)Terminology(3)

►Open StandardsOpen Standards Individuals and corporations are free to develIndividuals and corporations are free to devel

op 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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

17

MetricMetric

►Quality varies widely without Quality varies widely without standardized processes and metrics standardized processes and metrics exist for assessingexist for assessing

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

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

Page 18: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

19

Process IssuesProcess Issues

►Large open source development Large open source development projects increase the visibility, projects increase the visibility, accessibility, and adoption prospects accessibility, and adoption prospects of important software engineering of important software engineering processes such as version control, processes such as version control, peer reviews, issue tracking, release peer 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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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: Open Source Slides - Je-Loon

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/Feb”, IEEE Software, January/February 2004, pp 28-33ruary 2004, pp 28-33

► Stephane Lussier, “How Open Source Changed the Way My Team Stephane Lussier, “How Open Source Changed the Way My Team Works”, IEEE Software, January/February 2004, pp 68-72Works”, IEEE Software, January/February 2004, pp 68-72

► Michel Ruffin and Christof Ebert, Alcatel, “Using Open Source SoftMichel Ruffin and Christof Ebert, Alcatel, “Using Open Source Software in Product Development: A Primer”, IEEE Software, January/ware in Product Development: A Primer”, IEEE Software, January/February 2004, pp 82-86February 2004, pp 82-86

► Johndan Johnson-Eilola, “Open Source Basics: Definitions, Models,Johndan Johnson-Eilola, “Open Source Basics: Definitions, Models, and Questions”, ACM Special Interest Group for Design of Commu and Questions”, ACM Special Interest Group for Design of Communications Proceedings of the 20th annual international conference nications Proceedings of the 20th annual international conference on Computer documentation, pp 79-83on Computer 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: Open Source Slides - Je-Loon

23

Questions?Questions?