Maintainability of FLOSS Projects

Slides:



Advertisements
Similar presentations
Overview of Free/Open Source Software for Librarians Eric Goldhagen
Advertisements

What is GNU/Linux (Not Linux!)? David Sudjiman davidsudjiman (at) yahoo (dot) com The latest version of this document can.
CPSC 875 John D. McGregor Architecture evolution.
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
GNU / Linux A free operating system. Summary History What can you find on a Linux OS Linux Economy.
Copyleft and cathedrals How the counterculture is changing the way we do business.
1 The Laws of Software Evolution Tori Bowman CSSE 375, Rose-Hulman September 25, 2007 *based on Don Bagert’s lesson.
Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from ft. (~9 km).
University of Utah 1 “Free software” Remember... In the beginning, all software was free -Just a means to sell hardware.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP New Topics for Software Evolution Miloš Radovanović.
IS Spring The Basics of Open Source Reinhardi A. Haqi Mohamed Umar Shakeel Advanced Topics for Systems Development.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
GNU, Linux and Open Source GNUKernel GNU/ Linux OpenSource.
Provided by OSS Watch Licensed under the Creative Commons Attribution 2.0 England & Wales licence
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
1 Open Source Code Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
VT-NTUG | Jim Hall Building the Bazaar Open Source Software Development.
Open Source WGISS 39. Definition of Open Source Software (OSS)  Open source or open source software (OSS) is any computer software distributed under.
The Growing Popularity of Linux in E-Commerce Linus Torvalds.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Linux Basics. What is an Operating System (OS)? An Operating System (OS) is an interface between hardware and user which is responsible for the management.
Sl.NoUnitContents 1.Unit - 1 What is Open Source?, Why Open Source? 2Unit – 2 What is Open Standard? - Why Open Standards? 3Unit – 3 Peek into history.
CHAPTER 6 OPEN SOURCE SOFTWARE AND FREE SOFTWARE
Evolution Patterns of Open-Source Software Systems and Communications Review Report By Haroon Malik.
Tero Roponen. Contents My background About the research Current status Examples Future work.
Visualization and Analysis of Open Source Software Evolution using An Evolution Curve Method Dr. Robertas Damaševičius Software Engineering Department,
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
Presented By: Avijit Gupta V. SaiSantosh.
Introduction Purpose This course describes the process of installing the KPIT GNU toolchain on your PC. Objective Learn how easy it is to get information.
A Framework for creating hybrid-open source software communities Srinarayan Sharma et. al. Info Systems (2002), 12.
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.
CPS 82, Fall Open Source, Copyright, Copyleft.
Analysis of Schema Evolution for Databases in Open-Source Software MSc Thesis - Ioannis Skoulis Department of Computer Science and Engineering.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
Chapter 14 The Open Source Community. Agenda Types of Free Software Open Source Project Open Hardware Project Impacts.
Open Source Software Architecture and Design By John Rouda.
Software Construction and Evolution - CSSE 375 Open Source 2 Shawn & Steve.
Software : Applications Software
March 2006DSpace Federation Governance Advisory Board Meeting Open Source Software (OSS) Overview.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Open Source Examples – Linux; Apache; Firefox Requirements – Distributed w/ source code – License allows for modifications (GPL) – License remains w/ any.
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.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Open Source Software. Chris Moylan Group 5...I think.
ITEC 370 Lecture 22 Maintenance. Review Questions? Project update on F, next F give prototype demonstration Interface testing –Checklist of design features.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
CS223: Software Engineering Lecture 32: Software Maintenance.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Overview Software Maintenance and Evolution Definitions
OPEN SOURCE.
OPEN SOURCE.
Chapter 18 Maintaining Information Systems
What is Copyright?.
IT.CAS.Web2.0 Kyle Erickson
Lesson Objectives Aims Key Words
OPEN SOURCE SOFTWARE An Introduction.
For University Use Only
1.1.1 Software Evolution.
Presentation transcript:

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

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

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

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 …

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

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

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 old Linux-kernel is 19 years old

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

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

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 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

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

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

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

Questions?

Answers GNU Emacs is available at http://www.gnu.org/software/emacs/emacs.html Yes No 42 Well, let me put it this way... Thank You!