(57)【要約】【課題】概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルにおいて修正されるべき部品を検出することで、概念モデルの設計の品質を向上させることを目的とする。【解決手段】ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルの作成を支援するための概念モデル作成支援プログラムは、コンピュータに、入力された概念モデルを記憶する概念モデル記憶機能と、概念モデルに関して予め作成されたチェック項目に基づいて、前記概念モデルにおいて修正されるべき部品を検出する検出機能と、前記修正されるべき部品を出力する出力機能とを実現させる。【選択図】図１
2018041263.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルの作成を支援するための概念モデル作成支援プログラムであって、コンピュータに、
入力された概念モデルを記憶する概念モデル記憶機能と、
概念モデルに関して予め作成されたチェック項目に基づいて、前記概念モデルにおいて修正されるべき部品を検出する検出機能と、
前記修正されるべき部品を出力する出力機能と、
を実現させるための概念モデル作成支援プログラム。
【請求項２】
前記検出機能は、修正されるべき部品をクラス単位でまとめて検出する、請求項１に記載の概念モデル作成支援プログラム。
【請求項３】
前記検出機能は、概念モデルに関して予め作成された、表記エラーに関するチェック項目又は冗長構造に関するチェック項目に基づいて、前記概念モデルにおいて修正されるべき部品を検出する、請求項１又は２に記載の概念モデル作成支援プログラム。
【請求項４】
表記エラー件数又は冗長構造の数を記憶するエラー件数記憶機能と、
前記検出機能は、表記エラー件数又は冗長構造の数が所定値以上となった場合、又は表記エラーを含むクラス数又は冗長構造を含むクラス数が所定値以上となった場合、異常を検出する異常検出機能と、
を更に実現させる、請求項３に記載の概念モデル作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア設計において概念モデルの作成を支援するための概念モデル作成支援プログラムに関する。
【背景技術】
【０００２】
オブジェクト指向プログラミングにおけるソースコードは、設計段階で設計された各クラス図に基づいてコーディングされる。そのため、設計予定のクラスに変更があった場合には、各部への影響が生じることなり、特にソフトウェアが大規模化するにしたがって、プログラム各部への影響が大きくなることから、精度の高い設計がされることが重要となっている。
【０００３】
ソフトウェアを設計する際に、概念モデル作成ツールを使用して設計中のモデルを整理することができる（非特許文献１参照）。概念モデル作成ツールは、ソフトウェアの処理の流れ及びデータ構造を整理し、概念モデルであるＵＭＬ（Unified Modeling Language）モデルを作成することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"astah* professional"，インターネット，<http://astah.change-vision.com/ja/product/astah-professional.html>，２０１６年８月１５日検索
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の概念モデル作成ツールによりＵＭＬモデルを作成することはできるが、モデルの作成には経験が必要であり、経験の浅い担当者によるＵＭＬモデルの設計の品質が低いという課題がある。また、作成されたＵＭＬモデルを最適化するための基準がなく、仮に経験の豊富な担当者がＵＭＬモデルを作成したとしても、作成されたＵＭＬモデルが最適であるかを判断することができないという課題がある。
【０００６】
このような従来技術の課題を解決するため、本発明は、概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルにおいて修正されるべき部品を検出することで、概念モデルの設計の品質を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一形態に係る概念モデル作成支援プログラムは、
ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルの作成を支援するための概念モデル作成支援プログラムであって、コンピュータに、
入力された概念モデルを記憶する概念モデル記憶機能と、
概念モデルに関して予め作成されたチェック項目に基づいて、前記概念モデルにおいて修正されるべき部品を検出する検出機能と、
前記修正されるべき部品を出力する出力機能と、
を実現させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルにおいて修正されるべき部品を検出することで、概念モデルの設計の品質を向上させることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係る概念モデル作成支援装置の機能ブロック図
【図２】概念モデルの定義を示す図
【図３】本発明の実施例に係る概念モデル作成支援装置における表記エラー検出処理を示すフローチャート
【図４】概念モデルの表記エラーを検出するためのリストを示す図
【図５】本発明の実施例に係る概念モデル作成支援装置における冗長構造検出処理を示すフローチャート
【図６】概念モデルの冗長構造を検出するためのリストを示す図
【図７】本発明の実施例に係る概念モデル作成支援装置における異常検出処理を示すフローチャート
【図８】既存業務システムのＡｓＩｓ概念モデルの例を示す図
【図９】図８の概念モデルを変換したＴｏＢｅ概念モデルの例を示す図
【図１０】本発明の実施例に係る概念モデル作成支援装置のハードウェア構成例を示す図
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施例について説明する。
【００１１】
本発明の実施例では、ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルの作成を支援するための概念モデル作成支援プログラムについて説明する。なお、概念モデル作成支援プログラムに関する説明の便宜上、プログラムの各機能をコンピュータ上に実現した概念モデル作成支援装置を例に挙げて説明する。
【００１２】
図１は、本発明の実施例に係る概念モデル作成支援装置１００の機能ブロック図である。概念モデル作成支援装置１００は、概念モデル入力部１０１と、概念モデル記憶部１０３と、検出部１０５と、出力部１０７と、エラー件数記憶部１０９と、異常検出部１１１とを有する。
【００１３】
概念モデル入力部１０１は、例えば、非特許文献１に記載の概念モデル作成ツールを用いて作成された概念モデルを入力する。また、概念モデル入力部１０１は、以下に説明する手順に従って概念モデル作成支援装置１００によって検出された修正されるべき部品の修正後の概念モデルを再び入力することもできる。概念モデルはソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成され、例えば、オブジェクト指向分析のために用いられるＵＭＬ（Unified Modeling Language）に従って定義される。
【００１４】
図２は、概念モデルの定義を示す図である。図２に示す概念モデルの定義は、ＵＭＬによる定義である。概念モデルは、オブジェクトを表現するためのクラスと、オブジェクト間の関連と、クラスの継承と、対象となるモデルのまとまりを表すパッケージとで定義される。クラスには、名称、システム名、属性等の情報が含まれ、その性質（属性）も定義される。関連には、名称、多重度、関連端名称、誘導可能性、関連するクラス等の情報が含まれ、その性質も定義される。継承には、継承等の情報が含まれ、パッケージには名称等の情報が含まれる。概念モデルを表現するための個々の構成要素である情報及び性質を部品と呼び、これらの情報及び性質には必須の部品と任意選択の部品がある。
【００１５】
概念モデル記憶部１０３は、概念モデル入力部１０１に入力された概念モデルを記憶する。概念モデル記憶部１０３は、修正されるべき部品の修正前後の概念モデルを記憶することもできる。
【００１６】
検出部１０５は、概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルにおいて修正されるべき部品を検出する。チェック項目には、表記エラーに関するチェック項目及び冗長構造に関するチェック項目が含まれる。具体的な表記エラー検出処理及び冗長構造検出処理について以下に説明する。
【００１７】
図３は、本発明の実施例に係る概念モデル作成支援装置における表記エラー検出処理を示すフローチャートである。
【００１８】
まず、概念モデル記憶部１０３において概念モデルを記憶する（Ｓ１０１）。検出部１０５は、概念モデルの表記に関するエラーをチェックリストに基づいて部品単位で判別する（Ｓ１０３）。ここで、表記に関するエラーは、クラス単位でまとめて判別されてもよい。そして、検出部１０５は、修正されるべき部品（又はクラス）を検出する（Ｓ１０５）。
【００１９】
図４は、概念モデルの表記エラーを検出するためのリストを示す図である。図４は、概念モデルに記載されていると悪い表現であるという観点から定義している。図４に示すチェック内容は、概念モデル上で表現されていれば必ず表記のエラーとして検出される。すなわち、このチェック内容に合致する表現はエラーとなるため、概念モデルの修正が必要となる。
【００２０】
図５は、本発明の実施例に係る概念モデル作成支援装置における冗長構造検出処理を示すフローチャートである。
【００２１】
まず、概念モデル記憶部１０３において概念モデルを記憶する（Ｓ２０１）。検出部１０５は、概念モデルの冗長構造に関するエラーをチェックリストに基づいて部品単位で判別する（Ｓ２０３）。ここで、冗長構造に関するエラーは、クラス単位でまとめて判別されてもよい。そして、検出部１０５は、修正されるべき部品（又はクラス）を検出する（Ｓ２０５）。
【００２２】
図６は、概念モデルの冗長構造を検出するためのリストを示す図である。図６は、概念モデルに記載されていると冗長な悪い表現であるという観点から定義しており、概念モデルを修正することで、より簡単な概念モデルに修正できる可能性が高い表現である。必要に応じて閾値との比較により、エラーが検出される。図６に示すチェック内容には、必ずしも冗長構造のエラーと判別できないものも含まれるが、エラーの可能性があるものとして検出される。
【００２３】
なお、表記エラー検出処理及び冗長構造検出処理について別々に説明したが、これらを組み合わせることも可能である。例えば、必ずエラーとして検出される表記エラーの検出を実施した後に、冗長構造のエラーを検出してもよい。
【００２４】
出力部１０７は、検出部１０５において検出された修正されるべき部品を出力する。例えば、出力部１０７は、検出部１０５において検出された冗長構造及び表記エラーをハイライト表示してもよく、画面中心に配置して表示してもよい。その結果、ユーザーの検索の手間が削減可能になる。
【００２５】
エラー件数記憶部１０９は、検出部１０５において検出された表記エラー件数又は冗長構造の数を記憶する。エラー件数記憶部１０９は、表記エラー件数又は冗長構造の数をクラス毎にまとめて記憶してもよい。
【００２６】
異常検出部１１１は、エラー件数記憶部１０９に記憶された表記エラー件数又は冗長構造の数が所定値以上となった場合に、異常を検出する。また、異常検出部１１１は、表記エラーを含むクラス数又は冗長構造を含むクラス数が所定値以上となった場合に、異常を検出してもよい。
【００２７】
なお、表記エラー件数又は冗長構造の数により、概念モデルの最適化度合いを数値として表現し、出力部１０７から出力することも可能である。
【００２８】
図７は、本発明の実施例に係る概念モデル作成支援装置における異常検出処理を示すフローチャートである。
【００２９】
図７の処理の前に、図３又は図４のフローチャートに従い、修正されるべき部品が部品単位（又はクラス単位）で検出される。その結果、表記エラー件数又は冗長構造の数がエラー件数記憶部１０９に記憶される（Ｓ３０１）。異常検出部１１１は、エラー件数記憶部１０９に記憶された表記エラー件数又は冗長構造の数が所定値以上となった場合に、異常を検出する（Ｓ３０３）。ここで、異常検出部１１１は、表記エラーを含むクラス数又は冗長構造を含むクラス数が所定値以上となった場合に、異常を検出してもよい。
【００３０】
＜概念モデル作成支援の具体例＞
既存業務システムを表す概念モデル（ＡｓＩｓ）に対して、業務システムの改修・統合により変換された概念モデル（ＴｏＢｅ）を作成する具体例について説明する。
【００３１】
図８は、既存業務システムのＡｓＩｓ概念モデルの例を示す図である。既存業務システムは、外部契約を扱うシステムとグループ契約を扱うシステムとを有する。また、複数のシステムで共通して利用する情報を扱う基盤システムが存在する。
【００３２】
外部契約を扱うシステムとグループ契約を扱うシステムは、似た構造を持っている。従って、検出部１０５は、図６に示すリストに基づいて冗長構造を検出することができる。検出された冗長構造は、クラスを集約することにより最適化される。また、検出部１０５は、表記エラーが存在するか否かを図４に示すリストに基づいて検出することができる。表記エラーが存在する部品は修正が行われる。
【００３３】
図９は、図８の概念モデルを変換したＴｏＢｅ概念モデルの例を示す図である。図８に示す外部契約を扱うシステムとグループ契約を扱うシステムは、複数の契約種別を扱うことができるように最適化されている。複数のシステムで共通して利用する情報を扱う基盤システムは、他システムでも利用されるため基本的な構造の変更は行わないが、複数の契約種別を扱うシステムとのインタフェースは改修する必要がある。図８の概念モデルと比べて図９の概念モデルは冗長構造が修正されて、部品数が少なくなり簡略化されていることが分かる。
【００３４】
＜本発明の実施例の効果＞
従来、概念モデルをＡｓＩｓからＴｏＢｅにするために、どのような変更が必要となるのかは、熟練者による判断に頼っていた。
【００３５】
本発明の実施例では、概念モデルの表記エラーや冗長構造に関するチェック項目に基づき修正されるべき部品を検出し、作成誤りを通知すること等により、設計の早い段階で手戻り等を最小限とすることができ、品質の高いソフトウェア設計が可能となる。そのため、経験の浅い担当者であっても設計の品質を確保することが可能となる。
【００３６】
例えば、ＡｓＩｓ概念モデルからＴｏＢｅ概念モデルに変換する際に、本発明の実施例に係る概念モデル作成支援装置が表記エラー又は冗長構造を検出することにより、概念モデル作成者に気づきを与えることができる。また、表記エラー件数又は冗長構造の数が所定値以上となったことを概念モデル作成者に知らせることで、作成中に悪い方向に変換がなされていないことを指摘できる。これにより、経験の浅い担当者であっても概念モデルが作成できるように支援することが可能になる。
【００３７】
＜ハードウェア構成例＞
図１０に、本発明の実施例に係る概念モデル作成支援装置１００のハードウェア構成例を示す。概念モデル作成支援装置１００は、ＣＰＵ（Central Processing Unit）１５１等のプロセッサ、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリ装置１５２、ハードディスク等の記憶装置１５３等から構成されたコンピュータでもよい。例えば、概念モデル作成支援装置１００の機能及び処理は、記憶装置１５３又はメモリ装置１５２に格納されているデータやプログラムをＣＰＵ１５１が実行することによって実現される。また、概念モデル作成支援装置１００に必要な情報は、入出力インタフェース装置１５４から入力され、概念モデル作成支援装置１００において求められた結果は、入出力インタフェース装置１５４から出力されてもよい。
【００３８】
＜補足＞
説明の便宜上、本発明の実施例に係る概念モデル作成支援装置は機能的なブロック図を用いて説明しているが、本発明の実施例に係る概念モデル作成支援装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施例は、コンピュータに対して本発明の実施例に係る概念モデル作成支援装置の機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
【００３９】
以上、概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルにおいて修正されるべき部品を検出することで、概念モデルの設計の品質を向上させるための手法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００４０】
１００  概念モデル作成支援装置
１０１  概念モデル入力部
１０３  概念モデル記憶部
１０５  検出部
１０７  出力部
１０９  エラー件数記憶部
１１１  異常検出部
１５１  ＣＰＵ
１５２  メモリ装置
１５３  記憶装置
１５４  入出力インタフェース装置
【図１】
2018041263.tif 000003
【図２】
2018041263.tif 000004
【図３】
2018041263.tif 000005
【図４】
2018041263.tif 000006
【図５】
2018041263.tif 000007
【図６】
2018041263.tif 000008
【図７】
2018041263.tif 000009
【図８】
2018041263.tif 000010
【図９】
2018041263.tif 000011
【図１０】
2018041263.tif 000012