システム・モデルの作成とレビュー
前回は、メカ、エレキ、ソフトの技術者が協調して設計を進めるにあたって最初に重要になる「要件の整理」について解説しました。今回は、その後のフェーズとして、システム・モデルの作り方を解説します。整理した要件は、エンジニアリング・ファシリテータを中心に、製品構造(製品アーキテクチャ)を明らかにしながらシステム・モデルとして図示する必要があります。
製品アーキテクチャが必要になる背景
製品アーキテクチャが必要とされるのは、個人の設計能力に限界があるからです。1人の人間が学び、考え、設計する能力には、限界があります。今日、われわれが設計している製品のほとんどは、要求が高度化し、その要求を満たすための機能が複雑化したため、1人の人が設計できる限界を超えています。複数の設計者が必要な理由には、競争の激化による納期の短縮もあります。
1人の人が設計できなくなると、1人の人が設計全体を理解することができなくなります。複数人で設計するときの本質的な問題は、ここにあります。設計者を増やしたとしても、個々の設計者は自分の設計の正しさを説明することしかできません。全体の設計を理解し、正しさを保証する人が不在となり、設計品質が低下します。
複数の設計者が1つの設計を創造するためには、「知識と労力を分割」する必要があります。この分割の手法として、モジュール化が有効です。システム全体を、独立性の高い設計領域に「分離・分割」し、複数の設計者が設計したモジュールを組み合わせて全体としての機能を実現しよう、というのがモジュール化の考え方です。
モジュール化には、「分離」と「交換」という原則があります。この原則に従ってシステムをモジュール化することにより、システム全体の複雑度を下げ、設計変更による影響を最小限にすることができます。互いに依存関係のない独立したモジュールに分離することによって、複雑度を下げることができます。仕様が同一で交換可能なモジュールであれば、ほかの機能に影響を与えないことを保証できるからです。
製品アーキテクチャの目的
システムを共同で設計するために、設計領域の分割が必要です。この分割のルールを決めたものが、製品のアーキテクチャです。
製品アーキテクチャの第1の目的は、「メカ、エレキ、ソフトを同じレベルでモジュール化しつつ、構造面の独立性と機能面の統合を実現する。このための枠組みを提供すること」です。この枠組みにより、次の第2の目的を達成することが可能となります。
第2の目的は、「設計をモジュール化でき、相互に独立して作業する専門集団を設計できること」です。このためには、あらかじめ決められた「デザイン・ルール」が必要です。このルールに従って設計されてさえいれば、各モジュール同士は、結合可能で、かつ継ぎ目なく動作することが保障されます。
モジュール化の原則に従ったデザイン・ルールが可視化され、設計者全員で共有されることにより、1つのシステムを複数の設計者で設計できるようになります。
SysMLによる製品アーキテクチャのモデル化
SysMLは、このような、複数の設計者による協調設計を支援するために考えられた、モデル記述言語です。SysMLを使えば、システムの設計領域の分割ルールや機能面での統合のルールを記述できます。
SysMLは、メカ、エレキ、ソフトの設計者が実務で使える共通の言語です。この言語を使ってシステム全体のモデルを構築することにより、3者が連携した設計が可能になります。SysMLで書かれたモデルがシステムのデザイン・ルールであり、製品のアーキテクチャです。
モデルを書くことは重要ですが、書くだけでは不十分です。モデルを使ってレビューをすることにより、設計品質を向上させることができます。モジュール化の原理・原則に従って分離・分割された各モジュールが、連携して1つのシステムとして機能することを、レビューにより確認し、機能の漏れや重複を発見します。
プログラムも、モデル化することにより、可視化できます。ソフトの担当者は、ソース・コードを読めば、その構造を理解できますが、熟練したプログラマでも、ほかの人が書いたコード理解するのは困難です。モデル化すれば、メカやエレキの人でも、プログラムの構造が理解できます。プログラムの構造についても、可視化して、システム全体のモジュールとして設計者全員で情報共有できるようにすべきです。