第2回 製造業のソフトウェア開発が抱える問題について考察する
【第2回 ドメインモデリング コラム】
このコラムでは、主に組込みシステムのソフトウェア開発において、非常に重要となる「ドメインモデリング」について紹介していきます。
今回はいくつかの演習を通じて、製造業のソフトウェア開発が抱える問題について考えてみます。
迷路その1
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
まず、前回のおさらいです。
製造業のソフトウェア開発スタイルには、ボトムアップかつ力ずくで試行錯誤を重ねて開発したあと、ソースコードが仕様となり、その結果、検証作業に膨大な工数が取られる、という特徴がありました。本当にそれでいいのか、演習を通じて考えてみます。
最初の演習では、皆さんに迷路を解いていただきます。迷路は大きな縮尺で書かれています。では始めましょう。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
1枚目。右はB-1に、下はA-2につながっています。昔の道路地図を思い出しますね。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
2枚目。A-2です。出口がありました。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
そしてA-3。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
B-1。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
B-2。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
B-3。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
C-1。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
C-2。
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
そして最後のC-3。入口がありました。
考えてみよう
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
さて、いったんここで、迷路を解いてみましょう。
解けたでしょうか? これって、何かに似ていませんか?
考察
https://member.eureka-box.com/products/2-49460744-024a-4a9a-beff-1ea8e2af8e71/categories/2152531673/posts/2166321088
こちらが9枚の図をはぎ合わせた迷路です。この状態なら簡単に解けますね。しかし、バラバラの状態ではとても解けなかったと思います。
このように、細分化されたものだけで全体を考えるのは「超」困難です。ソフトウェア開発でも同じことが起きていないでしょうか。ファイルに断片化されたソースコードを前に、全体像をつかめず苦労しているのではありませんか。全体を考えるには縮尺を変えて「俯瞰する」ことが大切です。そのために、ソフトウェア全体を可視化する技術を使用します。
今回のキーワードは「俯瞰する」です。これを忘れないようにしながら、次の演習に進みましょう。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
迷路その2 巨大迷路
https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160947
前回よりずっと大きな迷路です。画像を見て解いてみてください。
考えてみよう
https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160947
さて、解けたでしょうか?
時間はどのくらいかかりましたか?
何も考えずに、ひたすら力ずくで解こうとしていませんか?
考察
https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160945
答えはこのとおりです。
迷路探索の「左手法」を、「ペイント」を使うことで簡単に実現できます。「ペイント」を使って、入口の左の壁にペンキを流し込むと、繋がっているところに瞬時に色が付き、この色を辿っていくと出口までの経路になります。
力ずくの試行錯誤で解こうとしても時間ばかりかかって大変ですが、コンピュータにやらせれば瞬時に解決します。今回のキーワードは「コンピュータで効率化」でした。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
製造業のソフトウェア開発が抱える問題についての最後の演習です。
鉛筆
最後のお題は鉛筆の使い方です。5分以内で鉛筆の使い方を20通り以上考えてください。使い方には、筆記具以外の用途も含めて構いません。ただし、5分という制限時間を厳守して、必ず20通り以上挙げてください。
それでは5分間、タイマーをセットして考えてみてください。スタート!
考察
https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160948
さて、20通り出せたでしょうか。
時間がないと、つい思い付きで、先に結果を求めてしまったのではありませんか。
ボトムアップに「思い付き」で使い道を挙げていっても、なぜ、それを挙げたのかはわからないでしょう。もちろん、全ての解を網羅できている保証はありません。結局、場当たり的に「使い方」を挙げ続けるしかないのです。
今回のお題では、トップダウンのアプローチが有効です。使い方の裏側にある「なぜ」「どうして」を先に考えるのです。つまり、「使い方」の裏側にある「えんぴつの特徴」を最初にきちんと考えておけば、短時間で妥当性のある考えを数多く打ち出すことができます。
解答例
https://member.eureka-box.com/products/2-dd13d1a5-adc8-41a8-a49e-516e554cc42d/categories/2152745316/posts/2167160948
こちらがトップダウンで考えた例です。鉛筆を、素材、形状、機能という3つの側面から捉え、素材であれば、木製、加工が容易、消耗しやすい、安価である、などの特徴ごとに鉛筆の使い方を挙げていっています。
鉛筆という対象についてあらかじめ特徴を理解し分析することで、ここでは23通りの使い方を挙げることができました。
今回のお題のキーワードは「問題の理解と分析」でした。
これからのドメインモデリングに求められる技術を知るには
ドメインモデリングの技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。
トップ企業をサポートしてきた技術と知見を1冊に「ソリューションガイドブック」
私達エクスモーションが行った、日本を代表する企業へのコンサルティングやトレーニングとは?
オンライン学習 Eureka Box誕生のベースとなった技術や知見が満載!
実際に支援を行ったお客様からのメッセージも掲載し、読み応えある1冊に仕上げています。