SOFTWARE ENGINEERING CS3003Lecture 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 interfacehttp://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.