Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sumedha Rubasinghe October,2009 Introduction to Programming Tools.

Similar presentations


Presentation on theme: "Sumedha Rubasinghe October,2009 Introduction to Programming Tools."— 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 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 contains one or more s. Each can depend on zero or more other s. When running Ant specify the Supports default 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/ 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 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/ http://www.cvshome.org/eng/ – Installation Guides (Windows) CVSNT (*inx) http://www.idevelopment.info/data/Program ming/change_management/unix_cvs/PROGRA MMING_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/inde x.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_testi ng#Testing_methods

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

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.orghttp://maven.apache.org Two generations – Maven 1 (maven) – Maven 2 (mvn) Rich set of plugins – http://maven.apache.org/plugins/index.html http://maven.apache.org/plugins/index.html Driven by predefined life cycle stages – http://maven.apache.org/guides/introduction /introduction-to-the-lifecycle.htm 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.orghttp://builder.wso2.org – Cruise Control http://java-source.net/open-source/build-systems/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] sumedha.r@gmail.com – If your question is useful to everyone, I will try to put an answer in my blog. http://sumedha.blogspot.com


Download ppt "Sumedha Rubasinghe October,2009 Introduction to Programming Tools."

Similar presentations


Ads by Google