views:

34

answers:

0

I'm wondering what work-flow and or tools people use to document the details of classes they plan to create. Specifically, where and how do you manage the nitty gritty details. For big picture stuff I make use of class diagrams. Specifically I use the class diagram tool built into Visual Studio. I also end up creating a lot of Visio diagrams to show patterns in my design such as how the event hooks in my program will follow a MVC type pattern.

However, I find myself wanting to plan more details about the specifics of how certain properties and methods will work. For example say I have a class WidgetFactory with an abstract method WidgetFactory.MakeWidget(string name). Before creating an actual implementation of MakeWidget() I'd like to plan out specifically what MakeWidget implementations should do and what issues they should take into account. What if a widget already exits with the specified name? What exceptions should it throw? Etc.. etc. Where do people typically plan these kind of details?

Currently I jump back and forth between separate documentation (notepad, excel, ms word), and using comments in a mock implementation of the method that does nothing more then throw a NotImplementedException. Alternatively I've also tried adding XML comments to my mock classes so that I can later use a tool like Doxygen to generate a plan for for them. I've found the XML comments rather clumsy to work with in the past, but now I've just realized that they can be edited easily through the Class Details pane in the Class Diagram tool in Visual Studio.

In addition, I also eventually use Trac to manage a list of individual tasks when I have a pretty good idea of what I want to do. While I typically work alone on my projects, I still like to adopt tools and workflows that will make it easy to include another person later. Yet when I'm in the very beginning abstract planning stage I find it very hard to solidify everything that needs to be done into discrete "tickets".