A Complete Software Development Process Using Open Source Software Evan Leybourn Looking Glass Solutions evan@lgsolutions.com.au
Why Open Source? Low integration costs No vendor lock-in for development tools. Completely modifiable tools. Using open source tools does NOT mean that your project must be open source too.
Project Planning and Design Planner An easy to use project management application http://live.gnome.org/Planner Task Juggler A complex project management tool. Extremely powerful, but with a high learning curve. http://www.taskjuggler.org/
Project Planning and Design (cont.) StarUML Windows based UML modelling tool http://staruml.sourceforge.net/en/ Dia Diagram (inc UML and ER) creation tool http://www.gnome.org/projects/dia/
Project Tracking Eventum Web based issue tracking system. Supported by Sun and MySQL. http://eventum.mysql.org Request Tracker (RT) Fully featured ticketing system, supporting email and sms ticket generation. http://bestpractical.com/rt/
Version Control Subversion Traditional version control system similar to CVS. Excellent integration capabilities. http://subversion.tigris.org Bazaar A distributed version control system, where each contributor can manage and maintain fully featured branches of the software. http://bazaar-vcs.org/
Frameworks Spring (Java, J2EE) A full-stack Java and J2EE application framework. http://www.springframework.org CakePHP (PHP) One of the most popular PHP web frameworks today. Follows the MVC and ORM design patterns. http://cakephp.org/ Django (Python) One of the first web frameworks to be developed. http://www.djangoproject.com/
Integrated Development Environments (IDE) Eclipse One of the most well known and powerful IDEs on the market. Supported by many governments and large organisations. http://www.eclipse.org Kdevelop A lightwight IDE which supports multiple languages. http://www.kdevelop.org
Integrated Development Environments (cont.) Stanis Python Editor Python IDE. Very fast and popular http://pythonide.stani.be/ GPHPEdit Lightweight and simple PHP IDE. http://www.gphpedit.org/
Integrated Development Environments (cont.) Code::Blocks C/C++ IDE http://www.codeblocks.org/ Netbeans Popular and well developed Java IDE. http://www.netbeans.org
Development Tools GCC A family of C compilers for a variety of languages including C, C++, Java. http://gcc.gnu.org Valgrind A series of tools for code evaluation and performance measures. Used to identify speed bottlenecks and memory leaks. http://valgrind.org
Development Tools (cont) Advanced PHP Debugger Similar to Valgrind. Provides profiling and debugging for PHP. http://au.php.net/apd KcacheGrind Provides an attractive and easy to use interface to Valgrind and APDs output. http://kcachegrind.sourceforge.net
Databases PostgreSQL A powerful RDBMS. ACID compliant and mostly conforms to the SQL standards. Often used as an Oracle replacement. http://www.postgresql.org MySQL A very popular RDBMS with excellent performance. http://www.mysql.com/ SQLite A self-contained DBMS. Often used in embedded devices. http://www.sqlite.org
Testing Junit http://junit.sourceforge.net CUnit / CppUnit http://cunit.sourceforge.net SimpleTest http://simpletest.org PyUnit http://pyunit.sourceforge.net
Code Repositories Boost (C++) http://www.boost.org Pear (PHP) http://pear.php.net/ CPAN (Perl) http://www.cpan.org/ Google Code http://code.google.com/
Other Tools Capistrano Automate tasks on remote servers. http://www.capify.org/ MediaWiki The Wiki application used by Wikipedia. This can be used to write collaborative documentation within a development team. http://www.mediawiki.org/wiki/MediaWiki
Thank You Any questions