Presentation is loading. Please wait.

Presentation is loading. Please wait.

Maintainability of FLOSS Projects

Similar presentations


Presentation on theme: "Maintainability of FLOSS Projects"— Presentation transcript:

1 Maintainability of FLOSS Projects
Researching the evolution of GNU Emacs text editor Ari Roponen

2 Contents About Myself Maintainability Software Evolution
FLOSS (Free/Libre/Open Source Software) GNU Emacs Aim of My Research Current Status

3 About Myself Ari Roponen B.Eng. 2003, Jyväskylä Polytechnic
Bachelor’s thesis: ”Design and Implementation of a Route-Information System” M.Sc. 2007, University of Jyväskylä Master’s thesis: ”Open Source Version Control Systems” GNU Emacs user since 2001

4 Maintainability Maintenance means modifying software after it is published Fix bugs Improve performance Adapt to environment changes Maintainability = how well software can be maintained Understandability Modularity

5 Software Evolution Software Evolution Laws (M. Lehman)
Continuing Change Increasing Complexity Self Regulation Conservation of Organizational Stability Conservation of Familiarity Continuous Growth Declining Quality Feedback System Conclusion: Continuous maintenance is needed to keep software functional in the changing environment

6 FLOSS (Free/Libre/Open Source Software)
Free Software Richard Stallman ”Free as in freedom” GNU, GPL, GCC, Emacs, ... Open Source Software Eric S. Raymond, Linus Torvalds ”OSS is a marketing name for FS” Linux-kernel, Firefox Is it important to separate FS from OSS? Free/Libre/Open Source Software

7 GNU Emacs “Emacs is the extensible, customizable, self-documenting real-time display editor.” Richard Stallman wrote the first EMACS in 1976 GNU Emacs in 1984

8

9 Wow! How do you do that? ”First, write a Tetris-clone, then a shell, then a web browser, then ...” Start the project, let others use it, integrate their changes, repeat at step 2, ... There must be some kind of a development process... ... a good one

10 Aim of My Research (1/4) Find out how FLOSS projects can get so old and still be up-to-date Does FLOSS development differ from other software development? GNU Emacs is 25 years old Linux-kernel is 19 years old

11 Aim of My Research (2/4) Detect common properties of FLOSS projects’ development models Goal definition Code writing Documentation Testing Maintenance Release cycle

12 Aim of My Research (3/4) Maybe invent a model for characterising used development processes Software changes by patching Testing by developers/users/pretesters Releasing early/late/”never” Attracting new users/developers

13 Aim of My Research (4/4) Find new software evolution laws
Linux-kernel seems to grow faster than expected – why? Do Lehman’s laws apply to FLOSS projects?

14 Current Status (1/4) How to keep software lifetime long
Personal characteristics Be interested in what you do Make your work useful for others Be friendly to new users Don’t neglect old users Process characteristics Use suitable (public) development model Aim for good, not best Design with extensibility in mind

15 Current Status (2/4) Common properties of old FLOSS projects
Changes reviewed by community Existing coding standards Many old users (including original authors) Good documentation No specific goals

16 Current Status (3/4) A model for FLOSS development
Software changes by patching What is a patch How changes get accepted Properties of a good patch

17 Current Status (4/4) New evolution laws None (yet)
Existing laws seem to apply quite well

18 Questions?

19 Answers GNU Emacs is available at Yes No 42 Well, let me put it this way... Thank You!


Download ppt "Maintainability of FLOSS Projects"

Similar presentations


Ads by Google