2010-12-29 16 views
1

私は貴重な助けが必要です。 数週間前、私はJavaで小さなプログラムを開発しました。 おそらく間違ったアプローチですが、私はUMLの問題を念頭に置いていませんでしたが、与えられたアイデアに基づいて、私は の期待に応える完全機能のソフトウェアを作りました。UMLとjavaクラス

プログラム自体は2つのクラスといくつかのメソッドで構成されています。

対応するUMLクラス図を描画する必要があります。これは私にとっては非常に厄介な問題です。

UMLクラス図は、クラス間のソースコードの依存関係を示すことを目的としているため、次のコードに基づいてクラス図を描画する方法を教えてください。

...................................... ...................

import javax.swing.JPanel; クラスWavPanelは..................................... {

 List<Byte> audioBytes; 
     List<Line2D.Double> lines; 

     public WavPanel() { 
      super(); 
      setBackground(Color.black); 
      resetWaveform(); 
     } 

     public void resetWaveform() { 
      audioBytes = new ArrayList<Byte>(); 
      lines = new ArrayList<Line2D.Double>(); 
      repaint(); 
     } 
} 

のJPanelを拡張します...........................

簡単に言えば、WavPanelクラスは継承の例です。 JPanelクラス(パッケージの一部)はスーパークラスとして機能します。 問題を解決するにはどうすればよいですか? JPanelはパッケージの一部であるクラスです。

また、良いクラス図を描くために、私は でUMLダイアグラムを最初に実行してから というコードを記述しなければならないと思っていますか?

私はいくつかのメソッド(クラスの代わりに)といくつかのクラスを書きましたが、 はUMLの問題になりますか? もしそうなら、それは再びソフトウェア全体のリエンジニアリングを意味するでしょう。

ありがとうございます。どんな助力も高く評価されます。

答えて

1

はい、プログラミングの前に必ず計画を立ててください。しかし、すべてが失われることはありません。

UMLでJPanelを使用することはできますが、JPanelを使用するサブクラスの継承(白い菱形)を表示するだけです。私はすべてのUMLダイアグラムをUMLetで描画したいと思っています。特に、(将来はUMLを最初に実行するときに)あなたのダイアグラムをEclipseに書き出すことができます!

メソッドとその引数は、UML図のクラス内で指定されています。それぞれのメソッドがクラス図のために何をしているかについては、ほとんどの場合その特性だけを気にする必要はありません。ライブラリであっても、クラス間の関係を示すことに重点を置いています。ライブラリのすべての個々のメソッドについて心配する必要はありませんが... APIによっては、おそらくどこかでAPIが処理されています。

UML自体についてのヘルプが必要ですか?私に知らせてください。この答えにUMLに関するその他の質問を明確にするために追加するか、またはthis Wikipedia article on class diagramsに問い合わせてください。

+0

ありがとうございます。実際、私は本当にもっと助けが必要です。 – max

+0

ありがとうございました。実際、私は本当にもっと助けが必要です。誰かが私のコード(私はプログラムコード全体を意味する)を見てクラス図を描くのを助けてくれるのなら、私はとても幸せになるでしょう。私の理解は、コードを書く前にUMLに頼ることが常に勧められていますが、実際には反対です。残念ながら!今では、UMLの要件を満たすためにコード全体を編集する時間がありません。私の電子メールアドレスは:[email protected]ありがとう – max

+0

私はあなたを助けてうれしいです。私はあなたに少し電子メールを撃つでしょう。 – rownage

1

あなたはUMLについて正しく考えていません。

アプリケーションが動作する場合、UMLが問題を引き起こしているという事実は懸念すべきではありません。

UMLは通信記法ですが、それ以上のことはありません。

コーディングする前にUMLを実行する必要はありません。 UMLは必須条件ではありません。思考が必要です。 UMLの作成が思考に役立つなら、是非それをしてください。しかし、それは必須ではありません。

あなたのソリューションは簡単です:あなたのUMLモデルにJPanelをインポートし、継承をクラス図に追加するか、ダイアグラムのためにスタンドを作成します。

プログラム自体は2つのクラスといくつかの方法で構成されています。

いいえ、あなたが書いた2つのクラスと、いくつかのコアJavaクラス(JPanel、Listなど)から構成されています。クラス図にすべてのクラスを含めることが重要であることを示唆していますかJavaのコアクラス?私はそれに同意しないでしょう。おそらくあなたのWavPanelがJPanelから継承していることには注意が必要かもしれませんが、私が作成したUMLダイアグラムにはjava.lang.Stringを追加しません。

私はUMLを5クラス以下のソリューションのために努力する価値はないと考えています。私は私の頭の中に保管することができます。私が5つのクラスよりも大きな問題を抱えていると、UMLはもっと役立つ傾向があります。

+0

+1:UMLモデリングは、問題を考え、解決策を伝えることです。それ以上のことはありません。コードが書かれてからずっと前に既存のコードを推論するUMLモデルを作成するのと同じくらい便利です。 –

+0

プロジェクトマネージャー、同僚、多分教授のためであろうと、彼はそれが必要なように聞こえるのですか?...私は彼がコードをよく理解できるようにしているだけではなく、いくつかのより高いアップの期待の中で、今それをつかむためにスクランブルしています。思考? – rownage