第1回 ドメインモデリング 製造業ソフトウェアの開発スタイル

【第1回 ドメインモデリング学習コラム】
製造業ソフトウェアの現状の開発スタイルについて考察します。
このコラムでは、主に組込みシステムのソフトウェア開発において、非常に重要となる「ドメインモデリング」について紹介していきます。
まず、本題に入る前に、ドメインモデリングとは何かを説明しましょう。
ドメインとは、ソフトウェア開発の対象となる領域のことです。
そして、ドメインモデリングとは、その領域において普遍的な情報をモデルとしまとめることです。
たとえば、組込みシステムのソフトウェアは、複雑な制御の塊です。
しかし、どんな複雑な制御でも、必ずその裏側には「なぜ」「どうして」その制御になったのかという『理屈』が存在しています。
ドメインモデリングでは、この制御の裏側にある『理屈』をモデリングすることに他なりません。
ソフトウェア開発においては、動かすことよりも、モデルの表記を間違えないことよりも、ソフトウェアとして実現することよりも、何より大切で最初にやるべきことは、何が問題の本質かをしっかりと見極めること、制御の元になる理屈をとらえること、そこに登場する物事の特徴を見つけること、物事どうしの関係を整理することです。
それを行うのが、ドメインモデリングです。
では、
「なぜドメインモデリングが必要なのか?」
「いきなり制御を考える前にドメインモデリングをするのはなぜなのか?」
これについては、このコラムの中でじっくりと説明していきます。
そして、ドメインモデリングに取り組む上で重要な考え方やモデリングのコツについても詳細に紹介していきます。
少々導入部分が長くなりますが、ぜひお付き合いください。
はじめに

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
この「ドメインモデリング」のコースでは、ドメインモデリングの重要性を理解し、ドメインモデリングができるようになることを目的としています。
ですが、その前に、製造業のソフトウェア開発について、現状を把握しておきましょう。
開発対象の特性

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
まず、製造業の開発対象について確認しましょう。製造業の開発対象には、さまざまな特性があります。
自然現象や物理現象が相手であること、人間が容易にできないことを装置や機器を使って実現すること、しかも低コストで実現しなければならないこと。
しかし、こういった課題は、机上だけでは予測できません。
ソフトウェア開発の特性

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
次に、ソフトウェア開発の特性です。
ソフトウェア開発では、物理的なモノを作成するわけではないので、1回あたりのやり直しのコストを抑えられます。しかも、近年の開発環境の技術進歩により、実装から、ビルド、デバッグに至る時間が劇的に短縮されました。
その結果として、考えてから作るのではなく、作りながら考えるスタイルが主流になっています。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
製造業ソフトウェア開発のスタイル

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
このような、机上だけでは予測できない問題が多いという開発対象の特性と、考えてから作るのではなく作りながら考えるというソフトウェア開発の特性とが相まって、製造業ソフトウェア開発に特有のスタイルが生まれています。
詳しく見てみましょう。

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
製造業ソフトウェア開発は、まず、現場で培われた要素技術や実践ノウハウが中心となり、現物合わせで作りこむという、ボトムアップかつ力ずくの開発スタイルが主流です。
また、プログラミングして動かしながら試行錯誤的に開発するという特徴もあります。
そして、最終的に動いたソースコードが仕様となり、動いたものが量産されます。
その結果、使用の確からしさ、品質を担保するために膨大な検証作業が必要になります。
これからのドメインモデリングに求められる技術を知るには
ドメインモデリングの技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ

https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
製造業のソフトウェア開発現場では、机上では予測できない問題が発生するため、作りながら考えるというやり方で開発が進められ、「動いたもの」が「仕様」とされています。
そのため、ソフトウェア開発の開発スタイルは、ボトムアップかつ力ずくで、試行錯誤を重ねて開発したあと、ソースコードが仕様となり、その結果、検証作業に膨大な工数が取られる、というものになります。
しかし、本当にそれでいいのでしょうか。次以降のコラムで、いくつかの演習を通して体感してみましょう。
トップ企業をサポートしてきた技術と知見を1冊に「ソリューションガイドブック」
私達エクスモーションが行った、日本を代表する企業へのコンサルティングやトレーニングとは?
オンライン学習 Eureka Box誕生のベースとなった技術や知見が満載!
実際に支援を行ったお客様からのメッセージも掲載し、読み応えある1冊に仕上げています。