JP5251823B2 - Development support program, development support apparatus, and development support method - Google Patents

Development support program, development support apparatus, and development support method Download PDF

Info

Publication number
JP5251823B2
JP5251823B2 JP2009239750A JP2009239750A JP5251823B2 JP 5251823 B2 JP5251823 B2 JP 5251823B2 JP 2009239750 A JP2009239750 A JP 2009239750A JP 2009239750 A JP2009239750 A JP 2009239750A JP 5251823 B2 JP5251823 B2 JP 5251823B2
Authority
JP
Japan
Prior art keywords
class
definition
use case
countermeasure
source code
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.)
Active
Application number
JP2009239750A
Other languages
Japanese (ja)
Other versions
JP2011086200A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009239750A priority Critical patent/JP5251823B2/en
Publication of JP2011086200A publication Critical patent/JP2011086200A/en
Application granted granted Critical
Publication of JP5251823B2 publication Critical patent/JP5251823B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、開発を支援する開発支援プログラム、開発支援装置、および開発支援方法に関する。   The present invention relates to a development support program, a development support apparatus, and a development support method that support development.

従来のソフトウェア開発においては、開発者は自分が実現したい機能を主に想定して開発しているのが現状である。また、ソフトウェア開発においては各種ソフトウェア開発支援に関する技術が開示されている(たとえば、下記特許文献1〜3を参照。)。   In the conventional software development, the developer is developing mainly assuming the function he wants to realize. In software development, various software development support technologies are disclosed (for example, see Patent Documents 1 to 3 below).

特開2004−110274号公報JP 2004-110274 A 特開2008−117066号公報JP 2008-117066 A 特開2009−134535号公報JP 2009-134535 A

しかしながら、上述した従来のソフトウェア開発においては、開発者は自分が実現したい機能を主に想定して開発するため、開発者が想定しないふるまいなどを考慮したセキュリティ機能の実装が困難であった。また、そのような実装をすることにより、開発者の負担が増大するという問題があった。   However, in the above-described conventional software development, since the developer mainly develops the function that he / she wants to realize, it is difficult to implement the security function considering the behavior that the developer does not assume. In addition, there is a problem that the burden on the developer increases due to such implementation.

また、設計段階でソフトウェアの動作を確認するためのプロトタイプ(モックアップ)を一旦作成し、動作確認した上で、完成版の実装を行う開発はよく行われているが、設計工程など、コーディングが完了していない段階でのセキュリティ機能の実装は困難であった。   Also, a prototype (mockup) for confirming the operation of the software at the design stage is created once, and after confirming the operation, the development to implement the finished version is often done. It was difficult to implement security functions when they were not completed.

さらに、作り直す場合、セキュリティ機能の呼び出し処理も作りなおすことになり、開発者の負担が増大するという問題があった。   Furthermore, when re-creating, the security function calling process is re-created, which increases the burden on the developer.

本発明は、上述した従来技術による問題点を解消するため、セキュリティ機能に関する実装の網羅性の向上と開発者の負担軽減を図ることができる開発支援プログラム、開発支援装置、および開発支援方法を提供することを目的とする。   The present invention provides a development support program, a development support apparatus, and a development support method capable of improving the comprehensiveness of implementation related to security functions and reducing the burden on the developer in order to eliminate the above-described problems caused by the prior art. The purpose is to do.

上述した課題を解決し、目的を達成するため、開示の開発支援プログラム、開発支援装置、および開発支援方法は、ユースケースに対するセキュリティ属性が規定された、開発対象の機能を表現したユースケース定義を取得し、取得されたユースケース定義に基づいて、前記ユースケースおよび前記セキュリティ属性をクラスに変換することにより、クラス定義を生成し、生成されたクラス定義内の前記クラスをオブジェクトに関連付けた前記開発対象の動作を示すシーケンス定義を取得し、取得されたシーケンス定義のうち前記クラスに関連するオブジェクトをクラス変換し、前記クラスに関連付けた前記セキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成することを要件とする。   In order to solve the above-mentioned problems and achieve the objectives, the disclosed development support program, development support device, and development support method have a use case definition that expresses the functions to be developed, with security attributes for the use cases specified. The development in which the class definition is generated by converting the use case and the security attribute into a class based on the acquired use case definition, and the class in the generated class definition is associated with the object. The sequence definition indicating the target operation is acquired, the object related to the class is converted into a class in the acquired sequence definition, and the security attribute associated with the class is added to insert the program into the program related to the development target It is necessary to generate a source code template .

上記の構成によれば、開発上流で作るユースケース定義やシーケンス定義においてソフトウェアが備えるべきセキュリティ属性を設定しておき、該セキュリティ属性に基づき、セキュリティ対策コードの呼び出し処理を適切な箇所に埋め込んだ「ソースコードの雛形」を生成することができる。そして、開発者はこのソースコード雛形に基づきプログラミングを行うことで、開発下流においてセキュリティ対策が失われることが無くなる。すなわち、本開発支援プログラム、開発支援装置、および開発支援方法によれば、セキュリティ機能に関する実装の網羅性の向上と開発者の負担軽減を図ることができるという効果を奏する。   According to the above configuration, the security attribute that the software should have in the use case definition and sequence definition created in the upstream development is set, and based on the security attribute, the call processing of the security countermeasure code is embedded at an appropriate location. Source code template "can be generated. The developer performs programming based on the source code template, so that security measures are not lost downstream in the development. That is, according to the development support program, the development support apparatus, and the development support method, there is an effect that it is possible to improve the completeness of implementation related to the security function and reduce the burden on the developer.

本実施の形態にかかる開発支援システムのシステム構成図である。It is a system configuration figure of the development support system concerning this embodiment. 実施の形態にかかる開発環境や開発支援装置となるコンピュータのハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the computer used as the development environment and development assistance apparatus concerning embodiment. 脅威・対策DBの記憶内容の一例を示す説明図である。It is explanatory drawing which shows an example of the memory content of threat and countermeasure DB. 対策プログラムDBの記憶内容の一例を示す説明図である。It is explanatory drawing which shows an example of the memory content of countermeasure program DB. 本実施の形態にかかるユースケース図の一例を示す説明図である。It is explanatory drawing which shows an example of the use case figure concerning this Embodiment. 図5に示したユースケース図に関するユースケース定義を示す説明図(その1)である。FIG. 6 is an explanatory diagram (No. 1) showing a use case definition related to the use case diagram shown in FIG. 5. 図6に示したユースケース定義を表形式のデータ構造で表現した説明図(その1)である。FIG. 7 is an explanatory diagram (part 1) in which the use case definition illustrated in FIG. 6 is expressed in a tabular data structure. 図6に示したユースケース定義を表形式のデータ構造で表現した説明図(その2)である。FIG. 7 is an explanatory diagram (part 2) in which the use case definition illustrated in FIG. 6 is expressed in a tabular data structure. 図6に示したユースケース定義を表形式のデータ構造で表現した説明図(その3)である。FIG. 7 is an explanatory diagram (part 3) in which the use case definition illustrated in FIG. 6 is expressed in a tabular data structure. 図6に示したユースケース定義を表形式のデータ構造で表現した説明図(その4)である。FIG. 7 is an explanatory diagram (part 4) in which the use case definition illustrated in FIG. 6 is expressed in a tabular data structure. クラス定義を表形式のデータ構造で表現した説明図である。It is explanatory drawing which expressed the class definition with the data structure of the table form. 図5のユースケース図の上半部に対応するシーケンス図である。FIG. 6 is a sequence diagram corresponding to the upper half of the use case diagram of FIG. 5. 図12に示したシーケンス図に関するシーケンス定義を示す説明図である。It is explanatory drawing which shows the sequence definition regarding the sequence diagram shown in FIG. 図5のユースケース図の下半部に対応するシーケンス図である。FIG. 6 is a sequence diagram corresponding to the lower half of the use case diagram of FIG. 5. 図14に示したシーケンス図に関するシーケンス定義を示す説明図である。It is explanatory drawing which shows the sequence definition regarding the sequence diagram shown in FIG. 図13および図15に示したシーケンス定義を表形式のデータ構造で表現した説明図(その1)である。FIG. 16 is an explanatory diagram (part 1) of the sequence definition illustrated in FIGS. 13 and 15 expressed in a tabular data structure. 図13および図15に示したシーケンス定義を表形式のデータ構造で表現した説明図(その2)である。FIG. 16 is an explanatory diagram (part 2) in which the sequence definition illustrated in FIGS. 13 and 15 is expressed in a tabular data structure. 脅威・対策定義の一例を示す説明図である。It is explanatory drawing which shows an example of a threat and countermeasure definition. 対策プログラムの一例を示す説明図である。It is explanatory drawing which shows an example of a countermeasure program. 対策プログラムの他の例を示す説明図である。It is explanatory drawing which shows the other example of a countermeasure program. ソースコード雛型の一生成例を示す説明図(その1)である。It is explanatory drawing (the 1) which shows an example of 1 generation of a source code model. ソースコード雛型の一生成例を示す説明図(その2)である。It is explanatory drawing (the 2) which shows an example of 1 generation of a source code model. ソースコード雛型の一生成例を示す説明図(その3)である。It is explanatory drawing (the 3) which shows one generation example of a source code model. ソースコード雛型の一生成例を示す説明図(その4)である。It is explanatory drawing (the 4) which shows an example of 1 generation of a source code model. ソースコード雛型の他の生成例を示す説明図(その1)である。It is explanatory drawing (the 1) which shows the other example of a source code template. ソースコード雛型の他の生成例を示す説明図(その2)である。It is explanatory drawing (the 2) which shows the other example of a source code template. ソースコード雛型の他の生成例を示す説明図(その3)である。It is explanatory drawing (the 3) which shows the other example of a source code template. ソースコード雛型の他の生成例を示す説明図(その4)である。It is explanatory drawing (the 4) which shows the other example of a production | generation of a source code template. クラス生成部によるクラス生成処理手順を示すフローチャートである。It is a flowchart which shows the class generation process procedure by a class generation part. 脅威・対策生成部による脅威・対策定義の生成処理手順を示すフローチャートである。It is a flowchart which shows the generation process procedure of the threat and countermeasure definition by a threat and countermeasure generation part. 対策プログラム抽出部による対策プログラム生成処理手順を示すフローチャートである。It is a flowchart which shows the countermeasure program production | generation procedure by a countermeasure program extraction part. ソースコード雛型生成部によるソースコード雛型生成処理手順を示すフローチャートである。It is a flowchart which shows the source code template production | generation processing procedure by a source code template production | generation part.

以下に添付図面を参照して、この発明にかかる開発支援プログラム、開発支援装置、および開発支援方法の好適な実施の形態を詳細に説明する。なお、本実施の形態では、一例としてソフトウェア開発について説明するが、ソフトウェア開発に限らずハードウェア開発にも適用することができる。   Exemplary embodiments of a development support program, a development support apparatus, and a development support method according to the present invention will be explained below in detail with reference to the accompanying drawings. In the present embodiment, software development is described as an example, but the present invention can be applied not only to software development but also to hardware development.

(システム構成)
図1は、本実施の形態にかかる開発支援システムのシステム構成図である。図1において、開発支援システム100は、開発環境101と開発支援装置102により構成されている。開発環境101とは、従来からソフトウェア開発で用いられた作図ツール103や実行環境104を含む環境であり、コンピュータにより構成される。開発支援装置102とは、開発環境101におけるソフトウェア開発を支援するコンピュータである。開発支援装置102は、脅威・対策データベース(DB)105および対策プログラムDB106にアクセス可能である。なお、開発環境101で使用されるコンピュータと開発支援装置102として使用されるコンピュータとは、一体でもよく別々のコンピュータでもよい。
(System configuration)
FIG. 1 is a system configuration diagram of a development support system according to the present embodiment. In FIG. 1, the development support system 100 includes a development environment 101 and a development support apparatus 102. The development environment 101 is an environment including a drawing tool 103 and an execution environment 104 that have been conventionally used in software development, and is configured by a computer. The development support apparatus 102 is a computer that supports software development in the development environment 101. The development support apparatus 102 can access a threat / countermeasure database (DB) 105 and a countermeasure program DB 106. Note that the computer used in the development environment 101 and the computer used as the development support apparatus 102 may be integrated or may be separate computers.

まず、開発環境101では、開発者が開発対象となるソフトウェアを機能的に表現したユースケース定義111を作成する。ユースケース定義111は、ユースケース図として表示可能である。なお、ユースケース定義111には、通常のユースケース定義111とは異なっており、セキュリティ属性やデータ資産が付加されている。この点については後述する。   First, in the development environment 101, a developer creates a use case definition 111 that functionally represents software to be developed. The use case definition 111 can be displayed as a use case diagram. Note that the use case definition 111 is different from the normal use case definition 111, and security attributes and data assets are added. This point will be described later.

また、開発環境101は、開発支援装置102に対してユースケース定義111を与えることで、開発支援装置102からユースケース定義111に応じたクラス定義112を取得する。開発者は、クラス定義112を用いて開発対象となるソフトウェアの動作を表現したシーケンス定義113を作成する。シーケンス定義113は、シーケンス図として表示可能である。   In addition, the development environment 101 obtains a class definition 112 corresponding to the use case definition 111 from the development support apparatus 102 by giving the use case definition 111 to the development support apparatus 102. The developer uses the class definition 112 to create a sequence definition 113 that represents the operation of the software to be developed. The sequence definition 113 can be displayed as a sequence diagram.

開発環境101は、開発支援装置102に対してシーケンス定義113を与えることで、開発支援装置102からシーケンス定義113に応じたクラス定義を取得する。このクラス定義内のクラス(シーケンス定義113のオブジェクト)やメソッド(シーケンス定義113のメッセージ)には、開発するソフトウェアが備えるべきセキュリティに関する属性であるセキュリティ属性が指定されている。このようなクラス定義を、本実施の形態では、「ソースコード雛型」と称す。   The development environment 101 obtains a class definition corresponding to the sequence definition 113 from the development support apparatus 102 by giving the sequence definition 113 to the development support apparatus 102. Security attributes, which are attributes relating to security that the software to be developed should have, are specified for classes (objects of the sequence definition 113) and methods (messages of the sequence definition 113) in the class definition. Such a class definition is referred to as a “source code template” in the present embodiment.

ソースコード雛型114には、どのクラス、どのメソッドにどのセキュリティ属性が指定されているかが記述されているため、開発者は、ソースコード雛型114を参照して、開発対象プログラム115(まずは、プロトタイプ115a)を作成する。開発環境101は、プロトタイプ115aを実行環境104に与える。実行環境104は、プロトタイプ115aを実行する。   Since the source code template 114 describes which security attribute is specified for which class and which method, the developer refers to the source code template 114 and develops the development target program 115 (first, Prototype 115a) is created. The development environment 101 gives the prototype 115 a to the execution environment 104. The execution environment 104 executes the prototype 115a.

開発者は、プロトタイプ115aに問題があれば修正を繰り返して実行環境104にかけ、最終的に、完成品115bを作成する。そして、完成品115bを実行環境104に与える。実行環境104は、完成品115bを実行する。   If there is a problem with the prototype 115a, the developer repeatedly corrects it and applies it to the execution environment 104, and finally creates a finished product 115b. Then, the finished product 115b is given to the execution environment 104. The execution environment 104 executes the finished product 115b.

また、本実施の形態では、アスペクト指向プログラミング(AOP:Aspect Oriented Programming)を利用してソフトウェア開発を行っているため、実行環境104による実行の際、開発支援装置102から得られた対策プログラム126が開発対象プログラム115に挿入される。   In the present embodiment, since software development is performed using aspect-oriented programming (AOP), a countermeasure program 126 obtained from the development support apparatus 102 when the execution environment 104 is executed. It is inserted into the development target program 115.

アスペクト指向プログラミングの実装では、1つの関心事が特に複数の関心事を横断する形で実現されている(AspectJなど)。これらの実装では、依存性注入という、通常のプログラムとサブルーチンの関係を逆転した概念が用いられる。   In the implementation of aspect-oriented programming, one concern is realized in particular across multiple interests (such as AspectJ). These implementations use the concept of dependency injection, which reverses the relationship between normal programs and subroutines.

本実施の形態では、アスペクト指向プログラミングの導入により、セキュリティプログラムの機能への依存性を軽減している。これにより、プロトタイプ115aで対策プログラム126の呼び出しを記述する必要がなくなった。すなわち、依存性の逆転により、開発支援装置102から対策プログラム126が挿入されるため、プロトタイプ115aの開発対象プログラムから実装でコードが変化しても、対策プログラム126の挿入に必要な特徴が維持されるため、同様に対策プログラム126の挿入が可能となる。   In this embodiment, the dependency on the function of the security program is reduced by introducing aspect-oriented programming. This eliminates the need to describe the call to the countermeasure program 126 in the prototype 115a. That is, since the countermeasure program 126 is inserted from the development support apparatus 102 due to the reversal of the dependency, the features necessary for inserting the countermeasure program 126 are maintained even if the code changes from the development target program of the prototype 115a to the implementation. Therefore, the countermeasure program 126 can be inserted similarly.

また、開発支援装置102は、脅威・対策DB105および対策プログラムDB106にアクセス可能であり、クラス生成部121と、ソースコード雛型生成部122と、脅威・対策生成部123と、対策プログラム抽出部125と、を有する。   Further, the development support apparatus 102 can access the threat / countermeasure DB 105 and the countermeasure program DB 106, and includes a class generation unit 121, a source code template generation unit 122, a threat / countermeasure generation unit 123, and a countermeasure program extraction unit 125. And having.

脅威・対策DB105は、セキュリティ属性ごとに、セキュリティ攻撃を示す脅威とその対策に関する情報を記憶するデータベースである。また、対策プログラムDB106は、対策を実現するための対策プログラム126を記憶するデータベースである。   The threat / countermeasure DB 105 is a database that stores a threat indicating a security attack and information related to the countermeasure for each security attribute. The countermeasure program DB 106 is a database that stores a countermeasure program 126 for realizing the countermeasure.

クラス生成部121は、ユースケース定義111からクラス定義112を生成する。具体的には、ユースケース定義111をクラス定義112に変換して、クラス定義112を返す。ソースコード雛型生成部122は、シーケンス定義113からソースコード雛型114を生成する。具体的には、シーケンス定義113をクラス定義112に変換して、セキュリティ属性を指定したソースコード雛型114を返す。   The class generation unit 121 generates a class definition 112 from the use case definition 111. Specifically, the use case definition 111 is converted into a class definition 112 and the class definition 112 is returned. The source code template generation unit 122 generates a source code template 114 from the sequence definition 113. Specifically, the sequence definition 113 is converted into the class definition 112, and the source code template 114 specifying the security attribute is returned.

脅威・対策生成部123は、脅威・対策DB105を参照して、ユースケース定義111から脅威・対策定義124を生成する。具体的には、ユースケース定義111に含まれているセキュリティ属性に該当する脅威およびその対策に関する情報を脅威・対策DB105から読み出すことで、脅威・対策定義124を生成する。   The threat / countermeasure generation unit 123 refers to the threat / countermeasure DB 105 to generate a threat / countermeasure definition 124 from the use case definition 111. Specifically, the threat / countermeasure definition 124 is generated by reading from the threat / countermeasure DB 105 threats corresponding to the security attributes included in the use case definition 111 and information related to the countermeasures.

対策プログラム抽出部125は、脅威・対策定義124をキーにして、対策プログラムDB106から該当する対策プログラム126を抽出する。対策プログラム126には、認証処理や暗号化処理など実体となる対策を示すプログラムコードのほか、開発対象プログラムの挿入位置を指定する注釈(アノテーション)が、脅威・対策定義124に応じて指定される。対策プログラム126は、開発対象プログラムが該当する位置を実行するときに挿入されて、実行されることとなる。   The countermeasure program extraction unit 125 extracts the corresponding countermeasure program 126 from the countermeasure program DB 106 using the threat / countermeasure definition 124 as a key. In the countermeasure program 126, in addition to a program code indicating an actual countermeasure such as an authentication process or an encryption process, an annotation (annotation) for designating an insertion position of the development target program is designated according to the threat / countermeasure definition 124. . The countermeasure program 126 is inserted and executed when the development target program executes the corresponding position.

(コンピュータのハードウェア構成)
図2は、実施の形態にかかる開発環境101や開発支援装置102となるコンピュータのハードウェア構成を示すブロック図である。図2において、コンピュータは、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
(Computer hardware configuration)
FIG. 2 is a block diagram of a hardware configuration of a computer that becomes the development environment 101 and the development support apparatus 102 according to the embodiment. In FIG. 2, the computer includes a CPU (Central Processing Unit) 201, a ROM (Read-Only Memory) 202, a RAM (Random Access Memory) 203, a magnetic disk drive 204, a magnetic disk 205, and an optical disk drive 206. An optical disk 207, a display 208, an I / F (Interface) 209, a keyboard 210, a mouse 211, a scanner 212, and a printer 213. Each component is connected by a bus 200.

ここで、CPU201は、開発支援装置102の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。   Here, the CPU 201 governs overall control of the development support apparatus 102. The ROM 202 stores a program such as a boot program. The RAM 203 is used as a work area for the CPU 201. The magnetic disk drive 204 controls reading / writing of data with respect to the magnetic disk 205 according to the control of the CPU 201. The magnetic disk 205 stores data written under the control of the magnetic disk drive 204.

光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。   The optical disk drive 206 controls reading / writing of data with respect to the optical disk 207 according to the control of the CPU 201. The optical disk 207 stores data written under the control of the optical disk drive 206, or causes the computer to read data stored on the optical disk 207.

ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。   The display 208 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box. As the display 208, for example, a CRT, a TFT liquid crystal display, a plasma display, or the like can be adopted.

インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。   An interface (hereinafter abbreviated as “I / F”) 209 is connected to a network 214 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line. Connected to other devices. The I / F 209 controls an internal interface with the network 214 and controls data input / output from an external device. For example, a modem or a LAN adapter may be employed as the I / F 209.

キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。   The keyboard 210 includes keys for inputting characters, numbers, various instructions, and the like, and inputs data. Moreover, a touch panel type input pad or a numeric keypad may be used. The mouse 211 performs cursor movement, range selection, window movement, size change, and the like. A trackball or a joystick may be used as long as they have the same function as a pointing device.

スキャナ212は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。   The scanner 212 optically reads an image and takes in the image data into the computer. The scanner 212 may have an OCR (Optical Character Reader) function. The printer 213 prints image data and document data. As the printer 213, for example, a laser printer or an ink jet printer can be employed.

なお、図1に示した脅威・対策DB105および対策プログラムDB106は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置によりその機能を実現する。また、クラス生成部121、ソースコード雛型生成部122、脅威・対策生成部123、および対策プログラム抽出部125は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。   Specifically, the threat / countermeasure DB 105 and the countermeasure program DB 106 shown in FIG. 1 realize their functions by a storage device such as the ROM 202, the RAM 203, the magnetic disk 205, and the optical disc 207 shown in FIG. Specifically, the class generation unit 121, the source code template generation unit 122, the threat / countermeasure generation unit 123, and the countermeasure program extraction unit 125 are, for example, the ROM 202, the RAM 203, the magnetic disk 205, and the like shown in FIG. The function is realized by causing the CPU 201 to execute a program stored in a storage device such as the optical disk 207.

(データベースの説明)
図3は、脅威・対策DB105の記憶内容の一例を示す説明図である。脅威・対策DB105は、セキュリティ属性項目、脅威項目、フロー方向、および対策項目を有するデータ構造である。セキュリティ属性項目は、セキュリティ属性を規定する。セキュリティ属性とは、セキュリティの種類を特定する情報である。具体的には、たとえば、可用性(Availability)、機密性(Confidenciality)、完全性(integrity)などが挙げられる。このセキュリティ属性ごとに、脅威、フロー方向、対策が定義される。
(Description of database)
FIG. 3 is an explanatory diagram showing an example of the contents stored in the threat / countermeasure DB 105. The threat / countermeasure DB 105 is a data structure having security attribute items, threat items, flow directions, and countermeasure items. The security attribute item defines security attributes. A security attribute is information that identifies the type of security. Specifically, for example, availability (Availability), confidentiality (Confidentiality), integrity (integrity), etc. are mentioned. Threats, flow directions, and countermeasures are defined for each security attribute.

脅威項目は、脅威識別子項目と脅威名により脅威を規定する。脅威識別子とは脅威に固有な識別子であり、脅威名とはセキュリティ攻撃を示す脅威の名称である。フロー方向項目とは、データの流れを示すフロー方向を規定する。   The threat item defines a threat by a threat identifier item and a threat name. The threat identifier is an identifier unique to the threat, and the threat name is a name of a threat indicating a security attack. The flow direction item defines a flow direction indicating a data flow.

ユースケース定義111(ユースケース図)で用いられる関連には、データの流れが規定されていないため、セキュリティ属性に応じたデータの流れをフロー方向として規定しておく。フロー方向項目では、入力(→)、出力(←)、入出力(←→)の3種類のフロー方向が規定される。   Since the data flow is not defined in the relation used in the use case definition 111 (use case diagram), the data flow corresponding to the security attribute is defined as the flow direction. The flow direction item defines three types of flow directions: input (→), output (←), and input / output (← →).

「入力(→)」は、脅威の対象となるユースケースへのデータ入力を示しており、出力(←)は、脅威の対象となるユースケースからのデータ出力を示しており、入出力(←→)は、脅威の対象となるユースケースのデータの入出力を示している。   “Input (→)” indicates data input to the use case targeted by the threat, and output (←) indicates data output from the use case targeted by the threat, and input / output (← →) indicates the input / output of data of the use case that is the target of the threat.

対策項目は、対策識別子と対策名により対策を規定する。対策識別子とは対策に固有な識別子であり、対策名とは同一レコードの脅威からソフトウェアを保護するための対策の名称である。   Countermeasure items specify countermeasures by countermeasure identifier and countermeasure name. The countermeasure identifier is an identifier unique to the countermeasure, and the countermeasure name is the name of the countermeasure for protecting the software from the threat of the same record.

図4は、対策プログラムDB106の記憶内容の一例を示す説明図である。対策プログラムDB106は、対策項目と対策プログラム項目とを有する。対策項目は、対策識別子と対策名により対策を規定する。対策識別子とは対策に固有な識別子であり、対策名とは脅威からソフトウェアを保護するための対策の名称である。対策プログラム126とは、脅威からソフトウェアを保護するためのプログラムコードである。   FIG. 4 is an explanatory diagram showing an example of the contents stored in the countermeasure program DB 106. The countermeasure program DB 106 has countermeasure items and countermeasure program items. Countermeasure items specify countermeasures by countermeasure identifier and countermeasure name. The countermeasure identifier is an identifier unique to the countermeasure, and the countermeasure name is the name of the countermeasure for protecting the software from the threat. The countermeasure program 126 is a program code for protecting software from threats.

(各種データの説明)
図5は、本実施の形態にかかるユースケース図500の一例を示す説明図である。図5において、ユースケース図500は、開発環境101において、作図ツール103により作成される。図5のユースケース図500の上半部では、アクターa0(利用者)とユースケースu0(利用者向け機能)とが関連c0により接続されている。ユースケースu0には、セキュリティ属性:可用性が関連付けられている。関連c0には、データ資産d0(機能関連0)が関連付けられている。ここでのデータ資産d0は、フロー方向として「入出力(←→)」が関連付けられている。
(Explanation of various data)
FIG. 5 is an explanatory diagram showing an example of a use case diagram 500 according to this embodiment. In FIG. 5, a use case diagram 500 is created by the drawing tool 103 in the development environment 101. In the upper half of the use case diagram 500 in FIG. 5, the actor a0 (user) and the use case u0 (user function) are connected by the association c0. Use case u0 is associated with security attribute: availability. A data asset d0 (function relation 0) is associated with the relation c0. The data asset d0 here is associated with “input / output (← →)” as the flow direction.

図5のユースケース図500の下半部では、アクターa1(管理者)とユースケースu1(管理者向け機能)とが関連c1により接続されている。ユースケースu1には、セキュリティ属性:可用性が関連付けられている。関連c1には、データ資産d1(機能関連1)が関連付けられている。データ資産d1は、フロー方向として「入出力(←→)」が関連付けられている。また、データ資産d1には、セキュリティ属性:可用性および完全性が関連付けられている。   In the lower half of the use case diagram 500 in FIG. 5, the actor a1 (administrator) and the use case u1 (function for manager) are connected by the association c1. Use case u1 is associated with security attribute: availability. A data asset d1 (function relation 1) is associated with the relation c1. The data asset d1 is associated with “input / output (← →)” as the flow direction. Further, security attributes: availability and integrity are associated with the data asset d1.

図6は、図5に示したユースケース図500に関するユースケース定義111を示す説明図である。ここでは、例としてXML(Extensible Markup Language)で記述されている。   FIG. 6 is an explanatory diagram showing the use case definition 111 related to the use case diagram 500 shown in FIG. Here, it is described in XML (Extensible Markup Language) as an example.

図7〜図10は、図6に示したユースケース定義111を表形式のデータ構造で表現した説明図である。図7はアクター、図8はユースケース、図9は関連、図10はデータ資産のデータ構造を示している。   7 to 10 are explanatory diagrams expressing the use case definition 111 shown in FIG. 6 in a tabular data structure. 7 shows an actor, FIG. 8 shows a use case, FIG. 9 shows a relationship, and FIG. 10 shows a data structure of a data asset.

図11は、クラス定義112を表形式のデータ構造で表現した説明図である。クラス定義112は、クラス生成部121により生成される。具体的には、クラス生成部121では、図8および図10のデータ構造を参照して、ユースケースおよびデータ資産ごとにクラスを生成し、それらに関連付けられているセキュリティ属性を付加して、クラス識別子を付与する。これにより、クラス定義112が生成されることとなる。   FIG. 11 is an explanatory diagram representing the class definition 112 in a tabular data structure. The class definition 112 is generated by the class generation unit 121. Specifically, the class generation unit 121 generates a class for each use case and data asset with reference to the data structures of FIGS. 8 and 10, adds security attributes associated therewith, and class Give an identifier. As a result, the class definition 112 is generated.

図12は、図5のユースケース図500の上半部に対応するシーケンス図である。図12のシーケンス図1200において、オブジェクト1201はアクターa0(利用者)に相当するクライアントであり、オブジェクト1202は利用者向け機能であるクラスCL0に相当する。メッセージ1210〜1213は、クライアント1201とオブジェクト1202との間の通信を示している。開発者は、開発環境101において、作成したシーケンス定義113(シーケンス図)とクラス定義112とを関連付けておく。具体的には、たとえば、図12のオブジェクト1202については、クラス定義112のクラスCL1に関連付けておく。   FIG. 12 is a sequence diagram corresponding to the upper half of the use case diagram 500 of FIG. In the sequence diagram 1200 of FIG. 12, an object 1201 is a client corresponding to an actor a0 (user), and an object 1202 corresponds to a class CL0 that is a function for users. Messages 1210 to 1213 indicate communication between the client 1201 and the object 1202. The developer associates the created sequence definition 113 (sequence diagram) with the class definition 112 in the development environment 101. Specifically, for example, the object 1202 in FIG. 12 is associated with the class CL1 of the class definition 112.

図13は、図12に示したシーケンス図1200に関するシーケンス定義113を示す説明図である。図13のシーケンス定義1300は、例としてXML(Extensible Markup Language)で記述されている。   FIG. 13 is an explanatory diagram showing a sequence definition 113 related to the sequence diagram 1200 shown in FIG. The sequence definition 1300 in FIG. 13 is described in XML (Extensible Markup Language) as an example.

図14は、図5のユースケース図500の下半部に対応するシーケンス図である。図14のシーケンス図1400において、オブジェクト1401はアクターa1(管理者)に相当するクライアントであり、オブジェクト1402は管理者向け機能であるクラスCL1に相当する。メッセージ1410〜1413は、オブジェクト1401とオブジェクト1402との間の通信を示している。   FIG. 14 is a sequence diagram corresponding to the lower half of the use case diagram 500 of FIG. In the sequence diagram 1400 of FIG. 14, an object 1401 is a client corresponding to an actor a1 (administrator), and an object 1402 corresponds to a class CL1 that is a function for administrators. Messages 1410 to 1413 indicate communication between the object 1401 and the object 1402.

開発者は、開発環境101において、作成したシーケンス定義113とクラス定義112とを関連付けておく。具体的には、たとえば、図14のオブジェクト1402については、クラス定義112のクラスCL2に関連付けておく。さらに、図14のメッセージ1411,1412については、access11()およびaccess12()の引数に、オブジェクト1401(アクターa1)とオブジェクト1402(ユースケースu1)との間のデータ資産であるクラスCL3(機能関連1)を与えておく。   The developer associates the created sequence definition 113 with the class definition 112 in the development environment 101. Specifically, for example, the object 1402 in FIG. 14 is associated with the class CL2 of the class definition 112. Furthermore, for the messages 1411 and 1412 in FIG. 14, the class CL3 (function related) that is a data asset between the object 1401 (actor a1) and the object 1402 (use case u1) is used as an argument of access11 () and access12 (). Give 1).

図15は、図14に示したシーケンス図1400に関するシーケンス定義113を示す説明図である。図15のシーケンス定義1500は、例としてXMLで記述されている。   FIG. 15 is an explanatory diagram showing the sequence definition 113 related to the sequence diagram 1400 shown in FIG. The sequence definition 1500 in FIG. 15 is described in XML as an example.

図16および図17は、図13および図15に示したシーケンス定義113を表形式のデータ構造で表現した説明図である。図16はオブジェクト、図17はメッセージのデータ構造を示している。   FIGS. 16 and 17 are explanatory diagrams expressing the sequence definition 113 shown in FIGS. 13 and 15 in a tabular data structure. 16 shows an object, and FIG. 17 shows a message data structure.

図18は、脅威・対策定義124の一例を示す説明図である。脅威・対策定義124は、脅威・対策生成部123により生成される情報である。具体的には、たとえば、ユースケース図500にセキュリティ属性:可用性有りのユースケースがある場合、セキュリティ属性:可用性に関する脅威(脅威識別子および脅威名)を脅威・対策DB105から抽出する。そして、その脅威対象となったユースケースのユースケース識別子を抽出脅威に関連付ける。同様に、抽出脅威に対応する対策(対策識別子および対策名)を脅威・対策DB105から抽出する。そして、その対策対象となったユースケースのユースケース識別子を抽出対策に関連付ける。   FIG. 18 is an explanatory diagram showing an example of the threat / countermeasure definition 124. The threat / countermeasure definition 124 is information generated by the threat / countermeasure generation unit 123. Specifically, for example, when there is a use case with security attribute: availability in the use case diagram 500, a threat (threat identifier and threat name) related to security attribute: availability is extracted from the threat / measure DB 105. Then, the use case identifier of the use case that is the threat target is associated with the extracted threat. Similarly, measures (measure identifier and measure name) corresponding to the extracted threat are extracted from the threat / measure DB 105. Then, the use case identifier of the use case targeted for the countermeasure is associated with the extraction countermeasure.

また、ユースケース図500にセキュリティ属性:機密性、完全性有りのデータ資産がある場合、セキュリティ属性:機密性、完全性に関する脅威(脅威識別子および脅威名)を脅威・対策DB105から抽出する。そして、その脅威対象となったデータ資産のデータ資産識別子を抽出脅威に関連付ける。同様に、抽出脅威に対応する対策(対策識別子および対策名)を脅威・対策DB105から抽出する。そして、その対策対象となったデータ資産のデータ資産識別子を抽出対策に関連付ける。   When there is a data asset with security attributes: confidentiality and integrity in the use case diagram 500, threats (threat identifier and threat name) related to security attributes: confidentiality and integrity are extracted from the threat / measure DB 105. Then, the data asset identifier of the data asset that is the threat target is associated with the extracted threat. Similarly, measures (measure identifier and measure name) corresponding to the extracted threat are extracted from the threat / measure DB 105. Then, the data asset identifier of the data asset targeted for the countermeasure is associated with the extraction countermeasure.

図19および図20は、対策プログラム126の一例を示す説明図である。図19および図20に示した対策プログラム1900、2000は、AspectJによる記述例を示している。図19の対策プログラム126は、ユースケース図500の上半部に対応する対策プログラム126(識別認証プログラム)であり、図20の対策プログラム126は、ユースケース図500の下半部に対応する対策プログラム126(暗号化プログラム)である。   19 and 20 are explanatory diagrams illustrating an example of the countermeasure program 126. FIG. The countermeasure programs 1900 and 2000 shown in FIG. 19 and FIG. 20 show description examples using AspectJ. The countermeasure program 126 in FIG. 19 is a countermeasure program 126 (identification authentication program) corresponding to the upper half of the use case diagram 500, and the countermeasure program 126 in FIG. 20 is a countermeasure corresponding to the lower half of the use case diagram 500. This is a program 126 (encryption program).

図19において、上半部1901は、セキュリティ属性を規定する記述であり、下半部1902は挿入される対策プログラム126のプログラムコードを規定する記述である。上半部1901において、下線で示した符号1903は、挿入箇所を指定する記述である。記述1903は、セキュリティ属性:可用性が付与されたクラス内の任意のメソッド呼び出しを指定する。   In FIG. 19, an upper half part 1901 is a description that defines security attributes, and a lower half part 1902 is a description that defines the program code of the countermeasure program 126 to be inserted. In the upper half portion 1901, reference numeral 1903 indicated by an underline is a description for designating an insertion location. The description 1903 specifies an arbitrary method call in the class to which the security attribute: availability is given.

また、下半部1902において、下線で示した符号1904は、メソッドのどこに挿入するかを指定する記述である。具体的には、メソッドの実行前(Before)、実行中(Around(入れ替え))、実行後(After)が記述される。いずれを記述するかは、たとえば、対策が「識別認証」である場合は「Before」というように、対策プログラム126のプログラムコードによりあらかじめ設定されている。   In the lower half 1902, a reference numeral 1904 indicated by an underline is a description for designating where to insert the method. Specifically, before execution of the method (Before), during execution (Around (replacement)), and after execution (After) are described. Which is described is set in advance by the program code of the countermeasure program 126, for example, “Before” when the countermeasure is “identification / authentication”.

また、下線で示した符号1905は、対策プログラム126のプログラムコードである。対策プログラムDB106から抽出された対策プログラム126のプログラムコードは、符号1905の位置に記述されている。   Reference numeral 1905 indicated by an underline is a program code of the countermeasure program 126. The program code of the countermeasure program 126 extracted from the countermeasure program DB 106 is described at a position 1905.

図20も図19と同様、上半部2001は、セキュリティ属性を規定する記述であり、下半部2002は挿入される対策プログラム126のプログラムコードを規定する記述である。上半部2001において、下線で示した符号2003は、挿入箇所を指定する記述である。記述2003は、セキュリティ属性:完全性が付与されたクラス内の任意のメソッド呼び出しを指定する。   In FIG. 20, as in FIG. 19, the upper half 2001 is a description that defines the security attribute, and the lower half 2002 is a description that defines the program code of the countermeasure program 126 to be inserted. In the upper half 2001, reference numeral 2003 indicated by an underline is a description for designating an insertion location. The description 2003 specifies an arbitrary method call in the class to which the security attribute: integrity is given.

また、下半部2002において、下線で示した符号2004は、記述1904と同様、メソッドのどこに挿入するかを指定する記述である。また、下線で示した符号2005は、対策プログラム126のプログラムコードである。図20の例では、セキュリティ属性:完全性が規定されているため、対応する「暗号化」のプログラムコードが記述されている。   Further, in the lower half 2002, a reference numeral 2004 indicated by an underline is a description that designates where to insert the method, like the description 1904. Reference numeral 2005 indicated by an underline is a program code of the countermeasure program 126. In the example of FIG. 20, since the security attribute: integrity is defined, the corresponding “encrypted” program code is described.

(ソースコード雛型114の生成例)
図21〜図24および図25〜図28は、ソースコード雛型114の生成例を示す説明図である。図21〜図24は、シーケンス定義1300に対応するソースコード雛型114の生成例を示しており、図25〜図28は、シーケンス定義1500に対応するソースコード雛型114の生成例を示している。以下、理解の容易のため、シーケンス図1200,1400を用いて説明する。
(Example of generating the source code template 114)
FIGS. 21 to 24 and FIGS. 25 to 28 are explanatory diagrams showing examples of generating the source code template 114. 21 to 24 show examples of generating the source code template 114 corresponding to the sequence definition 1300, and FIGS. 25 to 28 show examples of generating the source code template 114 corresponding to the sequence definition 1500. Yes. Hereinafter, for ease of understanding, description will be given using sequence diagrams 1200 and 1400.

図21は、シーケンス図1200からオブジェクト1201,1202を抽出して、抽出オブジェクト1201,1202に対応するクラス(「Client」、「利用者向け機能」)が生成された状態を示している。   FIG. 21 shows a state in which objects 1201 and 1202 are extracted from the sequence diagram 1200, and classes (“Client” and “functions for users”) corresponding to the extracted objects 1201 and 1202 are generated.

図22は、シーケンス図1200からメッセージ1210〜1213を抽出して、抽出オブジェクト1201,1202ごとに、メッセージ1210〜1213に対応するメソッド(「do利用者向け機能()」、「access01()〜access03()」)が生成された状態を示している。   22 extracts the messages 1210 to 1213 from the sequence diagram 1200, and extracts the methods corresponding to the messages 1210 to 1213 (“function for do user ()”, “access01 () to access03) for each of the extracted objects 1201 and 1202. () ") Indicates a generated state.

図23は、シーケンス図1200からメッセージ1210〜1213を抽出して、図22のメソッド中の雛型になる処理が生成された状態を示している。具体的には、クライアントが生成するメッセージを生成している。図21〜図23までの生成処理は、既存のクラス生成処理により実現できる。   FIG. 23 shows a state in which messages 1210 to 1213 are extracted from the sequence diagram 1200 and a process to be a template in the method of FIG. 22 is generated. Specifically, a message generated by the client is generated. The generation process from FIGS. 21 to 23 can be realized by an existing class generation process.

図24は、クラスやメソッドが有するセキュリティ属性に対応する注釈(処理に影響しないコメントのような印、図24では「@」)を生成して、宣言部に追加されたソースコード雛型2400を示している。図24は、シーケンス図1200に対応するソースコード雛型2400の生成例であるため、セキュリティ属性は、クラス(に対応するオブジェクト(利用者向け機能に相当))について可用性があり、メソッド(に対応するメッセージ(機能関連0に相当))について機密性および完全性がない記述となる。   FIG. 24 shows a source code template 2400 generated by generating an annotation (mark like a comment that does not affect processing, “@” in FIG. 24) corresponding to the security attribute of the class or method, and adding it to the declaration part. Show. FIG. 24 is a generation example of the source code template 2400 corresponding to the sequence diagram 1200. Therefore, the security attribute is available for the class (corresponding to the object (corresponding to the function for the user)) and the method (corresponding to Message (corresponding to function-related 0)) is a description without confidentiality and integrity.

図25は、シーケンス図1400からオブジェクト1401,1402を抽出して、抽出オブジェクト1401,1402に対応するクラス(「Client」、「管理者向け機能」)が生成された状態を示している。   FIG. 25 shows a state in which objects 1401 and 1402 are extracted from the sequence diagram 1400 and classes (“Client” and “function for manager”) corresponding to the extracted objects 1401 and 1402 are generated.

図26は、シーケンス図1400からメッセージ1410〜1413を抽出して、抽出オブジェクト1401,1402ごとに、メッセージ1410〜1413に対応するメソッド(「do管理者向け機能()」、「access11()〜access13()」)が生成された状態を示している。   26 extracts the messages 1410 to 1413 from the sequence diagram 1400 and extracts the methods (“do manager function ()”, “access11 () to access13) corresponding to the messages 1410 to 1413 for each of the extracted objects 1401 and 1402. () ") Indicates a generated state.

図27は、シーケンス図1400からメッセージ1410〜1413を抽出して、図26のメソッド中の雛型になる処理が生成された状態を示している。具体的には、クライアントが生成するメッセージを生成している。図25〜図27までの生成処理は、既存のクラス生成処理により実現できる。   FIG. 27 shows a state in which messages 1410 to 1413 are extracted from the sequence diagram 1400, and a process that becomes a template in the method of FIG. 26 is generated. Specifically, a message generated by the client is generated. The generation processing from FIGS. 25 to 27 can be realized by existing class generation processing.

図28は、クラスやメソッドが有するセキュリティ属性に対応する注釈(処理に影響しないコメントのような印、図28では「@」)を生成して、宣言部に追加されたソースコード雛型2800を示している。図28は、シーケンス図1400に対応するソースコード雛型2800の生成例であるため、セキュリティ属性は、クラス(に対応するオブジェクト(管理者向け機能に相当))について可用性があり、メソッド(に対応するメッセージ(機能関連1に相当)について機密性がなく完全性がある記述となる。   FIG. 28 shows a source code template 2800 generated by generating an annotation (a mark like a comment that does not affect processing, “@” in FIG. 28) corresponding to the security attribute of the class or method and adding it to the declaration part. Show. FIG. 28 is a generation example of the source code template 2800 corresponding to the sequence diagram 1400. Therefore, the security attribute is available for the class (corresponding to the object (corresponding to the function for the administrator)) and the method (corresponding to Message (corresponding to function-related 1) is not confidential and complete.

(開発支援処理手順)
つぎに、本実施の形態にかかる開発支援装置102による開発支援処理手順について説明する。
(Development support procedure)
Next, a development support processing procedure by the development support apparatus 102 according to the present embodiment will be described.

図29は、クラス生成部121によるクラス生成処理手順を示すフローチャートである。まず、クラス生成部121は、ユースケース定義111を読み込み(ステップS2901)、ユースケース定義111からユースケースを抽出する(ステップS2902)。そして、クラス生成部121は、抽出ユースケースについて対応するクラスを生成し、クラス識別子を付与する(ステップS2903)。また、クラス生成部121は、クラス名としてユースケース名を付与する(ステップS2904)。そして、抽出ユースケースにセキュリティ属性(可用性)がある場合は、クラスのセキュリティ属性に付与する(ステップS2905)。これにより、図10に示した1レコード分のクラス定義112が生成される。   FIG. 29 is a flowchart showing a class generation processing procedure by the class generation unit 121. First, the class generation unit 121 reads the use case definition 111 (step S2901), and extracts the use case from the use case definition 111 (step S2902). Then, the class generation unit 121 generates a class corresponding to the extracted use case, and assigns a class identifier (step S2903). In addition, the class generation unit 121 assigns a use case name as a class name (step S2904). If the extracted use case has a security attribute (availability), it is assigned to the security attribute of the class (step S2905). Thereby, the class definition 112 for one record shown in FIG. 10 is generated.

このあと、クラス生成部121は、未抽出ユースケースがあるか否かを判断し(ステップS2906)、未抽出ユースケースがある場合(ステップS2906:Yes)、ステップS2902に戻る。一方、クラス生成部121は、未抽出ユースケースがない場合(ステップS2906:No)、ユースケース定義111からデータ資産を抽出する(ステップS2907)。そして、クラス生成部121は、抽出データ資産について対応するクラスを生成し、クラス識別子を付与する(ステップS2908)。   Thereafter, the class generation unit 121 determines whether there is an unextracted use case (step S2906), and when there is an unextracted use case (step S2906: Yes), the process returns to step S2902. On the other hand, when there is no unextracted use case (step S2906: No), the class generation unit 121 extracts a data asset from the use case definition 111 (step S2907). Then, the class generation unit 121 generates a corresponding class for the extracted data asset and assigns a class identifier (step S2908).

また、クラス生成部121は、クラス名としてデータ資産名を付与する(ステップS2909)。そして、抽出データ資産にセキュリティ属性(機密性、完全性)がある場合は、クラス生成部121は、クラスのセキュリティ属性に付与する(ステップS2910)。これにより、図10に示した1レコード分のクラス定義112が生成される。   In addition, the class generation unit 121 assigns a data asset name as a class name (step S2909). If the extracted data asset has a security attribute (confidentiality, integrity), the class generation unit 121 assigns it to the security attribute of the class (step S2910). Thereby, the class definition 112 for one record shown in FIG. 10 is generated.

このあと、クラス生成部121は、未抽出データ資産があるか否かを判断し(ステップS2911)、未抽出データ資産がある場合(ステップS2911:Yes)、ステップS2907に戻る。一方、未抽出データ資産がない場合(ステップS2911:No)、図10に示したクラス定義112を書き出す(ステップS2912)。これにより、一連のクラス生成処理を終了する。   Thereafter, the class generation unit 121 determines whether or not there is an unextracted data asset (step S2911). If there is an unextracted data asset (step S2911: Yes), the process returns to step S2907. On the other hand, when there is no unextracted data asset (step S2911: No), the class definition 112 shown in FIG. 10 is written (step S2912). Thereby, a series of class generation processing is completed.

図30は、脅威・対策生成部123による脅威・対策定義124の生成処理手順を示すフローチャートである。まず、脅威・対策生成部123は、ユースケース定義111を読み込み(ステップS3001)、ユースケース定義111からユースケースを抽出する(ステップS3002)とともに、セキュリティ属性も抽出する(ステップS3003)。このあと、脅威・対策生成部123は、抽出セキュリティ属性に対応する脅威をすべて、脅威・対策DB105から抽出する(ステップS3004)。そして、抽出脅威の対象として抽出ユースケースのユースケース識別子を登録する(ステップS3005)。   FIG. 30 is a flowchart showing a processing procedure for generating the threat / countermeasure definition 124 by the threat / countermeasure generating unit 123. First, the threat / measure generation unit 123 reads the use case definition 111 (step S3001), extracts a use case from the use case definition 111 (step S3002), and extracts a security attribute (step S3003). Thereafter, the threat / countermeasure generation unit 123 extracts all threats corresponding to the extracted security attributes from the threat / countermeasure DB 105 (step S3004). Then, the use case identifier of the extracted use case is registered as the target of the extracted threat (step S3005).

つぎに、脅威・対策生成部123は、抽出脅威に対応する対策をすべて、脅威・対策DB105から抽出する(ステップS3006)。そして、脅威・対策生成部123は、抽出対策の対象として抽出ユースケースのユースケース識別子を登録する(ステップS3007)。これにより、1つの可用性分のレコードが生成されることとなる。   Next, the threat / countermeasure generation unit 123 extracts all the countermeasures corresponding to the extracted threat from the threat / countermeasure DB 105 (step S3006). Then, the threat / countermeasure generating unit 123 registers the use case identifier of the extracted use case as an extraction countermeasure target (step S3007). Thereby, one availability record is generated.

このあと、脅威・対策生成部123は、未抽出ユースケースがあるか否かを判断し(ステップS3008)、未抽出ユースケースがある場合(ステップS3008:Yes)、ステップS3002に戻る。一方、脅威・対策生成部123は、未抽出のユースケースがない場合(ステップS3008:No)、ユースケース定義111からデータ資産(データ資産識別子およびデータ資産名)を抽出する(ステップS3009)とともに、セキュリティ属性およびフロー方向を抽出する(ステップS3010)。   Thereafter, the threat / countermeasure generating unit 123 determines whether or not there is an unextracted use case (step S3008). If there is an unextracted use case (step S3008: Yes), the process returns to step S3002. On the other hand, when there is no unextracted use case (step S3008: No), the threat / measure generation unit 123 extracts a data asset (data asset identifier and data asset name) from the use case definition 111 (step S3009), Security attributes and flow directions are extracted (step S3010).

このあと、脅威・対策生成部123は、抽出セキュリティ属性およびフロー方向が一致する脅威をすべて、脅威・対策DB105から抽出する(ステップS3011)。そして、脅威・対策生成部123は、抽出脅威の対象として抽出データ資産のデータ資産識別子を登録する(ステップS3012)。つぎに、脅威・対策生成部123は、抽出脅威に対応する対策を脅威・対策DB105から抽出する(ステップS3013)。そして、抽出対策の対象として抽出データ資産のデータ資産識別子を登録する(ステップS3014)。これにより、1つのセキュリティ属性(機密性、完全性)分のレコードが生成されることとなる。   Thereafter, the threat / countermeasure generation unit 123 extracts all threats having the same extracted security attribute and flow direction from the threat / countermeasure DB 105 (step S3011). Then, the threat / countermeasure generating unit 123 registers the data asset identifier of the extracted data asset as the target of the extracted threat (step S3012). Next, the threat / countermeasure generation unit 123 extracts a countermeasure corresponding to the extracted threat from the threat / countermeasure DB 105 (step S3013). Then, the data asset identifier of the extracted data asset is registered as an extraction countermeasure target (step S3014). As a result, records for one security attribute (confidentiality, integrity) are generated.

このあと、脅威・対策生成部123は、未抽出データ資産があるか否かを判断し(ステップS3015)、未抽出データ資産がある場合(ステップS3015:Yes)、ステップS3009に戻る。一方、脅威・対策生成部123は、未抽出データ資産がない場合(ステップS3015:No)、脅威・対策定義124を書き出す(ステップS3016)。これにより、一連の脅威・対策定義124の生成処理を終了する。   Thereafter, the threat / measure generation unit 123 determines whether or not there is an unextracted data asset (step S3015). If there is an unextracted data asset (step S3015: Yes), the process returns to step S3009. On the other hand, when there is no unextracted data asset (step S3015: No), the threat / countermeasure generation unit 123 writes out the threat / countermeasure definition 124 (step S3016). As a result, the generation processing of the series of threat / countermeasure definition 124 ends.

図31は、対策プログラム抽出部125による対策プログラム126生成処理手順を示すフローチャートである。まず、対策プログラム抽出部125は、脅威・対策定義124を読み込み(ステップS3101)、脅威・対策定義124中の対策を抽出する(ステップS3102)。そして、対策プログラム抽出部125は、脅威・対策定義124中の対策名に対応する対策プログラム126を対策プログラムDB106から抽出する(ステップS3103)。たとえば、対策名が「識別認証」の場合、図19に示した対策プログラム126が抽出され、対策名が「暗号化」の場合、図20に示した対策プログラム126が抽出される。   FIG. 31 is a flowchart showing a procedure for generating the countermeasure program 126 by the countermeasure program extracting unit 125. First, the countermeasure program extraction unit 125 reads the threat / countermeasure definition 124 (step S3101), and extracts a countermeasure in the threat / countermeasure definition 124 (step S3102). Then, the countermeasure program extraction unit 125 extracts the countermeasure program 126 corresponding to the countermeasure name in the threat / countermeasure definition 124 from the countermeasure program DB 106 (step S3103). For example, when the countermeasure name is “identification / authentication”, the countermeasure program 126 shown in FIG. 19 is extracted, and when the countermeasure name is “encrypted”, the countermeasure program 126 shown in FIG. 20 is extracted.

このあと、対策プログラム抽出部125は、未抽出対策があるか否かを判断し(ステップS3104)、未抽出対策がある場合(ステップS3104:Yes)、ステップS3102に戻る。一方、対策プログラム抽出部125は、未抽出対策がない場合(ステップS3104:No)、抽出された対策プログラム126を書き出す(ステップS3105)。これにより、一連の対策プログラム126抽出処理を終了する。   Thereafter, the countermeasure program extraction unit 125 determines whether there is an unextracted countermeasure (step S3104). If there is an unextracted countermeasure (step S3104: Yes), the process returns to step S3102. On the other hand, when there is no unextracted countermeasure (step S3104: No), the countermeasure program extraction unit 125 writes the extracted countermeasure program 126 (step S3105). As a result, the series of countermeasure program 126 extraction processing ends.

図32は、ソースコード雛型生成部122によるソースコード雛型生成処理手順を示すフローチャートである。まず、シーケンス定義113を読み込み(ステップS3201)、図21および図25に示したように、各オブジェクトに対応するクラスを生成する(ステップS3202)。また、図22および図26に示したように、各オブジェクト中のメッセージに対応するメソッドを生成する(ステップS3203)。   FIG. 32 is a flowchart showing a source code template generation processing procedure by the source code template generation unit 122. First, the sequence definition 113 is read (step S3201), and a class corresponding to each object is generated as shown in FIGS. 21 and 25 (step S3202). Also, as shown in FIGS. 22 and 26, a method corresponding to the message in each object is generated (step S3203).

このあと、図23および図27に示したように、メソッド中の雛型になる処理を生成する(ステップS3204)。ここまでの処理は既存の技術で実行される処理である。そして、図24および図28に示したように、各オブジェクトに対応するクラスおよびメソッドが有するセキュリティ属性に対応する注釈を生成し、宣言部に追加する(ステップS3205)。このあと、生成されたクラス定義112をソースコード雛型114として書き出す(ステップS3206)。これにより、一連のソースコード雛型114の生成処理を終了する。   Thereafter, as shown in FIGS. 23 and 27, a process that becomes a template in the method is generated (step S3204). The process so far is a process executed by the existing technology. Then, as shown in FIGS. 24 and 28, annotations corresponding to the security attributes of the class and method corresponding to each object are generated and added to the declaration unit (step S3205). Thereafter, the generated class definition 112 is written out as a source code template 114 (step S3206). Thus, the generation process of the series of source code templates 114 is completed.

このように、本実施の形態では、挿入箇所を指定する記述を持ったソースコード雛形(固定のクラス、メソッド宣言のみを持ち、それ以外は記述のないもの)と、開発対象プログラム中の注釈を発見し、そこへセキュリティ処理を挿入する対策プログラム126を提供する。これにより、開発者が期待している機能だけではなく、開発者が意図しない入力に対する対策を、設計工程で自動生成することができる。したがって、セキュリティ機能に関する実装の網羅性の向上を図ることができる。   As described above, in this embodiment, a source code template having a description for specifying an insertion point (a fixed class, only having a method declaration, and not otherwise described) and an annotation in the development target program are provided. A countermeasure program 126 is provided that detects and inserts security processing there. As a result, not only functions expected by the developer, but also countermeasures against inputs not intended by the developer can be automatically generated in the design process. Therefore, it is possible to improve the completeness of the implementation related to the security function.

また、コーディングが完了していない段階で開発者が想定していないセキュリティの具体的な実装が可能となり、下流におけるコーディングの自由度を高くすることができる。また、プロトタイピングを行う場合、開発者はプロトタイプ115aの開発対象プログラム、完成品115bの開発対象プログラムともに、本実施の形態が提供するソースコード雛型114から作成すれば、双方において同じセキュリティ処理を実現することができる。   Further, it is possible to implement specific security that is not assumed by the developer at the stage where coding is not completed, and the degree of freedom of coding downstream can be increased. Further, when prototyping is performed, if the developer creates both the development target program of the prototype 115a and the development target program of the finished product 115b from the source code template 114 provided by the present embodiment, the same security processing is performed on both. Can be realized.

なお、本実施の形態で説明した開発支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本開発支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本開発支援プログラムは、インターネット等のネットワークを介して配布してもよい。   The development support method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. The development support program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The development support program may be distributed through a network such as the Internet.

100 開発支援システム
101 開発環境
102 開発支援装置
105 脅威・対策DB
106 対策プログラムDB
121 クラス生成部
122 ソースコード雛型生成部
123 脅威・対策生成部
125 対策プログラム抽出部
100 Development Support System 101 Development Environment 102 Development Support Device 105 Threat / Countermeasure DB
106 Countermeasure program DB
121 Class generator 122 Source code template generator 123 Threat / countermeasure generator 125 Countermeasure program extractor

Claims (7)

ユースケースに対するセキュリティ属性が規定された、開発対象の機能を表現したユースケース定義を取得する第1の取得工程と、
前記第1の取得工程によって取得されたユースケース定義に基づいて、前記ユースケースおよび前記セキュリティ属性をクラスに変換することにより、クラス定義を生成するクラス生成工程と、
前記クラス生成工程によって生成されたクラス定義内の前記クラスをオブジェクトに関連付けた前記開発対象の動作を示すシーケンス定義を取得する第2の取得工程と、
前記第2の取得工程によって取得されたシーケンス定義のうち前記クラスに関連するオブジェクトをクラス変換し、前記クラスに関連付けた前記セキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成するソースコード雛型生成工程と、
をコンピュータに実行させることを特徴とする開発支援プログラム。
A first acquisition step of acquiring a use case definition expressing a function to be developed, in which security attributes for the use case are defined;
A class generation step for generating a class definition by converting the use case and the security attribute into a class based on the use case definition acquired by the first acquisition step;
A second acquisition step of acquiring a sequence definition indicating an operation of the development target in which the class in the class definition generated by the class generation step is associated with an object;
Source code inserted into the program related to the development object by class-converting the object related to the class in the sequence definition acquired in the second acquisition step and adding the security attribute associated with the class A source code template generation process for generating a template;
Development support program characterized by causing a computer to execute.
ユースケースに対するデータの方向を特定するフロー方向および前記データに対するセキュリティ属性が規定された、開発対象の機能を表現したユースケース定義を取得する第1の取得工程と、
前記第1の取得工程によって取得されたユースケース定義に基づいて、前記データおよび前記セキュリティ属性をクラスに変換することにより、クラス定義を生成するクラス生成工程と、
前記クラス生成工程によって生成されたクラス定義内の前記クラスをメッセージに関連付けた前記開発対象の動作を示すシーケンス定義を取得する第2の取得工程と、
前記第2の取得工程によって取得されたシーケンス定義内の前記クラスに関連するメッセージをメソッド変換し、前記クラスに関連付けた前記セキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成するソースコード雛型生成工程と、
をコンピュータに実行させることを特徴とする開発支援プログラム。
A first acquisition step of acquiring a use case definition expressing a function to be developed, in which a flow direction specifying a data direction for the use case and a security attribute for the data are defined;
A class generation step of generating a class definition by converting the data and the security attribute into a class based on the use case definition acquired by the first acquisition step;
A second acquisition step of acquiring a sequence definition indicating an operation of the development target in which the class in the class definition generated by the class generation step is associated with a message;
Source code inserted into the program related to the development object by method-converting the message related to the class in the sequence definition acquired by the second acquisition step and adding the security attribute associated with the class A source code template generation process for generating a template;
Development support program characterized by causing a computer to execute.
ユースケースに対する第1のセキュリティ属性と前記ユースケースに対するデータの方向を特定するフロー方向および前記データに対する第2のセキュリティ属性とが規定された、開発対象の機能を表現したユースケース定義を取得する第1の取得工程と、
前記第1の取得工程によって取得されたユースケース定義に基づいて、前記ユースケースおよび前記第1のセキュリティ属性を第1のクラスに変換するとともに、前記データおよび前記第2のセキュリティ属性を第2のクラスに変換することにより、クラス定義を生成するクラス生成工程と、
前記クラス生成工程によって生成されたクラス定義のうち前記第1のクラスをオブジェクトに関連付け、前記第2のクラスをメッセージに関連付けた前記開発対象の動作を示すシーケンス定義を取得する第2の取得工程と、
前記第2の取得工程によって取得されたシーケンス定義のうち前記第1のクラスに関連するオブジェクトをクラス変換するとともに、前記第2のクラスに関連するメッセージをメソッド変換し、前記第1のクラスに関連付けた前記第1のセキュリティ属性および前記第2のクラスに関連付けた前記第2のセキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成するソースコード雛型生成工程と、
をコンピュータに実行させることを特徴とする開発支援プログラム。
The first security attribute for the use case, the flow direction specifying the direction of data for the use case, and the second security attribute for the data are specified, and the use case definition representing the function to be developed is acquired. 1 acquisition process;
Based on the use case definition acquired by the first acquisition step, the use case and the first security attribute are converted into a first class, and the data and the second security attribute are converted to a second class. A class generation process that generates a class definition by converting to a class,
A second acquisition step of acquiring a sequence definition indicating an operation of the development target in which the first class is associated with an object and the second class is associated with a message among the class definitions generated by the class generation step; ,
Of the sequence definition acquired by the second acquisition step, class-converts an object related to the first class, converts a message related to the second class, and associates it with the first class. A source code template generation step of generating a source code template to be inserted into the program related to the development object by adding the first security attribute and the second security attribute associated with the second class When,
Development support program characterized by causing a computer to execute.
セキュリティ攻撃を示す脅威に対する対策を前記セキュリティ属性の種類に応じて実行する対策プログラムを前記対策ごとに記憶するデータベースの中から、前記ユースケース定義に含まれているセキュリティ属性に該当する対策プログラムを抽出する抽出工程を前記コンピュータに実行させることを特徴とする請求項1〜3のいずれか一つに記載の開発支援プログラム。   Extracting countermeasure programs corresponding to the security attributes included in the use case definition from the database storing for each countermeasure countermeasure programs that execute countermeasures against threats indicating security attacks according to the types of the security attributes The development support program according to any one of claims 1 to 3, wherein the computer is caused to execute an extraction step to be performed. 前記開発対象に関するプログラム内で前記ソースコード雛型を挿入した処理を実行する際に、前記ソースコード雛型に規定されたセキュリティ属性に一致するセキュリティ属性を有する前記対策プログラムを実行する実行工程を前記コンピュータに実行させることを特徴とする請求項4に記載の開発支援プログラム。   An execution step of executing the countermeasure program having a security attribute that matches a security attribute defined in the source code template when executing the processing in which the source code template is inserted in the program related to the development target; The development support program according to claim 4, which is executed by a computer. ユースケースに対するセキュリティ属性が規定された、開発対象の機能を表現したユースケース定義を取得する第1の取得手段と、
前記第1の取得手段によって取得されたユースケース定義に基づいて、前記ユースケースおよび前記セキュリティ属性をクラスに変換することにより、クラス定義を生成するクラス生成手段と、
前記クラス生成手段によって生成されたクラス定義内の前記クラスをオブジェクトに関連付けた前記開発対象の動作を示すシーケンス定義を取得する第2の取得手段と、
前記第2の取得手段によって取得されたシーケンス定義のうち前記クラスに関連するオブジェクトをクラス変換し、前記クラスに関連付けた前記セキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成するソースコード雛型生成手段と、
を備えることを特徴とする開発支援装置。
A first acquisition means for acquiring a use case definition expressing a function to be developed, in which security attributes for the use case are defined;
Class generation means for generating a class definition by converting the use case and the security attribute into a class based on the use case definition acquired by the first acquisition means;
Second acquisition means for acquiring a sequence definition indicating an operation of the development target in which the class in the class definition generated by the class generation means is associated with an object;
Source code inserted into the program related to the development target by class-converting the object related to the class in the sequence definition acquired by the second acquisition means and adding the security attribute associated with the class A source code template generation means for generating a template;
A development support apparatus comprising:
第1の取得手段、クラス生成手段、第2の取得手段、およびソースコード雛型生成手段を備えるコンピュータが、
前記第1の取得手段により、ユースケースに対するセキュリティ属性が規定された、開発対象の機能を表現したユースケース定義を取得する第1の取得工程と、
前記クラス生成手段により、前記第1の取得工程によって取得されたユースケース定義に基づいて、前記ユースケースおよび前記セキュリティ属性をクラスに変換することにより、クラス定義を生成するクラス生成工程と、
前記第2の取得手段により、前記クラス生成工程によって生成されたクラス定義内の前記クラスをオブジェクトに関連付けた前記開発対象の動作を示すシーケンス定義を取得する第2の取得工程と、
前記ソースコード雛型生成手段により、前記第2の取得工程によって取得されたシーケンス定義のうち前記クラスに関連するオブジェクトをクラス変換し、前記クラスに関連付けた前記セキュリティ属性を追加することにより、前記開発対象に関するプログラムに挿入されるソースコード雛型を生成するソースコード雛型生成工程と、
を実行することを特徴とする開発支援方法。
A computer comprising first acquisition means, class generation means, second acquisition means, and source code template generation means,
A first acquisition step of acquiring a use case definition expressing a function to be developed, wherein security attributes for the use case are defined by the first acquisition unit;
A class generation step of generating a class definition by converting the use case and the security attribute into a class based on the use case definition acquired by the first acquisition step by the class generation unit;
A second acquisition step of acquiring, by the second acquisition means, a sequence definition indicating an operation of the development target in which the class in the class definition generated by the class generation step is associated with an object;
The source code template generation means performs class conversion on an object related to the class in the sequence definition acquired in the second acquisition step, and adds the security attribute associated with the class, thereby developing the development. A source code template generation process for generating a source code template to be inserted into a program related to a target;
A development support method characterized by executing
JP2009239750A 2009-10-16 2009-10-16 Development support program, development support apparatus, and development support method Active JP5251823B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009239750A JP5251823B2 (en) 2009-10-16 2009-10-16 Development support program, development support apparatus, and development support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009239750A JP5251823B2 (en) 2009-10-16 2009-10-16 Development support program, development support apparatus, and development support method

Publications (2)

Publication Number Publication Date
JP2011086200A JP2011086200A (en) 2011-04-28
JP5251823B2 true JP5251823B2 (en) 2013-07-31

Family

ID=44079081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009239750A Active JP5251823B2 (en) 2009-10-16 2009-10-16 Development support program, development support apparatus, and development support method

Country Status (1)

Country Link
JP (1) JP5251823B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018092237A1 (en) 2016-11-17 2018-05-24 三菱電機株式会社 Program code generation apparatus, program code generation method, and program code generation program
JP7422584B2 (en) * 2020-03-26 2024-01-26 株式会社日立製作所 Application development support system, application development support method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240510A (en) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp Object-oriented design supporting device
JP2007179171A (en) * 2005-12-27 2007-07-12 Internatl Business Mach Corp <Ibm> Software development device for model for which privacy retention is required

Also Published As

Publication number Publication date
JP2011086200A (en) 2011-04-28

Similar Documents

Publication Publication Date Title
CN106663175B (en) Method, computing device and computer-readable storage medium for creating documents in a collaborative manner
Riaz et al. Security requirements patterns: understanding the science behind the art of pattern writing
Quinton et al. Using multiple feature models to design applications for mobile phones
JP5251823B2 (en) Development support program, development support apparatus, and development support method
Busch et al. Modeling secure navigation in web information systems
Zschaler et al. Towards modular code generators using symmetric language-aware aspects
Mouheb et al. Aspect-oriented security hardening of UML design models
Martínez et al. Runtime support for rule-based access-control evaluation through model-transformation
CN101484877A (en) Execution of computer instructions with reconfigurable hardware
Wenzel et al. Specifying model changes with UMLchange to support security verification of potential evolution
Naumovich et al. Verification of concurrent software with FLAVERS
JP5269722B2 (en) Security design support apparatus and program
Grundy et al. Software tools
Wirtz et al. Managing security risks: template-based specification of controls
Turner Proposed model for natural language ABAC authoring
Ovchinnikova et al. Overview of Software Tools for Obtaining UML Class Diagrams and Sequence Diagrams from Source Code within TFM4MDA.
Pathak et al. Designing of SPF based secure web application using forward engineering
Said Methodology of refinement and decomposition in UML-B
JP2013152577A (en) Design support program, design support method and design support device
Matos et al. A Model Driven Engineering Approach to Support the Development of Secure Software as a Service.
EP4131047A1 (en) Data obfuscation
Montrieux Model-based analysis of role-based access control
JP2008287496A (en) Security design/evaluation support system, device and program
Garima et al. Dual Security Testing Model for Web Applications
Peldszus Security Compliance in Model-Driven Software Development

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

R150 Certificate of patent or registration of utility model

Ref document number: 5251823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3