画面1の例は「受注一覧」という単機能のモジュール関連図ですが、システムのすべての機能を統合して見るとCRUD図を生成できます。画面4はCADからExcel出力したCRUD図で、ここではロジック単位でなく画面単位にまとめています。このようなCRUD図を作成するため、ロジックのインターフェースでテーブルに対する操作欄にはCRUDという表現を使っているわけです。東芝、SCSKを経て1995年に株式会社システムインテグレータを設立し、現在、代表取締役社長。2006年東証マザーズ、2014年東証第一部上場。これ、見方を変えてテーブルの方から見るとどうなるでしょうか。例えば、テーブル「受注データ」の縦列を見てみると、「受注検索」「受注更新」「受注削除」の3つのロジックから操作されていることがわかります。もし、機能変更が生じて「受注データ」テーブルに列を追加することになった場合、この3つのロジックだけ影響がないかを調べれば事足りるようになるわけです。せっかく、モジュール関連情報がパーツで管理されているので、もっと柔軟に検索しようということで用意したのがクロスリファレンスです。図1のCRUD図がロジックとテーブルの単方向の関係を表すのに対し、クロスリファレンスは画面、帳票、バッチ、テーブル、ビュー、ロジックそれぞれの双方向の関係をアドホックに検索できます。例えば、ロジック「受注更新」は「受注データ」と「受注明細」の2つのテーブルに対して、CとUの文字になっています。これは、この2つのテーブルにデータの挿入と更新を行うことを意味しています。前職で日本最初のERP「ProActive」を作った後に独立し、日本初のECパッケージ「SI Web Shopping」や開発支援ツール「SI Object Browser」を開発・リリース。日本初のWebベースのERP「GRANDIT」をコンソーシアム方式で開発し、統合型プロジェクト管理システム「SI Object Browser PM」、アプリケーション設計のCADツール「SI Object Browser Designer」など、独創的なアイデアの製品を次々とリリース。最近は、AIを利用したサービスに取り組んでいる。なお、MVCモデルとはシステムをModel(ビジネスロジック)とView(表示や入出力)とController(ModelとViewの橋渡し)という3つに役割分担させて実装する手法のことです。昔はいろいろな画面から直接データを更新するシステムもありましたが、最近では画面はView機能に特化し、データ更新はビジネスロジックが行うというように分担する構造が取られています。さらに「このテーブルを更新するのはこのロジックだけ」というように、更新するロジックを絞ってメンテナンス性を高めることもやりやすくなっています。この定義情報が画面1のモジュール関連図にも反映され、「更新のみ」の矢印を使って2つのテーブルを削除することが表現されています。なお、CADではテーブルの色でSelectかDeleteかそれ以外かも表現しています。ExcelやWordで書いた設計書の情報は単なる文字情報なので、読む以外に加工も活用もできません。CADはコントロールもイベントもモジュールも、さらにそれらの関連情報もすべてパーツとして管理するので、このようなモジュール関連図を自動生成できるわけです。連載の前半で、現代のシステム開発は新規よりも保守・運用に多くの時間を取られているという問題に直面していることをお話しました。どうすれば保守・運用にかかるメンテナンスコストを低減して、もっと新しいことに取り組めるでしょうか。その実現に向けた取り組みの1つが影響範囲調査の効率化です。今回は昔からあるCRAD図による調査方法と、ちょっとCADらしい影響範囲調査について解説します。主な著書に「Oracle8入門」シリーズや「SQL Server7.0徹底入門」、「実践SQL」などのRDBMS系、「グラス片手にデータベース設計入門」シリーズや「パッケージから学ぶ4大分野の業務知識」などの業務知識系、「実践!プロジェクト管理入門」シリーズ、「統合型プロジェクト管理のススメ」などのプロジェクト管理系、最近ではThink ITの連載をまとめた「これからのSIerの話をしよう」「エンジニアなら知っておきたいAIのキホン」を刊行。CRUD(クラッド)のそれぞれの文字は次の操作を意味しています。テーブルに対する操作なので、それぞれをSQLに当てはめると、CRUDの順番にInsert、Select、Update、Deleteになります(私はこちらの方がしっくりきます)。「日本のITの近代化」と「日本のITを世界に」の2つのテーマをライフワークに掲げている。今回はモジュールの関連をビジュアルに理解できる「モジュール関連図」と、それをシステム全体に統合して生成する「CRUD図」について説明しました。また、CADのクロスリファレンス機能により双方向に影響範囲調査を行える仕組みも参考になれば幸いです。クロスリファレンスはCADならではの機能ですが、WordやExcelの設計書でも、どうすれば大きな工数をかけずに影響範囲調査を行えるか仕組みを考えておくことは重要です。保守や機能追加などによりシステムに変更を加えたとき、ある個所を修正したときに思わぬところに影響が及んで大きな問題になることがあります。このようなトラブルを避けるため、変更を加える前に影響範囲調査を行いますが、システムが大規模になればなるほどこの作業に多くの時間がかかってしまい、メンテナンスコストを跳ね上げます。「なんとかパッと影響個所を把握できないか」ということで作られているのがCRUD図です。CRUD図はロジックやプロセスなど処理を行うものを縦、画面を横に並べたマトリクスです。そして、ロジックがテーブルに対して行う操作をCRUDの文字を使って表わします(図1)。画面1のロジック「受注削除」からテーブル「受注データ」と「受注データ明細」に矢印が接続されているのは、ロジックのインターフェースでアクション欄に定義した情報(画面3)を使っています。アクション欄の操作としてDを選択していますが、これはDelete(削除)を行うという意味で、この後に説明するCRUD図を意識しています。
ãããã³ã¼ãã®å¯èªæ§ãä½ä¸ãã¾ããã³ã¼ãã®ã©ã®é¨åãæå¹ã«ãªã£ã¦ããã®ããè¦æ¥µãããã¨ãé£ãããªãã¾ããæ´¾çéçºã§ã¯ã#ifdefæãªã©ã®ã³ã³ãã¤ã«ã¹ã¤ãããå©ç¨ãã¦ãæ¢åã®ã½ã¼ã¹ã³ã¼ãã®ä¸ã«æ°ããã³ã¼ããæ¸ã足ãã¦ãããã¨ãããããã¾ãããããã¦ããã¨ãã½ã¼ã¹ãªã¹ãä¸ã§æ°æ§ã®ã½ã¼ã¹ãè¦æ¯ã¹ããã¨ãã§ããéçºè ãä¿å®ããããã¨ããå©ç¹ãããã¾ããâ»CC-RLããã¥ã¢ã«ã«è¨è¼ããã¦ãããã¼ãã»ã¢ã¸ã¥ã¼ã«ã»ãã¡ã¤ã«ã«ç¸å½ãã¾ããC++ã¯ã©ã¹ã®ç¶æ¿é¢ä¿ãã°ã©ã表示ãã¾ããã¯ã©ã¹ã«å¤æ´ãå ããå ´åãç¶æ¿ã«ããå½±é¿ç¯å²ã確èªã§ãã¾ãã