Using Open Source Tools to improve software development

  • Slides: 16
Download presentation
“Using Open Source Tools to improve software development” Dean Margerison CTO Dmos Ltd dean@dmos.

“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

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

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)

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)

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

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…”

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

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

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

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

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

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

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.

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 ,

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