I would like to get some of your wisdom on how is the best way to attack the development of the project.
I got my assignment two weeks ago and also order the monkhouse book (not yet received). In the meantime I got some information about MVC from java sun website and get aware of information available on Book "Java how to program" from Deitel. But up to now I did not write any line of code for my project and I start worrying.
Please maybe somebody has run with these question also before starting his project:
What would be the best approach or methodology to attack the project?
Initially I was thinking on writing some use cases and drawing some Class Diagrams. But also though on start writing code directly, anyway so far these are ideas I try to bring up in order to organize the work I need to undertake, but sometime I think I am spending too much time that probably the best will be to start coding like per sub-module. first the UI, then the DB and then the NETWORK part.
In my scoring thread I described in detail how I handled the project. And you may find a lot of other helpful tips.
Of course it's just my experience of handling this assignment and certainly not the only way of doing it.
First of all, thanks you very much for your scoring thread description.
If I understood correctly from your scoring thread description, you just sat down and started coding. I understand that the assignment given to me is not long, if we take in consideration functionality, and I could just sit down and code, but I am affraid of not taking the oportunity to put in practice some basic OO Design for the sake of learning.
Champion, you could start by coding the Data class. It is a good start. You can then think about the business/services layer and what are the services you will provide, and how you'll provide then. Will you have a thin or thick client? Based on this, you can define your services and start coding it. Then you can create your server... and start putting these pieces together.
...but I am affraid of not taking the oportunity to put in practice some basic OO Design for the sake of learning.
You know... I'm glad you have this concern. But... I was thinking, most of the people I have seen around here, and even I, have solved everything with an approach that is more procedural then object-oriented. In the excellent book Patterns of Enterprise Application Architecture, Martin Fowler addresses a pattern called Transaction Script, which is a procedural approach to organize business logic. At a first look, it might look wrong. However, in my opinion, this is a good place to use this approach, because the business logic to be implemented is quite simple, and a clear and easy design is preferred over a complex one.
I started first with some thinking of course, but I didn't create any class diagram or a sequence diagram. Nothing of that, just coding and creating tests to ensure everything is working like it is required.
OO design and thinking through the requirements are surely important but like Roberto said, start coding the Data class right away in order to at least get data off the file Sun provided. Without that data, you can't move on!!
Once you get Data class in order, think about services and how the client interact with the server. Thin or thick client? RMI or Sockets? Exception handling? When you get a handle on the services, start coding the server and work out the locking mechanism. (Locking is the most important section of the assignment.) Last worry about client UI. Of course when you design your services, think as if you are the client or end user.
Thank you very much for the valuable information. During the past week-end I reviewed all my possibilities and finally I decided to attack the project with a 80% coding approach and 20% design.
I took the decision to cover the project using the following best practices from RUP.
- Develop Software iteratively
- Visually model software
- Continuously verify software quality.
How exactly I am going to apply them in the context of my project, I can not tell yet exactly. but so far I started coding something on the Data.java class and drew some ER diagrams (even if I only have one table) and one class diagram for the DBMain.java and Data.java and related Exceptions. as a starting point.
During this week I am plannig to create a screen design and then start coding something at the UI level and later write some test classes.
Ruben Guillen wrote:finally I decided to attack the project with a 80% coding approach and 20% design.
Ah the 80/20 rule I like But shouldn't it be the other way round - 20% code? Everything is based on design. If your design is indeed good, then typing the code should be a whiz. That's not including testing. That's why iterative development is also good.