Skip to content

動詞de!! モデリング ④「考え方編」


Kenji_in_Verb_Modeling

平鍋

「モデリング」してますか?
今日は「動詞de!! モデリング」の「考え方編」ということで、どうやってこのモデリング手法が機能するのか、という原理について、お話をいただきます。(動詞de!! モデリング – (1)導入編 / (2)実践編 / (3)C言語編)

では、萩原さん、お願いします。


AYM 誰でもできるように設けた2つの基準 – 妥当性確認と検証


hagiwara-san_verb_modeling

萩原さん

 

今回のモデリング、特徴的にはですね、「BeforeからAfterへの変換手順に従って進める」という所です。これはいわゆるトップダウン的な方法ですね。モデリングに慣れた人にとっては冗長に感じるかもしれませんが、やはり「誰でもできる」ということを考えた場合ですね、明確な手順と基準があった方がやりやすくなります。

verb_modeling_principal1
特徴を言いますと、まず「変換手順」があるという事です。正しいものを正しく変換すれば、「最後まで正しい」というトップダウン的な手法になります。これは、いわゆる構造化プログラムと同じ考え方です。
もう一つの点は、途中で間違いを修正できる、という点です。構造化設計とか構造化プログラミングの問題は、途中で間違っているかどうか、という事を確認しないで、そのまま変換を進めてしまい、最後に、間違っているということが発覚して「ダメだった」という事がありますので、ここら辺はですね、途中で「間違ってるかどうか」「いいか悪いか」を確認する手順になってます。
この為にですね、手順に加えて、解りやすい基準も設定しています。

2つ、基準があります。

verb_modeling_principal2

1つは「妥当性確認」の基準ですね。これは、正しい事を確認します。「正しい」というのは、「作るものが、目的を満たしているか」いわゆる、お客様に価値を提供できているか、という事を確認します。もう1つは「検証の基準」ですね。「正しく行っていること」を確認します。途中で間違いが混入してないか、ということを確認していきます。
最初に、妥当性を確認する基準について説明したいと思います。


AYM クラス図を読み上げて、モデルの妥当性を確認する


これは簡単ですね。「読み上げた機能が目的を満たしてる」という事です。クラス図は、実は、読み上げると、機能を表現する文章になります。この機能が、お客様に対して価値を提供する機能であるか、を確認していきます。

verb_modeling_principal3

例えば、下のクラス図は「タイマーは、デバイスを節電する」という形で読み上げることが可能です。

verb_modeling_validity1
正しく読み上げる為には「を」とか「へ」という助詞も一緒に書いてください。そうすると、日本語でクラス図の良し悪しが確認できるようになります。
よく、クラス図を提供するときに、「センスが良い」「センスが悪い」というような形でレビューすることがありますけど、設計センスというのは、人それぞれですので、「センスが良い」と言われても結構困ることがありますが、このように読み上げてしまえば、日本語で、良し悪しが確認できる。つまり、ドメインに関する知識をベースにいいか悪いかを判断できる形になります。

例えば、ロール名が入った場合も「タイマーは、デバイスを節電する」「その時に、節電支持者の役割になる」というような形で読み上げることができます。
次に、変換の正しさを検証する基準になります。


AYM 変換前後のクラス図を読み上げて結果が一致しているかを検証する


verb_modeling_principal5
BeforeからAfterへの変換手順というのが、今回のモデリング手順になりますが、その変換自体が正しく行われてるか、という事を確認していく手順です。ここで変換に間違いがなければ、原理的には、最初に正しかったものは最後まで正しいという状態を確保できます。これを、どのようなやり方で確認するか、検証するかというと「Beforeのクラス図で読み上げた時の機能とAfterのクラス図を読み上げた時の機能が一致するか」で確認していきます。

verb_modeling_before

Before

「パネルは、keyロックを有効にする」、もう一つは「パネルは、Keyの状態を取得する」という形で、Beforeのクラス図を読み上げる事ができますね。これを変換手順に従って変換すると、Afterのクラス図としては、下のクラス図になりまして

After

After

「パネルはKeyのロック状態を有効にする」と、もう一つの機能としては「パネルはKeyの状態を取得する」という形で、これで、読み上げた時の機能は一致します。これを検証する事によって、間違った変換が行われないので、最後まで変換を進めることができるようになります。


AYM 「モデルベース開発とエンジニア育成の最前線」


「モデルベース開発とエンジニア育成の最前線」という書籍で、この7章に今回の手順と手順の背景となった考え方について詳しく説明していますので、そちらを参照していただけると幸いです。

verb_modeling_principal6

Kenji_in_Verb_Modeling

平鍋

 

「動詞」を使って、「日本語」を使って読み上げることで「正しさ」を確認できる、というのが、このオリジナリティですね。

 

hagiwara-san_verb_modeling

萩原さん

 

そうですね。今までも「読み上げ」というのはやられてきましたけど、これを「手順」と「基準」の形に整理して最初から最後までの一貫した手順にしたのが、特徴になります。

 

Kenji_in_Verb_Modeling

平鍋

 

ぜひ本を買ってください。では、萩原さん、どうもありがとうございました。

 


補足

著書「モデルベース開発とエンジニア育成の最前線」内で紹介された事例の続きに相当する事例論文がIPAからベストプラクティスとして公開されました。
セーフティ&セキュリティ設計のためのモジュラーアプローチと準形式手法の設計現場への導入 ~ソフトウェアの5S3定で欠陥の少ないソフトウェアを作る~

[関連リンク]

Leave a comment