Free software engineering

2,700 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,700
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Free software engineering

  1. 1. Introduction Free Software Engineering Free Software Engineering Master on Free Software Juanjo Amor, Gregorio Robles {jjamor,grex}@gsyc.escet.urjc.es GSyC/Libresoft 2-3 November 2007 Juanjo Amor, Gregorio Robles Free Software Engineering
  2. 2. Introduction Free Software Engineering (cc) 2007 Juanjo Amor, Gregorio Robles Some rights reserved. This work licensed under Creative Commons Attribution-ShareAlike License. To view a copy of full license, see http://creativecommons.org/licenses/by-sa/2.0/ or write to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Juanjo Amor, Gregorio Robles Free Software Engineering
  3. 3. Introduction Free Software Engineering Summary Introduction Free Software Engineering Juanjo Amor, Gregorio Robles Free Software Engineering
  4. 4. Introduction Free Software Engineering Bazaar? Free Software = Bazaar? Is there one development model for free software? Are all projects really with many contributions of *many* developers? Bazaar definition may be not accurate. Free Software is not bazaar. Free software is software released with the four freedoms. Juanjo Amor, Gregorio Robles Free Software Engineering
  5. 5. Introduction Free Software Engineering “No silver bullet”, by Brooks Brooks wrote about some practices that help the development process: Buy versus build. Do not develop these modules you can buy and integrate in your own applications. Refine requirements, do fast prototyping. Doing fast prototyping helps a better knowledge of real requirements. Great designers. Good designers help in early detection of design problems. Juanjo Amor, Gregorio Robles Free Software Engineering
  6. 6. Introduction Free Software Engineering In free software ... In free software, these Brook practices are applied since years. By integrating component from other free projects (thank to their license). With the principle “Release early, release often”. Several studies reveal that most big free software projects are leaded by a small group of developers. Juanjo Amor, Gregorio Robles Free Software Engineering
  7. 7. Introduction Free Software Engineering Quantitative studies Free software offer us: Access to code, all revisions. Access to other data related: dates, authors. . . The development model usually makes use of distributed tools: To store the revisions (CVS, SVN), To communicate users and developers (mailing lists, chats. . . ). To manage maintenance (bug tracking systems), To manage the project (through “forges”). Since the projects are “open”, all previous data is usually free available to anyone. We can study those data from the view point of the empirical software engineering. Since we can study a lot of free software projects, let’s do it! Juanjo Amor, Gregorio Robles Free Software Engineering
  8. 8. Introduction Free Software Engineering Developers in free software Study done in 1998 (published on 2000), by R. Ghosh et al, “The Orbiten Free Software Survey” Analyzed more than 3,000 projects, 25,000 lines of code, more than 12,000 developers. Finding: the participation is modeled following Pareto’s Law, that is, 80 % of code belongs to the 20 % most active developers and 80 % of developers only participate in about 20 % of code. Later studies confirmed these findings and expanded them to other participation, such as e-mail messages on mailing lists, or bug managing. The tools used for this study was released as free software. This facilitates later similar studies. Juanjo Amor, Gregorio Robles Free Software Engineering
  9. 9. Introduction Free Software Engineering First economic studies Study done in 2000, by S. Koch et al, “Results from Software Engineering Research into Open Source Development Projects Using Public Data”. Koch analyzed information from GNOME mailing lists and CVS. Koch tried to reproduce the results with classic cost models (COCOMO, function points) and showed that they are not quite different. However, Koch concludes that Free Software needs its own research methods and models. This study is considered as the first complete quantitative study on free software projects. Juanjo Amor, Gregorio Robles Free Software Engineering
  10. 10. Introduction Free Software Engineering Studies which describe the complete process Study done in 2000, by Mockus et al, “A Case Study of Open Source Software Development: The Apache Server” They used history change in code and bug reports, for quantifying several issues: Developer participation “core” size Code authorship Productivity Defect density Error correction intervals This is a “classical” quantitative study, but using public data available on the net. Juanjo Amor, Gregorio Robles Free Software Engineering
  11. 11. Introduction Free Software Engineering Counting code, at all... Studies: D. Wheeler, “Estimating Linux Size” and later “More than a gigabuck. . . ”. Studies which analyze the size of popular distributions (Redhat 6.2 and 7.1). It is like a X-Ray of the two popular distributions, by using a tool which counts and analyzes physical lines of code (Sloccount). The most important result was the big size of the distribution, and the estimated costs by using COCOMO model. Juanjo Amor, Gregorio Robles Free Software Engineering
  12. 12. Introduction Free Software Engineering Counting code, at all... (2) These studies motivated other: G. Barahona et al, “Counting potatoes” (and later revisions). These studies focused in Debian distributions, studying the evolution from 2.0 to recent 4.0 release. Some interesting results: The size and estimated costs of Debian. The evolution of use of languages. The evolution of size (each revision duplicates the size). The maintenance of packages. Juanjo Amor, Gregorio Robles Free Software Engineering
  13. 13. Introduction Free Software Engineering Integrating tools Other recent studies try to integrate several tools into one, to automate the process as possible, to avoid the effort of adapting the tool to a new study (by trying the making of generic tools). some Libresoft projects work on this. . . Juanjo Amor, Gregorio Robles Free Software Engineering
  14. 14. Introduction Free Software Engineering The future Free Software Engineering is in their first stages. In the near future, we need studies for: Free Software Projects classification Methodology based in automated analysis Tools for automated analysis Models for understanding the Free Software processes Validation of classic models in Free Software projects Juanjo Amor, Gregorio Robles Free Software Engineering
  15. 15. Introduction Free Software Engineering References F. Brooks, “No Silver Bullets” (1987) http://virtualschool. edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html R. Ghosh, “The Orbiten Free Software Survey” (2000) http://www.firstmonday.org/issues/issue5_7/ghosh/ S. Koch et al, “Results from Software Engineering Research into Open Source Software projects using Public Data” (2000) http: //wwwai.wu-wien.ac.at/~koch/forschung/sw-eng/wp22.pdf A. Mockus et al, “A case study of open source software development: the Apache server” (2000) http://opensource.mit.edu/papers/mockusapache.pdf D. Wheeler, “Counting Source Lines of Code” (2000) http://www.dwheeler.com/sloc/ J. G. Barahona et al, “Counting Potatoes” (2001) http://people.debian.org/~jgb/debian-counting/ Juanjo Amor, Gregorio Robles Free Software Engineering

×