JP5559356B2 - ソフトウェア開発方法及びそれのための装置 - Google Patents

ソフトウェア開発方法及びそれのための装置 Download PDF

Info

Publication number
JP5559356B2
JP5559356B2 JP2012544410A JP2012544410A JP5559356B2 JP 5559356 B2 JP5559356 B2 JP 5559356B2 JP 2012544410 A JP2012544410 A JP 2012544410A JP 2012544410 A JP2012544410 A JP 2012544410A JP 5559356 B2 JP5559356 B2 JP 5559356B2
Authority
JP
Japan
Prior art keywords
software
code
development
automatic
type
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.)
Expired - Fee Related
Application number
JP2012544410A
Other languages
English (en)
Other versions
JP2013512530A (ja
Inventor
ギョチョル カン
ヘソン イ
ジンソク ヤン
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.)
Academy Industry Foundation of POSTECH
Original Assignee
Academy Industry Foundation of POSTECH
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 Academy Industry Foundation of POSTECH filed Critical Academy Industry Foundation of POSTECH
Publication of JP2013512530A publication Critical patent/JP2013512530A/ja
Application granted granted Critical
Publication of JP5559356B2 publication Critical patent/JP5559356B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア開発方法及びそれのための装置に関し、より詳細には、ソフトウェアタイプ別コード自動生成器を利用したソフトウェアの製品ライン基盤のソフトウェア開発方法及びそれのための装置に関する。
コード自動生成器は、開発しようとするソフトウェアのタイプによって変わる。ここで、ソフトウェアタイプは、ソフトウェアが行う役割によって区分される。例えば、データを保存及び管理するソフトウェアは、データマネージャソフトウェアタイプであり、データ発信者から受けたデータ値をデータ変換規則に従って他のデータ値に変換するソフトウェアは、データ変換者ソフトウェアタイプである。
また、データ発信者から受けたデータをデータ分配規則によってデータ受信者に伝送するソフトウェアは、データ分配者ソフトウェアタイプであり、システムの状態を管理するソフトウェアは、コントローラソフトウェアタイプであり、ユーザとシステムとの間のインターフェースとしてデータを読み出してユーザに表示するソフトウェアは、モニターソフトウェアタイプである。
ソフトウェアタイプ別のコード自動生成器を定義及び開発することにより、ソフトウェアタイプが異なる多様な種類のソフトウェアを該当ソフトウェアタイプのコード自動生成器を利用して開発することができる。
また、コード自動生成器を利用してあるソフトウェアを開発しようとする時、開発しようとするソフトウェアのタイプのようなソフトウェアタイプのコード自動生成器が既に存在する場合、既存のコード自動生成器を修正及び再使用することができる。
しかし、従来のコード自動生成器を利用した単一または製品ライン基盤のソフトウェアの開発方法は、いずれも一つ種類のコード自動生成器を仮定として行われた。したがって、従来の方法は、ソフトウェアタイプが異なる多様な種類のソフトウェアを、コード自動生成器を利用して開発することが困難であった。
また、あるソフトウェアを、コード自動生成器を利用して開発しようとする時、コード自動生成器が既に存在する場合、その既存のコード自動生成器を開発しようとするソフトウェア開発に再使用できるか否かを判断しにくい問題点がある。
前記のような諸問題点を解消するために、本発明の第1の目的は、タイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発装置を提供することにある。
本発明の第2の目的は、タイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発方法を提供することにある。
上記の本発明の第1の目的を達成するための本発明の一実施形態に係るソフトウェア開発装置は、複数のソフトウェアの特徴を分析して生成したフィーチャーモデルより開発者から受信した開発対象ソフトウェアに該当するフィーチャーを選択してフィーチャーリストを生成するフィーチャー選択部と、前記開発者から受信した開発対象ソフトウェアタイプに該当するコード自動生成器を決定するコード自動生成器選択部と、前記開発対象ソフトウェアタイプを利用して開発対象ソフトウェアのアーキテクチャコンポーネントを選択し、前記選択したアーキテクチャコンポーネント及び前記開発者から受信した前記決定されたコード自動生成器の要求事項に基づいて自動生成されたコードを生成するコード自動生成部と、前記生成されたフィーチャーリストに基づいて前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードを変更して適応されたコードを出力する適応部と、前記適応されたコードからドメインのライブラリを呼び出す部分を実際のドメインライブラリを呼び出す部分と連結して最終生成コードを生成する連結部とを含んで構成することができる。
上記の本発明の第2の目的を達成するための本発明の一実施形態に係るソフトウェア開発方法は、複数のソフトウェアの特徴を分析して生成したフィーチャーモデルより開発者から受信した開発対象ソフトウェアに該当するフィーチャーを選択してフィーチャーリストを生成するステップと、前記開発者から受信した開発対象ソフトウェアタイプに該当するコード自動生成器を決定するステップと、前記開発対象ソフトウェアタイプを利用して開発対象ソフトウェアのアーキテクチャコンポーネントを選択し、前記選択したアーキテクチャコンポーネント及び前記開発者から受信した前記決定されたコード自動生成器の要求事項に基づいて自動生成されたコードを生成するステップと、前記生成したフィーチャーリストに基づいて前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードを変更して適応されたコードを出力するステップと、前記適応されたコードからドメインのライブラリを呼び出す部分を実際のドメインライブラリを呼び出す部分と連結して最終生成コードを生成するステップとを含んで構成することができる。
上述のような本発明の一実施形態に係るソフトウェアタイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発方法及びそれのための装置を利用する場合、ソフトウェアタイプが異なる多様な種類のソフトウェアを、該当ソフトウェアタイプ別コード自動生成器を利用して開発することができる。
また、既に開発されたソフトウェアタイプ別コード自動生成器のようなソフトウェアタイプの他のソフトウェアを、コード自動生成器を利用して製品ライン基盤のソフトウェア開発方法で開発しようとする時、該当ソフトウェアタイプ別コード自動生成器を修正及び再利用することができる効果がある。
図1は、本発明の一実施形態に係るソフトウェア開発装置の内部構造を概略的に示したブロック図である。 図2は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成器選択部により選択されたデータ変換者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。 図3は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成器選択部により選択されたデータ分配者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。 図4は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成器選択部により選択されたコントローラソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。 図5は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成器選択部により選択されたデータ変換者+データ分配者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。 図6は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成部から生成されたコードをソフトウェア骨組コードに満たした後適応部が自動生成されたコード及び選択された開発するソフトウェアのアーキテクチャコンポーネントのコードの中でフィーチャーのリストによって変更して適応するコードを示した例示図である。 図7は、本発明の一実施形態に係るソフトウェアタイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発装置を利用して開発されるソフトウェアの内部構造を概略的に示したブロック図である。 図8は、本発明の一実施形態に係るソフトウェア開発方法を説明するためのフローチャートである。
本発明は、多様に変更可能であり、さまざまな実施形態を有することができる。ここでは、特定の実施形態を図面に例示して詳細に説明する。しかし、これは本発明の好ましい実施態様に過ぎず、本発明の実施の範囲を限定するものではなく、本発明の明細書及び図面内容に基づいてなされた均等な変更および付加は、いずれも本発明の特許請求の範囲内に含まれるものとする。各図面の説明において、類似な構成要素に対して類似な参照符号を付与して説明する。
第1、第2、A、Bなどの用語は、多様な構成要素を説明するために使用することはできるが、前記構成要素は前記用語により限定されるものではない。前記用語は、一つの構成要素を他の構成要素から区別するための目的のみで使用される。例えば、本発明の権利範囲を脱しない範囲で、第1の構成要素は第2の構成要素と命名することができ、類似に第2の構成要素も第1の構成要素と命名することができる。及び/またはとの用語は、複数の関連、記載された項目の組み合わせまたは複数の関連、記載された項目の中のいずれか一項目を含む。
ある構成要素が他の構成要素に「連結されて」いるか、あるいは「接続されて」いると記載している場合は、ある構成要素が他の構成要素に直接的に連結されるかあるいは接続されていることもあるが、間に他の構成要素が介在することもあることを意味する。一方、ある構成要素が他の構成要素に「直接連結されて」いるかあるいは「直接接続されて」いると記載している場合は、中間に他の構成要素が存在しないことを意味する。
本明細書で使用した用語は、単に、特定の実施形態を説明するために使用されたものであり、本発明を限定するものではない。単数の表現は、文脈上明白に異なる記載をしない限り複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するのであって、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加可能性をあらかじめ排除することではない。
異なる定義のない限り、技術的や科学的な用語を含んでここで使用されるすべての用語は、本発明が属する技術分野で通常の知識を有する者により一般的に理解される意味と同一な意味を有する。一般的に使用される辞典に定義されているものと同様の用語は、関連技術の文脈上有する意味と一致することと解釈されるべく、本出願において明白に定義しない限り、理想的や過度に形式的な意味を有することで解釈されない。
以下、添付した図面を参照して本発明の好ましい実施形態について詳細に説明する。
本発明を説明する前に、一般的なソフトウェア開発方法について説明する。まず、ソフトウェア製品ラインを基盤としてソフトウェア開発方法を説明する。ソフトウェア製品ライン基盤のソフトウェア開発方法は、ソフトウェアを各々個別的に開発しないで類似のサービスを提供するソフトウェアをともに考慮して開発する方法である。
すなわち、同一領域に属した多くのソフトウェアの機能的側面と品質を考慮して共通点と差異点の分析を通じて十分な核心資産を確保し、その核心資産を組み合わせて希望するソフトウェアを開発する方法によって、共通の資産を再利用して開発期間を短縮させ生産性を高めて良い品質を有したソフトウェアを開発することができる。
次に、コード自動生成器を利用したソフトウェア開発方法について説明する。ソフトウェア製品ラインを基盤としたソフトウェア開発方法にはさまざまな方法があるが、その中で一つの方法として、コード自動生成器を利用してソフトウェア製品ライン基盤のソフトウェアを開発する方法がある。
コード自動生成器は、モデルからソフトウェアのソースコードを自動で生成するシステムとして、人間が手動でソースコードを開発する時よりソフトウェア開発に必要な人力、価格及び時間を減らしてソフトウェアの生産性を高めることができる。
次に、コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発方法について説明する。コード自動生成器を利用した単一ソフトウェア開発方法が多様なソフトウェアドメインで研究された。
しかし、コード自動生成器を利用した単一ソフトウェア開発方法は、単一ソフトウェア開発を対象とするため、ソフトウェアをともに考慮して開発するソフトウェア製品ライン基盤のソフトウェア開発に適用しにくい問題点がある。コード自動生成器を利用してソフトウェア製品ライン基盤のソフトウェアを開発した研究がある。
どころが、従来の研究は、コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発のために具体的にどのようなシステムがどのように結合して構成され、どのようなプロセスを通じて製品ライン基盤のソフトウェアが開発されるかが明確に提示していない。以下、図1を参照して本発明の一実施形態に係るソフトウェア開発装置の内部構造についてより具体的に説明する。
図1は、本発明の一実施形態に係るソフトウェア開発装置の内部構造を概略的に示したブロック図である。
図1を参照すると、ソフトウェア開発装置は、ユーザインターフェース100と、フィーチャー選択部101と、コード自動生成器選択部102と、コード自動生成部103と、適応部104と、連結部105と、制御部106と、保存部107とを含んで構成することができる。保存部107は、コード自動生成器保存ユニット(図示せず)、アーキテクチャモデル保存ユニット(図示せず)及びドメインライブラリ保存ユニット(図示せず)を含んで構成することができる。
ユーザインターフェース100は、ソフトウェアタイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェアを開発しようとする開発者と、フィーチャー選択部101、コード自動生成器選択部102、コード自動生成部103、適応部104及び連結部105との間の入力及び出力を媒介する。
フィーチャー選択部101は、ソフトウェア製品ラインのソフトウェア製品ラインに属する複数のソフトウェアの共通点及び差異点をフィーチャー単位に分析して生成されたフィーチャーモデルを基礎に、ユーザインターフェース100を通じて開発者から開発するソフトウェアに該当するフィーチャーを受信してフィーチャーのリストを生成する。
ここで、フィーチャーモデルは、ソフトウェア製品ラインに属する複数のソフトウェアに含まれる共通点である共通フィーチャーと、ソフトウェア製品ラインに属する複数のソフトウェアによって複数のソフトウェアに含まれるか含まれない差異点である可変フィーチャーとを分析して生成されたモデルである。
コード自動生成器選択部102は、ユーザインターフェース100を通じて開発者からソフトウェアタイプリストに含まれた複数のソフトウェアタイプの中で開発するソフトウェアタイプを受信し、受信された開発するソフトウェアタイプに該当するコード自動生成器を制御部106の制御により自動生成器保存ユニットから選択する。
例えば、コード自動生成器選択部102は、ユーザインターフェース100を通じて開発者からソフトウェアタイプリストに含まれた複数のソフトウェアタイプの中で開発するソフトウェアタイプであるデータマネージャーソフトウェアタイプ、データ変換者ソフトウェアタイプ、データ分配者ソフトウェアタイプ、コントローラソフトウェアタイプ及びモニターソフトウェアタイプを受信することができるが、これに限定されるものではない。
本発明の一実施形態によれば、データマネージャーソフトウェアタイプは、データを保存及び管理するソフトウェアとして、外部からデータの読み取り、書き込み、削除などの要請を受信し、受信されたデータの読み取り、書き込み、削除などの要請を処理する時、データベースに接続してデータの読み取り、書き込み、削除などの作業を実行する。データ変換者ソフトウェアタイプは、データ発信者から受信したデータをデータ変換規則によって他のデータ値に変換させるソフトウェアである。
本発明の一実施形態によれば、データ分配者ソフトウェアタイプは、データ発信者から受信したデータをデータ分配規則によってデータ受信者に伝送する役割をするソフトウェアであり、コントローラソフトウェアタイプは、システムの状態(State)を管理するソフトウェアとして、現在状態の条件によってあらかじめ決定された動作(Action)を行う役割をするソフトウェアであり、モニターソフトウェアタイプは、ユーザとシステムとの間のインターフェースとして、データを読み取ってユーザに表示する役割をするソフトウェアである。
本発明の一実施形態によれば、ソフトウェアは、二つの以上のソフトウェアタイプを有することができ、例えば、データ変換者ソフトウェアタイプとデータ分配者ソフトウェアタイプを有するソフトウェアは、データ発信者から受信したデータをデータ変換規則によって他のデータ値に変換させ、データ分配規則によってデータ受信者に伝送する役割をするソフトウェアである。
コード自動生成部103は、制御部106の制御により開発するソフトウェアタイプを利用してアーキテクチャモデル保存ユニットから開発するソフトウェアのアーキテクチャコンポーネントを選択し、ユーザインターフェース100を通じて開発者からコード自動生成器選択部102により選択されたコード自動生成器の要求事項を受信して開発するソフトウェアタイプに該当する自動生成されたコードを生成する。
本発明の一実施形態によれば、ユーザインターフェース100を通じて開発者からコード自動生成器選択部102により選択されたコード自動生成器の要求事項を受信し、この時、受信されたコード自動生成器の要求事項は、フィーチャー選択部101から選択されたフィーチャーのリストによって変更部分及び適応される部分を含むことができる。
本発明の一実施形態によれば、ユーザインターフェース100を通じて開発者からコード自動生成器選択部102により選択されたコード自動生成器の要求事項は、ソフトウェアのタイプによって選択されるデータ変換者ソフトウェアタイプのコード自動生成器、データ分配者ソフトウェアタイプのコード自動生成器、コントローラソフトウェアタイプのコード自動生成器、及びデータ変換者+データ分配者ソフトウェアタイプのコード自動生成器の中で少なくとも一つのコード自動選択機によって異なる。
この時、ソフトウェアタイプに該当するコード自動生成器は、本発明で記述した内容に限定されないで、他のソフトウェアタイプのためのソフトウェアタイプ別コード自動生成器を定義することができる。また、本発明は、多様な形態に具現することができ、ここで説明する例に限定されるものではない。
適応部104は、コード自動生成部103から生成された自動生成されたコード及び選択された開発するソフトウェアのアーキテクチャコンポーネントのコードの中でフィーチャーのリストによって変更部分及び適応される部分をフィーチャー選択部101から選択されたフィーチャーリストによって変更して適応されたコードを出力する。
ここで、適応されたコードには、フィーチャー選択部101から選択されたフィーチャーのリストによって変更及び適応される部分が抜けているが使用可能なドメインライブラリを呼び出す部分が含まれている。連結部105は、適応部104から適応されたコードでドメインのライブラリを呼び出す部分と制御部106の制御によりドメインライブラリの保存ユニットから選択された実際のドメインライブラリを呼び出す部分とを連結して最終生成コードを生成する。
コード自動生成器保存ユニットは、あらかじめ開発されているソフトウェアタイプに該当するコード自動生成器を保存している。アーキテクチャモデル保存ユニットは、ソフトウェアタイプに該当するソフトウェアアーキテクチャモデルを保存している。ドメインライブラリ保存ユニットは、ソフトウェアドメインで使われるライブラリを保存している。
制御部106は、コード自動生成器選択部102がユーザインターフェース100を通じて開発者からソフトウェアタイプリストに含まれた複数のソフトウェアタイプの中で開発するソフトウェアタイプを受信してコード自動生成器を選択する場合、ユーザインターフェース100を通じて開発者から受信された開発するソフトウェアタイプに該当するコード自動生成器が自動生成器保存ユニットから選択されるように制御する。
制御部106は、コード自動生成部103が開発するソフトウェアタイプを利用して開発するソフトウェアのアーキテクチャコンポーネントを選択する場合、開発するソフトウェアのアーキテクチャコンポーネントがアーキテクチャモデル保存ユニットから選択されるように制御する。また、制御部106は、連結部105が適応されたコードからドメインのライブラリを呼び出す部分と実際のドメインライブラリを呼び出す部分を連結する場合、ドメインライブラリ保存ユニットから選択された実際のドメインライブラリを呼び出す部分が選択されるように制御する。
以下、図2乃至図5を参照して本発明の一実施形態に係るソフトウェア開発装置のコード自動生成器選択部102により選択されたコード自動生成器の要求事項をより具体的に説明する。
図2は、本発明の一実施形態に係るソフトウェアタイプ別ソフトウェア開発装置のコード自動生成器選択部により選択されたデータ変換者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。
図2を参照すると、データ変換者ソフトウェアタイプのソフトウェアがデータ発信者200からデータ−Aを受信すれば、受信されたデータ−Aは、データ変換規則201、例えば、受信されたデータ−Aの内容がaである場合という規則の変換規則201を通じて受信されたデータ−Aをデータ−Bに変換する。このような関係は、データ発信者*データ、変換条件、そして動作を各列とする判断テーブル203で示すことができる。コード自動生成部103は、判断テーブル203を利用してデータ変換者ソフトウェアタイプを有するソフトウェアの自動生成されたコードを自動で生成することができる。
図3は、本発明の一実施形態に係るソフトウェアタイプ別ソフトウェア開発装置のコードにより選択されたデータ分配者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。
図3を参照すると、データ分配者ソフトウェアタイプのソフトウェアがデータ発信者からデータ−Aを受信すれば、受信されたデータ−Aは、データ分配規則301、例えば、受信されたデータ−Aの内容がaである場合という規則の分配規則301を通じて受信されたデータ−Aをデータ受信者302に伝達する。このような関係は、データ発信者*データ、条件、そして動作を各列とする判断テーブル303で示すことができる。コード自動生成部103は、判断テーブル303からデータ分配者ソフトウェアタイプを有するソフトウェアの自動生成されたコードを自動で生成することができる。
図4は、本発明の一実施形態に係るソフトウェアタイプ別ソフトウェア開発装置のコード自動生成器選択部により選択されたコントローラーソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。
図4を参照すると、コントローラソフトウェアタイプのソフトウェアは、システムの多くの状態を管理する。例えば、システムの各状態で発生可能な条件が存在し、発生可能な条件を満足した場合に、コントローラソフトウェアタイプのソフトウェアは関数を呼び出すか他の状態に変更する。
本発明の一実施形態によれば、コントローラソフトウェアタイプのソフトウェアは、システムの第1状態401乃至第4状態404を管理し、システムの状態が第1状態401の場合に、第1条件が満足した場合、第1状態401を第2状態402に変更し、システムの状態が第1状態401の場合に、第2条件が満足した場合、第1状態401を第3状態403に変更し、システムの状態が第3状態403の場合に、第3条件を満足した場合、第3状態403を第1状態401に変更する。
このような関係は、状態、条件、そして動作を各列とするステートチャート計算機405で示すことができ、コード自動生成部103はステートチャート計算機405を利用してコントローラソフトウェアタイプを有するソフトウェアの自動生成されたコードを自動で生成することができる。
図5は、本発明の一実施形態に係るソフトウェアタイプ別ソフトウェア開発装置のコード自動生成器選択部102により選択されたデータ変換者+データ分配者ソフトウェアタイプのコード自動生成器の要求事項を示した例示図である。
図5を参照すると、データ変換者+データ分配者ソフトウェアタイプのソフトウェアはデータ発信者500からデータ−Aを受信し、受信されたデータ−Aをデータ変換規則及びデータ分配規則501を通じてデータ−Aをデータ−Bに変換し、変換されたデータ−Bをデータ受信者502に伝達する。
このような関係は、データ変換者の判断テーブル203とデータ分配者の判断テーブル303が合された形態である、データ発信者*データ、条件、動作を各列に有する判断テーブル503で示すことができる。
コード自動生成部103は、判断テーブル503を利用してデータ変換者+データ分配者ソフトウェアタイプを有するソフトウェアの自動生成されたコードを自動で生成することができる。以下、図6を参照して本発明の一実施形態に係るソフトウェア開発装置のコード自動生成部103から生成されたコードをソフトウェア骨組コードに満たした後、適応部104が自動生成されたコード及び選択された開発するソフトウェアのアーキテクチャコンポーネントのコードの中でフィーチャーのリストによって変更して適応するコードをより具体的に説明する。
図6は、本発明の一実施形態に係るソフトウェア開発装置のコード自動生成部103が自動生成されたコードをソフトウェア骨組コードに満たした後、適応部が自動生成されたコード及び選択された開発するソフトウェアのアーキテクチャコンポーネントのコードの中でフィーチャーのリストによって変更して適応するコードを示した例示図である。
図6を参照すると、コード自動生成部103は、制御部106の制御により開発するソフトウェアタイプを利用してアーキテクチャモデル保存ユニットから開発するソフトウェアのアーキテクチャコンポーネントを選択し、ユーザインターフェース100を通じて開発者からコード自動生成器選択部102により選択されたコード自動生成器の要求事項を受信して開発するソフトウェアタイプに該当する自動生成されたコード600a、600bを生成し、生成された自動生成コード600a、600bでソフトウェアアーキテクチャコンポーネントであるドメインコンポーネント、例えば、ソフトウェアドメインコンポーネント602及びソフトウェア骨組コード601で実現されなかった部分を満たす。
適応部104は、ソフトウェア骨組コード及び自動生成されたコードをフィーチャー選択部101から選択されたフィーチャーリストによって変更して適応されたコードを出力することができる。
ここで、適応されたコードには、ドメインライブラリを呼び出す部分が含まれており、ソフトウェアドメインコンポーネント602及び自動生成されたコード600a、600bは、フィーチャー選択部101から選択されたフィーチャーリストによって差異点に該当する適応されるコード部分603a、603bを含むことができる。
適応部104は、ソフトウェア骨組コード及び自動生成されたコードをフィーチャー選択部101から選択されたフィーチャーリストと比較することによって発生する差異点に該当する適応されるコード部分603a、603bをソフトウェアコードに含ませないこともできる。
連結部105は、適応部104から適応されたコードでドメインのライブラリを呼び出す部分とソフトウェアドメインコンポーネントのライブラリを呼び出す部分とを連結して最終生成コードを生成する。
以下、図7を参照して本発明の一実施形態に係るソフトウェアタイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発装置を利用して開発されるソフトウェアの内部構造をより具体的に説明する。
図7は、本発明の一実施形態に係るソフトウェアタイプ別コード自動生成器を利用したソフトウェア製品ライン基盤のソフトウェア開発装置を利用して開発されるソフトウェアの内部構造を概略的に示したブロック図である。
図7を参照すると、データベース701は、データを保存し、ミドルウェア702と相互呼び出しを行う。ミドルウェア702は、開発しようとするソフトウェアドメインコンポーネント703と相互呼び出しを行う。
ソフトウェアドメインコンポーネント703は、開発しようとするソフトウェアのドメインで共通的に使う機能をコンポーネント化させるためのもので、ソフトウェア骨組コード及び自動生成されたコード704と相互呼び出しを行う。
ソフトウェア骨組コード及び自動生成されたコード704は、ソフトウェア骨組コードの具現されなかった部分を自動生成されたコードで満たすことにより生成された自動生成されたコードを保存する。
ここで、ソフトウェア骨組コードは、ソフトウェアに特化されたインターフェースが定義されているコードとして関数内部が実現されていない、アルゴリズムが精製されていないコードであり、自動生成されたコードは、コード自動生成部103から自動的に生成されたソフトウェアに特化されたコードである。以下、図8を参照して本発明の一実施形態に係るソフトウェア開発方法をより具体的に説明する。
図8は、本発明の一実施形態に係るソフトウェア開発方法を説明するためのフローチャートである。
図8を参照すると、ソフトウェア開発装置は、ソフトウェア製品ラインのソフトウェア製品ラインに属する複数のソフトウェアの共通点及び差異点をフィーチャー単位に分析して生成されたフィーチャーモデルに基づいて開発者から開発するソフトウェアに該当するフィーチャーを受信してフィーチャーのリストを生成する(ステップS801)。
ここで、フィーチャーモデルは、ソフトウェア製品ラインに属する複数のソフトウェアに含まれる共通点である共通フィーチャーと、ソフトウェア製品ラインに属する複数のソフトウェアによって複数のソフトウェアに含まれるか含まれない差異点である可変フィーチャーとを分析して生成されたモデルである。
ソフトウェア開発装置は、開発者からソフトウェアタイプリストに含まれた複数のソフトウェアタイプの中から開発するソフトウェアタイプを受信し、受信された開発するソフトウェアタイプに該当するコード自動生成器を選択する(ステップS802)。
ソフトウェア開発装置は、開発者からソフトウェアタイプリストに含まれた複数のソフトウェアタイプの中で開発するソフトウェアタイプであるデータマネージャーソフトウェアタイプ、データ変換者ソフトウェアタイプ、データ分配者ソフトウェアタイプ、コントローラソフトウェアタイプ及びモニターソフトウェアタイプを受信することができて、これに限定されるものではない。
本発明の一実施形態によれば、データマネージャーソフトウェアタイプは、データを保存及び管理するソフトウェアとして、外部からデータの読み取り、書き込み、削除などの要請を受信し、受信されたデータの読み取り、書き込み、削除などの要請を処理する時、データベースに接続してデータの読み取り、書き込み、削除などの作業を行い、データ変換者ソフトウェアタイプは、データ発信者から受信したデータをデータ変換規則によって他のデータ値に変換させるソフトウェアである。
本発明の一実施形態によれば、データ分配者ソフトウェアタイプは、データ発信者から受信したデータをデータ分配規則によってデータ受信者に伝送する役割をするソフトウェアであり、コントローラソフトウェアタイプは、システムの状態(State)を管理するソフトウェアとして、現在状態の条件によってあらかじめ決定された動作(Action)を行う役割をするソフトウェアであり、モニターソフトウェアタイプは、ユーザとシステムとの間のインターフェースとして、データを読み取ってユーザに表示する役割をするソフトウェアである。
本発明の一実施形態によれば、ソフトウェアは、二つの以上のソフトウェアタイプを有することができ、例えば、データ変換者ソフトウェアタイプとデータ分配者ソフトウェアタイプを有するソフトウェアは、データ発信者から受信したデータをデータ変換規則によって他のデータ値に変換させ、データ分配規則によってデータ受信者に伝送する役割をするソフトウェアである。
次に、開発者から開発するソフトウェアタイプに該当するソフトウェアのアーキテクチャコンポーネントを受信し、開発者からコード自動生成器の要求事項を受信して開発するソフトウェアタイプに該当する自動生成されたコードを生成する(ステップS803)。
本発明の一実施形態によれば、ソフトウェア開発装置は、開発者からコード自動生成器選択部102により選択されたコード自動生成器の要求事項を受信し、この時、受信されたコード自動生成器の要求事項は、フィーチャーのリストによって変更部分及び適応される部分を含むことができる。
本発明の一実施形態によれば、開発者から受信されたコード自動生成器の要求事項は、ソフトウェアのタイプによって選択されるデータ変換者ソフトウェアタイプのコード自動生成器、データ分配者ソフトウェアタイプのコード自動生成器、コントローラソフトウェアタイプのコード自動生成器、及びデータ変換者+データ分配者ソフトウェアタイプのコード自動生成器の内少なくとも一つのコード自動選択器によって異なる。
この時、ソフトウェアタイプに該当するコード自動生成器は、本発明で記述した内容に限定されなく、他のソフトウェアタイプのためのソフトウェアタイプ別コード自動生成器を定義することができる。また、本発明は多様な形態に具現することができ、ここで説明する例に限定されるものではない。
次に、自動生成されたコード及び開発するソフトウェアのアーキテクチャコンポーネントのコードの中でフィーチャーのリストによって変更部分及び適応される部分をフィーチャーのリストによって変更して適応されたコードを出力する(ステップS804)。
ここで、適応されたコードには、フィーチャーのリストによって変更及び適応される部分が抜けているが、使用可能なドメインライブラリを呼び出す部分が含まれている。出力された適応されたコードでドメインのライブラリを呼び出す部分を実際のドメインライブラリを呼び出す部分と連結して最終生成コードを生成する(ステップS805)。
以上、添付した図面を参照して本発明の実施形態について説明したが、本発明が属する技術の分野における通常の知識を有する者であれば、本発明の技術的思想を逸脱しない範囲内で、様々な置換、変形及び変更が可能であるので、上述の実施形態及び添付された図面に限定されるものではない。

Claims (17)

  1. 複数のソフトウェアの特徴を分析して生成したフィーチャーモデルで開発者から受信した開発対象ソフトウェアに該当するフィーチャーを選択してフィーチャーリストを生成するフィーチャー選択部と、
    前記開発者から受信した開発対象ソフトウェアタイプに該当するコード自動生成器を決定するコード自動生成器選択部と、
    前記開発対象ソフトウェアタイプを利用して開発対象ソフトウェアのアーキテクチャコンポーネントを選択し、前記選択したアーキテクチャコンポーネント及び前記開発者から受信した前記決定したコード自動生成器の要求事項に基づいて自動生成されたコードを生成するコード自動生成部と、
    前記生成したフィーチャーリストと、前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードとを比較することにより生じた差異点に対応するコード部分を、前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードから除外し、前記差異点に対応するコード部分を含まない前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードである適応されたコードを出力する適応部と、
    前記適応されたコードでドメインのライブラリを呼び出す部分を実際のドメインライブラリを呼び出す部分と連結して最終生成コードを生成する連結部とを含むソフトウェア開発装置。
  2. 前記ソフトウェア開発装置は、
    前記開発者と、前記フィーチャー選択部、コード自動生成器選択部及びコード自動生成部それぞれとの間の入力及び出力を制御するユーザインターフェースをさらに含むことを特徴とする請求項1に記載のソフトウェア開発装置。
  3. 前記ソフトウェア開発装置は、
    あらかじめ開発された複数のコード自動生成器、複数のソフトウェアアーキテクチャコンポーネント及びソフトウェアドメインコンポーネントで使われるライブラリをソフトウェアタイプ別に各々保存する保存部をさらに含むことを特徴とする請求項1に記載のソフトウェア開発装置。
  4. 前記ソフトウェア開発装置は、
    前記開発者から受信された開発対象ソフトウェアタイプに該当するコード自動生成器が保存部にソフトウェアタイプ別に保存されたあらかじめ開発された複数のコード自動生成器から選択されるように制御する制御部をさらに含むことを特徴とする請求項1に記載のソフトウェア開発装置。
  5. 前記制御部は、
    前記開発者から受信された開発対象ソフトウェアタイプに該当するアーキテクチャコンポーネントが前記保存部にソフトウェアタイプ別に保存された複数のソフトウェアアーキテクチャコンポーネントから選択されるように制御することを特徴とする請求項4に記載のソフトウェア開発装置。
  6. 前記制御部は、
    適応されたコードでドメインのライブラリを呼び出す部分と連結される部分が前記保存部に保存されたライブラリから選択されるように制御することを特徴とする請求項4に記載のソフトウェア開発装置。
  7. 前記コード自動生成部は、
    前記開発対象ソフトウェアのアーキテクチャコンポーネントのソフトウェア骨組コードで具現されていない部分を前記自動生成されたコードを利用して満たすことを特徴とする請求項1に記載のソフトウェア開発装置。
  8. 前記フィーチャーモデルは、
    ソフトウェア製品ラインに属する複数のソフトウェアに含まれる共通点及び差異点をフィーチャー単位に分析して生成されたモデルであることを特徴とする請求項1に記載のソフトウェア開発装置。
  9. 前記要求事項は、
    前記開発対象ソフトウェアタイプによって変更されることを特徴とする請求項1に記載のソフトウェア開発装置。
  10. ソフトウェア開発装置で実行されるソフトウェア開発方法であって、
    複数のソフトウェアの特徴を分析して生成したフィーチャーモデルで開発者から受信した開発対象ソフトウェアに該当するフィーチャーを選択してフィーチャーリストを生成するステップと、
    前記開発者から受信した開発対象ソフトウェアタイプに該当するコード自動生成器を決定するステップと、
    前記開発対象ソフトウェアタイプを利用して開発対象ソフトウェアのアーキテクチャコンポーネントを選択し、前記選択したアーキテクチャコンポーネント及び前記開発者から受信した前記決定したコード自動生成器の要求事項に基づいて自動生成されたコードを生成するステップと、
    前記生成したフィーチャーリストと、前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードとを比較することにより生じた差異点に対応するコード部分を、前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードから除外し、前記差異点に対応するコード部分を含まない前記自動生成されたコード及び前記アーキテクチャコンポーネントのコードである適応されたコードを出力するステップと、
    前記適応されたコードでドメインのライブラリを呼び出す部分を実際のドメインライブラリを呼び出す部分と連結して最終生成コードを生成するステップと、を含むことを特徴とするソフトウェア開発方法。
  11. 前記ソフトウェア開発方法は、
    あらかじめ開発された複数のコード自動生成器、複数のソフトウェアアーキテクチャコンポーネント及びソフトウェアドメインコンポーネントで使われるライブラリをソフトウェアタイプ別に各々保存するステップをさらに含むことを特徴とする請求項10に記載のソフトウェア開発方法。
  12. 前記ソフトウェア開発方法は、
    前記開発者から受信された開発対象ソフトウェアタイプに該当するコード自動生成器がソフトウェアタイプ別に保存されたあらかじめ開発された複数のコード自動生成器から選択されるように制御するステップをさらに含むことを特徴とする請求項10に記載のソフトウェア開発方法。
  13. 前記制御するステップは、
    前記開発者から受信された開発対象ソフトウェアタイプに該当するアーキテクチャコンポーネントがソフトウェアタイプ別に保存された複数のソフトウェアアーキテクチャコンポーネントから選択されるように制御することを特徴とする請求項12に記載のソフトウェア開発方法。
  14. 前記制御するステップは、
    適応されたコードでドメインのライブラリを呼び出す部分と連結される部分が前記ソフトウェアタイプ別に保存されたライブラリで選択されるように制御することを特徴とする請求項12に記載のソフトウェア開発方法。
  15. 前記自動生成されたコードを生成するステップは、
    前記開発対象ソフトウェアのアーキテクチャコンポーネントのソフトウェア骨組コードで具現されていない部分を前記自動生成されたコードを利用して満たすことを特徴とする請求項10に記載のソフトウェア開発方法。
  16. 前記フィーチャーモデルは、
    ソフトウェア製品ラインに属する複数のソフトウェアに含まれる共通点及び差異点をフィーチャー単位に分析して生成されたモデルであることを特徴とする請求項10に記載のソフトウェア開発方法。
  17. 前記要求事項は、
    前記開発対象ソフトウェアタイプによって変更されることを特徴とする請求項10に記載のソフトウェア開発方法。
JP2012544410A 2010-11-18 2011-10-18 ソフトウェア開発方法及びそれのための装置 Expired - Fee Related JP5559356B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2010-0115218 2010-11-18
KR1020100115218A KR101155207B1 (ko) 2010-11-18 2010-11-18 소프트웨어 개발 방법 및 이를 위한 장치
PCT/KR2011/007751 WO2012067351A2 (ko) 2010-11-18 2011-10-18 소프트웨어 개발 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
JP2013512530A JP2013512530A (ja) 2013-04-11
JP5559356B2 true JP5559356B2 (ja) 2014-07-23

Family

ID=46084457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012544410A Expired - Fee Related JP5559356B2 (ja) 2010-11-18 2011-10-18 ソフトウェア開発方法及びそれのための装置

Country Status (7)

Country Link
US (1) US9268544B2 (ja)
JP (1) JP5559356B2 (ja)
KR (1) KR101155207B1 (ja)
CN (1) CN102893258A (ja)
DE (1) DE112011100069T5 (ja)
GB (1) GB2488080A (ja)
WO (1) WO2012067351A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101558727B1 (ko) 2014-01-06 2015-10-08 강원대학교산학협력단 진화적 소프트웨어 제품 라인을 위한 산출물 버전 관리 방법
US20160098256A1 (en) * 2014-10-03 2016-04-07 General Motors Llc Visual tool and architecting logical layers of software components
JP2016081152A (ja) * 2014-10-14 2016-05-16 日本電気株式会社 プロダクトライン構築装置、プロダクトライン構築方法、プロダクトライン構築プログラム
WO2016122481A1 (en) * 2015-01-28 2016-08-04 Hewlett Packard Enterprise Development Lp Product portfolio rationalization
KR101722392B1 (ko) * 2015-10-06 2017-04-05 숭실대학교산학협력단 형상 관리 시스템 및 방법
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
CN109597814B (zh) * 2018-12-06 2021-02-02 广州及包子信息技术咨询服务有限公司 一种后台管理信息系统的在线快速交付系统
KR102706150B1 (ko) 2019-04-16 2024-09-13 삼성전자주식회사 서버 및 그 제어 방법
US20230418564A1 (en) 2020-06-16 2023-12-28 Engineer.ai Corp Systems and methods for creating software
CN112000366B (zh) * 2020-08-26 2024-02-23 中国银行股份有限公司 基于代码生成器的系统参数配置方法及装置
WO2023148987A1 (ja) * 2022-02-07 2023-08-10 日立Astemo株式会社 演算装置、ソフトウエア部品選択方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816380A (ja) * 1994-07-04 1996-01-19 Fujitsu Ltd プログラム構築装置
JPH11237982A (ja) * 1998-02-23 1999-08-31 Ricoh Co Ltd ソフトウェア部品開発支援装置
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
US7243334B1 (en) * 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
US7746347B1 (en) * 2004-07-02 2010-06-29 Nvidia Corporation Methods and systems for processing a geometry shader program developed in a high-level shading language
US7761848B1 (en) 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
KR100744886B1 (ko) * 2005-06-28 2007-08-01 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템
JP2009223856A (ja) * 2008-03-19 2009-10-01 Network Oyo Gijutsu Kenkyusho:Kk 支援システム、モデル生成装置、表示装置、支援方法、及び、製造方法
US9324175B2 (en) * 2009-09-11 2016-04-26 Nvidia Corporation Memory coherency in graphics command streams and shaders

Also Published As

Publication number Publication date
GB2488080A (en) 2012-08-15
US9268544B2 (en) 2016-02-23
CN102893258A (zh) 2013-01-23
US20120240100A1 (en) 2012-09-20
DE112011100069T5 (de) 2012-10-18
GB201209661D0 (en) 2012-07-11
JP2013512530A (ja) 2013-04-11
KR101155207B1 (ko) 2012-06-13
WO2012067351A3 (ko) 2012-07-19
KR20120053873A (ko) 2012-05-29
WO2012067351A2 (ko) 2012-05-24

Similar Documents

Publication Publication Date Title
JP5559356B2 (ja) ソフトウェア開発方法及びそれのための装置
CN102263863B (zh) 交互式语音响应设计的过程集成的树视图控制
CN107038533B (zh) 一种实现可配置化流程审批的方法及系统
CN108989885A (zh) 视频文件转码系统、分割方法、转码方法及装置
US20190012149A1 (en) Proactive resource allocation plan generator for improving product releases
CN103685193A (zh) 一种第三方应用接入开放平台的方法及开放平台接入系统
CN110097464B (zh) 智能合约的生成方法、装置、电子设备与存储介质
US20140149964A1 (en) Method for generating user interface using unified development environment
US8332759B2 (en) Apparatus and method for converting the visual appearance of a Java application program in real time
JP4425205B2 (ja) 部分フロー定義生成プログラム、部分フロー定義生成方法、および部分フロー定義生成装置
Aleixo et al. A Model-driven Approach to Managing and Customizing Software Process Variabilities.
KR102141749B1 (ko) App 프로그램 실행 방법 및 장치
EP2615541A1 (en) Computer implemented method, apparatus, network server and computer program product
CN110728371A (zh) 用于执行自动机器学习方案的系统、方法及电子设备
US20140237370A1 (en) Custom narration of a control list via data binding
CN110471654A (zh) 通信协议的云端开发系统及计算机软件程序产品
CN106293651A (zh) 一种通用接口的实现方法及装置
US10659321B2 (en) Electronic apparatus for recording debugging information and control method thereof
KR20210156365A (ko) 타입별 코드 자동 생성 소프트웨어 개발 장치
CN115688389B (zh) 一种建模仿真方法、系统及存储介质
JP2004070810A (ja) ビジュアルプログラミングシステム、ビジュアルプログラミング方法、ビジュアルプログラミング用プログラム及びそのプログラムを記録した記録媒体
US20070073902A1 (en) Information processor, information processing method and program
JP2012514383A (ja) 異なる宛先のプラットフォームのためのメディアのポータビリティ及び互換性
US10318316B2 (en) Late binding composite service specification for business process execution language
CN117270956B (zh) 硬件设备的配置方法、客户端、硬件设备网管系统及介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140402

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: 20140513

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140605

R150 Certificate of patent or registration of utility model

Ref document number: 5559356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees