Overdesigning
Julia is having trouble putting together the classes for her app. Here is some advice:
1. Your class design will never be “perfect.” This is especially true for a 1.0 product/project (and even more true if it is the first project of this type you have architected).
2. It is very easy to overarchitect your classes. Think about which parts of the systems are really going to be susceptible to change. If the answer is “everything,“ then you need to do better requirements analysis before you go any futher with coding/designing.
3. Design your interfaces first. This will let you think about how your classes will interact without having to deal with any implimentation. Of course, when you get down to implementation, you make need to tweak them a little, so don't think they have to be 100% up front either.
4. If you are stumped (or if you want to test your design against other implementations), look at what others have done when implementing similar solutions. I'm not just talking about generic patterns here. Find some people who have done the same thing before and take a look at their class diagrams. Ask, what are the benefits/drawbacks of this approach.
5. Call someone like me and get some consulting. Yah, depending on how stuck you are, you might have to pay a few bucks, but it will be well worth it in the long run if you can avoid endless hours of refactoring due to poor decisions in your initial architecture assessment.