システム・モデルの作成とレビュー
システムのモデル化戦略
設計領域のモデル化には、一般的に2つの選択肢があります。
1つは、広くて浅いモデルです。広くて浅いモデルは、設計領域全体をカバーする汎用的なモデルです。システム全体に出現する主要なモジュールの洗い出しには有効ですが、浅すぎてこのまま設計を詳細化するには無理があります。
もう1つは、狭くて深いモデルです。このモデルは、システムの構築に耐えるだけの詳細性を持ちますが、ここで発見された設計ルールがほかの領域に適用できるかは不明です。
図1: 設計領域のモデル化オプション |
2つのアプローチの長所を生かしながら欠点を補う手法が、T字形テクニックです。
まず、設計領域全体を把握するために、広くて浅いモデルを作ります。ここで、主要なモジュールが洗い出されますので、設計領域の中で中核となる機能について、狭くて深いモデルを作ります。この作業で、中核となる機能を構成する、詳細なモジュールが見えてきます。
これらのモジュールの仕様を明確にすることにより、ほかの機能を提供するモジュールに対する、そのモジュールが提供すべき機能の要件が明らかになります。この機能要件を、ほかの機能設計に対してフィードバックすることにより、効率のよい設計を実現できます。
図2: T字形によるハイブリッドなアプローチ |
派生開発におけるモデル化戦略
過去に開発済みで動作を確認できるシステムをリバース・エンジニアリングでモデル化し、そのモデルを派生開発の要求に合うように改善していくのが、リバース・システム・モデル開発法です。すでに動作確認済みなので、ゼロから設計した場合に比べてリスクが少ないことや、動作を確認しながら設計レビューやモデル化の検証が可能なことなど、多くのメリットがあります。
リバース・エンジニアリングで作成したモデルは、SysMLの学習や引き継ぎにも有効です。既存のシステムから作成したシステム・モデルを使って設計レビューを行ってみると、レビューのツールとしての、SysMLの有効性が確認できます。
ソフトウエアの場合、ツールを使えば、ソース・コードからモデルを自動的に生成できます。この機能を有効に使うと、大規模なシステムでも、再利用方針の策定や拡張ポイントの設定など派生開発に必要な設計検討を効率的に行うことができます。
図3: 効率のよいモデルの作り方/使い方 |