Windows: 2 years ( traditional ) Debian: 1 year ( traditional ) Oracle: 1 year MySQL: 4 weeks Eclipse: 6 weeks Fedora: 3-6 months Shared dev : cvs Shared knowledge: know bugs/fixes are in cvs -> dig it to share -> knowledge bases.
Developers try/share new ideas, implementation, algorithms, new process Having a community is the motivation of developers. Feedback control system: a system is better if it has feedback. Multi level
Fast/effective defect-correction cycle: both quality and security. Users/testers find bugs -> developers fix. Findbugs: jlint: find bug prone code and bug itself.
Open Source Evolution
Nguyen Vu Hung
FOSS: Free and Open
“free software” = liberty, not price.
• Run the program.
• Study, adapt. Source code is a
“Open source is a development
must. method for software that harnesses
• Redistribute/Copy. the power of distributed peer review
and transparency of process.”
• Improve/Release improvements.
• GCC ( GNU C compiler )
• Linux ( Operating System )
• Eclipse ( de facto IDE )
• KDE ( Desktop Environment )
• Firefox ( Web browser )
• Global collaboration
– Members all over the world.
– Developers = users = testers.
• Distributed change management
– Use branches in CVS.
• 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
• Fast exploitation
– Share/try new ideas.
– Community help testing.
• New topics
– Basically anything new.
– Community is important.
Modeling feedback control system(?)
• Source code availability:
– Fast/effective defect-correction
Fast feedback by users =
developers = testers. “The promise of open source is
– High security assurance better quality, higher reliability,
more flexibility, lower cost, and an
• White testing end to predatory vendor lock-in. “
• Code review
• Free testers
“Given enough eyeballs, all bugs are shallow.”
• Evolutionary ( hackerish? ) because software
change too fast.
– No design at all.
– Read the code! No doco.
• Modularized components
– Mozilla extensions.
– Linux kernel modules.
– Eclipse plug-ins.
Reduce software complexity.
• Distribution model
• New services = $$$
– Technical supports.
Test tree vs. production tree? ( RH )
• Modeling feedback control system.
• Social aspects.
• Economical aspects.
• The Free Software Definition http://www.gnu.org/philosophy/free-sw.html
• Christof Ebert, Open Source Drives Innovation
• Nazim H. Madhavji et al, SOFTWARE EVOLUTION AND FEEDBACK