goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ダイアグラムからクラスを作る

2009-12-10 17:37:16 | そのほか


RFPからプログラミングまで、シームレスに開発する方法のつづき。現在以下の図

の①、②、③、④、⑤を書いたので、今日は、ダイアグラムからクラスを作るところです。




■クラス図からクラスをつくると。。。

一般に、クラス図から、中身が空の(スケルトンの)クラス図は作れます。
しかし、この方法で、システム全体のクラスを作るとなると・・・
  画面の値の入出力クラスも、
  ビジネスロジックも
  帳票も
  DBも
すべてクラス図にかくということで、膨大な量のクラス図が必要になってしまいます。
これは、現実的ではありません。




■クラス図がなくても、クラスが作れる

 一方、クラス図がなくても、各種入出力の定義書から、データアクセス部分のクラスが作れます。
 また、業務流れ図から、クラスがかけることは、すでに書きました

 全体的に、各種定義とDMM,業務流れ図があり、フレームワークが決定していると、
 クラスを作成し、ビジネスロジック以外のメソッドの中身も埋まってきます
 その辺の話は、ダイアグラム作成からプログラム自動生成までの流れに書いたので、今回は省略。

 ビジネスロジックは、ここでは決まりません。
 これは、業務の内容を聞かないと。。。




■ちなみに、シーケンス図からクラスはつくれるか?なんだけど・・・

 ちなみに、シーケンス図があると、クラスが作れて、さらにクラスの内部も作れそうに見えます。
 つまり、こんなかんじ
   A      B    C
     b1()
    ---→*
        | c1()
        |---→ *
        |     |
        |←--- *
        | c2()
        |---→ *
        |     |
        |←--- *
     ←--*




とある場合は、

 A,B,Cがクラスとなり、
 呼ばれるほうのクラスがそのメソッドを持っている

つまり、今の例だと
class Aの内容は、この情報でははっきりしないけど、
class B
{
  void b1()
  {
         c1();
         c2();
    }

}

class C
{
  void c1()
  {
   //内容不明
    }

  void c2()
  {
   //内容不明
    }
}



みたいな形になりそうなことは、想像はつきます。

ただし、引数などがある場合に、値をどのようにセットするのかとか、
データベースの書き出し項目値の設定方法など
細かいところは、わからないので、全部書くことは出来ません。

また、クラスが継承されている場合、メッセージに相当するメソッドがどのクラスにあるか(親クラスにあるのか、子クラスにあるのか)などもわからないので、シーケンス図からクラスの雛形は自動生成できるとはいいきれないし、メソッドの中身を書くとしても、ざっと・・・という感じになります。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする