views:

205

answers:

2

What are the best practices and software tools for documenting software design and architecture for

  1. PC based applications based on Java or .NET?

  2. Embedded Applications based on VxWorks or Embedded Linux or Windows CE?

One tool I have in mind is Enterprise Architect. Is it a good choice?

+1  A: 

Much depends upon the purpose of the documentation. Who is the readership? Is it to be used in order to drive the development activity, or is it going to be produced in order to provide some historical record? How large is the team who will be producing/using this documentation?

In our small development team, we find pen/paper and a wiki adequate for most architecture/design documentation. Some design/architecture decisions can be incorporated into code commentary also (but this obviously makes no sense if the documentation is to be used to drive the development.) The two specialist tools we often make use of are database diagramming/deployment tools (such as DBWrench) and UML diagramming tools (such as ArgoUML).

A word of warning: don't produce documentation that will take enormous amounts of effort to maintain or which will not be read by anyone.

Peter Howe