JP5544064B2 - ソフトウェア開発支援システム、開発支援方法およびプログラム - Google Patents

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

Info

Publication number
JP5544064B2
JP5544064B2 JP2007111119A JP2007111119A JP5544064B2 JP 5544064 B2 JP5544064 B2 JP 5544064B2 JP 2007111119 A JP2007111119 A JP 2007111119A JP 2007111119 A JP2007111119 A JP 2007111119A JP 5544064 B2 JP5544064 B2 JP 5544064B2
Authority
JP
Japan
Prior art keywords
model
class
copy
field
unit
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
JP2007111119A
Other languages
English (en)
Other versions
JP2008269279A (ja
Inventor
達斎 外山
富士也 海野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meidensha Corp
Original Assignee
Meidensha Corp
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 Meidensha Corp filed Critical Meidensha Corp
Priority to JP2007111119A priority Critical patent/JP5544064B2/ja
Publication of JP2008269279A publication Critical patent/JP2008269279A/ja
Application granted granted Critical
Publication of JP5544064B2 publication Critical patent/JP5544064B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、統一モデリング言語(UML)によるソフトウェア開発支援システムおよび開発支援方法に係り、特にオブジェクト指向技術によるソフトウェア開発におけるモデルの自動生成に関する。
UML(Unified Modeling Language)は、ソフトウェア開発のためのモデリング言語であり、開発対象のシステムの構造を表現するための表記法で、開発者同士の意思疎通を図ることができる。
UMLによるソフトウェア開発には、開発対象となるシステムの仕様作成、設計、実装を支援する表記物として、ユースケース図(システムの機能定義)、アクティビティ図(動作の流れ)、シーケンス図(オブジェクト間の相互作用)、オブジェクト図(インスタンスのスナップショット表記)、クラス図(静的なモデルを定義)などを作成する。UMLには上記のユースケース図やクラス図などの10個の図が定義されているが、画面や画面遷移を表現する図を作成する機能を持たせたものもある(例えば、非特許文献1参照)。
これらの図に使用される各機能要素は、UMLに定められる画面部品(矩形、楕円、円、矢印、アクター記号、コネクタ記号、ノード記号、選択記号など)および文字(名称や属性情報)の組み合わせで作成される。
モデルの自動生成環境として、上記の非特許文献1では、モデルからソースコードを生成するフォワードエンジニアリングと、ソースコードからモデルを作成するリバースエンジニアリングの両方を搭載し、ラウンドトリップエンジニアリングを手軽に行うことができる。
また、作成されたUML図(モデル情報)からスケルトンレベルのソースコードを生成する機能は、Rational RoseやElapizなど様々なUMLモデリングツールに組み込まれている。Rational Rose Developer for Java(登録商標)は、UMLに基づくビジュアルモデリング環境であり、ユースケース図やクラス図などUMLの図を作成したり、モデルからJavaコードを生成することができる。eclipseは、ソフトウェアを構築および配置するための統合開発環境であり、コード生成(補完)機能、デバッグ機能など統合開発環境に必要な機能だけでなく、フィールドからGetterやSetterメソッドを生成する機能も持っている。
明電時報 2006 9・10月通巻310号 No.5
オブジェクト指向プログラミングでは、オブジェクト内の構造(フィールド)を外部から隠蔽することにより、外部からは公開された手続き(メソッド)を利用することでしかデータを操作できないようにする。これにより、オブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用が容易になる。
このような場合、図8に例を示すように、オブジェクトを表現するクラスに、フィールドとこのフィールドにアクセスするための公開メソッド(GetterとSetter)を作成する。一般に、フィールドと公開メソッドの関係は同一のパターンで表現することができるため、上記のeclipseにも見られるように、簡単にフィールドから公開メソッドを自動生成することができる。
ソフトウェアの設計モデルの一つにMVCがある。処理の中核である「Model」、表示・出力の「View」、入力を受け取りViewとModelを制御する「Controller」の3つの組み合わせでシステムを実装する。明確に機能ごとに分類することで、互いに仕様変更の影響を受けにくくなる。
このような場合、図9に例を示すように、Modelのクラス構造とViewのクラス構造をほぼ同じようにすることがあるが、一般にModelのクラス構造は現実の世界を表現するために複雑で入り組んでいることが多いため、これをパターンで表現するのは非常に複雑で容易ではない。また、Rational Rose Developer for Javaやeclipseなどには、このような機能は存在しない。
本発明の目的は、従来のパターン方式で生成し難い複雑なモデルに対しても、元モデルに対して新たなモデルを自動生成することができるソフトウェア開発支援プログラムを提供することにある。
そこで、本発明のソフトウェア開発支援プログラムは、コンピュータを、開発対象であるソフトウェアシステムの既存のモデル情報に含まれるクラスのコピークラスの作成指示の入力を受けて当該クラスの取得指示を出力するモデル自動生成部と、前記取得指示を受けて前記モデル情報から前記コピークラスの元であるクラスを取得するモデル情報取得部と、前記モデル自動生成部から前記取得されたクラスのコピークラスの作成指示を受けて当該クラスのコピークラスを作成するモデル編集部として機能させるソフトウェア開発支援プログラムであって、前記モデル自動生成部は、前記取得されたクラスに付加されている複数のフィールドから、可視性が非公開である属性が付加されたフィールドを取得し、このフィールドのコピーフィールドの作成指示を前記モデル編集部に出力し、前記モデル編集部は、前記コピーフィールドの作成指示を受けて、前記属性が付加されたフィールドのコピーフィールドを前記コピークラスに作成する
以上のとおり、本発明によれば、開発対象モデルを作成・削除・変更し、このモデル編集で作成した開発対象モデルの情報を取得できるモデル作成部に対し、取得したモデル情報を元に新たなモデルを作成・削除・変更を指示するモデル自動生成部を備えたため、従来のパターン方式で生成できる簡単なモデルに対してだけでなく、従来のパターン方式で生成し難い複雑なモデルに対しても、元モデルに対して新たなモデルを自動生成することができる。
また、開発対象システムごとに自動生成の手法が異なる場合、モデル自動生成部のエントリを取得するインタフェースを実装し、開発対象システムごとの専用のモデル自動生成部を作成しておけば、このモデル自動生成部のみを取り替えるだけで済む。
図1は、本発明の実施形態を示すソフトウェア開発支援システムの要部構成図であり、主にモデルの自動生成の機能ブロックを示す。同図に示すように、モデル作成部1にはモデル情報取得部1Aとモデル編集部1Bを備え、モデル自動生成部2とモデルデータベース(以下、モデルDB)3、キーボードやマウスなどの操作部4、ディスプレイなどの表示部5を備え、各部はコンピュータシステムのハードウェア資源とこれに搭載するソフトウェアによって機能構成される。
モデル作成部1は、UMLのユースケースやクラスなどのUMLモデルや、ウィンドウやダイアログなどのGUI部品などの、モデルの作成を行う。開発者は、対象システムのモデルを、操作部4を介してモデル作成部1において作成する。あるモデルを元モデルとして別のモデルを作成する場合、操作部4を介してモデル作成部1において、そのモデルを自動生成する。
この自動生成手順は図2に示す。モデル作成部1は、開発者が自動生成を指示したときに、モデル自動生成部2にモデルの自動生成を指示する(S1〜S3)。モデル自動生成部2は、モデルを自動生成するときに起動し、モデル情報取得部1Aから自動生成の元になるモデルを取得し、モデル編集部1Bに自動生成による新たなモデルの作成や既存モデルの削除・変更を指示し、モデル情報取得部1Aは指定した条件に合うモデルをモデルDB3から選択して渡す(S4〜S8)。モデル編集部1Bは、モデルの作成やモデルの削除・変更を行い、モデルDB3に登録し、これを表示部を介して開発者に提示する(S9〜S11)。
一般に対象システムごとに自動生成のやり方は異なるため、図3に示すように、モデル自動生成部2は2Aと2Bを取り替え可能にする。このため、モデル自動生成部2にはエントリを取得するためのインタフェースを用意する。モデル作成部1は、このインタフェースを利用してモデル自動生成部のエントリを取得して、このエントリに対して自動生成を指示する。
また、モデル作成部1にもエントリを取得するためのインタフェースを用意する。モデル自動生成部2は、このインタフェースを利用してモデル作成部1を取得し、このエントリからモデル情報取得部1Aやモデル編集部1Bのエントリを取得して、このエントリに対してやり取りを行う。図2は、これらエントリのやり取りを行う場合を示す。
以下、本実施形態を基にしたモデルの自動生成の具体例を説明する。
(具体例1)UMLのフィールドから、このフィールドを取得するUMLのメソッドを自動生成する。
(例1A)
開発者は、操作部を介してモデル作成部1にフィールドを取得するメソッドを自動生成する指示を出す。モデル作成部1は、モデル自動生成部2のエントリを取得して、このエントリにフィールドを取得するメソッドを自動生成する指示を出す。モデル自動生成部2は、モデル作成部のエントリを取得して、このエントリを介してモデル情報取得部に選択されている複数のクラスの取得を指示する。
モデル情報取得部1Aは、モデルDB3から選択されている複数のクラスを取り出して返す。選択されている各クラスから、例えばフィールドを取得するメソッドを自動生成することを表すステレオタイプ<<auto_get>>が付加されている、フィールドを取得するメソッドを自動生成する元となる複数のフィールドを取得する。
モデル作成部1のエントリを介してモデル編集部1Bに、上記の各フィールドを取得するメソッドの作成を指示をする。モデル編集部1Bは、上記の各フィールドを取得するメソッドを作成して、モデルDB3に登録し、これを表示部を介して開発者に提示する。
図4は、選択されているクラスはクラスA(ClassA)であり、フィールドを取得するメソッドを自動生成する元となるフィールドはフィールドB1(m_fieldB1)とフィールドB3(m_fieldB3)である場合の例である。それぞれ、フィールドB1を取得するメソッド(getFieldB1)とフィールドB3を取得するメソッド(getFieldB3)が自動生成されている。
(例1B)
上記の例1Aと同様にフィールドを取得するメソッドを自動生成するが、自動生成のやり方が異なる場合を図5に示す。
例1Aとの違いは、(a)モデル情報取得部から取得するモデルの条件が、可視性がprivateのフィールドであり、(b)モデル編集部へのメソッド作成の指示におけるメソッド名が異なる点である。
フィールドを取得するメソッドを自動生成する元となる複数のフィールドが、fieldC2とfieldC3であり、それぞれのメソッド名がGetFieldC2とGetFieldC3となっている。
上記の例1Aと例1Bのように、自動生成のやり方が異なる対象システムごとにモデル自動生成部を作成して取り替えることにより、対象システムごとの自動生成を実現することができる。
(具体例2)UMLのクラスから、このクラスと同じ内容の別のUMLのクラスを自動生成する
(例2A)
開発者は、操作部を介してモデル作成部にクラスからコピークラスを自動生成する指示を出す。モデル作成部1は、モデル自動生成部2のエントリを取得して、このエントリにクラスからコピークラスを自動生成する指示を出す。
モデル自動生成部2は、モデル作成部1のエントリを取得して、このエントリを介してモデル情報取得部1Aに選択されている複数のクラスの取得を指示する。モデル情報取得部1Aは、モデルDB3から選択されている複数のクラスを取り出して返す。
モデル作成部1のエントリを介してモデル編集部1Bに、上記の選択されている各クラスからコピークラスの作成を指示する。モデル編集部1Bは、上記のコピークラスを作成して、モデルDB3に登録する。
続いて、モデル自動生成部2は、各クラスから、例えばコピークラスにコピーフィールドを自動生成することを表すステレオタイプ<<auto_copy>>が付加されている、コピーフィールドを自動生成する元となる複数のフィールドを取得する。
モデル編集部1Bに、上記の各フィールドのコピーフィールドを、コピークラスに作成する指示をする。モデル編集部1Bは、上記の各コピーフィールドを作成して、モデルDB3に登録し、これを表示部を介して開発者に提示する。
図6は、選択されているクラスはクラスAであり、コピーフィールドを自動生成する元となるフィールドはフィールドB1とフィールドB3である場合の例である。それぞれ、コピーフィールドB1’とコピーフィールドB3’が自動生成されている。
(例2B)
上記の例2Aと同様にコピークラスを自動生成するが、自動生成のやり方が異なる場合を図7に示す。
例2Aとの違いは、(a)モデル情報取得部から取得するモデルの条件が、可視性がprivateのフィールドであり、(b)モデル編集部へのフィールド作成の指示におけるフィールド名が異なる点である。
コピーフィールドがそれぞれnewFieldC1’とnewFieldC2’となっている。
上記の例2Aと例2Bのように、自動生成のやり方が異なる対象システムごとにモデル自動生成部を作成して取り替えることにより、対象システムごとの自動生成を実現することができる。
なお、本発明は、コンピュータを、上記の実施形態で示すソフトウェア開発支援システムの一部又は全部の機能部として機能させるプログラムとして提供することができる。
本発明の実施形態を示すソフトウェア開発支援システムの要部構成図。 モデル自動生成手順。 対象システムごとのモデル自動生成部をもつ例。 フィールドからメソッドを自動生成する例(1)。 フィールドからメソッドを自動生成する例(2)。 クラスから別のクラスを自動生成する例(1)。 クラスから別のクラスを自動生成する例(2)。 オブジェクト指向での情報隠蔽の例。 ModelとViewのクラス階層の例。
符号の説明
1 モデル作成部
1A モデル情報取得部
1B モデル編集部
2 モデル自動生成部
3 モデルDB
4 操作部
5 表示部

Claims (1)

  1. コンピュータを、
    開発対象であるソフトウェアシステムの既存のモデル情報に含まれるクラスのコピークラスの作成指示の入力を受けて当該クラスの取得指示を出力するモデル自動生成部と、
    前記取得指示を受けて前記モデル情報から前記コピークラスの元であるクラスを取得するモデル情報取得部と、
    前記モデル自動生成部から前記取得されたクラスのコピークラスの作成指示を受けて当該クラスのコピークラスを作成するモデル編集部として機能させる
    ソフトウェア開発支援プログラムであって、
    前記モデル自動生成部は、前記取得されたクラスに付加されている複数のフィールドから、可視性が非公開である属性が付加されたフィールドを取得し、このフィールドのコピーフィールドの作成指示を前記モデル編集部に出力し、
    前記モデル編集部は、前記コピーフィールドの作成指示を受けて、前記属性が付加されたフィールドのコピーフィールドを前記コピークラスに作成すること
    を特徴とするソフトウェア開発支援プログラム。
JP2007111119A 2007-04-20 2007-04-20 ソフトウェア開発支援システム、開発支援方法およびプログラム Active JP5544064B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007111119A JP5544064B2 (ja) 2007-04-20 2007-04-20 ソフトウェア開発支援システム、開発支援方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007111119A JP5544064B2 (ja) 2007-04-20 2007-04-20 ソフトウェア開発支援システム、開発支援方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008269279A JP2008269279A (ja) 2008-11-06
JP5544064B2 true JP5544064B2 (ja) 2014-07-09

Family

ID=40048696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007111119A Active JP5544064B2 (ja) 2007-04-20 2007-04-20 ソフトウェア開発支援システム、開発支援方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5544064B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102588597B1 (ko) * 2023-08-24 2023-10-12 주식회사 리얼라이즈소프트 Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3716091B2 (ja) * 1998-02-20 2005-11-16 株式会社日立製作所 要求仕様モデル・他形式モデル変換装置及び方法
JP2001318812A (ja) * 2000-05-11 2001-11-16 Nec Corp 性能評価モデル生成装置および性能評価モデル生成方法
JP2005250590A (ja) * 2004-03-01 2005-09-15 Denso Corp 検査仕様生成システム
JP4535906B2 (ja) * 2005-02-24 2010-09-01 日本電信電話株式会社 Umlモデル作成支援方法及びその装置

Also Published As

Publication number Publication date
JP2008269279A (ja) 2008-11-06

Similar Documents

Publication Publication Date Title
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
US6769095B1 (en) Hierarchically structured control information editor
EP1292887A1 (en) Methods and systems for generating source code for object-oriented elements
Buchmann et al. Valkyrie: A UML-based Model-driven Environment for Model-driven Software Engineering.
CN104731588A (zh) 页面布局文件生成方法和页面布局文件生成装置
Song et al. Applying MDE tools at runtime: Experiments upon runtime models
CN104793927A (zh) 一种界面编辑方法及装置
TWI467481B (zh) 層級式程式源碼管理方法、系統及電腦程式產品
JP5544064B2 (ja) ソフトウェア開発支援システム、開発支援方法およびプログラム
Zheng et al. Mapping features to source code through product line architecture: Traceability and conformance
JP5425317B2 (ja) モーションsfcプログラム部品作成装置
Predoaia et al. Streamlining the development of hybrid graphical-textual model editors for domain-specific languages
Shonle et al. Aspectbrowser for eclipse: a case study in plug-in retargeting
White et al. Introduction to the generic eclipse modeling system
Heena et al. A comparative study of UML tools
US10222944B1 (en) Embedding user interface elements in documents containing code
CN112181483B (zh) 等离子体控制系统软件开发平台及方法
WO2023143746A1 (en) System and method for managing artifacts related to apps
EP1290550A1 (en) Diagrammatic control of software in a version control system
JP5644599B2 (ja) オブジェクト指向モデル設計支援装置
JP2001273125A (ja) ソースプログラム自動生成方法およびシステム、ならびにそのプログラム記録媒体
KR101765324B1 (ko) Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
KR102588597B1 (ko) Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치
Koskinen et al. Behavioral profiles—a way to model and validate program behavior
Rouhi et al. PLVGen Setup Guide v1. 0

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120220

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120618

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140512

R150 Certificate of patent or registration of utility model

Ref document number: 5544064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150