CS345 - Software Engineering - Spring 2005-2006
Charlie Peck and Chris Hardie
Department of Computer Science - Earlham College


[ main | syllabus | schedule | journals | resources | mailing list ]

Software Development Tools

Much of quality software development is about evaluating and making the most of the tools that are available to do the job you want. Throughout the course, we'll be looking at some of the tools out there, and asking you to evaluate the pros and cons of each.

  1. Command line shell: often a primary component of your development environment, the shell helps you manage files, processes, input/output redirection, command history and aliases, and other "meta" information related to the software you're developing and running.
  2. Programming language: a primary tool in software development...the language you write software in!
  3. Configuration tools (autoconf, automake, make, libtool, etc.)
  4. Source control systems (cvs, subversion, darcs, rcs, etc.)
  5. Text editors (emacs, vi, pico, notepad, bbedit, etc.)
  6. Debuggers (gdb, perl debugger, etc.)
  7. Datastores (flat file databases, SQL databases, interfaces to both)
  8. Cluster / Parallel computation tools (MPI, mpC, MPBench, etc.)
  9. Automated testing tools (test writing tools, test suite harnesses, Perl test modules, Selenium, browser plugins, etc.)
  10. Profling and optimization tools (gprof, Perl benchmarking tools)
  11. Task / Bug Tracking tools (Bugzilla, RT, GNATS, FogBugz, Scarab, etc.)
  12. Notation / XML
  13. Regular expressions
  14. Time, people and budget tracking
  15. Specialized libraries / APIs

 

 

Last significant update: January 12, 2006

 

[ main | syllabus | schedule | journals | resources | mailing list ]