改めて考える、設計とは。

今回の内容は、設計とは何か、どうすれば設計できるようになるか、の紹介になります。

「作りたいものがあるのに、どう実現すればいいかわからない」という悩みは初学者や経験が浅い方が皆抱える悩みだと思います。

ベテランの方はいとも簡単に設計してモノづくりしているように見えますが、彼らは何をどう考えて設計しているのでしょうか。

今回はその秘密に迫りたいと思います。

この記事でわかること
  • 設計とは何かを理解できる
  • 設計の具体的イメージを持てるようになる
  • どうすれば設計できるようになるか理解できる
目次

設計とは

設計は”要求”を達成するための実現手段を考えること

設計が何かと言われたら、

”要求”を達成するための実現手段を考えること

といえます。
そもそも、”モノづくり”が何かと言われたら

これがあったら便利、楽しい、困りごとを解決できる、といった様々な”想い=要求”を実現すること

ではないでしょうか。下図のイメージです。

図には記載していませんが、一般的な開発プロセスとしては作ったものを設計通りに実装できているかの検証や、要求を満たしているかの妥当性確認といった検証もあります。別の機会に説明したいと思います。

普段特に意識することは無く”設計”をしていると思いますが、改めて聞かれると何やら哲学的に聞こえますね笑

このように全体を俯瞰して捉える癖をつけると、何のために今この作業をしているかという目的意識が生まれますので、迷った時こそ一旦立ち止まって俯瞰し、原点回帰することが大切です。

組み込みシステムにおける設計の具体例

具体的な設計については想定するシステムによって違うとは想いますが、

組み込みシステムであれば、

どういう部品・モジュール配置で、どういうデータの流れで、どういうタイミング・順番で実行すれば要求を達成できるかを考えること

が一般的な設計内容です。

簡単な例として、デジタル温度計を取り上げたいと思います。
詳細はメインコンテンツの「設計サンプルシリーズ」で取り上げたいと思いますので、ここでは雰囲気だけご紹介します。

温度センサから温度を取得し、液晶ディスプレイに表示するシンプルなシステムを考えます。

各部品との通信方式は温度センサはI2C、液晶ディスプレイはSPIとしました。
これらは部品側で用意されているIFに依存します。選択できる場合は、各通信方式のメリット・デメリットを考慮して決めます。

デジタル温度計の部品配置例

次に制御の振る舞いを考えます。

マイコンから温度センサに温度取得コマンドを送ると情報を取得できるという仕様です。
これは部品の仕様に依存しますので、実際使用する部品の制御仕様を調査し、制御方法を検討する必要があります。

取得した温度をディスプレイに表示するため、マイコンは表示用画面データを生成します。
数値を表示するだけのシンプルなものであれば特に必要ないかもしれませんが、例えばおしゃれなメーターの上に描画するような場合は表示用データ(配列)を生成する場合が多いです。

マイコンからディスプレイに画面描画を指示します。
先程生成した表示用データを送信し、ディスプレイは画面をリフレッシュして最新の画面に切り替えます。

デジタル温度計の シーケンス図例

簡単な例ではありましたがいかがでしょうか。
実際には、部品の仕様や制約、コスト、実装難易度などを考慮して実現方法を検討していきます。

MonoEdgeでは、こうした設計の具体例をシリーズ化して掲載していきます。
実際に手を動かして作れるサンプルになっているので、是非お試しください。

設計できるようになるには

設計に必要な要素は大きくわけて2つあります。

「技術要素」と「設計手法」です。

技術要素

ハードウェアやソフトウェアでどういったことができるか、そのメリット・デメリットといった知識です。

例えば、一定の周期で動作させたいという場合に、マイコンのタイマーという仕組みを知っていればその仕組みを使えることに気づきます。引き出しが多ければ多いほど、実現手段は増えていくのです。

設計においては技術要素が全ての土台になります。

設計手法

自分の中に蓄えられた技術要素の引き出しから、どういう実現方法があるかを見出す方法です。
詳細は下記の4点にブレイクダウンすることができます。

  1. 要求からシステムの全体像を思い描く方法
  2. 技術要素を組み合わせて要求の実現手段を見出す方法
  3. 思いついた手段=設計で本当に実現できるか分析する方法
  4. 設計結果を管理する手法

技術要素が材料なら、設計手法はレシピです。

※設計手順を具体的に定義したプロセス(OOSEM, SYSMOD等)は存在しますが、開発するシステムの特徴や規模によってそのまま使える場合は限りなく少なく、テーラリングが必要になることが大半です。
MonoEdgeでは、固有のプロセスを参考にするよりは、まずはどのようなシステムでも共通の本質的な考え方を身につけることを推奨しています。

設計は、自分の中に蓄えた技術要素を駆使し、どう組み合わせれば期待する動作ができるのかを考え、本当にそれで実現できるのかを分析、検証しながら、最終的なモノのカタチを決めていくことです。

技術要素だけ知っていてもだめですし、設計手法だけ知っていてもモノは作れません。
どちらも身につけることが必要なのです。

・ハードウェア/ソフトウェアの仕組みや動向をキャッチアップしながら技術要素の引き出しを増やすこと
・どう設計すべきかというトップダウン(目的ベース)の設計手法を身につけること
この2点が設計できるようになるための道のりです。

MonoEdgeでは、実際のモノづくりを題材に、UMLやSysMLを使用した設計手法を紹介する
「設計サンプルシリーズ」を展開しています。
実践的なモノづくり、設計のトレーニングを目的としていますので是非ご活用ください。

おわりに

以上が「設計とは何か」と「どうすれば設計できるようになるか」の説明です。いかがでしたでしょうか。

設計とは何か、言われてみれば当たり前に聞こえるかもしれませんが、普段はあえて意識しない部分でもあると思います。

こうして改めて言語化してみると、普段自分が行っていることがどういう目的なのか、本筋からズレていないかといった確認になると思います。

常に俯瞰しながら、全体像と各プロセスの目的を把握することで、今自分が何をしているのか、今後自分はどこに向かうべきで、何を学べばいいのかが見えてくると思います。

少しでも皆さんの参考になれたら嬉しいです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次