Anjana & Shankar September,2010 Introduction to Programming Tools
Contents Essentials tooling concepts in S/W development – Build system – Version Control System – Testing Tools – Continuous Integration – Issue Tracking
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
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
Maven - Introduction Java based build tool from Apache Software Foundation – Two generations – Maven 1 (maven) – Maven 2 (mvn) Cross Platform
Maven - Introduction More than a build tool – Software project management and comprehension tool – Build, reporting and documentation – Rich set of plugins – Driven by predefined life cycle stages on-to-the-lifecycle.html
Installing Maven Download - 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
Creating a project Archtype – archetypes.html – mvn archetype:generate pom.xml – – Repositories – Dependencies – Plugins
Similar tools Apache Ant make,gnumake, nmake
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 Testing_methods
Testing automation tools Junit - JMeter - Selenium -
Similar tools xUnit (nUnit,JUnit,DBUnit) Apache Bench
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?
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
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:// /bsc10/cs3030/scratch – Username – your surname – Password – index number
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
Subversion – demo Installing Subversion – not covered – Client side – Command line client – GUI client Windows File Explorer - IDE plug-ins – subclipse (for Eclipse) - – Intellij IDEA plug-in – ankhsvn (for Visual Studio) - – Net Beans -
Similar tools git - CVS (Concurrent Version System) – Project home - – Installation Guides (Windows) CVSNT (*inx) e_management/unix_cvs/PROGRAMMING_Installing_CVS.s html
Similar tools (commercial) Rational ClearCase ( 01.ibm.com/software/awdtools/clearcase ) Borland StarTeam ( ) Microsoft Visual SourceSafe ( )
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
Continuous Integration Popular tools – Hudson Demo on installation & configuring a project to build automatically In action : – Bamboo – Cruise Control
Issue Tracking Systems Jira Bugzilla
JIRA Creating account Creating issues Assigning issues Commenting Worklog Subtask Resolving Dependency Administration
Summary Build systems Version control systems Testing tools Continuous integration tools Issue Tracking
Help If you have any questions on the topics I covered, drop us a bellow address. – –