Software Engineering CS3003 Lecture 2 Software Development Portals and Data
Structure What is open source and closed source software? How can open source data be used in software engineering? What is the Eclipse portal? Eclipse Data Eclipse GIT Eclipse Bugzilla
What is the difference between closed and open source software? Closed source software: Commercial software - bespoke or packaged Usually evolved for customers by development company Open source software: Developed by non-commercial ‘communities’ (FLOSS) Characterised by 4f’s: Free of cost, freedom of development contribution, freely available source code, freedom to re-distribute Increasingly used by commercial businesses E.g. IBM runs Linux
What are the features of OSS development? Users treated as fellow developers Highly modular Early releases and frequent integrations Several versions Dynamic decision-making
How can OSS be used? Open source portals can host several hundred thousand OSS: E.g. Freshmeat.com, SourceForge.com, GitHub.com OSS development tools common: Revision control, e.g. CVS, Subversion, Git Utilities, e.g. integration tools (Tinderbox), bug reporting (Bugzilla) Communication, e.g. mailing lists, messaging etc. SourceForge uses centralised tool kit Open source licenses E.g. GNU General Public License
What is Eclipse? Eclipse (www.eclipse.org) is an open source community, whose projects are focused on building an open development platform. The Eclipse Project was originally created by IBM in 2001, and became open source in 2004. Eclipse started as a Java IDE, but has since grown to be much, much more. Eclipse projects now cover: static and dynamic languages; modeling and business reporting; embedded and mobile. Etc.
Eclipse data for investigating SE Eclipse is a good resource for software engineering Incremental development Data and code can be freely accessed Previous SE investigations using Eclipse data, e.g. change patterns over time, fault proneness, impact of code unit size on maintenance effort, etc. Sliwerski et al. 2005, Li & Shatnawi 2007, Zimmermann et al. 2007 There are three main resources to use Eclipse SVN web browser Eclipse Git, which contains Eclipse source code Development historical data (when, who, and why the code was changed) Eclipse Bugzilla, which contains detailed information about bugs
Eclipse versions: Introduction Various ways to access Eclipse versions using: Web interface http://dev.eclipse.org/viewsvn/viewvc.cgi?view=roots Git via SmartGit Git via command line
Eclipse Web Interface Eclipse project contains a lot of source code packages
In each package, the “src” sub-folder contains the source code
A source code file entry contains version information of the code, such as, current version number of the code, and the latest check-in comments Clicking onto a file entry will access the version information page, which contains more information about the history of the code
In the version information page, version entries are sorted in decending order A version entry contains: Check-in time (when the code was changed) Author of this version (who changed it) Check-in comments (why the code was changed)
Eclipse Git via Smart Git Git is a open source version control system SmartGit provides a graphical access to Git Stores: all versions of all files all changes made to those files all details of all changes Need to make a clone of Eclipse JDT to use with Smart Git
Eclipse: Git via command line Make sure that you have cloned Eclipse into your directory. From your directory to get a git log either on screen or to a file: H:\> git log H:\> git log >filename.log Can then analyse many logs automatically
Eclipse Bugzilla: Introduction Bugzilla is an open source “Bug-Tracking System". Bugzilla allows individuals or groups of developers to keep track of bugs in their product effectively (www.bugzilla.org). Eclipse Bugzilla URL: https://bugs.eclipse.org/bugs/
Eclipse Bugzilla: Search a Bug by Bug ID Select the search function from Eclipse Bugzilla main page
Select the advance search function
Scroll the page to the “Advanced Searching Using Boolean Charts” section Select “Bug ID” and “is equal to” in the drop down lists Type in the Bug ID Click search
The bug information page contains information: The status of a bug The severity level of a bug
References SLIWERSKI, J., ZIMMERMANN, T. & ZELLER, A. (2005) When Do Changes Induce Fixes? . ACM SIGSOFT Software Engineering Notes, Proceedings of the 2005 international workshop on mining software repositories MSR '05. 30 pp. 1-5. ZIMMERMANN, T., PREMRAJ, R. & ZELLER, A. (2007) Predicting Defects for Eclipse. IN PREMRAJ, R. (Ed.) Predictor Models in Software Engineering, 2007. PROMISE'07: ICSE Workshops 2007. International Workshop on. pp. 9-9. LI, W. & SHATNAWI, R. (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. Journal of Systems and Software, 80, pp. 1120-1128. FISCHER, M., PINZGER, M. & GALL, H. (2003) Populating a Release History Database from version control and bug tracking systems. IN PINZGER, M. (Ed.) Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on. pp. 23-32.
Reading for the week… Mockus, A.; Fielding, R.T.; Herbsleb, J.; , "A case study of open source software development: the Apache server ," Software Engineering, 2000. Proceedings of the 2000 International Conference on, vol., no., pp.263-272, 2000 Familiarise yourself with the Eclipse portal and what’s available there. Practice accessing faults and change information.