1 / 81

COMS W4156: Advanced Software Engineering

COMS W4156: Advanced Software Engineering. Prof. Gail Kaiser Kaiser+4156@cs.columbia.edu http://york.cs.columbia.edu/classes/cs4156/. What is Open Source Software?.

nalani
Download Presentation

COMS W4156: Advanced Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMS W4156: Advanced Software Engineering Prof. Gail Kaiser Kaiser+4156@cs.columbia.edu http://york.cs.columbia.edu/classes/cs4156/ Kaiser: COMS W4156 Fall 2007

  2. What is Open Source Software? • Open source usually refers to a program in which the source code is available to the general public for use and/or modification from its original design free of charge. • Open source code is typically created as a collaborative effort in which programmers improve upon the code and share the changes within the community. • The rationale for this movement is that a larger group of programmers not concerned with proprietary ownership or financial gain will produce a more useful and bug-free product for everyone to use. • The concept relies on peer review to find and eliminate bugs in the program code, a process that commercially developed and packaged programs do not employ. Kaiser: COMS W4156 Fall 2007

  3. Technical Case • Central part of engineering tradition, part of working method almost by instinct, for Internet and Unix hackers. • The running gears of the Internet are astonishingly reliable relative to their nearest commercial equivalents. • TCP/IP, DNS, sendmail, Perl, Apache, … Kaiser: COMS W4156 Fall 2007

  4. Economic Case • There are companies making money programming open-source software right now. • If having a program written is a net economic gain for a customer over not having it written, a programmer will get paid whether or not the program is going to be free after it's done. Kaiser: COMS W4156 Fall 2007

  5. Economic Value • The use value of a program is its economic value as a tool. • The market value of a program is its value as a saleable commodity. • The monopoly value is the value you gain not just from having the use of a program but from having it be unavailable to your competitors. Kaiser: COMS W4156 Fall 2007

  6. “Open-Source Doomsday” (1) • The market value and monopoly value of software goes to zero because of all the free sources out there. • Use value alone doesn't attract enough consumers to support software development. Kaiser: COMS W4156 Fall 2007

  7. “Open-Source Doomsday” (2) • The commercial software industry collapses. • Programmers starve or leave the field. • Doomsday arrives when the open-source culture itself (dependent on the spare time of all these pros) collapses, leaving nobody around who can program competently. Kaiser: COMS W4156 Fall 2007

  8. Shaky Assumption #1: Programming will collapse if software has no market value • Proportion of all code written in-house at companies other than software vendors >75%. • Includes most MIS: the financial- and database-software customizations • Also includes OEM software like device drivers and embedded code for our increasingly microchip-driven machines. Kaiser: COMS W4156 Fall 2007

  9. Shaky Assumption #1 (cont): Programming will collapse if software has no market value • Most vertical code is integrated with its environment in ways that make reusing or copying it very difficult. • This is true whether the “environment” is a business office's set of procedures or the fuel-injection system of a combine harvester. Kaiser: COMS W4156 Fall 2007

  10. Combine Harvester Kaiser: COMS W4156 Fall 2007

  11. Shaky Assumption #1 (cont): Programming will collapse if software has no market value • Thus, as the environment changes, there is a lot of work continually needed to keep the software in step. • “Maintenance” makes up the vast majority of what programmers get paid to do. • And it will still need to be done, even if/when most software is open-source. Kaiser: COMS W4156 Fall 2007

  12. Shaky Assumption #1 (cont): Programming will collapse if software has no market value • Between originating, customizing and maintaining vertical code (and related tasks like system administration and troubleshooting), the use value of software would still support the millions of good jobs in that 75% even if all “horizontal” or standalone software were free. Kaiser: COMS W4156 Fall 2007

  13. Shaky Assumption #2: Open-source software has no market value • Red Hat (among others) has built a flourishing business selling software you can download for free from Red Hat's own web site! • What you're really buying from them is handholding and support for the “free” stuff they sell - a single place to go when you have problems. Kaiser: COMS W4156 Fall 2007

  14. Shaky Assumption #3: Open-source software has no monopoly value • Adopting or even just studying someone else's software is not a costless, frictionless process; you need to dedicate skilled time to it. • As product cycle times drop, coattail-riding gets less attractive, because the payoff period shrinks relative to the time you had to dedicate. Kaiser: COMS W4156 Fall 2007

  15. Shaky Assumption #3: Open-source software has no monopoly value (cont) • And time your skilled people spend studying someone else's “monopoly” code is time you're spending getting to where the competition used to be (rather than where they are now). Kaiser: COMS W4156 Fall 2007

  16. Business Case #1 • High reliability • Open-source software is peer-reviewed software; it is thus more reliable than closed, proprietary software. • Mature open-source code is as bulletproof as software ever gets. Kaiser: COMS W4156 Fall 2007

  17. Business Case #2-N • Development Speed • Lower Overhead • Closeness to the Customer • Broader Market • Grab “Mind Share” (e.g., for startups) • … Kaiser: COMS W4156 Fall 2007

  18. Investor Case #1-2 • Support Sellers: give away the software product, but sell distribution, branding, and after-sale service. • Loss Leaders: give away open-source as a loss-leader and market positioner for closed software. Kaiser: COMS W4156 Fall 2007

  19. Investor Case #3-4 • Widget Frosting: a hardware company goes open-source in order to get better drivers and interface tools cheaper. • Accessorizing: selling accessories -- books, compatible hardware, complete systems with open-source software pre-installed. Kaiser: COMS W4156 Fall 2007

  20. Customer Case #1 • Open source model applies even to internally developed software. • You are your developer’s customer! • Freedom from legal entanglements such as tracking copies and usage. • Very hard to do accurately. Kaiser: COMS W4156 Fall 2007

  21. Customer Case #2 • Higher Security • Security through obscurity just does not work. • Closed sources create a false sense of security. • The bad guys will always find the holes, but the good guys will not find holes and fix them. • It is harder to distribute trustworthy fixes when a hole is revealed. Kaiser: COMS W4156 Fall 2007

  22. Marketing Case • Why not call it, as we traditionally have, free software? • The term “free software” has a load of fatal baggage; to a businessperson, it's too redolent of fanaticism and flakiness and strident anti-commercialism. Kaiser: COMS W4156 Fall 2007

  23. Marketing Case (cont) • In marketing appearance is reality. The appearance that we're willing to climb down off the barricades and work with the corporate world counts for as much as the reality of our behavior, our convictions, and our software. Kaiser: COMS W4156 Fall 2007

  24. Free Software Foundation • The Free Software Foundation (FSF) is dedicated to eliminating restrictions on copying, redistribution, understanding, and modification of computer programs. • “Free software” is a matter of liberty, not price. • Think “free speech”, not “free beer”. Kaiser: COMS W4156 Fall 2007

  25. Free Software Tenets • The freedom to run the program, for any purpose. • The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this. Kaiser: COMS W4156 Fall 2007

  26. Free Software Tenets (cont) • 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. Access to the source code is a precondition for this. Kaiser: COMS W4156 Fall 2007

  27. Example Open Source License • Gnu General Public License (GPL), developed by Richard Stallman and the Free Software Foundation starting in 1985 • Certified by OSI Kaiser: COMS W4156 Fall 2007

  28. Open Source Initiative (OSI) http://www.opensource.org/ “Open source is a development method for software that harnesses the power of distributed peer review and transparency of process. The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.” Kaiser: COMS W4156 Fall 2007

  29. Open Source Initiative (OSI) “The Open Source Initiative (OSI) is a non-profit corporation formed to educate about and advocate for the benefits of open source and to build bridges among different constituencies in the open-source community. One of our most important activities is as a standards body, maintaining the Open Source Definition for the good of the community. The Open Source Initiative Approved License trademark and program creates a nexus of trust around which developers, users, corporations and governments can organize open-source cooperation.” Kaiser: COMS W4156 Fall 2007

  30. Open Source Definition • Open source doesn't just mean access to the source code. • The distribution terms of open-source software must comply with the following criteria: [upcoming slides] Kaiser: COMS W4156 Fall 2007

  31. Open Source Definition 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. Kaiser: COMS W4156 Fall 2007

  32. Open Source Definition 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. … Kaiser: COMS W4156 Fall 2007

  33. Open Source Definition 2. Source Code … 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. Kaiser: COMS W4156 Fall 2007

  34. Open Source Definition 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. Kaiser: COMS W4156 Fall 2007

  35. Open Source Definition 4. 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. … Kaiser: COMS W4156 Fall 2007

  36. Open Source Definition 4. Integrity of The Author's Source Code … 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. Kaiser: COMS W4156 Fall 2007

  37. Open Source Definition 5. No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons. Kaiser: COMS W4156 Fall 2007

  38. Open Source Definition 6. No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. Kaiser: COMS W4156 Fall 2007

  39. Open Source Definition 7. 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. Kaiser: COMS W4156 Fall 2007

  40. Open Source Definition 8. 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. … Kaiser: COMS W4156 Fall 2007

  41. Open Source Definition 8. License Must Not Be Specific to a Product … If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. Kaiser: COMS W4156 Fall 2007

  42. Open Source Definition 9. License Must Not Restrict Other Software The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software. Kaiser: COMS W4156 Fall 2007

  43. Open Source Definition 10. License Must Be Technology-Neutral No provision of the license may be predicated on any individual technology or style of interface. Kaiser: COMS W4156 Fall 2007

  44. Open Source Licenses Open Source Licenses (by name or by category) comply with the Open Source Definition and are listed here after going through the approval process. We also track the approval status of licenses. Kaiser: COMS W4156 Fall 2007

  45. The Cathedral and the Bazaar • Eric Raymond (esr) • first presented May 1997, ongoing revision through September 2000 http://www.firstmonday.org/issues/issue3_3/raymond/ or http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ Kaiser: COMS W4156 Fall 2007

  46. The Cathedral • Draws an analogy between traditional closed source development and a “cathedral”, in which there is a rigid hierarchy among developers, managers, testers, etc. Kaiser: COMS W4156 Fall 2007

  47. The Cathedral (cont) • esr originally believed that the most important software (operating systems and really large tools like the Emacs programming editor) needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time. Kaiser: COMS W4156 Fall 2007

  48. The Bazaar • Likens open source projects to Middle Eastern bazaars, where numerous merchants hawk their wares loudly to passersby. • Little hierarchy among contributors. • Contributors compete to have their modifications inserted into the next release, bringing recognition and reputation. Kaiser: COMS W4156 Fall 2007

  49. Based Primarily on Linux • Describes Linus Torvalds' style of development as: release early and often, delegate everything you can, be open to the point of promiscuity. Kaiser: COMS W4156 Fall 2007

  50. Open Source Lessons (1) • Every good work of software starts by scratching a developer's personal itch. • Good programmers know what to write. Great ones know what to rewrite (and reuse). • “Plan to throw one away; you will, anyhow.” (Fred Brooks, The Mythical Man-Month, Chapter 11) Kaiser: COMS W4156 Fall 2007

More Related