Sumedha Rubasinghe October,2009 Introduction to Programming Tools

  • Published on

  • View

  • Download

Embed Size (px)


  • Sumedha RubasingheOctober,2009Introduction to Programming Tools

  • ContentsEssentials tooling concepts in S/W developmentBuild systemVersion Control SystemTesting ToolsReporting, Project ManagementContinuous Integration

  • Assignment !!The Project assignmentBuild a calculator which supports basic arithmetic operations, scientific calculations & accessibility via GUI

  • PreparationChoosing your teamUnderstanding the assignmentProblemGoalsDeliverablesMode of delivery (staged/iterative, one shot)Plan

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

  • I want to run it too..One member develops a prototype using an IDEAnother member wants to run it on his machineProblemLibrary paths are relative to original author's machine

  • We need a build systemA 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

  • Ant - IntroductionJava based build tool from Apache Software FoundationCross platform's install Ant

  • Installing AntDownload - to a folderEg:c:\tools\ant\1.7.1c:\tools\ant\1.6.2Set ANT_HOME environment variable*Add %ANT_HOME%\bin to PATH variableOpen a new command window & type 'ant'

  • Writing a Ant build scriptBy 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.

  • Similar toolsApache Mavenmake,gnumake, nmake

  • I changed the implementation...Now every team member has a running copy of the projectSome have found issues in existing implementation & fixed thoseSome have added new featuresHow to synchronise all of these changes?

  • Source Code Management (SCM)Also known as,Revision controlVersion controlVersion Control System (VCS)Management of changes to documentsEach change is associated withrevision numbertimestampUserRevision can be compared,restored, merged

  • Subversion (SVN)Free/Open-source version control systemCentral repository of filesRecords every change done to a filecheckout getting files from servercheck-in/commit putting files to servermerge local changes & changes coming from server can be merged conflict merge failed, over lapping changes

  • Subversion demoInstalling Subversion not covered sideCommand line clientGUI clientWindows File Explorer - plug-inssubclipse (for Eclipse) - http://subclipse.tigris.orgIntellij IDEA plug-inankhsvn (for Visual Studio) - Beans -

  • Similar toolsgit - http://git-scm.comCVS (Concurrent Version System)Project home - Guides(Windows) CVSNT(*inx)

  • Similar tools (commercial)Rational ClearCase ( StarTeam ( Visual SourceSafe (

  • TestingImportant to understand what type of testing needs to be done before selecting a toolTesting approachesApproach of boxesBlack box White box Grey box Integration TestingRegression TestingAcceptance TestingNon Functional TestingDestructive Testing

  • Testing automation toolsJunit - - -

  • Similar toolsxUnit (nUnit,JUnit,DBUnit)Apache Bench

  • Maven more than a build toolApache project - http://maven.apache.orgTwo generationsMaven 1 (maven)Maven 2 (mvn)Rich set of plugins by predefined life cycle stages Object Model POM

  • Continuous Integration (CI)Developers commit changes to VCSCI Server automatically picks changes & initiate buildFaster feedback to your development processpreventing bugs from piling upGenerate statisticsProvides more visibility

  • Continuous IntegrationPopular toolsHudson on installation & configuring a project to build automaticallyIn action : action : http://builder.wso2.orgCruise Control

  • SummaryBuild systemsVersion control systemsTesting toolsAdvance build systemsContinuous integration tools

  • HelpIf you have any questions on the topics I covered, drop me a mail @ bellow address. Please set the following prefix in your - prefix [cs3030-2009]If your question is useful to everyone, I will try to put an answer in my blog.