A musical group can have so many aspects and elements to put into play. Since choosing the projects a little over a week ago our group has focused on brainstorming. Deciding what are basics and without question should be put into the mix and ideas that came and went because they would be to trivial. Some of our ideas that aren't as important have been kept only for humor purposes but on the same hand are not key and main focuses. These are elements that if time permits we might like to add in. Yet we have decided that we are leaning towards using the singleton, proxy, memento, and factory. We know that on the course web site it says we need to use 5 as of this time we are unsure what the 5 pattern might be and if the 4 mentioned are definite.
Most of our communication has been done over Instant Messenger. It wasn't until recently when we started to save conversations and post them as a log of our thought process. If we had fully factored in the idea of showing the amount of time we have been spending brainstorming this would have been done from the beginning.
The following list is a breakdown of what each of us has done over the last week besides brainstorming for the project.
From the list of attributes and behaviors listed in the summary on the main page, we have abstracted the following list of classes. This is only the first process of abstraction, and may be further abstracted later in the development process. The list of classes we have thus far is:
The process of abstracting methods from the real-world model is a bit more complicated than it is for abstracting classes. There are many more things to consider, such as, what arguments will be needed/used, what data-type will be returned, what class will the method reside, and will the method need helper methods? As a first step, we will just identify the functionality which we will want our group of classes to exhibit. The way in which the methods will be implemented shall be determined later.
Of course, this is just the first process of abstraction, and revisions are necessary. This step is helping to focus our development efforts. It is also helping us to better divide the development work amongst the team members.
Though we did want to show some java coding. So the small amount we do have is in an all source file here. It is not much and we have yet to try to compile it. In our second report we plan on having a decent amount of working code and since it is the last report before the final copy is due we would really like to have it close to a final product where for report three all we really need to do is fine tune the code.
The next step will be to refine the class structure. This will mean finalizing what classes are necessary and to decide what type of classes will be best suited to represent each individual piece of the project; when will an Abstract class make sense and when will an Interface make sense? Also, further refinement of the methods is required. This means actually implementing the basic methods and deciding what design patterns will be best suited to specific behaviors.