====== モデリングの基本====== {{page>adsense:ads_content_header&nouser&nodate&nomdate&noeditbtn}} このトピックでは、モデリングの定義、目的及び基本手法を説明します。 ===== モデリングとは ===== モデリングとは、業務の流れやシステムの構成、といった、論理世界にしか存在しないものを可視化するための技法です。 ===== モデリングの目的 ===== モデリングは、記号を使ってモデルを作成することによって、問題点の洗い出しや理解の深まり、人間同士間の認識共有を図ります。 なお、業務やシステムを視点に分けてモデリングすることによって、複雑なものを単純化にして人間に理解しやすくすることができます。 ==== 人間同士の認識共有 ==== ソフトウェアシステム開発に関わる人間は主に、ソフトウェアシステムを利用する「ユーザ」とソフトウェアを開発する「エンジニア」に大別することができますので、人間同士間の認識共有も、ユーザとエンジニア間の認識共有とエンジニア同士間の共有に分けることができます。 === ユーザとエンジニア間の認識共有 === ソフトウェア開発では、ビジネスによる要件とシステムによる実装の間には大きな溝があります。エンジニアが直接自分が欲しいと思うソフトウェアを書く場合は、そのようなことはないかもしれません。しかし、ソフトウェアのことを知らないユーザからの依頼によってソフトウェアの開発を行う場合には、当然この溝は非常に大きなものになります。 この溝を埋めるために用いる技術が「モデル」です。モデルを仲介して要件と実装の間の溝を埋めます。 === エンジニア同士間の認識共有 === ごく小さいソフトウェアは一人で作り上げることもあるかもしれませんが、殆どの場合はチーム合同の作業になります、なかでは何百人、何千人のエンジニアが同時に開発を行うプロジェクトも少なくありません。 そこで分析や設計、実装、テストなどの作業を別々の人に担当してもらうのは殆どですので、モデルを通じて、エンジニア同士間の認識共有を図ります。 ==== 複雑なものを単純化 ==== 業務やシステムは複雑で,そのまま理解することは通常、人間にとっては難しいものです。 着目する視点を分けてモデリングすることによって、業務やシステムを単純化し,理解しやすくします。ただし,業務やシステム自体が単純になったわけではなく,単に着目する部分を絞っているだけです。 ===== モデリンク言語 ===== モデリングするには、モデリング言語を使用します。 モデリング言語は、ルールの一貫したセットで定義された構造によって情報、知識あるいはシステムを表現するため使われるあらゆる人工言語のことです。 モデリング言語は図式またはテキスト形式であり得ます。 * 図式モデリング言語 \\ 図式モデリング言語は、概念を表す名前を持つシンボルと、そのシンボルを結合しその関係を表現するライン、及び制約を表現する様々な図式表記を持つダイアグラム技術を使います。 * テキスト形式モデリング言語 \\ テキスト形式モデリング言語は通常、コンピュータが解釈可能な表現にするパラメータによって達成される標準化されたキーワードを使います。 ===== モデリングの手法 ===== モデリングを行う手法としては、分類や分割、階層化といった方法があります。これも人間が世界を認識するための基本手法です。 * 分類 \\ 分類とは、事物や現象を、何らかの基準に従って区分することによって体系づけることです。例えばある企業の人事システムでは、従業員を職位に従って、一般社員、係長、課長、部長、社長に分類することがあります。 * 分割 \\ 分割とは、複雑なものをより簡単な構成要素に分けることです。システムを複数のサブシステムに分けたり、業務を複数の機能に分けたりします。 * 階層化 \\ 階層化とは、システムを互いに独立している複数の階層に分けて分析、設計及び実装のことです。 {{page>adsense:ads_content_footer&nouser&nodate&nomdate&noeditbtn}}