This document summarizes key aspects of free and open source software (FOSS). It defines FOSS and provides examples like Linux, Eclipse, and Firefox. It describes FOSS processes as globally collaborative with distributed development and iterative releases. FOSS technologies allow for fast innovation through community testing and contributions to new topics. FOSS quality benefits from source code availability and review as well as free testing. FOSS architectures are evolutionary and modularize components. Successful FOSS business models offer services around packaging, support, customization and refactoring of open source projects.
3. FOSS Definition
FOSS: Free and Open
Source Software.
“free software” = liberty, not price.
Freedom to:
• Run the program.
• Study, adapt. Source code is a
must. “Open source is a development
method for software that harnesses
• Redistribute/Copy. the power of distributed peer review
and transparency of process.”
• Improve/Release improvements.
4. FOSS Examples
• GCC ( GNU C compiler )
• Linux ( Operating System )
• Eclipse ( de facto IDE )
• KDE ( Desktop Environment )
• Apache/PHP/MySQL
• Firefox ( Web browser )
5. Process
• Global collaboration
– Members all over the world.
– Developers = users = testers.
• Distributed change management
– Use branches in CVS.
– Share-development.
• Iterative development
– Short dev cycle. “User satisfaction can
– Unstable releases. improve and be driven
– Decentralized testing. by shortening the time
– Remote quality assurance. interval between
releases”
6. Technology
• Fast exploitation
– Share/try new ideas.
– Community help testing.
• New topics
– Basically anything new.
– Community is important.
Modeling feedback control system(?)
7. Quality
• Source code availability:
– Fast/effective defect-correction
cycle
Fast feedback by users =
developers = testers. “The promise of open source is
– High security assurance betterflexibility, lowerreliability, an
more
quality, higher
cost, and
• White testing end to predatory vendor lock-in. “
• Code review
• Free testers
“Given enough eyeballs, all bugs are shallow.”
8. Architecture
• Evolutionary ( hackerish? ) because software
change too fast.
designs
– No design at all.
– Read the code! No doco.
• Modularized components
– Mozilla extensions.
– Linux kernel modules.
– Eclipse plug-ins.
Reduce software complexity.
Encourage developers.
9. Business Model
• Distribution model
• New services = $$$
– Packaging.
– Technical supports.
– Customization.
– Refactoring.
Test tree vs. production tree? ( RH )
12. Ref
• The Free Software Definition http://www.gnu.org/philosophy/free-sw.html
• http://opensource.org/
• Christof Ebert, Open Source Drives Innovation
• Nazim H. Madhavji et al, SOFTWARE EVOLUTION AND FEEDBACK