I need some advice for a project I am working on


Attached is an overview of my project I am working on. I am having a bit
of trouble starting and i wanted to get some advice as to how I should
approach this (design patterns, methods, etc). I DO NOT WANT ANYONE TO
DO THIS FOR ME. I just simply want to get some ideas to think about. I
am working on the use case/activity,class diagrams. Advice would be
greatly appreciated.



Is it too late to read the text books that you were assigned by your
teacher or read your lecture notes then :slight_smile:

Well, I have been looking over everything and just can’t seem to see
what patterns to use. I have been making diagrams which is helping. We
went over just a few ideas like composition, inheritance, template
design method, and strategy design method. The reason is I am having a
hard time getting my mind to think more at a design level then at a
programming level. I am so tempted to just started coding it up.

Patterns come with experience. It’s one of those things that some
academic noticed that developers were doing and related it to
Christopher Alexanders work in architecture. As you become experienced
you will naturally use and be able to identity those patterns, there
also exist ‘anti-patterns’ - patterns created by persistent bad habit
and uncritical use of “industry standards” which are arguably more
important to identify. But whatever.

However an important point is that the original gang of four patterns
do not apply to all languages (they were identified in the C/C++/Java
style of languages and are partially a consequence of the language
design) because some languages implement the patterns at a language
level. Some patterns are easier in one language than another or at
least may be more efficiently in one than another. For example not all
languages are OO. Heresy I know :slight_smile:

Back to your project. Build up the use cases for your application.
Then see what concrete classes are needed and then see what you can
abstract (don’t force yourself, there may be little abstraction to be
had) then model how they interact.

Write code and then identify the patterns that you have used.

I guess what is scaring me is that there is so much degree of freedom as
to what I can do. With that in mind it is hard to see the best methods
to use. I have only written one program in ruby and have not sealed
with software design before. I have much experience with c and c++