ビジネスシステムにおける概念モデルの重要性
市場のグローバル化と各個人の価値判断が多様化したことにより、市場はドラスティックに変化を続けています。経験と勘による従来型の経営ではなく、リアルなデータに基づいた経営判断の重要性が高まっています。
IT技術が進化した今、データを収集・活用してビジネスを継続し、発展させるためには、そのビジネスに適したITシステムが必要であるのは言うまでもないでしょう。
データは、ビジネスで扱うモノや人、役割、出来事、事柄から生まれます。しかし、ご存じの通り、これらは相互に絡み合い、とても複雑です。“売上”や“コスト”と一口に言っても、それに関するデータが何から生まれたのか、その時どんな状況だったかによって全く異なった意味を持ってしまいます。
たいていの場合、あなたが脳内で漠然と描いているビジネスを他人が正確に理解することは難しく、また、あなたが描いているビジネス像が実際のビジネスと一致している保証もありません。ビジネス像が現実と乖離していれば正しいデータは得られず、過去何が起こったか、今、何が起きているかを正確に把握することは不可能です。結果として、ビジネス像があいまいな状態で開発を始めたITシステムは、リリース後、誰にも使われないシステムになるか、最悪の場合、利用している全員が不平を言いながら、ビジネスパフォーマンスの足を引っ張り続けることになりかねません。
ビジネスを支援するITシステムの構築では、設計開発の前に、そのビジネスに対する共通の理解をステークホルダーが共有していることが重要です。複数の関係者のビジネスに関わるデータ群の構造の正確な理解のためには、自然言語やポンチ絵による曖昧な記述ではなく、数学的な原理に則った論理的な記法を使ってビジネスを可視化したモデル、すなわち、“概念モデル(Conceptual Model)”と呼ばれるものが必要です。
特に最近重要性を増している、現実世界のコピーをITの仮想空間上に構築するデジタルツインにおいては、デジタル化が可能な程度の厳密さを持つ概念モデルの構築は必須です。
そもそも開発対象を曖昧にしたまま設計・開発を行うのは奇妙なことであり、デジタルツインに限らず、一般的なシステムの開発においても、概念モデルの構築が重要であるのは言うまでもないでしょう。
そして、概念モデル作成のための基本的な概念や手法は、実は、30年以上前に確立されており、皆さんの利用を待っているのです。
しかし、本来重要であるはずの概念モデルが、過去数十年システム開発においてあまり重要視されなかったのを不審に思う読者も多いかと思います。理由の一つは、ITシステムの主役はソフトウェアであり、開発対象を厳密に可視化しなくても、頑張ればアセンブラでも、ある程度は使えるレベルのシステムが開発できてしまうという、ソフトウェアの柔軟性(幻想)があげられます。苦労して作成した概念モデルをソフトウェア上で実現するのが比較的難しかったというのも理由の一つでしょう。これまで開発されてきたソフトウェアの開発対象が、幸いにも、概念モデルを明示的に構築しなくても済む程度の複雑さであったか、出来上がったシステムの出来栄えが利用者にとってぎりぎり運用でカバーできる程度の複雑さであったからというのも大きな要因ではないかとではないかと筆者は自身の経験から考えています。
デジタルトランスフォーメーション、デジタルツイン、メタバース、…、今流行りのバズワードを並べましたが、これらを単なるBuzzで終わらせずに本当の意味で活用するには、複雑な現実の世界を概念モデルで定義し、それに沿ってデータ化し、ITで扱いやすいようにデジタル化した基盤が必要です。
近年では、概念モデルをほぼそのまま、サービス上で利用可能な Azure Digital Twins というPaaS(Platform As A Service)型のサービスがマイクロソフトからクラウド上で提供されるようにもなっています。これに限らず、様々なサービスプロバイダーが提供している各種サービスを選択・導入する場合にも、各サービスのベースになっている概念モデルと、各自のビジネスの概念モデルを作った比較は、単に思い付きの調査項目を挙げて”〇×△”をつけたリストを作るよりも、それぞれの組織にとっての正しい選択に役立ちます。
概念モデリングは、今や、これからのソフトウェア技術者の一般教養といっても過言ではありません。
筆者が公開するコンテンツが、皆さんの、概念モデル作成スキル習得の一助になれば幸いです。
概念モデリングを習得する
「Art of Conceptual Modeling ~ 概念モデリング教本」
1. 「概念情報モデル」
2. 「概念情報モデルを使う」
3. 「概念情報モデルの操作」
4. 「概念情報モデルをITシステムに組み込む」
5. 「ドメインとITシステム構築」
6. 「概念振舞モデル」
チュートリアル
「商品販売を例にした、概念モデルチュートリアル」
「概念モデリングチュートリアル ~ ホテルのコインランドリー」
「ビジネスをモデル化する ~ BridgePoint を使ってみよう」
概念モデルをコードに変換する
「Technique of Transformation」
より良いソフトウェア開発のために
「Essence of Software Design」
「Practices of Software Engineering」
この記事が気に入ったらサポートをしてみませんか?