+ All Categories
Home > Documents > SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

Date post: 29-Dec-2015
Category:
Upload: phebe-mccormick
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
23
SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data
Transcript
Page 1: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

SOFTWARE ENGINEERING CS3003Lecture 2

Software Development Portals and Data

Page 2: 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

Page 3: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 4: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

What are the features of OSS development?

• Users treated as fellow developers• Highly modular• Early releases and frequent integrations• Several versions• Dynamic decision-making

Page 5: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 6: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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.

Page 7: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 8: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 9: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

Eclipse Web Interface Eclipse project contains a lot of source code packages

Page 10: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

• In each package, the “src” sub-folder contains the source code

Page 11: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

• 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

Page 12: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 13: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 14: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.
Page 15: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.
Page 16: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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

Page 17: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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/

Page 18: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

Eclipse Bugzilla: Search a Bug by Bug ID• Select the search function from Eclipse Bugzilla main page

Page 19: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

• Select the advance search function

Page 20: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

• 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

Page 21: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

• The bug information page contains information:• The status of a bug• The severity level of a bug

Page 22: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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.

Page 23: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data.

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.


Recommended