Open Source Software Architecture and Design By John
Open Source Software Architecture and Design By John Rouda
Overview of the Presentation Introduction n What is Open Source Software (OSS) n Historical Overview of OSS n OSS Theories and Models n Cathedral n Bazaar n Who makes OSS n OSS Design/Development Actors n Pros and Cons of OSS n Conclusion n
What is Open Source Software n n Open Source software (OSS) is computer software whose source code is available under a copyright license that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form. Open Source is different than Freeware, although is very similar. The term Open Source, was created in 1998 for a few reasons, one was to encourage corporate support and the other was to prevent the ambiguity of the word “Free. ” http: //en. wikipedia. org
Foxtrot
Historical Overview of OSS GNU – GNU’s Not Unix - 1984 n FSF – Free Software Foundation n GPL – GNU General Public License n Open Source Initiative – 1998 n n n (Eric Raymond) Open Source Today
OSS Theories and Models n Cathedral Model - code is only made available between each of the developed releases and is restricted to an exclusive group of contributors during the actual development. n Bazaar Model – “Release Early, Release Often…Given enough eyeballs, all bugs are shallow” - Eric Raymond
Cathedral Model Ridged n Source-code only available during releases n Similar to a closed source project n Slower releases n Less initial bugs n Slower bug fixes n Example - Emacs n
Bazaar Model Loosely managed n Source code is available all the time n Faster releases n More initial bugs n Faster bug fixes n Example – Original Linux n
Problems with OSS Models Many OSS projects don’t fit any model. n Most are created to solve a problem, and good design and architecture planning are neglected at first. n OSS projects have a decentralized structure in nature so many concerns can arise: n Decision-making n Accountability n communication n Testing, etc. n
Actors in a typical OSS project Administrator – Project Facilitator n Project Manager – Manages Developers and n Maintainers n Developer – Write code n Maintainer – Fix errors n User – use the software
Who Makes OSS? IBM n Red Hat n Su. Se n Apple n SGI n Sun Microsystems n Google n http: //images. google. com
Pros of OSS projects n Coding, designing, testing all parallel? n n Developers can see the big picture n n Since the anyone can get the source code, testing, designing new modules, and coding bug fixes and new features can be done simultaneously In the traditional model “only a very few programmers can see the source and everybody else must blindly use an opaque block of bits” Centralized Control for a decentralized world n Bringing all the pieces together for a final product. Zhao and Elbaum
Cons of OSS projects n n n Very little unit testing Difficult to estimate time because contributors usually don’t keep consistent schedules. Many contributors like to work on “popular” modules but few work on other, hidden modules. Projects can become difficult to maintain very quickly. Managing volunteers is tricky to say the least Byfield - News. Forge
Dilbert
Conclusion OSS is about Freedom, not just in price, but also the ability to do what we want with the software. n 2 popular models are Cathedral and Bazaar n
Questions? ?
- Slides: 16