1 / 25

Sumedha Rubasinghe October,2009

Sumedha Rubasinghe October,2009. Introduction to Programming Tools. Contents. Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Reporting, Project Management Continuous Integration. Assignment !!. The Project assignment

bandele
Download Presentation

Sumedha Rubasinghe October,2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sumedha Rubasinghe October,2009 Introduction to Programming Tools

  2. Contents • Essentials tooling concepts in S/W development • Build system • Version Control System • Testing Tools • Reporting, Project Management • Continuous Integration

  3. Assignment !! • The Project assignment • Build a calculator which supports basic arithmetic operations, scientific calculations & accessibility via GUI

  4. Preparation • Choosing your team • Understanding the assignment • Problem • Goals • Deliverables • Mode of delivery (staged/iterative, one shot) • Plan

  5. Ice breaker.. • Lot of talking .. no action... • Let's get something running first

  6. I want to run it too.. • One member develops a prototype using an IDE • Another member wants to run it on his machine • Problem • Library paths are relative to original author's machine

  7. We need a build system • A build system? • A build system will help you to build your project without machine specific dependencies. • This will make it easy for every team member to build the project & see the results

  8. Ant - Introduction • Java based build tool from Apache Software Foundation • Cross platform • http://ant.apache.org/ • Let's install Ant

  9. Installing Ant • Download - http://ant.apache.org/bindownload.cgi • Extract to a folder • Eg: • c:\tools\ant\1.7.1 • c:\tools\ant\1.6.2 • Set ANT_HOME environment variable* • Add %ANT_HOME%\bin to PATH variable • Open a new command window & type 'ant'

  10. Writing a Ant build script • By default looks for 'build.xml' • Each <project> contains one or more <target>s. • Each <target> can depend on zero or more other <target>s. • When running Ant specify the <target> • Supports default <target> • Driven by user defined tasks. • http://ant.apache.org/manual/using.html

  11. Similar tools • Apache Maven • make,gnumake, nmake • http://en.wikipedia.org/wiki/List_of_build_automation_software

  12. I changed the implementation... • Now every team member has a running copy of the project • Some have found issues in existing implementation & fixed those • Some have added new features • How to synchronise all of these changes?

  13. Source Code Management (SCM) • Also known as, • Revision control • Version control • Version Control System (VCS) • Management of changes to documents • Each change is associated with • revision number • timestamp • User • Revision can be compared,restored, merged

  14. Subversion (SVN) • Free/Open-source version control system • Central repository of files • Records every change done to a file • checkout – getting files from server • check-in/commit – putting files to server • merge – local changes & changes coming from server can be merged • conflict – merge failed, over lapping changes

  15. Subversion – demo • Installing Subversion – not covered • http://svnbook.red-bean.com/en/1.1/ch01s05.html • Client side • Command line client • GUI client • Windows File Explorer -http://tortoisesvn.tigris.org/ • IDE plug-ins • subclipse (for Eclipse) - http://subclipse.tigris.org • Intellij IDEA plug-in • ankhsvn (for Visual Studio) - http://ankhsvn.open.collab.net • Net Beans - http://subversion.netbeans.org/

  16. Similar tools • git - http://git-scm.com • CVS (Concurrent Version System) • Project home - http://www.cvshome.org/eng/ • Installation Guides • (Windows) CVSNT • (*inx) http://www.idevelopment.info/data/Programming/change_management/unix_cvs/PROGRAMMING_Installing_CVS.shtml

  17. Similar tools (commercial) • Rational ClearCase (http://www-01.ibm.com/software/awdtools/clearcase) • Borland StarTeam (http://www.borland.com/us/products/starteam/index.html) • Microsoft Visual SourceSafe (http://msdn.microsoft.com/en-us/aa740435.aspx)

  18. Testing • Important to understand what type of testing needs to be done before selecting a tool • Testing approaches • Approach of boxes • Black box • White box • Grey box • Integration Testing • Regression Testing • Acceptance Testing • Non Functional Testing • Destructive Testing • http://en.wikipedia.org/wiki/Software_testing#Testing_methods

  19. Testing automation tools • Junit - http://www.junit.org/ • JMeter - http://jakarta.apache.org/jmeter/ • Selenium - http://seleniumhq.org/

  20. Similar tools • xUnit (nUnit,JUnit,DBUnit) • Apache Bench • http://www.opensourcetesting.org

  21. Maven – more than a build tool • Apache project - http://maven.apache.org • Two generations • Maven 1 (maven) • Maven 2 (mvn) • Rich set of plugins • http://maven.apache.org/plugins/index.html • Driven by predefined life cycle stages • http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.htm • Project Object Model – POM • http://maven.apache.org/pom.html

  22. Continuous Integration (CI) • Developers commit changes to VCS • CI Server automatically picks changes & initiate build • Faster feedback to your development process • preventing bugs from piling up • Generate statistics • Provides more visibility

  23. Continuous Integration • Popular tools • Hudson • https://hudson.dev.java.net • Demo on installation & configuring a project to build automatically • In action : http://hudson.zones.apache.org/hudson/ • Bamboo • http://www.atlassian.com/software/bamboo • In action : http://builder.wso2.org • Cruise Control • http://java-source.net/open-source/build-systems/cruise-control

  24. Summary • Build systems • Version control systems • Testing tools • Advance build systems • Continuous integration tools

  25. Help • If you have any questions on the topics I covered, drop me a mail @ bellow address. Please set the following prefix in your subject. • sumedha.r@gmail.com - prefix [cs3030-2009] • If your question is useful to everyone, I will try to put an answer in my blog. • http://sumedha.blogspot.com

More Related