1 SEG4912 University of Ottawa by Jason Kealey [email protected] Software Engineering Capstone...
-
Upload
maximillian-wells -
Category
Documents
-
view
213 -
download
0
Transcript of 1 SEG4912 University of Ottawa by Jason Kealey [email protected] Software Engineering Capstone...
![Page 1: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/1.jpg)
1
SEG4912 University of Ottawa
by Jason Kealey
Software Engineering Capstone Project
Tools and Technologies
![Page 2: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/2.jpg)
2SEG4912 – Software Engineering Capstone Project
Overview
• Source Control
• Collaboration Framework
• Bug Tracking
• Unit Testing
• Continuous Integration
![Page 3: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/3.jpg)
3SEG4912 – Software Engineering Capstone Project
Source Control
![Page 4: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/4.jpg)
4SEG4912 – Software Engineering Capstone Project
Source Control
• Goes by many names– Version Control– Software Configuration Management– Source Code Management
• Different Tools– Subversion– CVS: Concurrent Versions System– Microsoft SourceSafe– Vault– Perforce– Rational ClearCase
![Page 5: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/5.jpg)
5SEG4912 – Software Engineering Capstone Project
Source Control – The Basics
• Repository versus Working Folder
• Operations– Checkout contents of repository to working folder– Modify contents working folder– Update working folder with other’s changes– Commit local changes to repository– Add new files to repository
• History of all files is maintained
![Page 6: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/6.jpg)
6SEG4912 – Software Engineering Capstone Project
Source Control – More advanced
• Exclusive locks or conflict resolution?
• File merges
• Branches– One branch for maintenance on the most recent release– One branch for the upcoming version
• Good article on the subject: http://software.ericsink.com/scm/
![Page 7: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/7.jpg)
7SEG4912 – Software Engineering Capstone Project
Source Control – personal preferences
– Subversion • Server: http://subversion.tigris.org/ • Client:
– In Windows Explorer: http://tortoisesvn.tigris.org/
– Eclipse plug-in: http://subclipse.tigris.org/
– CVS• Client & Server: http://www.wincvs.org• Other clients:
– http://www.tortoisecvs.org/
– Eclipse has it integrated
– Comparison / Merge utility:• http://winmerge.sourceforge.net/• Eclipse has one integrated
![Page 8: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/8.jpg)
8SEG4912 – Software Engineering Capstone Project
Source Control – Statistics!
• StatCVS: http://statcvs.sourceforge.net
![Page 9: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/9.jpg)
9SEG4912 – Software Engineering Capstone Project
Source Control – File Comparison / Merge
![Page 10: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/10.jpg)
10SEG4912 – Software Engineering Capstone Project
Collaboration Framework - Wiki
![Page 11: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/11.jpg)
11SEG4912 – Software Engineering Capstone Project
Collaboration Framework - Wiki
• Basic concepts seen on http://www.wikipedia.org
• All pages are editable by everyone and a history of changes is kept.
• Great way to maintain central documentation.
![Page 12: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/12.jpg)
12SEG4912 – Software Engineering Capstone Project
Collaboration Framework - Wiki
• Many different implementations– http://en.wikipedia.org/wiki/Comparison_of_wiki_software
• Recommendation: – Find one that is easy to use and install– Get it ready quickly
• We used TWiki (http://www.twiki.org)– Uses Apache (http://www.apache.org)– Hard to install / configure– Many very useful plugins available
![Page 13: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/13.jpg)
13SEG4912 – Software Engineering Capstone Project
Collaboration Framework - Wiki
![Page 14: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/14.jpg)
14SEG4912 – Software Engineering Capstone Project
Collaboration Framework - Wiki
![Page 15: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/15.jpg)
15SEG4912 – Software Engineering Capstone Project
Bug Tracking
![Page 16: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/16.jpg)
16SEG4912 – Software Engineering Capstone Project
Bug Tracking
• An open source alternative for bug tracking is BugZilla (http://www.bugzilla.org). It requires a database server and web server. Most often Apache (http://www.apache.org) and MySQL (http://www.mysql.com)
• Create bugs, assign people, priorities, deadlines.
• Great way to keep track of what needs to be fixed while avoiding duplication of effort because of bad communication.
![Page 17: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/17.jpg)
17SEG4912 – Software Engineering Capstone Project
Bug Tracking
![Page 18: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/18.jpg)
18SEG4912 – Software Engineering Capstone Project
Unit Testing
![Page 19: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/19.jpg)
19SEG4912 – Software Engineering Capstone Project
Unit Testing
• As seen (or as you will see) in your software quality assurance course, unit testing is an essential asset in any large-scale software development process.
• There are unit testing frameworks for tons of languages. Take a look at http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks for a partial list.
![Page 20: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/20.jpg)
20SEG4912 – Software Engineering Capstone Project
Unit Testing - JUnit
• JUnit (http://www.junit.org) – Open source regression testing framework built by Erich
Gamma (author of the most popular Design Patterns book and one main designer of Eclipse) and Kent Beck (creator of Extreme Programming (XP) and one author of the Agile Manifesto).
– Used for unit testing in Java.
• More efficient than manual debugging or insertion of trace statements inserted in the code.
![Page 21: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/21.jpg)
21SEG4912 – Software Engineering Capstone Project
Continuous Integration
![Page 22: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/22.jpg)
22SEG4912 – Software Engineering Capstone Project
Continuous Integration
• Continuous Integration software such as CruiseControl automate your build process.– http://cruisecontrol.sourceforge.net
• Basic concept:– Monitor your source control for changes– Build, test and deploy on change– Notify everyone of success/failure
![Page 23: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/23.jpg)
23SEG4912 – Software Engineering Capstone Project
Continuous Integration
![Page 24: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/24.jpg)
24SEG4912 – Software Engineering Capstone Project
Conclusion
• Today’s presentation is only the tip of the iceberg of different software that will make your software development process easier and more efficient.
• The open source community is a great place to look for software for your project.
• Don’t forget to backup!
• Communication is the key to success!
![Page 25: 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies.](https://reader031.fdocuments.in/reader031/viewer/2022032709/56649eb15503460f94bb71d4/html5/thumbnails/25.jpg)
25SEG4912 – Software Engineering Capstone Project
Conclusion
• This is the only time in your SEG degree that you will have the chance to collaborate on a large project.
• I recommend investing time on setting up a good environment as it will save you tons of time in the long run.
• Most important rule: enjoy yourself.