Using Open Source Tools to improve software development
















- Slides: 16

“Using Open Source Tools to improve software development” Dean Margerison CTO Dmos Ltd dean@dmos. co. uk 10/31/2020 www. dmos. co. uk 1

Objectives • A look at Open Source – What is it – Issues relating to using – Where to find them • Specific Examples – – – Source Control Build/Deployment Systems Unit testing Documentation Issue Tracking • Demo • Questions 10/31/2020 www. dmos. co. uk 2

What is Open Source • An attempt to provide a better model for developing quality software • Freely available ('Though not necessarily for free') • Both Binary and Source • Provide a feedback loop for improvements to be made in a very effective manor • Generally web based collaborative mode used • Facilitate a Scientific based model. 10/31/2020 www. dmos. co. uk 3

What is Open Source Project Lines of Code • Linux Kernel (x 86 only) 500, 000 • Full Linux distribution ~10 Million • Apache Web Server 80, 000 • Send. Mail 57, 000 10/31/2020 www. dmos. co. uk 4

What is Open Source • Licensing – – – GNU General Public License (GPL) GNU Lesser General Public License (LGPL) Apache License Mozilla Public License BSD License • List of OSI (Open Source Initiative) approved licenses http: //www. opensource. org/licenses/ 10/31/2020 www. dmos. co. uk 5

Where to find them Sourceforge • http: //sourceforge. net/ • Hosted Projects: 45, 720 Registered Users: 470, 088 Jakarta • • • http: //jakarta. apache. org A Project of the Apache Software Foundation, charged with the creation and maintenance of commercial-quality, open-source, solutions. Apache , Ant , Sruts, Tomcat, Log 4 J IBM • provides the developer. Works server to host a variety of open-source projects 10/31/2020 www. dmos. co. uk 6

Issues relating to using “Open Source projects can give you world beating software BUT…” Research the tools to pick the best fit for your environment – Languages – Development status – Check the forums for activity Documentation is not commercial quality – tends to be functional rather than pretty Might need to install several other Open Source products Less commercial on-site help available 10/31/2020 www. dmos. co. uk 7

Issues relating to using • Generally easy to install • Flexible, easy to use and configure • Good on-line forums for mutual help • Using Tools - no real Licensing issues – – Massive Cost of Ownership advantage No Upgrade or maintenance costs “The are hundreds of world class projects waiting to be used “ 10/31/2020 www. dmos. co. uk 8

Specific Examples • “Over $10 billion per annum could be save by software developers in the US by implementing an improved testing infrastructure” May 2002 National Institute of Standards and Technology (NIST) • Focusing on Software Development Process – – – 10/31/2020 Source Control Build/Deployment Systems Unit testing Code Documentation Issue Tracking www. dmos. co. uk 9

Source Control • Concurrent Versions System (CVS) • The de-facto standard for Open Source projects – Massive User base • Multi Platform • Web Access • Several Clients Available – Web – Windows – Java 10/31/2020 www. dmos. co. uk 10

Build/Deployment Systems • Ant http: //jakarta. apache. org/ant/ – Part of the Apache project – Build system written in Java – Easily extensible (many projects provide add-ons) – Excellent support by other products – Use of XML to describe the build procedures – Winner of Software Developer 2002 productivity Award – Winner Java. World 2002 ‘Editors Choice’ 10/31/2020 www. dmos. co. uk 11

Unit testing – XUnit Framework – Unit testing Framework born out of the Extreme Programming movement – Started With JUnit – Ported to C++, . Net, VB, PHP etc – Very easy to use – Output to XML which can then be transformed to HTML – http: //xprogramming. com/software. htm 10/31/2020 www. dmos. co. uk 12

Documentation • Source – Doxygen documents C++, C, Java, IDL – Java. Docs (NOT Open. Source) • API Versions – JDIFF • Documents Changes of the API from one release to the next for Java code • Metrics – Java. NCSS • Java Code Metrics – CCCC • C++ and Java code metrics 10/31/2020 www. dmos. co. uk 13

Code Standards • Check. Style • Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. – By default it supports the Sun Code Conventions, – Can be configured. – Can be invoked with an ANT task and a command line program – Outputs to XML which an be transformed to HTML 10/31/2020 www. dmos. co. uk 14

Issue Tracking – Bug. Zilla – Mantis – ITracker – Scarab 10/31/2020 www. dmos. co. uk 15

Demo • Revolve around Java language project • Look at the Develop, Build , Test , Deployment cycle 10/31/2020 www. dmos. co. uk 16