このアプリケーションをどのように使用するかを考えることをお勧めします。将来のユーザーはそれをどのように使用しますか? このアプリケーションが何を処理する必要があるかについて、少なくともいくつかのことを知っていると思いますが、私の最初のアドバイスは、「ユーザーと、ユーザーが何を必要としているかを考えること」です。
コードをどこで区切るかを考えながら、普通紙に描きます。ロジックと GUI コードを混在させないでください (一般的なエラー)。このようにして、アプリケーションの範囲を将来サーブレットやアプレット、または登場するあらゆるプラットフォームに拡張することができます。すべてを再構築することなく、大きな変更に迅速に対応できるように、レイヤーに分割します。レイヤーは、最も近い隣接レイヤー以外のレイヤーを認識してはなりません。
真のコア機能から始めます。時間のかかるすべての綿毛 (プロジェクトが 4 週間遅れることになります) は、ほとんどのユーザーにとっては大した問題ではありません。時間通りに配達できることが確認できたら、後で追加できます。
ところで。これはデザインとは関係ありませんが、納期に間に合わないとだけ言いたいです。時間の消費を現実的に見積もってから、それを 2 倍にしてください :-) ここで、このプロジェクトではあなたが 1 人ではなく、プロジェクトの進行に合わせて人々が行き来すると仮定します。プロジェクトの途中で人々を訓練する必要があるかもしれません, 人々は休暇に行きます/手術が必要です.