JPH10214180A - ソフトウェアの開発支援方法 - Google Patents

ソフトウェアの開発支援方法

Info

Publication number
JPH10214180A
JPH10214180A JP1727597A JP1727597A JPH10214180A JP H10214180 A JPH10214180 A JP H10214180A JP 1727597 A JP1727597 A JP 1727597A JP 1727597 A JP1727597 A JP 1727597A JP H10214180 A JPH10214180 A JP H10214180A
Authority
JP
Japan
Prior art keywords
graphic
source code
function
notation
class
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.)
Pending
Application number
JP1727597A
Other languages
English (en)
Inventor
Jiyousuke Hiraoka
丈介 平岡
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
Meidensha Electric Manufacturing Co Ltd
Original Assignee
Meidensha Corp
Meidensha Electric Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meidensha Corp, Meidensha Electric Manufacturing Co Ltd filed Critical Meidensha Corp
Priority to JP1727597A priority Critical patent/JPH10214180A/ja
Publication of JPH10214180A publication Critical patent/JPH10214180A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 オブジェクト指向分析設計にはその詳細設計
は進めづらく、実装作業の検討に時間を費やし、試行錯
誤のための労力を必要とする。 【解決手段】 オブジェクト指向プログラミングによる
ソースコード(b)を解析し、このソースコードを構成
するクラス、変数、関数、処理単位、グループを表記す
る図データ及びこれらの間の参照、値設定、消滅、関数
呼出、引数、クラス指示、クラス生成の関係を示す矢印
線分データからなる図表記データを作成し、この図表記
データにしたがってソースコードを図表記し、この図表
記(a)から問題箇所がある場合には修正したソースコ
ードに従って再度図表記を行う。図表記は、ソースコー
ドに対応した詳細表示と、この詳細表示の関数やクラス
の内部構造を省略して1つの図形に集約してその図形と
外部の図形の接続関係のみを維持して描いた簡略表示と
がある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理分野にお
けるソフトウエア工学、特にオブジェクト指向プログラ
ミングの設計、実装、およびプログラムの再利用のため
のソフトウェアの開発支援方法に関する。
【0002】
【従来の技術】オブジェクト指向プログラミングでは、
オブジェクトと呼ばれる機能上の単位を中心にしてプロ
グラムやソフトウェアシステムを設計・実現するのに、
さまざまなオブジェクト指向分析設計方法論等にのっと
り分析設計の作業が進められている。実装作業は詳細設
計に従って行われる。プログラムの修正、または仕様の
変更などがあると、最終的にはソースコードを修正して
対応している。
【0003】
【発明が解決しようとする課題】オブジェクト指向分析
設計の作業者にとって、アプリケーションが新規な内容
である場合では、詳細設計は進めづらく、実装作業と平
行して作業が行われる場合が生じる。
【0004】このとき、作業者は、実装作業を行いなが
ら、プログラムの質を向上させるための検討に時間を費
やし、試行錯誤を行いながら作業を進めることになる。
【0005】この課題を解決するためには、一度作成し
たプログラムソースコード、または、過去に作成された
ソースコードを分析し、詳細設計の見直し作業にかかる
労力を軽減し、プログラムの再利用性を高めることが望
まれる。
【0006】本発明の目的は、オブジェクト指向プログ
ラミングによるプログラムの設計・実装及び再利用を容
易にするソフトウェアの開発支援方法を提供することに
ある。
【0007】
【課題を解決するための手段】本発明は、オブジェクト
指向プログラミング言語としてC++言語を対象にし、
ソースコードを解析してその内容を図で表記することに
より、プログラムの理解を助けるようにしたものであ
り、以下の方法を特徴とする。
【0008】オブジェクト指向プログラミングによるソ
ースコードを解析し、このソースコードを構成するクラ
ス、変数、関数、処理単位、グループを表記する図デー
タ及びこれらの間の参照、値設定、消滅、関数呼出、引
数、クラス指示、クラス生成の関係を示す矢印線分デー
タからなる図表記データを作成し、前記図表記データに
したがってソースコードを図表記し、この図表記から問
題箇所がある場合には修正したソースコードに従って前
記図表記を行うことを特徴とする。
【0009】前記、図表記は、ソースコードに対応した
詳細表示と、この詳細表示の関数やクラスの内部構造を
省略して1つの図形に集約してその図形と外部の図形の
接続関係のみを維持して描いた簡略表示とを行うことを
特徴とする。
【0010】
【発明の実施の形態】本実施形態は、ソースコードを解
析してその内容を図表記データに対応させ、図を描く。
【0011】この図表記は、アルゴリズムについては表
現しないが、データの依存関係や関数の呼出し関係など
の静的な情報を表現する。また、この図は詳細表示、簡
略表示の区別を持ち、適宜使い分けることができる。こ
れにより、プログラムの構造を理解しやすくする。
【0012】図表記データを説明する。データは、下記
表1に示すように、クラス、変数、関数、処理単位、グ
ループ、矢印線分からなる。矢印線分は、参照、値設
定、消滅、関数呼出、引数、クラス指示、クラス生成、
の7種類がある。
【0013】
【表1】
【0014】図表記データは、一般に色付き有向グラフ
とよばれるデータと類似しているが、クラス、関数はそ
の図中に図を含む点が異なる。ソースコードを解析しこ
れらの図を描くための図表記データを作成する。図表記
データのデータ構造を下記表2に示す。
【0015】
【表2】
【0016】これら図表記データを用いて描いた図と、
そのソースコードの例を図1に示す。クラスA,Bの矩
形の中にはそのクラスで定義された変数と関数が配置さ
れる。関数の図形の中には、その関数の中で定義された
変数とその関数の持つ引数と処理単位およびグループが
配置される。矢印線分はクラス、変数、関数、処理単
位、グループの図形同士を結ぶ。但し、値設定と消滅の
矢印線分の始点は図形に結ばれず、その関数の図形内に
ある。
【0017】参照の矢印線分は、図2にも示すように、
情報の流れを表わす。始点が変数データに接続している
時、その変数の値が参照されている。終点が変数データ
に接続している時、その変数への値の代入が行われてい
る。以上の場合もう一つの端点は処理単位に接続してい
る。始点が関数に接続している時、その関数の戻り値が
参照されている。終点が関数に接続している時は、簡略
表示であり、その関数内でその参照矢印線分の始点のデ
ータが参照されている。関数の図形の内部で関数の輪郭
線から変数に向けて参照の矢印線分が引かれている時、
その変数はその関数の引数である。
【0018】関数呼出の矢印線分は、図3に示すよう
に、処理の流れを表現する。始点は処理単位図形に接続
され、終点は関数図形に接続される。終点の関数が呼出
され処理がその関数に移る。戻り値は参照されない。関
数が引数を伴う場合は変数から処理単位へ向けた引数の
矢印線分を引く。始点が関数に接続している時は簡略表
示であり、その関数の中から終点の関数が呼出される。
【0019】クラス宣言された変数は、図4に示すよう
に、クラス指示の矢印線分により、そのクラス図形と結
ぶ。この時、名前による参照かポインタによる参照かは
区別しない。
【0020】この図の用い方について例を示す。オブジ
ェクト指向分析設計では一つの関数にあまり多くの仕事
をやらせるのではなく、手続きとして分割できる処理は
分割し、独立した役割をになわせることが望ましい。図
5に示すように、関数内の表記図形が互いに接続関係の
ない図形になる場合は、関数functionが図の点
線を境に二つに分割可能であることを示している。
【0021】図6は、2つの関数「function_
1」と「function_2」が部分的に同じパター
ンの処理を含んでいる場合である。変数「varA」,
「varB」,関数「function_3」,「fu
nction_4」はともに関数の外にあるが点線の領
域Rに対して同じ接続の仕方で接続していることが読み
取れる。
【0022】従って、図7に示すように、図6の共通部
分を抜き出しこれを「function_6」とし、
「function_1」と「function_2」
はそれぞれ「function_7」と「functi
on_8」に置き換えることによりプログラムの整理が
できる。
【0023】簡略表示は、関数やクラスの内部構造を省
略し1つの図形に集約し、その図形と外部の図形の接続
関係のみを維持して描いた図形である。図8〜図10に
段階的な簡略表示の例を示す。図8で詳細表示された関
数「initialize」と「wakeup」を簡略
表示したものが図9である。さらに図9のクラス「sc
hedule」を簡略表示したのが図10である。これ
により細かい情報は無視した、プログラムの全体的な構
造が表現される。
【0024】図11は、本実施形態に従ったソースコー
ドからの図表記とプログラム修正作業の手順を示す。ソ
ースコードを読み込んで図表記データを作成し(S
1)、このデータにしたがって図を表記し(S2)、こ
の図表記から問題点が無いか検討し(S3)、問題箇所
がある場合(S4)にはソースコードを修正して再度の
図表記に戻る(S5)。
【0025】
【発明の効果】以上のとおり、本発明によれば、ソース
コードを解析してその内容を図で表記することにより、
プログラムの理解・修正ができるようにしたため、プロ
グラムの設計・実装及び再利用を容易にし、プログラム
の詳細設計から実装までの試行錯誤等の労力を少なく
し、生産性の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施形態を示す表記図(a)とソース
コード(b)。
【図2】実施形態における参照の矢印線分の例。
【図3】実施形態における関数呼び出しの矢印線分の
例。
【図4】実施形態におけるクラス宣言の変数の例。
【図5】実施形態における関数の分割の例。
【図6】実施形態における同じパターンを持つ関数の
例。
【図7】実施形態における共通部分を抜き出した例。
【図8】実施形態における関数の詳細表記例。
【図9】実施形態における関数の簡略表記例。
【図10】実施形態における関数の簡略表記例。
【図11】実施形態におけるプログラムの修正作業手
順。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向プログラミングによる
    ソースコードを解析し、このソースコードを構成するク
    ラス、変数、関数、処理単位、グループを表記する図デ
    ータ及びこれらの間の参照、値設定、消滅、関数呼出、
    引数、クラス指示、クラス生成の関係を示す矢印線分デ
    ータからなる図表記データを作成し、 前記図表記データにしたがってソースコードを図表記
    し、この図表記から問題箇所がある場合には修正したソ
    ースコードに従って前記図表記を行うことを特徴とする
    ソフトウェアの開発支援方法。
  2. 【請求項2】 前記、図表記は、ソースコードに対応し
    た詳細表示と、この詳細表示の関数やクラスの内部構造
    を省略して1つの図形に集約してその図形と外部の図形
    の接続関係のみを維持して描いた簡略表示とを行うこと
    を特徴とする請求項1に記載のソフトウェアの開発支援
    方法。
JP1727597A 1997-01-31 1997-01-31 ソフトウェアの開発支援方法 Pending JPH10214180A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1727597A JPH10214180A (ja) 1997-01-31 1997-01-31 ソフトウェアの開発支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1727597A JPH10214180A (ja) 1997-01-31 1997-01-31 ソフトウェアの開発支援方法

Publications (1)

Publication Number Publication Date
JPH10214180A true JPH10214180A (ja) 1998-08-11

Family

ID=11939434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1727597A Pending JPH10214180A (ja) 1997-01-31 1997-01-31 ソフトウェアの開発支援方法

Country Status (1)

Country Link
JP (1) JPH10214180A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050722A (ja) * 2001-08-03 2003-02-21 Sony Corp プログラム解析システムとプログラム解析方法
JP2013156786A (ja) * 2012-01-30 2013-08-15 Hitachi Automotive Systems Ltd ソフトウェアの構造可視化プログラムおよびシステム
WO2015181894A1 (ja) * 2014-05-27 2015-12-03 株式会社日立製作所 自動実行サービスの作成を支援する方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050722A (ja) * 2001-08-03 2003-02-21 Sony Corp プログラム解析システムとプログラム解析方法
JP2013156786A (ja) * 2012-01-30 2013-08-15 Hitachi Automotive Systems Ltd ソフトウェアの構造可視化プログラムおよびシステム
WO2015181894A1 (ja) * 2014-05-27 2015-12-03 株式会社日立製作所 自動実行サービスの作成を支援する方法
JPWO2015181894A1 (ja) * 2014-05-27 2017-04-20 株式会社日立製作所 自動実行サービスの作成を支援する方法

Similar Documents

Publication Publication Date Title
JP2749528B2 (ja) エラー解析用のトレーサシステム
US10229031B2 (en) Debugging inline functions in optimized code
JPH07175654A (ja) コールバックスタイルプログラミングにおけるコンテキスト仕様
US20050216897A1 (en) Converter, automation device with a converter, and a development environment having an automation device with converter
JPH10214180A (ja) ソフトウェアの開発支援方法
EP0417916B1 (en) Procedure state descriptor system for digital data processors
JPH0554277A (ja) プラント監視装置
JP4055197B2 (ja) プログラムに含まれる手続きの解析装置
JP2922670B2 (ja) 画像処理システム及び画像処理方法
JP3372387B2 (ja) プログラム検査方法
JPS626260B2 (ja)
JP2000122895A (ja) スタックサイズ解析方法及びスタックサイズ解析装置
JP2815638B2 (ja) デバッグ装置
JPH044434A (ja) プログラムのトレース方法
JPH07295858A (ja) 画像処理装置及び並列コンピュータのデバッグ処理方法
JPS6033640A (ja) デ−タ・モニタ方式
JP2852402B2 (ja) プログラム開発装置
JPH03164835A (ja) インタプリタ型言語処理系における大域変数処理のコンパイル方法
JPH0283634A (ja) プログラムデバッグ方式
JPS6292034A (ja) プログラムデバツグ装置
JPH0546434A (ja) プログラムデバツグ方式
JPS6332389B2 (ja)
JPH03255534A (ja) 高級プログラム言語のポインタ修飾データ参照方式
JPH0264744A (ja) 障害解析情報取得方式
Pilavakis et al. C Language Program Execution