おじさんAのプログラムメモ

30代のおじさんの主にプログラムについてのブログです

モデルベースソフトウェア開発コミュニティ 勉強会 #1「渡辺幸三さんの講演内容」

"そのまま動作するモデル"としての生産管理システムの実例 by 渡辺幸三

システム開発には組み込みや、ゲームなどいろいろなジャンルがあるが、今日は業務システムの話。

MBSD(モデル駆動開発)には2種類がある

  1. コード生成型 (目的:コーディングの手間を減らしたい)
  2. 動的制御型 (目的:コードそのものを減らしたい、モデルがそのまま動けばいいじゃないか)

今日の講演は「動的制御型のMBSD」について。

動的制御型MBSDの背景にある価値観

  • ここの開発案件においてコードを扱うことの非効率差にうんざり。
  • どんなに丹精であっても、コードは必要悪
  • コード含有率が高ければ、そのプロジェクトは負けている
    • コード含有率というのは、実現する機能に対してのコードの量のこと

動的制御型MBSDの基本テーゼ

差分が下位ドメインであり、個別開発案件。

会計システム(上位ドメイン)、A社とかB社向けの会計システム(下位ドメイン)的な意味?

DSLDSP(domain specific platform)を準備せよ

アプリ定義を極小化

  • 処理の類型に基づいて、個々のアプリを差分として定義

DC(動的制御型)MBSDで現場はどうなる?

  • 究極のアジャイル

    • 講演者余談「アジャイルってコードを愛しているよね。俺好きじゃない」 *コード一行も書かなくても、システムできればいいじゃん
  • 人海戦術が要らなくなる

  • その結果契約単価が上昇する

    • SIビジネスが士業化する

DCMBSDのためのモデル表現

  • UML ->コード生成向き
  • ERD, DFD ->PIM(プラットフォーム独立モデリング)として有効
  • 仕様書 -> PSM(プラットフォーム特化)として有効

モデルとしての仕様書

  • 仕様書が「人にだけ理解可能なプログラミング指示書」じゃダメ 
  • 「人にも機械にも理解可能なプログラムのあり方を示すモデル」
  • ->そのままモデルとして動く仕様書

ここでXEAD( XEAD Tools and Resources - HOME )を使った実例

  • XEADとは講演者渡辺さん自作のモデリングツール
  • 今までの説明にあった業務モデリングを記述するためのエディタであり、それによって記述されたモデルをそのまま実行できるプラットフォームでもある

その他

俺の感想

  • インフラ情報の設定とかどんな感じなんだろう
  • 独自開発とSAPのようなERPソフトウェアの間的な位置づけなのかなあ。モデリングだけじゃどうやってもフルスクラッチの開発ほどの自由度はないよな。
  • 俺の中のイメージ
    • 独自開発 = 顧客側の業務に合わせてどのようにでも作成可能。メンテナンス地獄。高コスト。
    • ERP = カスタマイズすんな。業務側をソフトウェアでできることに合わせろ。メンテナンス楽。低コスト。
    • XEAD = 用意された仕組みをモデリングするだけで、だいたいの業務は実現可能。メンテナンス楽。低コスト。
  • さすが渡辺先生とんがってる。アジャイルをぶった切るところとか。
  • 世の中のDB設計のほとんどが「第三正規形で十分」「それ以上やると逆に使いづらい」などと軟弱なことを言っている中、「データモデルは完全正規形、すなわち第五正規形をとってなければいけません」と著書の中で言い切ったころから、まったくお変わりではなかった。

業務別データベース設計のためのデータモデリング入門

業務別データベース設計のためのデータモデリング入門