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

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

開発方法論の2つの流れ

2010-07-29 13:41:19 | そのほか

 昨日の話を、結局まとめると、システムは、

   ユーザーと(UIで)接するサービス層と
   データを管理するデータ(モデル)層があって、

 これをどこかでつないでるという形になる。

 そのまま素直に考えると、MVCになるし、Domain-Driven Design(DDD)でも、ドメインがデータモデル部分、サービスがサービス層ということになってくるかもしれない。
 いずれにしろ、サービスとデータモデルに分割して考えられる。




 そして、サービスは(業務)機能ベース、ユースケースベースで提供されるのに対し、データモデル部分は、ドメインの概念モデル(クラス)として提供される。
 ここで、開発方法論を考えると、

(1)サービス=機能=>ユースケースベースで考えていくもの
(2)データモデルも含めて考えるもの

の2種類に大別できると思う。(1)は、目的→業務機能とプロセスを分析していくが、そのプロセスの実現可能性をトレースするために、データで確認したりはしない。
 (2)は、プロセスを入出力で定義し、その入出力をもとにしてつくるデータモデルを明確にしていくという手法になる。

(1)の手法は

目的→要求   i*
要求      ユースケース法
であり、この場合、データ構造が確定していないので、アジャイルに持っていったほうがやりやすい。
コンポーネント化する場合は、KobrAのほうが向いている

(2)の手法は
目的→要求   KAOS
要求      ICONIX

であり、この場合、データ構造が確定しているので、さらに

データ→DB  正規化(ER図)
画面遷移
フレームワーク決定・・・

と詳細化(プログラミング化)していける。
コンポーネント化する場合は、UML Compornentのほうが向いている




(1)は、目的といっても、問題から入り、データモデルによる裏取りをしないので、作りやすいメリットがある(会社の不平不満はあげられる人が多いが、じゃあ、どうしたらいいの?それ実現できるの?というと、答えられなくなる人も多い)。
 そのため、日本においては(1)の流儀のほうが、進展している。




(2)は、達成すべきゴールの状態から落とし込んでいくので、一貫性があるが、その分作りにくいかもしれない・・・

 そんなところかな




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

7月28日(水)のつぶやき

2010-07-29 00:42:28 | Twitter
11:47 from web
MeeGoって、結局、AndroidやiPhoneをめちゃくちゃ意識した、インテルとノキアが出している、新しいLinux ディストリビューションってことでOK?
11:51 from web
第1子出産直後っていうのは、なんかあるの?「亡くなった日本テレビアナ3人に共通する“状況”」 http://www.sponichi.co.jp/entertainment/flash/KFullFlash20100728012.html
by xmldtp on Twitter

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