MavHome Software Development Guidelines G. Michael Youngblood Chief Scientist, MavHome The University of Texas at Arlington June 8, 2003
Overview " Project Structure " Development Environment (GNU Linux/GCC/Anjuta) Project Building Makefiles/Autotools " Coding Standard (C++/Java/Scripts) " Documentation " Design UML (dia) " API (doxygen) " User Manual (html) " Repository (CVS)
Project Structure " Tree Structure " " Example Project " " Warning! This is a 24MB file!
Development Environment " RedHat GNU Linux 8.0 " GCC 3.2 " Java " FLTK CORBA Orbacus " WindowsXP " M$ Visual Studio 7 " Java " FLTK CORBA Orbacus 4.1.2
Development Environment " Eclipse " " Anjuta "
Project Building " Make " " htm htm " " Autotools " " / /
Coding Standard " Why have Code Conventions? " Code conventions are important to programmers for a number of reasons: " 80% of the lifetime cost of a piece of software goes to maintenance. " Hardly any software is maintained for its whole life by the original author. " Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly. If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create. Source: Gallery Coding Standards, SourceForge
MavHome Coding Standards " C/C " Java " Scripts (Shell, Perl, Python, etc)
Documentation - Design " UML " " " Useful " Class Diagram " Sequence Diagram " Dia
Documentation - API " doxygen " "
Documentation - Users " HTML " "
Documentation - Reports " Latex or M$ Word " "
Repository - CVS " Concurrent Versions System " " " Cervisia "
Additional Information " Contributing to OpenSource Projects "
Questions?
Thank You!