Open Source Software Development (Adapted from Dr. Kostadin Damevski) Sung Hee Park Department of Mathematics and Computer Science Virginia State University.

Slides:



Advertisements
Similar presentations
Robert Lockyer.
Advertisements

Software Processes.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
The Cathedral and the Bazaar: A Look at Open-Source ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Agile development By Sam Chamberlain. First a bit of history..
Open Source and the Bazaar Method. History of Software Development 1944, Harvard and IBM build first computer bundling Hardware and Software together.
OPEN DEVELOPMENT, AGILE, XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
IS Spring The Basics of Open Source Reinhardi A. Haqi Mohamed Umar Shakeel Advanced Topics for Systems Development.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
CS 501: Software Engineering Fall 2000 Lecture 4 Management I: Project Management.
CS 501: Software Engineering
CS189A/172 - Winter 2008 Lecture 5: Project Management.
Computer Science 162 Section 1 CS162 Teaching Staff.
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
VT-NTUG | Jim Hall Building the Bazaar Open Source Software Development.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CSE350 Software Design and Engineering University of Pennsylvania Office: 254 Moore GRW, Phone: March 19 th, 2002.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Lessons Learned: The Evolving Nature of Mobile Websites Presented for The New England Chapter of ASIS&T (NEASIS&T) by Edward Iglesias Systems Librarian,
Open Source Software Development. Overview  OSS  OSSD  OSSD vs PSD  Future.
FIS 1311: October Review November 7, Outline Software development processes Standards and XML (RSS) UML use Cases Databases & ERD.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
CompSci 230 Software Design and Construction
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
How I learned to stop worrying and love Open Source Software... Colin M. Sharples Advisory IT Specialist IBM Business Consulting Services SQNZ 21 October.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Open Source Software In the beginning, all software was free –in the 1960s,when IBM and others sold the first large-scale computers, these machines came.
NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Types of Application Software Lesson Objective: Understanding the terminology behind the different types of application software Learning Outcome: Answer.
Open Source Software Architecture and Design By John Rouda.
Software Construction and Evolution - CSSE 375 Open Source 2 Shawn & Steve.
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Applying the Open Source development model ● Technologies ● Open Source? ● Drawbacks of Open Source ● Advantages of Open Source ● System outline.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
CSNB334 Advanced Operating Systems 1. Introduction to Linux Lecturer: Abdul Rahim Ahmad.
SSGRR 2001 Developing Open Source Software SSGRR 2001 Jim Hall, Founder, coordinator The FreeDOS Project.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Unlocking the Community Toolchest Tony Atkins UHI Millenium Institute.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
EXtreme Programming and Open Source engineering paradigm A comparison
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
Design and Implementation
Software Processes.
Open Source Business Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Presentation transcript:

Open Source Software Development (Adapted from Dr. Kostadin Damevski) Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 23, 2012

Outline  Mythical Man Month  Open Source Software Development

Review  What is a Software Process Model?  It determines the order of the stages involved in software development and evolution  It provides the answer to the following two questions?  What shall we do next?  How long shall we continue to do it?  Software process models: waterfall, spiral, agile, others

Mythical Man-Month  Seminal software engineering titled by Fred Brooks  The book is based on Brooks’ experiences at IBM while managing the development of OS/360  Most ideas in book still apply to software engineering today  Key Idea Brooks’ Law Adding more programmers to a late project makes it later

What’s The Rationale Behind Brooks’ Law?  Bugs tend strongly to cluster at the interfaces between code written by different people  Communications/coordination overhead on a project tends to rise with the number of interfaces between human beings.  Thus, problems increase with the number of communications paths between developers, which scales as the square of the number of developers (more precisely, according to the formula N*(N - 1)/2 where N is the number of developers).

Other Interesting Fred Brooks Points  The “Second System” effect - plan to throw one away  "Good" programmers are generally five to ten times as productive as mediocre ones  “Conceptual Integrity” - separating architecture from implementation  Many others - the book is full of great advice  Wiki, Mythical man-Month, Retrieved on August 23,

What Is Open Source?  The source code is included  The license must allow derived works (distributable under the same license terms)  It is all free!!!

How Is Open Source Software Developed?  Teams of varied sizes that are loosely coupled  Don’t know each other  Only communicate through Internet, usually just and newsgroups  People are NOT directly compensated for their work

How Does Open Source Software Stack Up To Proprietary Software?  In terms of...  quality (reliability, performance, etc.)  speed of development  This is the question we will try to answer in this lecture.  Of course, this is in general and not about specific projects/products.

Another Good Book: The Cathedral and The Bazaar  written by Eric Raymond  Cathedral...  “carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time”  Bazaar...  “a great babbling bazaar of differing agendas and approaches (aptly symbolized by the Linux archive sites, who’d take submissions from anyone) out of which a coherent and stable system could seemingly emerge only by a succession of miracles”  Open source software development is more like a bazaar than a cathedral!  Eric Raymond discusses the merits of open source software through his experience in building “popclient”, an client, in the mid 90s.

Major Points of The Cathedral and The Bazaar (1 of 4)  Every good work of software starts by scratching a developer’s personal itch.  Necessity is the mother of invention  The joy of the craft  Good programmers know what to write. Great ones know what to rewrite (and reuse).  Certainly easier to do with more open source software available

Major Points of The Cathedral and The Bazaar (2 of 4)  “Plan to throw one away; you will, anyhow.” (Fred Brooks, The Mythical Man-Month)  If you have the right attitude, interesting problems will find you.  When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

Major Points of The Cathedral and The Bazaar (3 of 4)  Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.  Having users is important, otherwise it is much harder.  Maybe the most important point in open source design.  Release early. Release often. And listen to your customers.  This can come back to bite you if you release buggy code. You may lose some of your users.  Therefore, most open source projects develop a two release philosophy  The “newest” release will get you all the cool features, but there may be bugs.  The “stable” release will get you something that is known to work well.

Major Points of The Cathedral and The Bazaar (4 of 4)  Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone  Given enough eyeballs, all bugs are shallow  Take care of your developer / user base  In open source development, the line is blurred  That might make debugging easier - developers produce better bug information that testers  Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

Case Study: Linux  The first significant open source software product  Lead developer: Linus Torvalds  Started with the code from another operating system: Minix.  Contributions by many thousands of people over the years

Linux Continued  Linux changed the “rules” of software development  Linus was an “average” coder, but a visionary in terms of the open source design methodology  Understood the psychology of modern day programmers/hackers  Recognized good design and itegrated it into Linux

Other Open Source Odds and Ends  Bazaar style works if you already have something to work with, rarely for something you want to build from the ground up  Licensing: The GPL  Google’s Summer of Code (  Making money using open source software (manuals, technical assistance)  Making money by charging for commercial use (e.g. MySQL)

Individual Presentations  Prepare quick (5-10 minute) presentations for next week on a particular agile method  SCRUM  Lean Software Development  Extreme Programming (XP)  Open Unified Process  Getting Real  etc.  Use google (or you other favorite way to obtain information) to teach us and convince us why a particular model is good.  Make slides, but not too many (generally, < 5)  Aim for clarity!!!! Don’t put up anything in a slide that you do not understand.