Presentation is loading. Please wait.

Presentation is loading. Please wait.

Anjana & Shankar September,2010 Introduction to Programming Tools.

Similar presentations


Presentation on theme: "Anjana & Shankar September,2010 Introduction to Programming Tools."— Presentation transcript:

1 Anjana & Shankar September,2010 Introduction to Programming Tools

2 Contents Essentials tooling concepts in S/W development – Build system – Version Control System – Testing Tools – Continuous Integration – Issue Tracking

3 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

4 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

5 Maven - Introduction Java based build tool from Apache Software Foundation – http://maven.apache.org Two generations – Maven 1 (maven) – Maven 2 (mvn) Cross Platform

6 Maven - Introduction More than a build tool – Software project management and comprehension tool – Build, reporting and documentation – Rich set of plugins http://maven.apache.org/plugins/index.html – Driven by predefined life cycle stages http://maven.apache.org/guides/introduction/introducti on-to-the-lifecycle.html

7 Installing Maven Download - http://maven.apache.org/download.html Extract to a folder – Eg: c:\tools\maven\2.1.0 Set environment variable M2_HOME=c:\tools\maven\2.1.0 Add %M2_HOME%\bin to PATH variable Open a new command window & type – mvn -v

8 Creating a project Archtype – http://maven.apache.org/guides/introduction/introduction-to- archetypes.html – mvn archetype:generate pom.xml – http://maven.apache.org/pom.html – Repositories – Dependencies – Plugins

9 Similar tools Apache Ant make,gnumake, nmake http://en.wikipedia.org/wiki/List_of_build_automation_software

10 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

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

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

13 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? How to track these changes?

14 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

15 Subversion (SVN) Free/Open-source version control system Central repository of files – Records every change done to a file checkout – getting files from server – svn://192.248.8.221/bsc10/cs3030/scratch – Username – your surname – Password – index number

16 Subversion (SVN) add/delete – mark files for addition/deletion check-in/commit – putting files to server update – get latest version merge – local changes & changes coming from server can be merged conflict – merge failed, overlapping changes blame/praise – find who made the change diff – find the differences

17 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/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.nethttp://ankhsvn.open.collab.net – Net Beans - http://subversion.netbeans.org/

18 Similar tools git - http://git-scm.com CVS (Concurrent Version System) – Project home - http://www.cvshome.org/eng/http://www.cvshome.org/eng/ – Installation Guides (Windows) CVSNT (*inx) http://www.idevelopment.info/data/Programming/chang e_management/unix_cvs/PROGRAMMING_Installing_CVS.s html

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

20 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

21 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 – Cruise Control http://java-source.net/open-source/build-systems/cruise-control

22 Issue Tracking Systems Jira Bugzilla

23 JIRA Creating account Creating issues Assigning issues Commenting Worklog Subtask Resolving Dependency Administration

24 Summary Build systems Version control systems Testing tools Continuous integration tools Issue Tracking

25 Help If you have any questions on the topics I covered, drop us a mail @ bellow address. – anjana@wso2.com anjana@wso2.com – shankar@wso2.com


Download ppt "Anjana & Shankar September,2010 Introduction to Programming Tools."

Similar presentations


Ads by Google