オブジェクト指向も、だいぶ広がりを見せていて、最近も「OMT」や「OOSE」などの分析手法に関する文献が、書店で平積みされているのを見かけました。また、「手法」ではないのですが「UML」に関する文献も、多く見掛けます。おそらく、組み込みシステムの現場にも、「C++」などのオブジェクト指向の言語の使用が広がっているものと思われます。
ただ、現実には、「C++」などのオブジェクト指向の言語を使っていると言っても、「言語」を使っているだけで、分析という意味でのオブジェクト指向の考え方については“チョット”という人が多いのではないでしょうか。その原因の一つと思われるのが、この「抽象化」という言葉かもしれません。
この「抽象化」という言葉は、「分析」の文献を読むと、必ずと言って良いほどに遭遇します。そしてそこで煙に巻かれてしまうのです。元になっている単語は「abstraction」なのですが、これが日本語に翻訳されると「抽象化」となってしまうのです。しかも具合の悪いことに、エンジニアの世界は、どちらかというと「理系」の人が多く、彼らの殆どが、「抽象」という言葉の概念を持っていません。これが「分析手法」の習得を妨げているのではないかと思っています。
要するに、「abstraction」ですので、「必要なものを摘みだす」あるいは「必要なものだけを選んで集める」という意味です。つまり、そこで求められているシステムを構築するのに、対象物(実態)の持つデータや情報の中から、必要なものを選び出す事であり、そのようなスキルのことを「抽象化能力」と呼ぶわけです。
例えば、「人」に付随するデータは沢山あります。出生に関するデータ、家族に関するデータ、経歴や能力に関するデータ、さらには、病気や遺伝子などのデータも含まれます。そのような膨大なデータの中から、このシステムとして必要な「人」に関するデータを適切に選び出し、目的とするシステムを構築することが「分析」行為なのです。そして、「分析手法」というのは、そのような「発見」を助け、「検証」を支援する方法なのです。
この世界で「抽象」とか「抽象化」という言葉が出てきたら、殆ど例外なく「abstraction」ですので、適切な概念をイメージして、臆することなく前進していってください。