アジャイルに行こう!

DOAの新刊2冊紹介

»

今日は、DOA(データ中心アプローチ) の新刊を2冊紹介します。

まず、株式会社データアーキテクト、真野正さんの、

Doa 『独習データベース設計』

真野さんはこれまでも『実践的データモデリング』など、良質で、現場で使えるDOAの本を書かれています。今回は、DOAの初歩から分かりやすく解説された本で、まさに、「独習」できる。

DFDや、ERDとDFDのCRUDのところで、astah* が紹介、使われています。また、こっそり、マインドマップも使われています。

(※ところで、先日セミナーにて、DFDを多様するのだが、外部エンティティとストアを、直接結びたいケースがあって、でも、astah* だと、間にプロセスを挟まないと書けない。簡略記法を許してくれてもいいのに、というご意見を頂いた。なぜ外部エンティティとストアを直接結んではいけない、というDFDの仕様になっているのか、もしご存知の方は教えてください。)

Systemdevwithoutfailure_2 2つ目は、株式会社PFUの加藤 貞行さんによる、

『失敗のないシステム開発入門―良いシステムは良い設計から』

これは、とても題名がいいですね。冒頭から、ソフトウェア開発の現状、ということで7つの「神話」が上げられています。

  1. ユーザの要求は明確であり、仕様は凍結しなければならない
  2. 生産性の向上は難しい
  3. データ中心アプローチには膨大な工数がかかる
  4. オブジェクトの識別は難しい
  5. 開発の標準化は定着できない
  6. 正確な工数の見積もりは難しい
  7. パッケージを導入すれば問題は解決する

これを払拭するのが本書の狙いだという。とてもいい始まりです。ちなみに、ぼくの個人的な意見を言うと、

このうち、1、3、7はぼくは完全に神話だと思う。(赤色
2、6は、逆に正しい命題だと思っている(青色)。
4,5は難しくて判断にまようなぁ(オレンジ)。

そして、データ中心アプローチと、オブジェクト指向を結びつけたDATARUNというモデル駆動の開発を提案しています。ぼくは、このメソッドをよく知らないのですが、データ中心アプローチと、オブジェクト指向を繋ぐ手法は、他にもNTTデータCCSの三河淳一さんたちが提唱している、COUP(クー)という手法があります。寿命の長いデータ部分は、力を入れて分析し、それを、プログラミング部分はオブジェクト指向で扱う。魅力的でとても現実的な方法論だと思っている。

(※2/3 追記:加藤さんからメールを頂き、上記のセミナーでの質問は、加藤さんであったことが判明!そうでしたか。)

(※2/5 追記:さらに、上記の本は新刊ではなく10年前の本でした。。。すみません、献本頂いたので、つい、最近の本だと思いこんでしまいました)

さて、本の販売が伸び悩んでいる状況で、今月、DOAが2冊新刊というのは、奇遇だなと思います。

逆に、クラウド方面でRDBでない流れ、も加速されそうなので、こういう手法の接点なども今後議論されていくでしょうね。

RDB、データ中心アプローチ+オブジェクト指向設計、オブジェクト指向言語

という現在の業務システム開発の主流と並べてみて、

KVM、XXアプローチ+YY指向設計、関数型言語

というのが議論されることを期待しています。

ぼくは、オブジェクト指向がプログラミングパラダイムから始まってどんどん上流に上がっていく過程を見てきました。そして、それは、オブジェクト指向の考え方が、人間の認識の形に近いことが大きく作用していたと思います。ところが、現在の並行性を高めるための関数型言語の世界は、なかなか、自分の頭がなじむことができません。「世界の切り方」として、オブジェクトはすんなりいくのですが、関数、や、副作用ナシのアルゴリズムに分けていくのが、自分の頭のネイティブなナイフではないんです。これは認識の問題かもしれなくて、牛尾さんがきっと、関数脳、の作り方を書いてくれるんだと思っていますが、どうも。。。(もしかしたら、これは、昔機能分解は分かるが、オブジェクト指向はどうもわからん、と言っていたオヤジのデジャブに自分がなっている?)

ただ、スケールアウトする必要がある、というクラウド空間では、どうしても並行に切れる切り方が必要とされている。。。これがどれだけ、上流の考え方にまで影響を及ぼすのでしょうね。プラットフォームの必要性から、どんどん上にまで上がってきますかね?つまり、マシンやプラットフォームの仕組み、という「実装の都合」と、業務やサービスの分析、という人間の思考の整理、という話はどう折り合いがつくのでしょうか?

この辺りは、マイクロソフトの萩原さんや匠ラボの浅海さんに切り開いて頂きたいです。

Comment(3)

コメント

萩原正義

RDBもDOAも開発されてからすでに30年近く経ちます。開発された当時は出来事を記録するだけで十分だった時代なのですが、現在はよりフローを活用して利益を上げる時代になりました。これまでは資産、つまり、マスターデータを中心に考えられ過ぎていたといえます。Webの非構造化の流れと、フローを中心としたモデルとが融合して新しい技術の枠組みが作られています。これは、IT以外の他の分野、たとえば、数学においても同じ流れになっていることでもわかります。従来のDOA、そして、オブジェクト設計に代わるより高度な技術が必要と言えるでしょう。現在、それを構築している最中で、今月には発表できる予定です。

関数型言語の世界は並行性を高めるためだけのものではないと思います。「世界の切り方」というのは定義されたドメインを分析して(切り分けて)最適な手順を構築するという従来の手続き型のパラダイムだと思います。一方で関数型言語の様な宣言型のパラダイムは時間や空間に依存しない定義の積み重ねで世界を創るということだと理解してます。そして平行性を高めるといったことは、むしろこのパラダイムの特性であり結果であって目的ではないと思っています。

タケ

データランなつかしい。研究室でこれを用いた研究をしている後輩がいました。

コメントを投稿する