Upload
jeffry-daniel
View
239
Download
6
Embed Size (px)
Citation preview
Ari Roponen
Researching the evolution of GNU Emacs text editor
ContentsAbout MyselfMaintainabilitySoftware EvolutionFLOSS (Free/Libre/Open Source Software)GNU EmacsAim of My ResearchCurrent Status
About MyselfAri Roponen
B.Eng. 2003, Jyväskylä PolytechnicBachelor’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
MaintainabilityMaintenance means modifying software after
it is publishedFix bugsImprove performanceAdapt to environment changes
Maintainability = how well software can be maintainedUnderstandabilityModularity…
Software EvolutionSoftware Evolution Laws (M. Lehman)
Continuing ChangeIncreasing ComplexitySelf RegulationConservation of Organizational StabilityConservation of FamiliarityContinuous GrowthDeclining QualityFeedback System
Conclusion: Continuous maintenance is needed to keep software functional in the changing environment
FLOSS (Free/Libre/Open Source Software)Free Software
Richard Stallman”Free as in freedom”GNU, GPL, GCC, Emacs, ...
Open Source SoftwareEric 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
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
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
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 oldLinux-kernel is 19 years old
Aim of My Research (2/4)Detect common properties of FLOSS projects’
development models
Goal definitionCode writingDocumentationTestingMaintenanceRelease cycle
Aim of My Research (3/4)Maybe invent a model for characterising used
development processes
Software changes by patchingTesting by developers/users/pretestersReleasing early/late/”never”Attracting new users/developers
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?
Current Status (1/4)How to keep software lifetime longPersonal characteristics
Be interested in what you doMake your work useful for othersBe friendly to new usersDon’t neglect old users
Process characteristicsUse suitable (public) development modelAim for good, not bestDesign with extensibility in mind
Current Status (2/4)Common properties of old FLOSS projectsChanges reviewed by communityExisting coding standardsMany old users (including original authors)Good documentationNo specific goals
Current Status (3/4)A model for FLOSS developmentSoftware changes by patching
What is a patchHow changes get acceptedProperties of a good patch
Current Status (4/4)New evolution lawsNone (yet)Existing laws seem to apply quite well
Questions?
AnswersGNU Emacs is available at
http://www.gnu.org/software/emacs/emacs.html
YesNo42Well, let me put it this way...
Thank You!