Upload
primrose-payne
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
Open Source Software Architecture and Design
By John Rouda
Overview of the Presentation Introduction What is Open Source Software (OSS) Historical Overview of OSS OSS Theories and Models
Cathedral Bazaar
Who makes OSS OSS Design/Development Actors Pros and Cons of OSS Conclusion
What is Open Source Software 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 FSF – Free Software Foundation GPL – GNU General Public License Open Source Initiative – 1998
(Eric Raymond) Open Source Today
OSS Theories and Models
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.
Bazaar Model – “Release Early, Release Often…Given enough eyeballs, all bugs are shallow” - Eric Raymond
Cathedral Model
Ridged Source-code only available during
releases Similar to a closed source project Slower releases Less initial bugs Slower bug fixes Example - Emacs
Bazaar Model
Loosely managed Source code is available all the time Faster releases More initial bugs Faster bug fixes Example – Original Linux
Problems with OSS Models Many OSS projects don’t fit any model. Most are created to solve a problem, and
good design and architecture planning are neglected at first.
OSS projects have a decentralized structure in nature so many concerns can arise: Decision-making Accountability communication Testing, etc.
Actors in a typical OSS project
Administrator – Project Facilitator Project Manager – Manages
Developers and Maintainers Developer – Write code Maintainer – Fix errors User – use the software
Who Makes OSS?
IBM Red Hat SuSe Apple SGI Sun Microsystems Google
http://images.google.com
Pros of OSS projects
Coding, designing, testing all parallel? Since the anyone can get the source code, testing,
designing new modules, and coding bug fixes and new features can be done simultaneously
Developers can see the big picture 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 Bringing all the pieces together for a final product.
Zhao and Elbaum
Cons of OSS projects 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 - NewsForge
Dilbert
Conclusion
OSS is about Freedom, not just in price, but also the ability to do what we want with the software.
2 popular models are Cathedral and Bazaar
Questions?