Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.

Similar presentations


Presentation on theme: "1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies."— Presentation transcript:

1 1 SEG4912 University of Ottawa by Jason Kealey jkealey@shade.ca Software Engineering Capstone Project Tools and Technologies

2 SEG4912 – Software Engineering Capstone Project 2 Overview Source Control Collaboration Framework Bug Tracking Unit Testing Continuous Integration

3 SEG4912 – Software Engineering Capstone Project 3 Source Control

4 SEG4912 – Software Engineering Capstone Project 4 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

5 SEG4912 – Software Engineering Capstone Project 5 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

6 SEG4912 – Software Engineering Capstone Project 6 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/ http://software.ericsink.com/scm/

7 SEG4912 – Software Engineering Capstone Project 7 Source Control – personal preferences –Subversion Server: http://subversion.tigris.org/http://subversion.tigris.org/ Client: –In Windows Explorer: http://tortoisesvn.tigris.org/http://tortoisesvn.tigris.org/ –Eclipse plug-in: http://subclipse.tigris.org/http://subclipse.tigris.org/ –CVS Client & Server: http://www.wincvs.orghttp://www.wincvs.org Other clients: –http://www.tortoisecvs.org/http://www.tortoisecvs.org/ –Eclipse has it integrated –Comparison / Merge utility: http://winmerge.sourceforge.net/ Eclipse has one integrated

8 SEG4912 – Software Engineering Capstone Project 8 Source Control – Statistics! StatCVS: http://statcvs.sourceforge.nethttp://statcvs.sourceforge.net

9 SEG4912 – Software Engineering Capstone Project 9 Source Control – File Comparison / Merge

10 SEG4912 – Software Engineering Capstone Project 10 Collaboration Framework - Wiki

11 SEG4912 – Software Engineering Capstone Project 11 Collaboration Framework - Wiki Basic concepts seen on http://www.wikipedia.orghttp://www.wikipedia.org All pages are editable by everyone and a history of changes is kept. Great way to maintain central documentation.

12 SEG4912 – Software Engineering Capstone Project 12 Collaboration Framework - Wiki Many different implementations –http://en.wikipedia.org/wiki/Comparison_of_wiki_softwarehttp://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)http://www.twiki.org –Uses Apache (http://www.apache.org)http://www.apache.org –Hard to install / configure –Many very useful plugins available

13 SEG4912 – Software Engineering Capstone Project 13 Collaboration Framework - Wiki

14 SEG4912 – Software Engineering Capstone Project 14 Collaboration Framework - Wiki

15 SEG4912 – Software Engineering Capstone Project 15 Bug Tracking

16 SEG4912 – Software Engineering Capstone Project 16 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)http://www.bugzilla.orghttp://www.apache.orghttp://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.

17 SEG4912 – Software Engineering Capstone Project 17 Bug Tracking

18 SEG4912 – Software Engineering Capstone Project 18 Unit Testing

19 SEG4912 – Software Engineering Capstone Project 19 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_fra meworks for a partial list. http://en.wikipedia.org/wiki/List_of_unit_testing_fra meworks

20 SEG4912 – Software Engineering Capstone Project 20 Unit Testing - JUnit JUnit (http://www.junit.org)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).Design PatternsEclipse –Used for unit testing in Java. More efficient than manual debugging or insertion of trace statements inserted in the code.

21 SEG4912 – Software Engineering Capstone Project 21 Continuous Integration

22 SEG4912 – Software Engineering Capstone Project 22 Continuous Integration Continuous Integration software such as CruiseControl automate your build process. –http://cruisecontrol.sourceforge.nethttp://cruisecontrol.sourceforge.net Basic concept: –Monitor your source control for changes –Build, test and deploy on change –Notify everyone of success/failure

23 SEG4912 – Software Engineering Capstone Project 23 Continuous Integration

24 SEG4912 – Software Engineering Capstone Project 24 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!

25 SEG4912 – Software Engineering Capstone Project 25 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.


Download ppt "1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies."

Similar presentations


Ads by Google