software engineering cs3003 lecture 2 software development portals and data
TRANSCRIPT
![Page 1: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/1.jpg)
SOFTWARE ENGINEERING CS3003Lecture 2
Software Development Portals and Data
![Page 2: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/9.jpg)
Eclipse Web Interface Eclipse project contains a lot of source code packages
![Page 10: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/10.jpg)
• In each package, the “src” sub-folder contains the source code
![Page 11: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/11.jpg)
• 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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/12.jpg)
• 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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/14.jpg)
![Page 15: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/15.jpg)
![Page 16: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/19.jpg)
• Select the advance search function
![Page 20: SOFTWARE ENGINEERING CS3003 Lecture 2 Software Development Portals and Data](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/20.jpg)
• 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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/21.jpg)
• 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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032605/56649e725503460f94b70bef/html5/thumbnails/23.jpg)
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.