JP2012008660A - ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム - Google Patents

ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム Download PDF

Info

Publication number
JP2012008660A
JP2012008660A JP2010141972A JP2010141972A JP2012008660A JP 2012008660 A JP2012008660 A JP 2012008660A JP 2010141972 A JP2010141972 A JP 2010141972A JP 2010141972 A JP2010141972 A JP 2010141972A JP 2012008660 A JP2012008660 A JP 2012008660A
Authority
JP
Japan
Prior art keywords
product
feature
architecture
diagram
software development
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010141972A
Other languages
English (en)
Other versions
JP5316485B2 (ja
Inventor
Takeshi Miyazaki
剛 宮崎
Kazuhiko Sugino
一彦 杉野
Kazuhiro Soyama
和弘 曽山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Fuji Electric Retail Systems Co Ltd
Original Assignee
Fuji Electric Co Ltd
Fuji Electric Retail Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd, Fuji Electric Retail Systems Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2010141972A priority Critical patent/JP5316485B2/ja
Publication of JP2012008660A publication Critical patent/JP2012008660A/ja
Application granted granted Critical
Publication of JP5316485B2 publication Critical patent/JP5316485B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プロダクトライン型のソフトウェア開発におけるアプリケーションエンジニアリングを容易にかつ効率的に行うことを可能にするソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムを提供する。
【解決手段】プロダクトライン用フィーチャ図/アーキテクチャ情報および製品要求分析によってフィーチャ図から作成された製品用フィーチャに関連する製品用フィーチャ情報を参照し、プロダクトライン用のアーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを自動的に生成する。
【選択図】図10

Description

本発明は、プロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムに関する。
従来、再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、そのドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発に関して様々な技術が知られている。
例えば、プロダクトライン型のソフトウェア開発に関する情報として、プロダクトライン識別情報とプロダクト識別情報とを関連付けたプロダクト情報、フィーチャ識別情報とプロダクトライン識別情報とを関連付けたコアアセット情報、プロダクト識別情報とフィーチャ識別情報とを関連付けたフィーチャ/プロダクト関連付け情報、およびコアアセット識別情報とフィーチャ識別情報を関連付けたフィーチャ/コアアセット関連付け情報を記憶して管理する技術が開示されている(例えば、特許文献1を参照)。この技術によれば、ユーザがプロダクトライン型のソフトウェア開発に関する情報を容易に取得して利用することができる。
特開2009−53951号公報
しかしながら、上記特許文献1に記載の技術は、あくまでもドメインエンジニアリングで作成される情報を管理するための技術に過ぎないため、アプリケーションエンジニアリングにおいてソフトウェア開発を支援する技術については、何ら特別な考慮がなされていなかった。したがって、上記特許文献1に記載の技術では、プロダクトライン型のソフトウェア開発におけるアプリケーションエンジニアリングを容易にかつ効率的に行うことができるとは限らなかった。
本発明は、上記に鑑みてなされたものであって、プロダクトライン型のソフトウェア開発におけるアプリケーションエンジニアリングを容易にかつ効率的に行うことを可能にするソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係るソフトウェア開発支援装置は、再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置であって、ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶する記憶部と、前記プロダクトライン用フィーチャ図/アーキテクチャ情報および前記製品用フィーチャ情報を前記記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成部と、を備えたことを特徴とする。
また、本発明に係るソフトウェア開発支援装置は、上記発明において、前記アーキテクチャはUMLのコンポーネント図であり、前記コンポーネントはUMLのモデル図を含むことを特徴とする。
また、本発明に係るソフトウェア開発支援装置は、上記発明において、前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定部をさらに備えたことを特徴とする。
また、本発明に係るソフトウェア開発支援方法は、再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置が行うソフトウェア開発支援方法であって、ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成ステップ、を有することを特徴とする。
また、本発明に係るソフトウェア開発支援方法は、上記発明において、前記製品用アーキテクチャ生成ステップの前に、前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定ステップ、を有することを特徴とする。
また、本発明に係るソフトウェア開発支援プログラムは、再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置に、ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成ステップ、を実行させることを特徴とする。
また、本発明に係るソフトウェア開発支援プログラムは、上記発明において、前記製品用アーキテクチャ生成ステップの前に、前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定ステップ、を実行させることを特徴とする。
本発明によれば、プロダクトライン用フィーチャ図/アーキテクチャ情報および製品要求分析によってフィーチャ図から作成された製品用フィーチャに関連する製品用フィーチャ情報を参照し、プロダクトライン用のアーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを自動的に生成するため、プロダクトライン型のソフトウェア開発におけるアプリケーションエンジニアリングを容易にかつ効率的に行うことが可能となる。
図1は、プロダクトライン型のソフトウェア開発プロセスの概要を説明する図である。 図2は、ドメイン分析によって作成されるフィーチャ図の構成例を示す図である。 図3は、図2に示すフィーチャ図に対応するフィーチャ情報の要部の構成を示す図である。 図4は、アーキテクチャ設計によって作成されるコンポーネント図の構成例を示す図である。 図5は、図4に示すコンポーネント図に対応するコンポーネント情報の要部の構成を示す図である。 図6は、フィーチャ/コンポーネント関連付け情報の構成を示す図である。 図7は、プロダクトライン用フィーチャ図/アーキテクチャ情報の要部の構成を示す図である。 図8は、製品要求分析によって作成される製品用フィーチャ図の構成例を示す図である。 図9は、製品用アーキテクチャ抽出処理によって作成された製品用コンポーネント図の構成例を示す図である。 図10は、本発明の一実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。 図11は、本発明の一実施の形態に係るソフトウェア開発支援装置の判定部が行う処理の概要を示すフローチャートである。 図12は、本発明の一実施の形態に係るソフトウェア開発支援装置の判定部が異常と判定する製品用フィーチャ図の構成(第1例)を示す図である。 図13は、本発明の一実施の形態に係るソフトウェア開発支援装置の判定部が異常と判定する製品用フィーチャ図の構成(第2例)を示す図である。 図14は、本発明の一実施の形態に係るソフトウェア開発支援装置の判定部が異常と判定する製品用フィーチャ図の構成(第3例)を示す図である。 図15は、本発明の一実施の形態に係るソフトウェア開発支援装置の判定部が異常と判定する製品用フィーチャ図の構成(第4例)を示す図である。 図16は、本発明の一実施の形態に係るソフトウェア開発支援装置の製品用アーキテクチャ生成部が行う処理の概要を示すフローチャートである。
以下、添付図面を参照して、本発明を実施するための形態(以下、「実施の形態」という)を説明する。
図1は、プロダクトライン型のソフトウェア開発の概要を説明する図である。図1に示すように、プロダクトライン型のソフトウェア開発は、ドメインエンジニアリング(ステップS1〜S4)とアプリケーションエンジニアリング(ステップS5〜S9)の2つのプロセスに大別される。
まず、ドメインエンジニアリングについて説明する。ドメインエンジニアリングは、プロダクトライン型のソフトウェア開発の中で再利用可能なソフトウェアの部品であるドメインを開発するプロセスである。
ドメインエンジニアリングでは、まずユーザが、製品要求仕様を参照しながらドメイン分析を行うことにより、コンピュータを用いてプロダクトライン用のフィーチャ図を作成する(ステップS1)。
図2は、ステップS1で作成するフィーチャ図の構成例を示す図である。図2に示すフィーチャ図Fe1には、7つのフィーチャ(フィーチャ名:Feature1〜Feature7)を有する。以下、フィーチャをフィーチャ名で呼ぶこととする。図2で黒丸が付されたFeature2は、親フィーチャ(Feature1)との関連が「必須」である。また、図2で白丸が付されたFeature3, Feature4, Feature5は、親フィーチャとの関連が「選択」である。ここで、Feature3, Feature4の親フィーチャはFeature1であり、Feature5の親フィーチャはFeature2である。また、図2で二重丸が付されたFeature6, Feature7は、親フィーチャ(Feature3)との関連が「代替」である。ここで、Feature6およびFeature7の制約条件は、「1以上2以下」である(図2では「1..2」と表記)。また、図2の破線矢印は、Feature6が依存フィーチャであることを示している。ここで、依存フィーチャとは、その親フィーチャを実現するために必要なフィーチャのことである。すなわち、フィーチャ図Fe1の場合、Feature4はFeature6を必要としている。
図3は、フィーチャ図Fe1に対応する情報として生成されるフィーチャ情報の要部の構成を示す図である。同図に示すフィーチャ情報Fe11は、フィーチャ図Fe1の作成に伴って生成される情報であり、フィーチャ図Fe1の情報をテーブル化したものである。フィーチャ情報Fe11は、フィーチャID、フィーチャ名、親フィーチャのフィーチャID、親フィーチャとの関連、依存フィーチャのフィーチャIDを有する。ここで、フィーチャIDは、フィーチャ図において一意に定義される。なお、フィーチャ情報としては、他にもフィーチャの内容を説明するフィーチャ説明などの項目が含まれる(図示せず)。また、フィーチャ情報Fe11にはフィーチャ図Fe1も含まれるものとする。
ステップS1に続いて、ユーザは、ステップS1で作成したフィーチャ図を参照しながら、コンピュータを用いてプロダクトライン用のアーキテクチャを作成する(ステップS2)。本実施の形態では、アーキテクチャとしてコンポーネント図を採用する。ここで、コンポーネント図に含まれるソフトウェア部品としてのコンポーネントは、UML(Unified Modeling Language)モデル図(ステートマシン図、シーケンス図、クラス図、コンポーネント図等)を含んでいる。コンポーネント図を作成する際には、フィーチャ図との整合を図りながら行なうため、フィーチャ図の修正もあわせて行う場合がある。なお、フィーチャ図とコンポーネント図を同一のエディタによって作成すれば、一段と効率よくドメインエンジニアリングを実行することができるのでより好ましい。
図4は、ステップS2で作成されるコンポーネント図の構成例を示す図である。同図に示すコンポーネント図Co1は、7つのコンポーネント(コンポーネント名:Component1〜Component7)を有する。以下、コンポーネントをコンポーネント名で呼ぶ。Component1は、Component2, Component3, Component4の親コンポーネントである。また、Component2は、Component5の親コンポーネントである。また、Component3は、Component6, Component7の親コンポーネントである。
図5は、コンポーネント図Co1に対応するコンポーネント情報の要部の構成を示す図である。同図に示すコンポーネント情報Co11は、コンポーネント図Co1の作成に伴って生成される情報であり、コンポーネント図Co1の情報をテーブル化したものである。コンポーネント情報Co11は、コンポーネントID、コンポーネント名、親コンポーネントのコンポーネントIDを有する。ここで、コンポーネントIDは、アーキテクチャにおいて一意に定義される。なお、コンポーネント情報としては、他にもコンポーネントに含まれるUMLモデル図の情報なども含まれる(図示せず)。また、コンポーネント情報Co11にはコンポーネント図Co1も含まれるものとする。
フィーチャ図およびコンポーネント図の作成が完了した後、ユーザは、コンピュータを用いてフィーチャ図に含まれるフィーチャとコンポーネント図に含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を作成する(ステップS3)。
図6は、フィーチャ/コンポーネント関連付け情報の構成を示す図である。同図に示すフィーチャ/コンポーネント関連付け情報FeCoは、フィーチャIDおよびコンポーネントIDを有する。互いに関連付けられるフィーチャIDとコンポーネントIDは、一般にN1:M1(N1,M1は0以上の整数)の関係にある。例えば、フィーチャ/コンポーネント関連付け情報FeCoにおいて、フィーチャID=F1に関連付けられたコンポーネントIDはない(N1:M1=1:0)。また、フィーチャ/コンポーネント関連付け情報FeCoにおいて、コンポーネントID=C4に関連付けられたフィーチャIDはない(N1:M1=0:1)。また、フィーチャ/コンポーネント関連付け情報FeCoにおいて、フィーチャID=F6には、二つのコンポーネントID=C5、C6が関連付けられている(N1:M1=1:2)。
この後、ユーザは、フィーチャ情報、コンポーネント情報、フィーチャ/コンポーネント関連付け情報からなる情報(以下、「プロダクトライン用フィーチャ図/アーキテクチャ情報FA」という)をコンピュータの記憶部に登録する(ステップS4)。
図7は、プロダクトライン用フィーチャ図/アーキテクチャ情報の要部の構成を示す図である。プロダクトライン用フィーチャ図/アーキテクチャ情報FAは、プロダクトライン用フィーチャ図/アーキテクチャID、プロダクトライン名、プロダクトライン版数、関連するプロダクトライン用フィーチャ図/アーキテクチャID、キーワードを有する。ここで、プロダクトライン用フィーチャ図/アーキテクチャIDは、フィーチャ図とアーキテクチャ(コンポーネント図)の組み合わせに対して一意に定義される。また、キーワードは、プロダクトライン用フィーチャ図/アーキテクチャ情報FAに含まれるフィーチャIDに対応するフィーチャ名、プロダクトライン用フィーチャ図/アーキテクチャ情報内に含まれるコンポーネントIDに対応するコンポーネント名、ユーザが登録時に入力した情報などから構成される。
プロダクトライン用フィーチャ図/アーキテクチャIDとこのIDに関連するプロダクトライン用フィーチャ図/アーキテクチャIDとの比は、一般にN2:M2(N2,M2は0以上の整数)の関係にある。例えば、プロダクトライン用フィーチャ図/アーキテクチャ情報FAにおいて、プロダクトライン用フィーチャ図/アーキテクチャID=FC1に関連するプロダクトライン用フィーチャ図/アーキテクチャIDはない(N2:M2=1:0)。また、プロダクトライン用フィーチャ図/アーキテクチャ情報FAにおいて、プロダクトライン用フィーチャ図/アーキテクチャID=FC2には、プロダクトライン用フィーチャ図/アーキテクチャID=FC1,FC4が関連している(N2:M2=1:2)。このうち、FC2とFC4は相互に関連している。
プロダクトライン用フィーチャ図/アーキテクチャIDとキーワードはN3:M3(N3,M3は0以上の整数)の関係にある。例えば、プロダクトライン用フィーチャ図/アーキテクチャ情報FAにおいて、プロダクトライン用フィーチャ図/アーキテクチャID=FC3には、キーワード2およびキーワード3が対応している(N3:M3=1:2)。
次に、以上説明したドメインエンジニアリングに続いて行われるアプリケーションエンジニアリングについて説明する。アプリケーションエンジニアリングは、ドメインから製品であるソフトウェアを開発するプロセスである。
アプリケーションエンジニアリングでは、まずユーザが、コンピュータを用いることにより、記憶部が記憶するプロダクトライン用フィーチャ図/アーキテクチャ情報FAを取得する(ステップS5)。ここで、ユーザは、プロダクトライン用フィーチャ図/アーキテクチャ情報FAのプロダクトライン名やキーワードなどを用いて検索を行うことにより、プロダクトライン用フィーチャ図/アーキテクチャ情報FAを容易に取得することができる。この際、ユーザは、関連するプロダクトライン用フィーチャ図/アーキテクチャIDも一緒に取得することができる。
続いて、ユーザは、コンピュータを用いて製品要求分析を行う(ステップS6)。具体的には、ユーザは、取得したプロダクトライン用フィーチャ図/アーキテクチャ情報FAに含まれるフィーチャ図から製品要求に含まれないフィーチャの削除(刈り取り)を行うことによって製品用フィーチャ図を作成し、作成した製品用フィーチャ図を含む製品用フィーチャ情報を記憶部に記憶させる。図8は、製品用フィーチャ図の構成例を示す図である。同図に示す製品用フィーチャ図Fe2では、図2に示すフィーチャ図Fe1からFeature5およびFeature7が削除されている(破線で表示)。
その後、ユーザは、コンピュータに製品アーキテクチャ抽出を実行させる(ステップS7)。製品アーキテクチャ抽出処理において、まずコンピュータは、ステップS6で作成された製品用フィーチャ図が正常であるか否かを判定する。この判定の詳細な内容については後述する。なお、図8に示す製品用フィーチャ図Fe2は、正常な製品用フィーチャ図の例を示している。
コンピュータが判定を行った結果、製品用フィーチャ図が正常である場合、コンピュータは、記憶部に記憶されたプロダクトライン用フィーチャ図/アーキテクチャ情報FAに含まれるフィーチャ/コンポーネント関連付け情報および製品用フィーチャ情報を参照し、製品要求に含まれないコンポーネントをコンポーネント図から削除して製品用アーキテクチャを自動的に生成する。
図9は、ステップS7で作成された製品用アーキテクチャである製品用コンポーネント図の構成例を示す図である。同図に示す製品用コンポーネント図Co2では、図4に示すコンポーネント図Co1からComponent7が削除されている(破線で表示)。
その後、ユーザは、コンピュータに、公知の形式表現手法を用いることによって製品用アーキテクチャが正しいか否かを事前検証させる(ステップS8)。
最後に、ユーザは、コンピュータに、事前検証によって正しいと判定された製品用アーキテクチャを実現する製品コードを生成させる(ステップS9)。このステップS9において、コンピュータは、例えば製品用コンポーネント図のコンポーネントに含まれるUMLモデル図をCコード等の所定のコードに変換することによって製品コードを生成する。これにより、アプリケーションエンジニアリングが終了する。
以上説明したプロダクトライン型のソフトウェア開発は、一つのコンピュータを用いて実行してもよいし、ステップごとに異なるコンピュータを用いて実行してもよい。また、各種情報を記憶する記憶部を複数個設けておき、インターネット等の通信ネットワークを介してデータの送受信を行いながらソフトウェア開発を実行するようにしてもよい。
上述したプロダクトライン型のソフトウェア開発のうち、少なくともステップS7の製品アーキテクチャ抽出処理は、本実施の形態に係るソフトウェア開発支援装置が実行する。以下、本実施の形態に係るソフトウェア開発支援装置の機能構成および製品用アーキテクチャ抽出処理の詳細について説明する。
図10は、本実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。同図に示すソフトウェア開発支援装置1は、キーボード、マウス、タッチパネル等のインタフェースを用いて実現される入力部2と、液晶または有機EL等からなる表示パネルや音声出力用のスピーカ等を有し、各種情報を出力する出力部3と、プロダクトライン用フィーチャ図/アーキテクチャ情報FAや製品用フィーチャ情報PFを含む各種情報を記憶する記憶部4と、ソフトウェア開発支援装置1の動作を制御する制御部5と、を備える。
記憶部4は、本実施の形態1に係るソフトウェア開発支援プログラムや所定のOSを起動するプログラム等が予め記憶されたROM、および各処理の演算パラメータやデータ等を記憶するRAM等を用いて実現される。
制御部5は、判定部51と、製品用アーキテクチャ生成部52とを有する。判定部51は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、記憶部4から取得したプロダクトライン用フィーチャ図/アーキテクチャ情報FAに含まれるフィーチャ図をもとに作成された製品用フィーチャ図において、もとのフィーチャ図から削除されたフィーチャの親フィーチャとの関連性を検証することにより、製品用フィーチャ図が正常であるか否かを判定する。製品用アーキテクチャ生成部52は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、プロダクトライン用アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことにより、製品用アーキテクチャを生成する。
制御部5は、CPU等を用いて実現され、制御対象であるソフトウェア開発支援装置1の各構成部位とバスラインを介して接続されている。制御部5は、記憶部4が記憶、格納する情報および本実施の形態に係るソフトウェア開発支援プログラムを含む各種プログラムを記憶部4から読み出すことにより、本実施の形態1に係るソフトウェア開発支援方法に関連した演算処理を実行する。
なお、本実施の形態に係るソフトウェア開発支援プログラムは、ハードディスク、フラッシュメモリ、CD−ROM、DVD−ROM、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に記録して広く流通させることも可能である。
図11は、判定部51が行う処理の概要を示すフローチャートである。図11において、判定部51は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、製品用フィーチャ図を作成する際にもとのフィーチャ図から削除されたフィーチャ(以下、「削除フィーチャ」という)に対して、親フィーチャとの関連が「必須」であるか否かを判定する(ステップS11)。判定の結果、削除フィーチャの親フィーチャとの関連が「必須」である場合(ステップS11:Yes)、判定部51は異常と判定する(ステップS12)。一方、判定の結果、削除フィーチャの親フィーチャとの関連が「必須」でない場合(ステップS11:No)、判定部51は後述するステップS13へ移行する。図12は、削除フィーチャの親フィーチャとの関連が「必須」である場合の製品用フィーチャ図の構成例を示す図である。図12に示す製品用フィーチャ図Fe3は、図2に示すフィーチャ図Fe1からFeature2, Feature5を削除したフィーチャ図である。ここで、削除フィーチャFeature2は、親フィーチャであるFeature1との関連が「必須」のフィーチャである。したがって、製品用フィーチャ図Fe3は異常なフィーチャ図である。
ステップS13において、判定部51は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、製品用フィーチャ図に存在し、かつ親フィーチャとの関連が「代替」であるフィーチャが所定の制約条件(図2に示す場合には「1以上2以下」)を満たしているか否かを判定する(ステップS13)。判定の結果、所定の制約条件を満たしていない場合(ステップS13:No)、判定部51はステップS12へ移行する。一方、判定の結果、所定の制約条件を満たしている場合(ステップS13:Yes)、判定部51は後述するステップS14へ移行する。図13は、製品用フィーチャ図に存在し、かつ親フィーチャとの関連が「代替」であるフィーチャが所定の制約条件を満たしていない場合の製品用フィーチャ図の構成例を示す図である。図13に示す製品用フィーチャ図Fe4は、図2に示すフィーチャ図Fe1からFeature4, Feature6, Feature7を削除したフィーチャ図である。ここで、削除フィーチャFeature6, Feature7は、親フィーチャであるFeature3との関連が「代替」であって制約条件が「1以上2以下」である。したがって、製品用フィーチャ図Fe4は異常なフィーチャ図である。
ステップS14において、判定部51は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、製品用フィーチャ図に存在するフィーチャに対して依存関係にあるフィーチャが削除フィーチャであるか否かを判定する(ステップS14)。判定の結果、製品用フィーチャ図に存在するフィーチャ図に対して依存関係にあるフィーチャが削除フィーチャである場合(ステップS14:Yes)、判定部51はステップS12へ移行する。一方、判定の結果、製品用フィーチャ図に存在するフィーチャに対して依存関係にあるフィーチャが削除フィーチャでない場合(ステップS14:No)、判定部51は後述するステップS15へ移行する。図14は、製品用フィーチャ図に存在するフィーチャに対して依存関係にあるフィーチャが削除フィーチャである場合の製品用フィーチャ図の構成例を示す図である。図14に示す製品用フィーチャ図Fe5は、図2に示すフィーチャ図Fe1からFeature6を削除したフィーチャ図である。ここで、削除フィーチャFeature6は、削除されていないFeature4に対して依存関係にあるフィーチャである。したがって、製品用フィーチャ図Fe5は異常なフィーチャ図である。
ステップS15において、判定部51は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照し、製品用フィーチャ図に存在するフィーチャに対して、「親フィーチャが削除され、かつその子フィーチャが未削除」という条件を満足するか否かを判定する(ステップS15)。判定の結果、上述した条件を満たす場合(ステップS15:Yes)、判定部51はステップS12へ移行する。図15は、「親フィーチャが削除され、かつその子フィーチャが未削除」という条件を満足する製品用フィーチャ図の構成例を示す図である。図15に示す製品用フィーチャ図Fe6は、図2に示すフィーチャ図Fe1からFeature3を削除したフィーチャ図であり、上述した条件を満たしている。したがって、製品用フィーチャ図Fe6は異常なフィーチャ図である。
ステップS15における判定の結果、上述した条件を満たさない場合(ステップS15:No)、判定部51は、製品用フィーチャ図が正常であると判定する(ステップS16)。正常な製品用フィーチャ図として、図8に示す製品用フィーチャ図Fe2を挙げることができる。
図16は、製品用アーキテクチャ生成部52で製品アーキテクチャの生成を行う際の処理の概要を示すフローチャートである。製品用アーキテクチャ生成部52は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAおよび製品用フィーチャ情報PFを参照することにより、全ての削除フィーチャに対して、以下に説明するステップS21〜S24の処理を個別に行う。
まず、製品用アーキテクチャ生成部52は、処理対象の削除フィーチャに関連付けられたコンポーネントを抽出する(ステップS21)。
続いて、製品用アーキテクチャ生成部52は、ステップS21で抽出したコンポーネントに関連付けられたフィーチャを抽出する(ステップS22)。
その後、製品用アーキテクチャ生成部52は、ステップS22で抽出した全てのフィーチャが削除フィーチャであるか否かをチェックする(ステップS23)。ステップS22で抽出された全てのフィーチャが削除フィーチャではない場合(ステップS23:No)、製品用アーキテクチャ生成部52は処理対象の削除フィーチャに対する一連の処理を終了する。一方、ステップS23で抽出された全てのフィーチャが削除フィーチャである場合(ステップS23:Yes)、製品用アーキテクチャ生成部52は、プロダクトライン用フィーチャ図/アーキテクチャ情報FAに含まれるプロダクトライン用アーキテクチャから、ステップS21で抽出したコンポーネントを削除する(ステップS24)。
製品用アーキテクチャ生成部52は、上述したステップS21〜S24の処理を全ての削除フィーチャに対して実行することにより、製品用コンポーネント図を生成する。
以下、図8に示す製品用フィーチャ図Fe2を例にとってより具体的な処理を説明する。製品用フィーチャ図Fe2の場合、削除フィーチャはFeature5およびFeature7である。まず、削除フィーチャがFeature5である場合を説明する。この場合、製品用アーキテクチャ生成部52は、Feature5に関連付けられたComponent5を抽出する(ステップS21)。その後、製品用アーキテクチャ生成部52は、ステップS21で抽出したComponent5に関連付けられたフィーチャとして、Feature5およびFeature6を抽出する(ステップS22)。ステップS22で抽出されたフィーチャのうち、Feature6は削除フィーチャではない(ステップS23:No)。したがって、製品用アーキテクチャ生成部52は、削除フィーチャがFeature5である場合の一連の処理を終了する。
次に、削除フィーチャがFeature7である場合を説明する。この場合、製品用アーキテクチャ生成部52は、Feature7に関連付けられたComponent7を抽出する(ステップS21)。その後、製品用アーキテクチャ生成部52は、ステップS21で抽出したComponent7に関連付けられたフィーチャとしてFeature7を抽出する(ステップS22)。ステップS22で抽出されたFeature7は削除フィーチャである(ステップS23:Yes)。そこで、製品用アーキテクチャ生成部52は、ステップS21で抽出したComponent7を削除(ステップS24)し、削除フィーチャがFeature7である場合の一連の処理を終了する。
製品用フィーチャ図Fe2の場合、上述した二つの処理によって全ての削除フィーチャに対するループ処理が終了する。なお、製品用アーキテクチャ生成部52が図16に示すループ処理を実行する際の削除フィーチャの選択順は任意に設定することができる。例えば、製品用アーキテクチャ生成部52は、図16に示すループ処理を実行する際、製品用フィーチャ図を作成する際に削除された順序にしたがって削除フィーチャを選択してもよいし、上位に位置する削除フィーチャから順に選択するようにしてもよい。
以上説明した本発明の一実施の形態によれば、プロダクトライン用フィーチャ図/アーキテクチャ情報および製品要求分析によってフィーチャ図から作成された製品用フィーチャに関連する製品用フィーチャ情報を参照し、プロダクトライン用のアーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを自動的に生成するため、プロダクトライン型のソフトウェア開発におけるアプリケーションエンジニアリングを容易にかつ効率的に行うことが可能となる。
1 ソフトウェア開発支援装置
2 入力部
3 出力部
4 記憶部
5 制御部
51 判定部
52 製品用アーキテクチャ生成部
Co1 コンポーネント図
Co11 コンポーネント情報
Co2 製品用コンポーネント図
FA プロダクトライン用フィーチャ図/アーキテクチャ情報
Fe1 フィーチャ図
Fe11 フィーチャ情報
Fe2、Fe3、Fe4、Fe5、Fe6 製品用フィーチャ図
FeCo フィーチャ/コンポーネント関連付け情報
PF 製品用フィーチャ情報

Claims (7)

  1. 再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置であって、
    ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶する記憶部と、
    前記プロダクトライン用フィーチャ図/アーキテクチャ情報および前記製品用フィーチャ情報を前記記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成部と、
    を備えたことを特徴とするソフトウェア開発支援装置。
  2. 前記アーキテクチャはUMLのコンポーネント図であり、
    前記コンポーネントはUMLのモデル図を含むことを特徴とする請求項1に記載のソフトウェア開発支援装置。
  3. 前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定部をさらに備えたことを特徴とする請求項1または2に記載のソフトウェア開発支援装置。
  4. 再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置が行うソフトウェア開発支援方法であって、
    ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成ステップ、
    を有することを特徴とするソフトウェア開発支援方法。
  5. 前記製品用アーキテクチャ生成ステップの前に、
    前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定ステップ、
    を有することを特徴とする請求項4に記載のソフトウェア開発支援方法。
  6. 再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、前記ドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発を支援するソフトウェア開発支援装置に、
    ドメイン分析によって作成されたフィーチャ図に関連するフィーチャ情報、該フィーチャ図をもとに設計されたアーキテクチャに関連するアーキテクチャ情報、および前記フィーチャ図に含まれるフィーチャと前記アーキテクチャに含まれるコンポーネントとを関連付けるフィーチャ/コンポーネント関連付け情報を含み、プロダクトラインに対応付けられたプロダクトライン用フィーチャ図/アーキテクチャ情報と、製品要求分析に基づいて前記フィーチャ図から作成された製品用フィーチャ図に関連する製品用フィーチャ情報とを記憶部から読み出して参照し、前記アーキテクチャから製品要求に含まれないコンポーネントの削除を行うことによって製品用アーキテクチャを生成する製品用アーキテクチャ生成ステップ、
    を実行させることを特徴とするソフトウェア開発支援プログラム。
  7. 前記製品用アーキテクチャ生成ステップの前に、
    前記フィーチャ情報を参照して前記フィーチャ図から前記製品用フィーチャ図を作成する際に削除されたフィーチャの親フィーチャとの関連性を検証することにより、前記製品用フィーチャ図が正常であるか否かを判定する判定ステップ、
    を実行させることを特徴とする請求項6に記載のソフトウェア開発支援プログラム。
JP2010141972A 2010-06-22 2010-06-22 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム Active JP5316485B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010141972A JP5316485B2 (ja) 2010-06-22 2010-06-22 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010141972A JP5316485B2 (ja) 2010-06-22 2010-06-22 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

Publications (2)

Publication Number Publication Date
JP2012008660A true JP2012008660A (ja) 2012-01-12
JP5316485B2 JP5316485B2 (ja) 2013-10-16

Family

ID=45539158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010141972A Active JP5316485B2 (ja) 2010-06-22 2010-06-22 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

Country Status (1)

Country Link
JP (1) JP5316485B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213593A1 (de) 2012-07-11 2014-01-16 Denso Corporation Verfahren und Vorrichtung zur Beurteilung des Erfordernisses zum Ausführen eines Integrationstests
CN110348560A (zh) * 2019-07-02 2019-10-18 河北科技大学 一种基于改进萤火虫算法优化粒子滤波的轨迹预测的方法
KR20200102264A (ko) * 2019-02-21 2020-08-31 국방과학연구소 무기체계 소프트웨어 제품 라인 공학 지원 장치 및 방법 및 이를 위한 기록매체
KR20200106783A (ko) * 2019-03-05 2020-09-15 국방과학연구소 도메인 에셋 정보 제공 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031424A (ja) * 2004-07-16 2006-02-02 Hitachi Software Eng Co Ltd ソフトウェア部品の再利用によるソフトウェア開発環境生成システム
JP2006338303A (ja) * 2005-06-01 2006-12-14 Fuji Electric Holdings Co Ltd 表記変換装置、整合性チェック装置、及びプログラム
JP2007012003A (ja) * 2005-06-28 2007-01-18 Pohang Eng College フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム
JP2009053951A (ja) * 2007-08-27 2009-03-12 Toshiba Corp ソフトウェア開発情報管理装置及びプログラム
WO2009102104A1 (en) * 2008-02-15 2009-08-20 Samsung Electronics Co., Ltd. Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031424A (ja) * 2004-07-16 2006-02-02 Hitachi Software Eng Co Ltd ソフトウェア部品の再利用によるソフトウェア開発環境生成システム
JP2006338303A (ja) * 2005-06-01 2006-12-14 Fuji Electric Holdings Co Ltd 表記変換装置、整合性チェック装置、及びプログラム
JP2007012003A (ja) * 2005-06-28 2007-01-18 Pohang Eng College フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム
JP2009053951A (ja) * 2007-08-27 2009-03-12 Toshiba Corp ソフトウェア開発情報管理装置及びプログラム
WO2009102104A1 (en) * 2008-02-15 2009-08-20 Samsung Electronics Co., Ltd. Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
JP2011510418A (ja) * 2008-02-15 2011-03-31 サムスン エレクトロニクス カンパニー リミテッド コンポーネント・モデル基盤の仮想ソフトウェア・プラットホームを生成する方法、これを利用してソフトウェア・プラットホーム・アーキテクチャを検証する方法及びその装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213593A1 (de) 2012-07-11 2014-01-16 Denso Corporation Verfahren und Vorrichtung zur Beurteilung des Erfordernisses zum Ausführen eines Integrationstests
JP2014016950A (ja) * 2012-07-11 2014-01-30 Denso Corp 結合検査要否判定方法及び装置
US8959487B2 (en) 2012-07-11 2015-02-17 Denso Corporation Method and apparatus for judging necessity of performing integration test
KR20200102264A (ko) * 2019-02-21 2020-08-31 국방과학연구소 무기체계 소프트웨어 제품 라인 공학 지원 장치 및 방법 및 이를 위한 기록매체
KR102170722B1 (ko) * 2019-02-21 2020-10-27 국방과학연구소 무기체계 소프트웨어 제품 라인 공학 지원 장치 및 방법 및 이를 위한 기록매체
KR20200106783A (ko) * 2019-03-05 2020-09-15 국방과학연구소 도메인 에셋 정보 제공 방법 및 장치
KR102170740B1 (ko) 2019-03-05 2020-10-27 국방과학연구소 도메인 에셋 정보 제공 방법 및 장치
CN110348560A (zh) * 2019-07-02 2019-10-18 河北科技大学 一种基于改进萤火虫算法优化粒子滤波的轨迹预测的方法

Also Published As

Publication number Publication date
JP5316485B2 (ja) 2013-10-16

Similar Documents

Publication Publication Date Title
US10248537B2 (en) Translation bug prediction classifier
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
JP5005510B2 (ja) ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
JP2011060277A (ja) 統合環境生成器
TW201405306A (zh) 測試用例創建系統及方法
JP5949222B2 (ja) 運用管理支援装置、方法及びプログラム
JP5316485B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム
JP2010128583A (ja) テスト容易化設計装置ならびにその方法およびプログラム
JP2018151806A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP2019164824A (ja) リソースに対するアクションへのインデックス付け
CN111143228B (zh) 基于决策表法的测试代码生成方法及装置
US8136094B2 (en) Relationship management for data modeling in an integrated development environment
JP2013084023A (ja) 仕様作成支援装置、及び、プログラム
JP2009211622A (ja) 契約定義関数検証装置、その方法及びそのプログラム
Pulgar Eat your own DevOps: a model driven approach to justify continuous integration pipelines
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP2008052359A (ja) テストケース生成装置、テストケース生成方法及びテストケース生成プログラム
JP2009223856A (ja) 支援システム、モデル生成装置、表示装置、支援方法、及び、製造方法
JPWO2013031129A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2011096111A (ja) 仕様情報管理装置および仕様情報管理プログラム
JP2013148953A (ja) プログラムテンプレート自動生成プログラムおよびプログラムテンプレート自動生成装置
JP5600826B1 (ja) 非構造化データ処理システム、非構造化データ処理方法およびプログラム
JP6109766B2 (ja) ルールテーブル生成装置、生成方法および生成プログラム
JP2013206310A (ja) モデル検査装置、モデル検査方法、およびプログラム
JP2012150740A (ja) プログラム生成装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120713

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130624

R150 Certificate of patent or registration of utility model

Ref document number: 5316485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250