JP2006221293A - Software design support device and storage medium - Google Patents

Software design support device and storage medium Download PDF

Info

Publication number
JP2006221293A
JP2006221293A JP2005032440A JP2005032440A JP2006221293A JP 2006221293 A JP2006221293 A JP 2006221293A JP 2005032440 A JP2005032440 A JP 2005032440A JP 2005032440 A JP2005032440 A JP 2005032440A JP 2006221293 A JP2006221293 A JP 2006221293A
Authority
JP
Japan
Prior art keywords
class
package
correspondence table
facade
pattern
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.)
Withdrawn
Application number
JP2005032440A
Other languages
Japanese (ja)
Inventor
Tomoaki Osada
知明 長田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005032440A priority Critical patent/JP2006221293A/en
Publication of JP2006221293A publication Critical patent/JP2006221293A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a software design support device that enables even an inexperienced designer to apply any design pattern. <P>SOLUTION: The software design support device includes a means for inputting a variety of software design drawings using a notation specified by UML; a means for supporting the description of the design drawings; a means for storing the inputted design drawings in a storage device; and a means for taking detailed information about each design component out of the design drawings described. The device also includes a means for extracting the necessary information from a class drawing and a sequence drawing that are inputted by the designer, and automatically determining whether or not a Facade pattern serving as one software design pattern is applicable. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、ソフトウェア設計にデザインパターンを自動的に適用するための支援装置及び記憶媒体に関するものである。   The present invention relates to a support device and a storage medium for automatically applying a design pattern to software design.

近年、デジタル複合機等の組み込みソフトウェア開発の分野も、多機能化や大規模化が進んでいる。そのため、保守性や再利用性を高めるためにオブジェクト指向開発が導入されつつある。オブジェクト指向設計手法を用いたソフトウェア開発では一般に、UML(Unified Modeling Language )と呼ばれる表記法を用いて様々な設計図を記述することになる。   In recent years, the field of embedded software development such as digital multi-function peripherals has been increasing in functionality and scale. Therefore, object-oriented development is being introduced to improve maintainability and reusability. In software development using an object-oriented design technique, various design drawings are generally described using a notation called UML (Unified Modeling Language).

しかし、保守性や再利用性に優れた設計ができるようになるためには熟練を要する。即ち、オブジェクト指向分析・設計手法に基づいてUMLで規定された表記法で設計図を作成しても設計の質までが保証される訳ではない。   However, skill is required to be able to design with excellent maintainability and reusability. In other words, even if a design drawing is created by a notation defined by UML based on an object-oriented analysis / design method, the quality of the design is not guaranteed.

オブジェクト指向設計の分野では、優れた設計ノウハウをパターン化し、再利用し易い形式でまとめようとする動きがある。このパターン化された設計ノウハウは「デザインパターン」と呼ばれている(例えば、非特許文献1)。即ち、デザインパターンとは、オブジェクト指向分析・設計手法に基づいて開発されたソフトウェア開発において重要で且つ繰り返し現れる設計に体系的に名前付けし、説明を加えたものである。   In the field of object-oriented design, there is a movement to pattern superior design know-how and put it together in a format that is easy to reuse. This patterned design know-how is called a “design pattern” (for example, Non-Patent Document 1). In other words, the design pattern is a systematic name and description added to a design that is important and repeatedly appears in software development developed based on an object-oriented analysis / design technique.

従来の技術としてデザインパターンを利用してソフトウェア仕様書を作成する装置(特許文献1)やデザインパターンの適用が適切かどうかを判別する装置(特許文献2)等が開示されているが、これら方式では予め適用するデザインパターンを設計者が指定し、それに沿った設計を行わなければならない。その結果、作成された設計図が適用したデザインパターンの意図に沿っているかを検証可能な装置であるが、適用可能なデザインパターンを選定するためには熟練を要するため、非熟練者が利用するためにはデザインパターンのメリットを生かし切れない可能性がある。   As a conventional technique, an apparatus for creating a software specification using a design pattern (Patent Document 1), an apparatus for determining whether the application of a design pattern is appropriate (Patent Document 2), etc. are disclosed. Then, the design pattern to be applied in advance must be designated by the designer, and the design must be carried out accordingly. As a result, it is a device that can verify whether the created design drawing is in accordance with the intention of the applied design pattern, but it requires skill to select the applicable design pattern, so it is used by non-experts Therefore, there is a possibility that the merit of the design pattern cannot be fully utilized.

特開平9−237180号公報JP-A-9-237180 特開平9−198242号公報JP-A-9-198242 「オブジェクト指向における再利用のためのデザインパターン」、ソフトバンク、1995、E.Gamma 他著“Design Patterns for Reuse in Object Oriented”, Softbank, 1995, E. Gamma et al.

a)デザインパターンをオブジェクト指向設計に適用するためには、設計者の熟練や経験が必要となるため非熟練者が適用するためには難易度が高い。このため、設計者が入力した設計情報から、Facadeパターンが適用可能な個所を検出し自動適用してくれることを目的とする。Facadeパターンを適用することでソフトウェア部品を他のソフトウェア部品やクライアントから切り離すことが可能になり、独立性や移植性に優れた設計が可能になる。   a) In order to apply the design pattern to the object-oriented design, the skill and experience of the designer are required, so that it is difficult for the unskilled person to apply. For this reason, it is an object to detect and automatically apply a location where a Fade pattern can be applied from design information input by a designer. By applying the Facade pattern, the software component can be separated from other software components and clients, and a design with excellent independence and portability becomes possible.

b)非熟練者がこの装置を使用することでデザインパターンの適用例や、良い設計について学ぶことが出来ることを目的とする。   b) It is intended that non-experts can learn about application examples of design patterns and good design by using this device.

本発明は、上記問題に鑑みてなされたもので、上記従来例の欠点を解決して、熟練していない設計者でもデザインパターンが適用可能なソフトウェア設計支援装置を提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a software design support apparatus that can solve the drawbacks of the above-described conventional example and that can be applied to design patterns even by an unskilled designer.

上記目的を達成するため、請求項1記載の発明は、UMLで規定された各種ソフトウェア設計図を入力するための手段と、設計図の記述を支援するための手段と、入力された設計図を記憶装置に格納する手段と、記述された設計図から詳細な設計部品毎の情報を取り出す手段を有し、設計者が入力したクラス図及びシーケンス図から必要情報を抽出し、ソフトウェアデザインパターンの1つであるFacadeパターンが適用可能であるか自動的に判定を行うことが可能であるのでソフトウェア設計の非熟練者であってもソフトウェアデザインパターンが適用可能であるか判定を行うことができる。   In order to achieve the above object, the invention described in claim 1 is characterized in that means for inputting various software blueprints defined by UML, means for supporting the description of blueprints, and input blueprints. A means for storing in a storage device and means for extracting detailed information for each design part from the described design drawing, extracting necessary information from the class diagram and sequence diagram input by the designer, and providing a software design pattern 1 Since it is possible to automatically determine whether a single Fade pattern is applicable, even a non-skilled software designer can determine whether a software design pattern is applicable.

請求項2の発明は、請求項1記載のソフトウェア設計支援装置において、クラス図における各クラスが所属するパッケージの情報、クラスの関連情報、クラスのオペレーション情報及びシナリオ毎のシーケンス図におけるイベントの送信情報から判定されることが可能であるので自動的にFacadeパターンの適用が判定できる。   According to a second aspect of the present invention, in the software design support apparatus according to the first aspect, information on packages to which each class belongs in the class diagram, class related information, class operation information, and event transmission information in the sequence diagram for each scenario Therefore, the application of the Facade pattern can be automatically determined.

請求項3の発明は、請求項1記載のソフトウェア設計支援装置おいて、判定手段がFacadeパターンの適用が可能であると判定された場合に、Facadeパターンが適用されたクラス図及びシーケンス図を自動的に作成することによりソフトウェア設計の非熟練者であってもFacadeパターンが適用された設計図を作成することができる。   According to a third aspect of the present invention, in the software design support apparatus according to the first aspect, when the judging means judges that the application of the Facade pattern is possible, the class diagram and the sequence diagram to which the Facade pattern is applied are automatically generated. Thus, even a non-skilled person in software design can create a design drawing to which a Facade pattern is applied.

請求項4の発明は、請求項1記載のソフトウェア設計支援装置おいて、前記判定手段でFacadeパターンの適用が可能であると判定された場合に、設計者に通知を行い、設計者がFacadeパターンの適用を行うと判断した場合にのみFacadeパターンが適用されたクラス図及びシーケンス図を作成することにより、設計者が必要であると判断した設計図のみを作成することができる。   According to a fourth aspect of the present invention, in the software design support apparatus according to the first aspect, when the determination unit determines that the application of the Facade pattern is possible, the designer is notified, and the designer uses the Facade pattern. By creating a class diagram and a sequence diagram to which the Facade pattern is applied only when it is determined to apply the above, it is possible to create only a design diagram that is determined to be necessary by the designer.

請求項5の発明は、請求項1記載のソフトウェア設計支援装置をコンピュータ上で動作させることが可能になる。   The invention of claim 5 makes it possible to operate the software design support apparatus of claim 1 on a computer.

請求項1記載の発明によれば、UMLで規定された各種ソフトウェア設計図を入力するための手段と、設計図の記述を支援するための手段と、入力された設計図を記憶装置に格納する手段と、記述された設計図から詳細な設計部品毎の情報を取り出す手段を有し、設計者が入力したクラス図及びシーケンス図から必要情報を抽出し、ソフトウェアデザインパターンの1つであるFacadeパターンが適用可能であるか自動的に判定を行うことが可能であるので、ソフトウェア設計の非熟練者であってもソフトウェアデザインパターンが適用可能であるか判定を行うことができるとともに、良い設計について学ぶことができるという効果が得られる。   According to the first aspect of the present invention, means for inputting various software blueprints defined by UML, means for supporting the description of blueprints, and the inputted blueprints are stored in the storage device. And a means for extracting detailed information for each design part from the described design drawing, extracting necessary information from the class diagram and sequence diagram input by the designer, and a Facade pattern which is one of the software design patterns Since it is possible to automatically determine whether the software design pattern is applicable, it is possible to determine whether the software design pattern is applicable even for non-skilled software designers and learn about good design. The effect that it can be obtained.

請求項2の記載の発明によれば、請求項1記載のソフトウェア設計支援装置において、クラス図における各クラスが所属するパッケージの情報、クラスの関連情報、クラスのオペレーション情報及びシナリオ毎のシーケンス図におけるイベントの送信情報から判定されることが可能であるので、自動的にFacadeパターンの適用が判定できる。   According to a second aspect of the present invention, in the software design support apparatus according to the first aspect, in the class diagram, the information on the package to which each class belongs, the class related information, the class operation information, and the sequence diagram for each scenario. Since it can be determined from the transmission information of the event, the application of the Facade pattern can be automatically determined.

請求項3記載の発明によれば、請求項1記載のソフトウェア設計支援装置おいて、判定手段がFacadeパターンの適用が可能であると判定された場合に、Facadeパターンが適用されたクラス図及びシーケンス図を自動的に作成することによりソフトウェア設計の非熟練者であってもFacadeパターンが適用された設計図を作成することができるとともに、良い設計について学ぶことができるという効果が得られる。   According to a third aspect of the present invention, in the software design support apparatus according to the first aspect, the class diagram and the sequence to which the Facade pattern is applied when the determination unit determines that the Facade pattern can be applied. By automatically creating a diagram, even a non-skilled person in software design can create a design diagram to which a Facade pattern is applied, and can learn about good design.

請求項4記載の発明によれば、請求項1記載のソフトウェア設計支援装置おいて、前記判定手段でFacadeパターンの適用が可能であると判定された場合に、設計者に通知を行い、設計者がFacadeパターンの適用を行うと判断した場合にのみFacadeパターンが適用されたクラス図及びシーケンス図を作成することにより、設計者が必要であると判断した設計図のみを作成することができるという効果が得られる。   According to a fourth aspect of the present invention, in the software design support apparatus according to the first aspect, when the determination unit determines that the Facade pattern can be applied, the designer is notified, and the designer By creating a class diagram and a sequence diagram to which the Facade pattern is applied only when it is determined that the application of the Facade pattern is performed, it is possible to create only the design diagram that the designer determines is necessary Is obtained.

請求項5記載の発明によれば、請求項1記載のソフトウェア設計支援装置をコンピュータ上で動作させることが可能になるという効果が得られる。   According to the invention described in claim 5, it is possible to obtain the effect that the software design support apparatus described in claim 1 can be operated on the computer.

以下、本発明の実施の形態を、ソフトウェア設計支援装置においてFacadeパターンの適用を支援する方法について説明する。   Hereinafter, a method for supporting application of a Facade pattern in a software design support apparatus will be described as an embodiment of the present invention.

図1は本発明に係るソフトウェア設計支援装置の概観を示す図である。尚、UMLで規定されたダイアグラムを用いてオブジェクト指向設計図を作成するためのUMLモデルエディタについては公知の技術であるため、詳細な説明は行わない。   FIG. 1 is a diagram showing an overview of a software design support apparatus according to the present invention. A UML model editor for creating an object-oriented design drawing using a diagram defined by UML is a well-known technique and will not be described in detail.

D1は全体を示すものであり、D2〜D5で構成される。D2は実際に設計図を記述するための描画領域であり、例えばクラス図を記述する場合はクラス図用に、シーケンス図を記述する場合はシーケンス図用と適宜切り替わる。D3はUMLダイアグラムが格納されているツールボックスであり、例えばクラス図を記述する場合はクラス図用のアイコンが並び、シーケンス図を記述する場合はシーケンス図用のアイコンが並ぶ。   D1 shows the whole and is composed of D2 to D5. D2 is a drawing area for actually describing a design diagram. For example, when a class diagram is described, the drawing region is switched to a class diagram, and when a sequence diagram is described, a sequence diagram is switched appropriately. D3 is a toolbox in which a UML diagram is stored. For example, when describing a class diagram, icons for class diagrams are arranged, and when describing a sequence diagram, icons for sequence diagrams are arranged.

設計者が描画領域D2に図を記述する場合は、このツールボックスD3からアイコンを選択し、描画領域D2に配置する。D4は作成された設計図の情報を一元管理及び表示するためのブラウズ領域である。新しい図を作成する場合や、既に記述した図を切り替えたりする場合はここで行う。ブラウズ領域で図が切り替えられた場合は、それに応じて描画領域D2及びツールボックスD3も切り替わる。更に、ブラウズ領域D3では、記述された設計図の詳細情報、例えばクラス図におけるクラス間の関連線の関連元クラス名、関連先クラス名、関連の方向、関連名等も管理されている。D5はログを表示するためのログ表示部である。設計者の操作結果等が適宜表示される。又、設計者が何らかの判断を行わなければならないときもログ表示部D5に選択肢が表示される。   When a designer describes a figure in the drawing area D2, an icon is selected from the tool box D3 and placed in the drawing area D2. D4 is a browse area for centrally managing and displaying the information of the created design drawing. If you want to create a new diagram or switch between the diagrams already described, do so now. When the figure is switched in the browse area, the drawing area D2 and the tool box D3 are also switched accordingly. Further, in the browse area D3, detailed information of the described design drawing, for example, a relation source class name, a relation destination class name, a relation direction, a relation name, and the like of a relation line between classes in the class diagram are managed. D5 is a log display unit for displaying a log. The result of the designer's operation is displayed as appropriate. Also, when the designer has to make some judgment, options are displayed on the log display unit D5.

図2は実施の形態に係るソフトウェア設計支援装置の機能構成を示すブロック図である。   FIG. 2 is a block diagram showing a functional configuration of the software design support apparatus according to the embodiment.

図2において、E1は設計者から入力されたシナリオ毎のシーケンス図の保持部である。E2は設計者から入力されたクラス図情報の保持部である。E3は図3に示すフォーマットで記述されるパッケージに存在するクラスの対応テーブル(E4)及び図4に示すフォーマットで記述されるクラスが保持するオペレーションとの対応テーブル(E5)を作成するための装置である。E6は各パッケージに所属するクラスが受信するイベントを抽出し、図5に示すフォーマットで記述されるパッケージ/イベント対応テーブル(E9)を作成する装置である。E7はパッケージに所属するクラスが外部パッケージに所属するクラスから参照される関連を抽出し、図6示すフォーマットで記述されるパッケージ/関連対応テーブル(E11)を作成する装置である。   In FIG. 2, E1 is a holding unit for a sequence diagram for each scenario input from the designer. E2 is a holding unit for class diagram information input from the designer. E3 is a device for creating a correspondence table (E4) of classes existing in the package described in the format shown in FIG. 3 and a correspondence table (E5) with the operations held by the classes described in the format shown in FIG. It is. E6 is an apparatus for extracting an event received by a class belonging to each package and creating a package / event correspondence table (E9) described in the format shown in FIG. E7 is an apparatus for extracting a relationship in which a class belonging to a package is referenced from a class belonging to an external package and creating a package / relationship correspondence table (E11) described in the format shown in FIG.

E8はシナリオ毎にやり取りされるイベントを抽出し、図7に示すフォーマットで記述されるシナリオ/イベント対応テーブル(E12)を作成する装置である。E10はE9とE11よりパッケージ毎にFacadeパターンが適用可能であるか判定を行い、図8に示すフォーマットで記述されるFacadeパターン適用判定結果格納テーブル(E13)を作成する装置である。E14はE4,E5,E6に基づいてFacadeクラスを作成する装置であり、E15とE16を作成する。   E8 is an apparatus that extracts events exchanged for each scenario and creates a scenario / event correspondence table (E12) described in the format shown in FIG. E10 is a device that determines whether a Facade pattern is applicable for each package from E9 and E11, and creates a Facade pattern application determination result storage table (E13) described in the format shown in FIG. E14 is a device that creates a Facade class based on E4, E5, and E6, and creates E15 and E16.

E18はE11にFacadeクラスを反映させてE17を作成する装置である。E19はE17に基づいてFacadeパターンを適用したクラス図を出力装置に表示するための装置である。E22はE12にFacadeクラスを反映させてE21を作成するための装置である。E20はE21に基づいてFacadeパターンを適用したシーケンス図を作成出力装置に表示するための装置である。   E18 is a device that creates E17 by reflecting the Facade class in E11. E19 is a device for displaying the class diagram to which the Facade pattern is applied based on E17 on the output device. E22 is an apparatus for creating E21 by reflecting the Facade class in E12. E20 is a device for displaying a sequence diagram to which the Facade pattern is applied based on E21 on the creation output device.

図9は図1のソフトウェア設計支援装置において入力された設計情報に対してFacadeパターンを自動適用するまでの処理を示すフローチャートである。   FIG. 9 is a flowchart showing a process until the Facade pattern is automatically applied to the design information input in the software design support apparatus of FIG.

S1によって設計者からクラス図及びシナリオ毎に分けられたシーケンス図等の設計情報が入力さる。作成されるクラス図の例を図21に、シーケンス図の例を図22にそれぞれ示す。   In S1, design information such as a sequence diagram divided for each class diagram and scenario is input from the designer. An example of the created class diagram is shown in FIG. 21, and an example of the sequence diagram is shown in FIG.

S2では入力された設計情報の中からFacadeパターンを自動適用するために必要な情報を抽出し各種テーブルを作成する。各種テーブルの例を図23〜図26に示す。その詳細なアルゴリズムは図10〜図14に示す。S3では、S2により作成されたテーブル情報に基づいてFacadeパターンが適用可能であるかをパッケージ単位で判定を行う。その詳細なアルゴリズムは図15に示す。S4では、S3の判定結果に基づいてパッケージ毎にFacadeクラスを自動作成し、適用されたクラス図及びシーケンス図を生成して表示する。その詳細なアルゴリズムは図16〜図20に示す。本装置を利用して自動的にFacadeパターンが適用されたクラス図及びシーケンス図の例を図33〜図34に示す。   In S2, information necessary for automatically applying the Facade pattern is extracted from the inputted design information, and various tables are created. Examples of various tables are shown in FIGS. The detailed algorithm is shown in FIGS. In S3, it is determined on a package basis whether the Facade pattern is applicable based on the table information created in S2. The detailed algorithm is shown in FIG. In S4, a Facade class is automatically created for each package based on the determination result in S3, and the applied class diagram and sequence diagram are generated and displayed. The detailed algorithm is shown in FIGS. Examples of class diagrams and sequence diagrams to which the Facade pattern is automatically applied using this apparatus are shown in FIGS.

図10はクラス図情報E2からパッケージ/クラス対応テーブルE4の作成を行うパッケージ/クラス対応テーブル作成装置E3の詳細アルゴリズムを示すフローチャートである。   FIG. 10 is a flowchart showing a detailed algorithm of the package / class correspondence table creating apparatus E3 for creating the package / class correspondence table E4 from the class diagram information E2.

S5では、パッケージ/クラス対応テーブルE4を新規作成する。S6では、或るクラスについて所属するパッケージをクラス図E2より取得し、Pnameという変数に格納する。S7〜S8では、パッケージ/クラス対応テーブルE4のパッケージ名の列でPnameを検索し、もし見つからない場合は新規にPnameというパッケージ名を要素として追加する。S9では、現在処理中のクラス名をPname行に追加する。S6〜S9を全てのクラスについて行うことによってパッケージ/クラス対応テーブルが完成する。図21に示すクラス図の例から作成されるパッケージ/クラス対応テーブルE4の例を図23に示す。   In S5, a new package / class correspondence table E4 is created. In S6, a package belonging to a certain class is acquired from the class diagram E2 and stored in a variable called Pname. In S7 to S8, Pname is searched in the package name column of the package / class correspondence table E4. If it is not found, a new package name Pname is added as an element. In S9, the class name currently being processed is added to the Pname line. The package / class correspondence table is completed by performing S6 to S9 for all classes. An example of the package / class correspondence table E4 created from the example of the class diagram shown in FIG. 21 is shown in FIG.

図11はクラス図E2からクラス/オペレーション対応テーブルE5を作成するクラス/オペレーション対応テーブル作成装置E3の詳細アルゴリズムを示すフローチャートである。   FIG. 11 is a flowchart showing a detailed algorithm of the class / operation correspondence table creating apparatus E3 that creates the class / operation correspondence table E5 from the class diagram E2.

S9では、クラス/オペレーション対応テーブルE5を新規作成する。S10〜S13では、クラス/オペレーション対応テーブルE5のクラス名の項目に処理中のクラス名を追加し、オペレーション名の項目に処理中のクラスが持つ全てのオペレーション名を追加する。これらの処理をクラス図E2上の全てのクラスについて行うことによってクラス/オペレーション対応テーブルE5が完成する。図21に示すクラス図の例から作成されるクラス/オペレーション対応テーブルE5の例を図24に示す。   In S9, a new class / operation correspondence table E5 is created. In S10 to S13, the class name being processed is added to the class name item of the class / operation correspondence table E5, and all the operation names of the class being processed are added to the operation name item. By performing these processes for all classes on the class diagram E2, the class / operation correspondence table E5 is completed. An example of the class / operation correspondence table E5 created from the example of the class diagram shown in FIG. 21 is shown in FIG.

図12はパッケージ/イベント対応テーブルE9を作成するパッケージ/関連対応テーブル作成装置E7の詳細アルゴリズムを示すフローチャートである。   FIG. 12 is a flowchart showing a detailed algorithm of the package / relationship correspondence table creation device E7 that creates the package / event correspondence table E9.

S14では、パッケージ/イベント対応テーブルE9を新規作成する。その後、シナリオ毎のシーケンス図E1のシナリオ毎にループを回し、それぞれについて次の処理を行う。S15では、シーケンス図E1の時系列毎(上から順番)にイベントを探し出し、見つかったイベントについてイベント名をEVName、送信元のクラス名をSrcClass、送信先のクラス名をDstClassに格納する。A16では、S15においてDstClassという変数に記録されたクラス名をパッケージ/クラス対応テーブルのクラス名の列で検索し、見つかったクラスが所属するパッケージ名をPnameという変数に格納する。   In S14, a new package / event correspondence table E9 is created. Thereafter, the loop is rotated for each scenario in the sequence diagram E1 for each scenario, and the following processing is performed for each scenario. In S15, an event is found for each time series (in order from the top) of the sequence diagram E1, and for the found event, the event name is stored in EVName, the class name of the transmission source is stored in SrcClass, and the class name of the transmission destination is stored in DstClass. In A16, the class name recorded in the variable DstClass in S15 is searched in the class name column of the package / class correspondence table, and the package name to which the found class belongs is stored in the variable Pname.

S17では、S16においてPnameに格納したパッケージ名をパッケージ/イベント対応テーブルE6のパッケージ名の列で検索を行う。その結果、Pnameが存在した場合はその行をアクティブにする。もし、Pnameが存在しなかった場合は、S18において、パッケージ/イベント対応テーブルのパッケージ名の列にPnameを新規追加し、その行をアクティブにする。S19では、パッケージ/イベント対応テーブルE6において現在アクティブになっている行のイベント名の項目に新たにEVNameを、送信元クラスの項目にSrcClassを、送信先クラスの項目にDstClassをそれぞれ新規追加する。S15〜S19の処理を全てのシナリオ毎のシーケンス図E1について行うことでパッケージ/イベント対応テーブルE9が完成する。図21に示すクラス図の例及び図22に示すシナリオ毎のシーケンス図の例から作成されるパッケージ/イベント対応テーブルE9の例を図25に示す。   In S17, the package name stored in Pname in S16 is searched in the package name column of the package / event correspondence table E6. As a result, if Pname exists, that line is activated. If Pname does not exist, in S18, Pname is newly added to the package name column of the package / event correspondence table, and the row is activated. In S19, EVName is newly added to the item of the event name in the currently active row in the package / event correspondence table E6, SrcClass is newly added to the item of the transmission source class, and DstClass is newly added to the item of the transmission destination class. The package / event correspondence table E9 is completed by performing the processing of S15 to S19 on the sequence diagram E1 for every scenario. FIG. 25 shows an example of the package / event correspondence table E9 created from the example of the class diagram shown in FIG. 21 and the example of the sequence diagram for each scenario shown in FIG.

図13はパッケージ/関連対応テーブルE11を作成するパッケージ/関連対応テーブル作成装置E7の詳細アルゴリズムを示すフローチャートである。   FIG. 13 is a flowchart showing a detailed algorithm of the package / relationship correspondence table creation device E7 that creates the package / relationship correspondence table E11.

S20では、パッケージ/関連対応テーブルE11を新規作成する。S21以降は、パッケージ/クラス対応テーブルE4に記録されたパッケージ毎のループ(処理中のパッケージ名をPnameという変数に格納)の中でそのパッケージに所属するクラス毎のループ(処理中のクラス名をDstClassという変数に格納)が回される。更に、DstClassのクラスがクラス図E2上で持っている関連毎にループが回される。S21では、現在処理中の関連名をACNameに、関連の相手クラスの名前をSrcClassという変数にそれぞれ格納する。S22では、処理中の関連が双方向であるかを調べる。 S23では、S22の結果を判別する。S23の結果が双方向であった場合は、S24でパッケージ/関連対応テーブルの所属パッケージの列でPnameを検索する。S25においてS24の結果を判別し、見つからなかった場合はS26でパッケージ/関連対応テーブルE11の所属パッケージの列に新たにPnameを追加する。   In S20, a new package / relationship correspondence table E11 is created. After S21, in the loop for each package recorded in the package / class correspondence table E4 (the name of the package being processed is stored in a variable called Pname), the loop for each class belonging to that package (the class name being processed) Stored in a variable called DstClass). Further, a loop is rotated for each association that the class of DstClass has on the class diagram E2. In S21, the name of the currently processed association is stored in ACName, and the name of the related partner class is stored in a variable called SrcClass. In S22, it is checked whether the relation being processed is bidirectional. In S23, the result of S22 is determined. If the result of S23 is bidirectional, Pname is searched in the column of the package to which the package / relationship correspondence table belongs in S24. In S25, the result of S24 is determined. If the result is not found, Pname is newly added to the column of the belonging package of the package / relationship correspondence table E11 in S26.

S27では、パッケージ/関連対応テーブルの所属パッケージがPnameの項目に新しい行を追加し、関連名の項目にACNameを関連元クラスの項目にSrcClassを関連先クラスの項目にDstClassを双方向の項目に○を記入する。S28は、S23の判定結果がNoの時に行われるものであり、関連の方向がSrcClassからDstClassの方向であるかを調べる。S29では、S28の結果を判別し、もしNoの場合は現在処理中の関連のループから抜ける。S29の結果がYesであった場合は、S30でパッケージ/関連対応テーブルE11の所属パッケージの列でPnameを検索する。S31においてS30の結果を判別し、見つからなかった場合はS32でパッケージ/関連対応テーブルの所属パッケージの列に新たにPnameを追加する。   In S27, a new line is added to the item Pname of the package / relationship correspondence table in the package / association table, ACName is set to the related source class item, SrcClass is set to the related destination class item, and DstClass is set to the bidirectional item. Fill in ○. S28 is performed when the determination result in S23 is No, and it is checked whether the related direction is the direction from SrcClass to DstClass. In S29, the result of S28 is determined. If No, the process exits from the related loop currently being processed. If the result of S29 is Yes, Pname is searched in the column of the package to which the package / relationship correspondence table E11 belongs in S30. In S31, the result of S30 is determined. If the result is not found, Pname is newly added to the column of the package to which the package / relationship correspondence table belongs in S32.

S33では、パッケージ/関連対応テーブルの所属パッケージがPnameの項目に新しい行を追加し、関連名の項目にACNameを関連元クラスの項目にSrcClassを関連先クラスの項目にDstClassを双方向の項目に×を記入する。S22〜S33の処理を全ての関連について繰り返すことでパッケージ/関連対応テーブルが完成する。図23に示すパッケージ/クラス対応テーブルから作成される。図23に示すパッケージ/クラス対応テーブルの例から作成されるパッケージ/関連対応テーブルの例を図26に示す。   In S33, a new line is added to the item Pname of the package / association table belonging to the package / association table, ACName is set to the related source class item, SrcClass is set to the related destination class item, and DstClass is set to the bidirectional item. Fill in x. The package / relationship correspondence table is completed by repeating the processing of S22 to S33 for all the relationships. It is created from the package / class correspondence table shown in FIG. FIG. 26 shows an example of a package / association correspondence table created from the example of the package / class correspondence table shown in FIG.

図14はシナリオ/イベント対応テーブルE12を作成するためのシナリオ/イベント対応テーブル作成装置E8の詳細アルゴリズムを示すフローチャートである。   FIG. 14 is a flowchart showing a detailed algorithm of the scenario / event correspondence table creating apparatus E8 for creating the scenario / event correspondence table E12.

S34では、シナリオ/イベント対応テーブルE12を新規作成する。S35以降は未処理のシナリオ毎のシーケンス図E1がある限り繰り返される。S35では、シナリオ/イベント対応テーブルe12に新規シナリオ行を追加し、その行を選択する。S36以降はシナリオ毎のシーケンス図E1に未処理のイベントがある限り繰り返される。S36では、シナリオ毎のシーケンス図E1で未処理且つ時系列的に先頭(一番上)のイベントを検索して、イベント名をEVName、送信元クラス名をSrcClass、送信先クラスをDstClassという変数に格納する。   In S34, a scenario / event correspondence table E12 is newly created. S35 and subsequent steps are repeated as long as there is a sequence diagram E1 for each unprocessed scenario. In S35, a new scenario line is added to the scenario / event correspondence table e12, and the line is selected. S36 and subsequent steps are repeated as long as there is an unprocessed event in the sequence diagram E1 for each scenario. In S36, the first event (top) is searched in the sequence diagram E1 for each scenario, and the event name is EVName, the source class name is SrcClass, and the destination class is DstClass. Store.

S37では、シナリオ/イベント対応テーブルE12で現在選択されているシナリオに新たな行を追加し、イベント名の項目にEVNameを送信元クラスの項目にSrcClassを送信先クラスの項目にDstClassを記入する。S35〜S37を繰り返すことでシナリオ/イベント対応テーブルE12が完成する。図22に示すシナリオ毎のシーケンス図の例から作成されるシナリオ/イベント対応テーブルの例を図27に示す。   In S37, a new line is added to the scenario currently selected in the scenario / event correspondence table E12, EVName is entered in the event name item, SrcClass is entered in the transmission source class item, and DstClass is entered in the transmission destination class item. The scenario / event correspondence table E12 is completed by repeating S35 to S37. FIG. 27 shows an example of the scenario / event correspondence table created from the example of the sequence diagram for each scenario shown in FIG.

図15は設計者が入力したモデルにFacadeパターンが適用可能であるか判定するFacadeクラス適用判定装置E10の詳細を示したフローチャートである。   FIG. 15 is a flowchart showing details of the Facade class application determination device E10 that determines whether a Facade pattern is applicable to a model input by a designer.

S38では、Facadeパターン適用判定結果テーブルE13を新規作成する。S39以降は、パッケージ/イベント対応テーブルE9のパッケージ名列に未処理のパケージがある限り繰り返される。現在処理中のパッケージ名ををPnameという変数に格納する。S39では、パッケージ/イベント対応テーブルE9のパッケージ名の列がPnameの項目のイベント数をカウントしてevCnt
という変数に格納する。S40では、パッケージ/関連対応テーブルE11のパッケージ名の列においてPnameの項目を検索し、対応する関連数をカウントしてaccCntという変数に格納する。
In S38, a new Facade pattern application determination result table E13 is created. After S39, the process is repeated as long as there is an unprocessed package in the package name column of the package / event correspondence table E9. The name of the package currently being processed is stored in a variable called Pname. In S39, the package name column of the package / event correspondence table E9 counts the number of events of the item Pname, and evCnt
Is stored in the variable. In S40, the Pname item is searched in the package name column of the package / relationship correspondence table E11, the corresponding number of associations is counted, and stored in a variable accCnt.

S41では、evCnt が2以上且つaccCntが2以上であるかを判別する。S42はS41の判別結果がYesだった場合に行われる処理であり、Facadeパターン適用判定結果テーブルE13のパッケージ名の列にPnameを追加し、Facadeクラス作成の可否の項目に○を記入する。S43は、S41の判別結果がNoだった場合に行われる処理であり、Facadeパターン適用判定結果テーブルE13のパッケージ名の列にPnameを追加し、Facadeクラス作成の可否の項目に×を記入する。   In S41, it is determined whether evCnt is 2 or more and accCnt is 2 or more. S42 is a process that is performed when the determination result of S41 is Yes, Pname is added to the package name column of the Facade pattern application determination result table E13, and a circle is entered in the item of whether or not a Facade class can be created. S43 is a process performed when the determination result of S41 is No. Pname is added to the package name column of the Facade pattern application determination result table E13, and “x” is entered in the item of whether or not the Facade class can be created.

図25に示すパッケージ/イベント対応テーブルの例及び図26に示すパッケージ/関連対応テーブルの例から作成されるパターン適用判定結果テーブルの例を図28に示す。   FIG. 28 shows an example of a pattern application determination result table created from the example of the package / event correspondence table shown in FIG. 25 and the example of the package / relationship correspondence table shown in FIG.

図16はFacadeパターンが適用可能なパッケージに対してFacadeクラスを作成するFacadeクラス作成装置E14の詳細アルゴリズムを示すフローチャートである。   FIG. 16 is a flowchart showing a detailed algorithm of the Facade class creation device E14 that creates a Facade class for a package to which the Facade pattern can be applied.

先ず、パッケージ/クラス対応テーブルE4を開きパッケージ名の列に記述されているパッケージ数分ループを回す。このとき、ループ変数Pnameにパッケージ名を格納する。S44では、Facadeパターン適用判定結果テーブルE13を開き、パッケージ名の列からPnameの項目を検索する。そして、Facadeクラス作成の可否列の○×から該当するパッケージがFacadeパターン適用可能であるか判断する。   First, the package / class correspondence table E4 is opened, and the loop is rotated for the number of packages described in the package name column. At this time, the package name is stored in the loop variable Pname. In S44, the Fadeade pattern application determination result table E13 is opened, and the Pname item is searched from the package name column. Then, it is determined whether or not the applicable package is applicable to the Facade pattern from the circles in the column indicating whether or not the Facade class can be created.

S45によってその判断が行われ、もし可能であると判断された場合はS46の処理に進む。もしFacadeクラスの作成が不可と判断された場合は次のパッケージに処理が進む。S46では、パッケージ/クラス対応テーブルE4を書き換えることにより、Facadeクラス適用後パッケージ/クラス対応テーブルE15を作成する。その処理内容としてはPnameに対応したクラス名の列にPnameと同じ名前のクラスの追加を行う。   The determination is made in S45, and if it is determined that it is possible, the process proceeds to S46. If it is determined that the Facade class cannot be created, the process proceeds to the next package. In S46, the package / class correspondence table E15 after application of the Facade class is created by rewriting the package / class correspondence table E4. As the processing contents, a class having the same name as Pname is added to the class name column corresponding to Pname.

S47では、クラス/オペレーション対応テーブルE5を書き換えることにより、Facadeクラス適用後クラス/オペレーション対応テーブルE16を作成する。その処理内容とクラス名の列にPnameと同じ名前のクラス名を追加する。図23に示すパッケージ/クラス対応テーブルの例及び図24に示すクラス/オペレーション対応テーブルの例及び図28に示すFacadeパターン判定結果の例から作成されるFacadeクラス適用後のパッケージ/クラス対応テーブルの例を図29に、Facadeクラス適用後のクラス/オペレーション対応テーブルの例を図30にそれぞれ示す。   In S47, the class / operation correspondence table E16 after creation of the Facade class is created by rewriting the class / operation correspondence table E5. The class name having the same name as Pname is added to the column of the processing contents and class name. Example of package / class correspondence table shown in FIG. 23, example of class / operation correspondence table shown in FIG. 24, and example of package / class correspondence table after application of Fade class created from example of Fade pattern determination result shown in FIG. FIG. 29 shows an example of a class / operation correspondence table after applying the Facade class.

図17はシナリオ/イベント対応テーブルE12をFacadeパターンに対応させる装置E22の詳細アルゴリズムを示すフローチャートである。   FIG. 17 is a flowchart showing a detailed algorithm of the device E22 for associating the scenario / event correspondence table E12 with the Fade pattern.

先ず、シナリオ/イベント対応テーブルE12を開き、イベント名列に記述されているイベントでループを回す。このとき、ループ変数としてevNameを準備し、イベント名を格納する。S48では、シナリオ/イベント対応テーブルE12の現在ループを回しているイベントの送信元クラス名をSrcClassという変数に格納し、送信先クラス名をDstClassという変数に格納する。   First, the scenario / event correspondence table E12 is opened, and a loop is performed with the events described in the event name column. At this time, evName is prepared as a loop variable, and the event name is stored. In S48, the source class name of the event that is currently looping in the scenario / event correspondence table E12 is stored in a variable called SrcClass, and the destination class name is stored in a variable called DstClass.

S49ではパッケージ/クラス対応テーブルE15を開き、クラス名の列でSrcClassを検索し、SrcClassに対応するパッケージをSrcPという変数に格納する。同様にDstClassについても検索を行い、結果をDstPという変数に格納する。S50では、SrcPとDstPが同じであるかを判断する。S51はS50の判断結果がNoの場合に実行される処理である。S51では、Facadeパターン判定結果テーブルE13のパッケージ名の列でDstPを検索し、○×よりDstPがFacadeパターン適用可能かどうか調べる。S53では、その判断を行う。S54はS53の判断結果がYesだった場合に実行される処理である。S54では、シナリオ/イベント対応テーブルE12の現在処理中のイベントの行の下に新しく行を追加し、その行のイベント名の列にevNameを送信先クラスにDstClassをコピーする。   In S49, the package / class correspondence table E15 is opened, SrcClass is searched in the class name column, and the package corresponding to SrcClass is stored in a variable SrcP. Similarly, DstClass is searched and the result is stored in a variable called DstP. In S50, it is determined whether SrcP and DstP are the same. S51 is a process executed when the determination result of S50 is No. In S51, DstP is searched for in the package name column of the Facade pattern determination result table E13, and it is checked whether or not DstP is applicable to the Facade pattern from Ox. In S53, the determination is made. S54 is a process executed when the determination result of S53 is Yes. In S54, a new row is added below the currently processed event row in the scenario / event correspondence table E12, and evName is copied to the event name column of that row and DstClass is copied to the destination class.

S55では、シナリオ/イベント対応テーブルE12の現在処理中の行の送信先クラス名の列の内容と、S54で追加した行の送信元クラス名の列の内容をDstPと同じ名前のクラス名を追加する。S56では、Facadeクラス適用後、クラス/オペレーション対応テーブルE16を開き、クラス名の列でDstClassを検索し、見つかった項目にevNameを追加する。   In S55, the class name having the same name as DstP is added to the contents of the destination class name column in the currently processed row of the scenario / event correspondence table E12 and the source class name column in the line added in S54. To do. In S56, after applying the Facade class, the class / operation correspondence table E16 is opened, DstClass is searched in the class name column, and evName is added to the found item.

以上のようなアルゴリズムによりFacadeクラス適用後シナリオ/イベント対応テーブルE21が作成される。図27に示すシナリオ/イベント対応テーブルの例及び図29に示すFacadeクラス適用後パッケージ/クラス対応テーブルの例及び図30に示すFacadeクラス適用後クラス/オペレーション対応テーブルの例から作成されるFacadeクラス適用後シナリオ/イベント対応テーブルの例を図31に示す。   The post-Facade class scenario / event correspondence table E21 is created by the algorithm as described above. Application of Fade class created from example of scenario / event correspondence table shown in FIG. 27, example of package / class correspondence table after application of Fade class shown in FIG. 29, and example of class / operation correspondence table after application of Fade class shown in FIG. An example of the post scenario / event correspondence table is shown in FIG.

図18はパッケージ/関連対応テーブルE11をFacadeパターン対応化させる装置E18の詳細アルゴリズムを示すフローチャートである。   FIG. 18 is a flowchart showing a detailed algorithm of the device E18 for associating the package / relationship correspondence table E11 with a Facade pattern.

先ず、パッケージ/関連対応テーブルE11を開き、パッケージ名の列に記述されているパッケージ数分ループを回す。このとき、ループ変数としてPnameを準備し、処理中のパッケージ名を格納する。S57では、Facadeパターン適用判定結果テーブルE13を開き、パッケージ名の列でPnameを検索し、○×よりPnameがFacadeパターン適用であるかを判定する。   First, the package / relationship correspondence table E11 is opened, and the loop is rotated for the number of packages described in the package name column. At this time, Pname is prepared as a loop variable, and the name of the package being processed is stored. In S57, the Facade pattern application determination result table E13 is opened, Pname is searched in the package name column, and it is determined from O × whether Pname is a Facade pattern application.

S58においてその判定が行われる。S58でYesと判定されるとパッケージ関連対応テーブルE11を開き、関連名の列に記述されている関連名の数でループを回す。このとき、ループ変数ACNameを準備し、処理中の関連名を格納する。S59では、パッケージ関連テーブルE11の現在処理中の関連名の行の下に新たに行を追加し、その行の関連先クラスの列に現在処理中の行の関連先クラス名をコピーする。S60では、パッケージ関連テーブルE11で現在処理中の行の関連先クラス名の列と、S59で新たに追加した行の関連元クラス名の列にFacadeクラス(Pnameと同じ名前のクラス)を追加する。   This determination is made in S58. If it is determined Yes in S58, the package association correspondence table E11 is opened, and the loop is rotated by the number of association names described in the association name column. At this time, the loop variable ACName is prepared and the related name being processed is stored. In S59, a new line is added below the line of the relation name currently being processed in the package relation table E11, and the relation destination class name of the line currently being processed is copied to the column of the relation destination class of that line. In S60, a Facade class (a class having the same name as Pname) is added to the column of the association destination class name of the row currently being processed in the package association table E11 and the column of the association source class name of the row newly added in S59. .

以上のようなアルゴリズムによりFacadeクラス適用後パッケージ/関連対応テーブルE17が作成される。図26に示されるパッケージ/関連対応テーブルの例及び図29に示されるFacadeクラス適用後パッケージ/クラス対応テーブルの例から作成されるFacadeクラス適用後パッケージ/関連対応テーブルの例を図32に示す。   The post-facade class applied package / relationship correspondence table E17 is created by the algorithm as described above. FIG. 32 shows an example of the package / relationship correspondence table after application of the Facade class created from the example of the package / relationship correspondence table shown in FIG. 26 and the example of the package / class correspondence table after application of the Facade class shown in FIG.

図19はFacadeパターンを適用したクラス図を作成する装置E19の詳細アルゴリズムを示すフローチャートである。   FIG. 19 is a flowchart showing a detailed algorithm of the device E19 that creates a class diagram to which the Facade pattern is applied.

S61では、ブラウズ部D4にクラス図を新規作成する。続いてFacadeクラス適用後パッケージ/クラス対応テーブルE15を開き、パッケージ名の列に記述されているパッケージ数分ループを回す。このとき、ループ変数Pnameを準備し、処理中のパッケージ名を格納する。S62では、S61で新規作成したクラス図上にPnameというパッケージを配置する。続いてFacadeクラス適用後パッケージ/クラス対応テーブルE15の現在処理中のパッケージに対応した、クラス名の列に記述されているクラス数分ループを回す。このとき、ループ変数としてCname を準備し、処理中のクラス名を格納する。   In S61, a new class diagram is created in the browse part D4. Subsequently, the package / class correspondence table E15 after the application of the Facade class is opened, and a loop is rotated for the number of packages described in the package name column. At this time, a loop variable Pname is prepared and the name of the package being processed is stored. In S62, a package called Pname is arranged on the class diagram newly created in S61. Subsequently, the loop is rotated by the number of classes described in the class name column corresponding to the package currently being processed in the package / class correspondence table E15 after application of the Facade class. At this time, Cname is prepared as a loop variable, and the class name being processed is stored.

S63では、S62で配置したパッケージの中にCname
という名前のクラスを配置する。これらループを抜けた後はFacadeクラス適用後、パッケージ/関連対応テーブルE17を開き、パッケージ名の列に記述されたパッケージ数分ループを回す。このとき、ループ変数Pnameを準備し、処理中のパッケージ名を格納する。更に、処理中のパッケージに対応した関連名の列に記述された関連数分ループを回す。このとき、Anameというループ変数を準備し、処理中の関連名を格納する。
In S63, Cname is included in the package arranged in S62.
Place a class named After exiting these loops, after applying the Facade class, the package / association correspondence table E17 is opened, and the loop is rotated by the number of packages described in the package name column. At this time, a loop variable Pname is prepared and the name of the package being processed is stored. Further, the loop is rotated for the number of relations described in the relation name column corresponding to the package being processed. At this time, a loop variable Aname is prepared and a related name being processed is stored.

S64では、関連元クラス名をSrcClass、関連先クラス名をDstClassという変数に格納する。S65では、S61で新規作成したクラス図上でSrcClassという名前のクラスとDstClassという名前のクラスを検索し、見つかったクラス同士にSrcClass→DstClassという方向で関連を記述し、関連名をAnameと付ける。これらループを抜けると、続いてFacadeクラス適用後クラス/オペレーション対応テーブルE16が開かれクラス名の列に記述されたクラス数分ループを回す。このとき、ループ変数Cnameを準備し、処理中のクラス名を格納する。   In S64, the association source class name is stored in a variable SrcClass, and the association destination class name is stored in a variable DstClass. In S65, a class named SrcClass and a class named DstClass are searched on the class diagram newly created in S61, a relationship is described in the direction of SrcClass → DstClass between the found classes, and the associated name is given as Aname. After exiting these loops, the class / operation correspondence table E16 after the application of the Facade class is opened, and the loop is rotated by the number of classes described in the class name column. At this time, the loop variable Cname is prepared and the class name being processed is stored.

更に、処理中のクラスに対応したオペレーションの列に記述されたオペレーション数分ループを回す。このとき、Onameというループ変数を準備し、処理中のオペレーション名を格納する。S66では、S61で新規作成したクラス図上でCnameというクラスを検索し、見つかったクラスのオペレーションにOnameを追加する。これらループを抜けるとS67の処理が実行されるS67では、Facadeクラスを適用する前のクラス図から、対応するクラスをそれぞれ検索し、各クラスの属性及びパッケージ内部の関連線をコピーする。   Further, the loop is rotated for the number of operations described in the operation column corresponding to the class being processed. At this time, a loop variable called Oname is prepared and the name of the operation being processed is stored. In S66, a class called Cname is searched on the class diagram newly created in S61, and Oname is added to the operation of the found class. When these loops are exited, the processing of S67 is executed. In S67, the corresponding class is searched from the class diagram before applying the Facade class, and the attribute of each class and the related line in the package are copied.

以上のようなアルゴリズムによりFacadeパターンが適用されたクラス図が作成される。   A class diagram to which the Facade pattern is applied is created by the algorithm as described above.

Facadeパターンが適用されたクラス図の例を図33に示す。   An example of a class diagram to which the Facade pattern is applied is shown in FIG.

図20はFacadeパターンを適用したシーケンス図を作成する装置E20の詳細アルゴリズムを示すフローチャートである。   FIG. 20 is a flowchart showing a detailed algorithm of the device E20 that creates a sequence diagram to which the Fade pattern is applied.

先ず、Facadeパターン適用後シナリオ/イベント対応テーブルE21を開き、シナリオ名の列に記述されているシナリオ数分ループを回す。S68では、ブラウズ部D4にシーケンス図を新規作成する。続いて現在処理中のシナリオに対応したイベント名の列に記述されているイベント数分ループを回す。このとき、ループ変数evNmaeを準備し、処理中のイベント名を格納する。   First, the post-facade pattern applied scenario / event correspondence table E21 is opened, and the loop is rotated for the number of scenarios described in the scenario name column. In S68, a new sequence diagram is created in the browse part D4. Subsequently, the loop is rotated for the number of events described in the event name column corresponding to the scenario currently being processed. At this time, the loop variable evNmae is prepared and the name of the event being processed is stored.

S69では、現在処理中のイベントの送信元クラスをSrcClassという変数に格納し、送信先クラスをDstClassという変数に格納する。S70では、S68で新規作成したシーケンス図上にSrcClassのインスタンスアイコンが記述されているか判定する。S71はS70の判定結果がNoだった場合の処理である。S71では、SrcClassという名前のインスタンスアイコンをシーケンス図上に配置する。S72及びS73でも同様にDstClassについて検索を行い、見つからなければDstClassという名前のクラスをシーケンス図上に配置する。S74では、SrcClassという名前のインスタンスからDstClassという名前のインスタンスに向かってイベントを送信し、evNmaeという名前を付ける。   In S69, the transmission source class of the event currently being processed is stored in a variable called SrcClass, and the transmission destination class is stored in a variable called DstClass. In S70, it is determined whether an instance icon of SrcClass is described on the sequence diagram newly created in S68. S71 is a process when the determination result of S70 is No. In S71, an instance icon named SrcClass is arranged on the sequence diagram. Similarly, in S72 and S73, a search is performed for DstClass, and if not found, a class named DstClass is arranged on the sequence diagram. In S74, an event is transmitted from the instance named SrcClass toward the instance named DstClass, and named evNmae.

以上のようなアルゴリズムによりFacadeパターンが適用されたシーケンス図が作成される。Facadeパターンが適用されたシーケンス図の例を図34に示す。   A sequence diagram to which the Facade pattern is applied is created by the algorithm as described above. An example of a sequence diagram to which the Facade pattern is applied is shown in FIG.

概観図である。FIG. 全体構成を示すブロック図である。It is a block diagram which shows the whole structure. パッケージ/クラス対応テーブルのフォーマットを示す図である。It is a figure which shows the format of a package / class correspondence table. クラス/オペレーション対応テーブルのフォーマットを示す図である。It is a figure which shows the format of a class / operation correspondence table. パッケージ/イベント対応テーブルのフォーマットを示す図である。It is a figure which shows the format of a package / event corresponding table. クラス/関連対応テーブルのフォーマットを示す図である。It is a figure which shows the format of a class / relationship correspondence table. シナリオ/イベント対応テーブルのフォーマットを示す図である。It is a figure which shows the format of a scenario / event corresponding table. Facadeパターン適用判定結果格納テーブルを示す図である。It is a figure which shows the Facade pattern application determination result storage table. 動作の概略を表すフローチャートである。It is a flowchart showing the outline | summary of operation | movement. パッケージ/クラス対応テーブル作成のフローチャートである。It is a flowchart of package / class correspondence table creation. クラス/オペレーション対応テーブル作成フローチャートである。It is a class / operation correspondence table creation flowchart. パッケージ/イベント対応テーブル作成のフローチャートである。It is a flowchart of package / event correspondence table creation. パッケージ/関連対応テーブル作成のフローチャートである。It is a flowchart of package / relationship table creation. シナリオ/イベント対応テーブル作成のフローチャートである。It is a flowchart of scenario / event correspondence table creation. Facadeパターン適用判定のフローチャートである。It is a flowchart of Fadede pattern application determination. Facadeクラス作成のフローチャートである。It is a flowchart of Facade class creation. シナリオ/イベント対応テーブルをFacade対応させるフローチャートである。It is a flowchart which makes a scenario / event correspondence table correspond to Fade. パッケージ/関連対応テーブルをFacade対応させるフローチャートである。It is a flowchart which makes a package / association correspondence table correspond to Fade. Facadeパターンを適用したクラス図を表示させるフローチャートである。It is a flowchart which displays the class diagram to which a Facade pattern is applied. Facadeパターン適用したシーケンス図を表示させるフローチャートである。It is a flowchart which displays the sequence diagram which applied the Facade pattern. クラス図である。It is a class diagram. シナリオ毎のシーケンス図である。It is a sequence diagram for every scenario. パッケージ/クラス対応テーブルの例を示す図である。It is a figure which shows the example of a package / class correspondence table. クラス/オペレーション対応テーブルの例を示す図である。It is a figure which shows the example of a class / operation correspondence table. パッケージ/イベント対応テーブルの例を示す図である。It is a figure which shows the example of a package / event corresponding table. パッケージ/関連対応テーブルの例を示す図である。It is a figure which shows the example of a package / relationship correspondence table. シナリオ/イベント対応テーブルの例を示す図である。It is a figure which shows the example of a scenario / event correspondence table. Facadeパターン適用判定結果テーブルの例を示す図である。It is a figure which shows the example of a Facade pattern application determination result table. Facadeクラス適用後パッケージ/クラス対応テーブルの例を示す図である。It is a figure which shows the example of the package / class correspondence table after Fadede class application. Facadeクラス適用後クラス/オペレーション対応テーブルの例を示す図である。It is a figure which shows the example of a class / operation corresponding | compatible table after a Facade class application. Facadeクラス適用後シナリオ/イベント対応テーブルの例を示す図である。It is a figure which shows the example of a scenario / event corresponding table after Fadede class application. Facadeクラス適用後パッケージ/関連対応テーブルの例を示す図である。It is a figure which shows the example of the package / relationship correspondence table after Fadede class application. Facadeパターンが適用されたクラス図の例を示す図である。It is a figure which shows the example of the class diagram to which the Facade pattern was applied. Facadeパターンが適用されたシーケンス図の例を示す図である。It is a figure which shows the example of the sequence diagram to which the Facade pattern was applied.

符号の説明Explanation of symbols

D1 装置概観
D2 描画領域
D3 ツールボックス
D4 ブラウズ部
D5 ログ表示部
D1 Device overview D2 Drawing area D3 Tool box D4 Browse section D5 Log display section

Claims (5)

UMLで規定された表記法を用いた各種ソフトウェア設計図を入力するための手段と、設計図の記述を支援するための手段と、入力された設計図を記憶装置に格納する手段と、記述された設計図から詳細な設計部品毎の情報を取り出す手段を有し、設計者が入力したクラス図及びシーケンス図から必要情報を抽出し、ソフトウェアデザインパターンの1つであるFacadeパターンが適用可能であるか自動的に判定を行う手段を備えたことを特徴とするソフトウェア設計支援装置。   A means for inputting various software blueprints using a notation stipulated by UML, a means for supporting the description of blueprints, and a means for storing the input blueprints in a storage device. It is possible to extract the necessary information from the class diagram and sequence diagram input by the designer, and to apply the Facade pattern which is one of the software design patterns. A software design support apparatus comprising means for automatically making a determination. 前記判定手段は、クラス図において各クラスが所属するパッケージの情報、クラスの関連情報、クラスのオペレーション情報及びシナリオ毎のシーケンス図におけるイベントの送信情報から判定されることを特徴とする請求項1記載のソフトウェア設計支援装置。   2. The determination unit according to claim 1, wherein the determination unit is determined from information on a package to which each class belongs in a class diagram, class related information, class operation information, and event transmission information in a sequence diagram for each scenario. Software design support equipment. 前記判定手段においてFacadeパターンの適用が可能であると判定された場合は、Facadeパターンが適用されたクラス図及びシーケンス図を自動的に作成する手段を備えたことを特徴とする請求項1記載のソフトウェア設計支援装置。   2. The method according to claim 1, further comprising means for automatically creating a class diagram and a sequence diagram to which the Facade pattern is applied when it is determined by the determining means that the Facade pattern can be applied. Software design support device. 前記判定手段においてFacadeパターンの適用が可能であると判定された場合は、設計者に通知を行い、設計者がFacadeパターンの適用を行うと判断した場合にのみFacadeパターンが適用されたクラス図及びシーケンス図を作成する手段を備えたことを特徴とする請求項1記載のソフトウェア設計支援装置。   If the determination means determines that the application of the Facade pattern is possible, the class diagram to which the Facade pattern is applied only when the designer is notified and the designer determines to apply the Facade pattern; 2. The software design support apparatus according to claim 1, further comprising means for creating a sequence diagram. 上記請求項1〜4の何れかに記載のソフトウェア設計支援装置をコンピュータ上で動作させるための記憶媒体。   A storage medium for operating the software design support apparatus according to any one of claims 1 to 4 on a computer.
JP2005032440A 2005-02-09 2005-02-09 Software design support device and storage medium Withdrawn JP2006221293A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005032440A JP2006221293A (en) 2005-02-09 2005-02-09 Software design support device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005032440A JP2006221293A (en) 2005-02-09 2005-02-09 Software design support device and storage medium

Publications (1)

Publication Number Publication Date
JP2006221293A true JP2006221293A (en) 2006-08-24

Family

ID=36983603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005032440A Withdrawn JP2006221293A (en) 2005-02-09 2005-02-09 Software design support device and storage medium

Country Status (1)

Country Link
JP (1) JP2006221293A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787552B2 (en) 2012-05-31 2017-10-10 Fujitsu Limited Operation process creation program, operation process creation method, and information processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787552B2 (en) 2012-05-31 2017-10-10 Fujitsu Limited Operation process creation program, operation process creation method, and information processing device

Similar Documents

Publication Publication Date Title
Paterno et al. One model, many interfaces
CN108984172B (en) Interface file generation method and device
JP2003241807A (en) Robot control unit
JP2008203912A (en) Screen forming apparatus, method and program
CN108108194A (en) User interface edit methods and user interface editing machine
EP1895407A1 (en) HMI development support apparatus, HMI development support method and HMI development support program
KR20000049456A (en) Method of automatically generating and updating web-page
JP5026925B2 (en) Control program creation device and control program creation method
CA2686367A1 (en) Dynamic native editor code view facade
JP3625084B2 (en) Reuse system for software parts
JP2001306310A (en) Method and device for assisting creation of gui part and application developing method
JP2006221293A (en) Software design support device and storage medium
US20040117749A1 (en) System and method based on an object-oriented software design framework for displaying constrained graphical layouts
JP2006163855A (en) Web application development support device, and development support method
JPH06187396A (en) Network constitution design aid system
Vaderna et al. Graph layout algorithms and libraries: Overview and improvements
JPH01199756A (en) Production planning simulation device
JP4678445B2 (en) In-vehicle information system development apparatus and in-vehicle information system development method
JP2992412B2 (en) Parameter setting method in CAD / CAM device
JP2007058808A (en) Method and device for supporting html data generation program
JP5820324B2 (en) Design support system, design support method and program
JP2891199B2 (en) Design support equipment
JPH09311771A (en) Method and device for network equipment management
JP2002157117A (en) Framework development assisting device and framework development assisting method
CN117519678A (en) Implementation method and system of process designer base

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513