JP4919825B2 - プログラム開発装置、プログラム開発方法およびプログラム - Google Patents
プログラム開発装置、プログラム開発方法およびプログラム Download PDFInfo
- Publication number
- JP4919825B2 JP4919825B2 JP2007019251A JP2007019251A JP4919825B2 JP 4919825 B2 JP4919825 B2 JP 4919825B2 JP 2007019251 A JP2007019251 A JP 2007019251A JP 2007019251 A JP2007019251 A JP 2007019251A JP 4919825 B2 JP4919825 B2 JP 4919825B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- code
- source code
- editing
- storage 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
M.Weiser, Program Slicing, IEEE Trans. on Software Engineering, SE-10(4), p.p. 352.357, 1984.
第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割する分割部と、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、各並べられたコード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分する区分部と、
各区分されたコード群を格納する記憶部と、
前記第1のソースコードをもとに前記各区分されたコード群間において各セクションに対する実行順序の制約を設定する設定部と、
前記記憶部の内容をユーザに提示する第1の提示部と、
前記実行順序の制約を表す制約情報をユーザに提示する第2の提示部と、
ユーザからの第1の編集指令に基づき前記記憶部を編集する第1の編集部と、
ユーザからの第2の編集指令に基づき前記制約情報を編集する第2の編集部と、
編集された記憶部と編集された制約情報とを用いて第2のソースコードを生成するソースコード生成部と、
を備える。
第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割し、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、各並べられたコード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分し、
各区分されたコード群を記憶部に格納し、
前記第1のソースコードをもとに前記各区分されたコード群間において各セクションに対する実行順序の制約を設定し、
前記記憶部の内容をユーザに提示し、
前記実行順序の制約を表す制約情報をユーザに提示し、
ユーザからの第1の編集指令に基づき前記記憶部を編集し、
ユーザからの第2の編集指令に基づき前記制約情報を編集し、
編集された記憶部と編集された制約情報とを用いて第2のソースコードを生成する、
ことを特徴とする。
第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割するステップと、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、各並べられたコード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分するステップと、
各区分されたコード群を記憶部に格納するステップと、
前記第1のソースコードをもとに前記各区分されたコード群間において各セクションに対する実行順序の制約を設定するステップと、
前記記憶部の内容をユーザに提示するステップと、
前記実行順序の制約を表す制約情報をユーザに提示するステップと、
ユーザからの第1の編集指令に基づき前記記憶部を編集するステップと、
ユーザからの第2の編集指令に基づき前記制約情報を編集するステップと、
編集された記憶部と編集された制約情報とを用いて第2のソースコードを生成するステップと、
をコンピュータに実行させる。
202:機能抽出部(機能分割部)
203:機能データベース(DB)
204:機能編集部(第1の編集部)
205:機能状態依存関係分析部(分析部)
206:機能状態依存関係データベース(DB)
207:依存関係編集部(第2の編集部)
208:機能直列化合成部(ソースコード生成部)
209:修正後ソースコード
Claims (21)
- 第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割する分割部と、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、前記グループ毎に並べられた前記コード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分する区分部と、
前記グループごとに、前記セクションに区分されたコード群を格納する記憶部と、
前記第1のソースコードをもとに、前記グループ間での各前記セクションに対する実行順序の制約を設定する設定部と、
前記記憶部に基づき、前記グループごとに前記セクションに区分されたコード群をユーザに提示する第1の提示部と、
前記設定部により設定された前記グループ間での各前記セクションの実行順序の制約を表す制約情報をユーザに提示する第2の提示部と、
ユーザからの第1の編集指令に基づき前記記憶部の内容を編集する第1の編集部と、
ユーザからの第2の編集指令に基づき前記制約情報を編集する第2の編集部と、
前記第1の編集部により編集された前記記憶部の内容と、前記第2の編集部得により編集された制約情報とを用いて第2のソースコードを生成するソースコード生成部と、
を備えたプログラム開発装置。 - 前記第2の提示部は、前記グループ間において各セクション同士を方向付きアークにより結ぶことにより前記制約情報をユーザに提示することを特徴とする請求項1に記載のプログラム開発装置。
- 前記第1の編集部は、セクションに区分された新たなコード群を前記記憶部に追加、または、前記記憶部に記憶された前記グループ毎に前記セクションに区分されたコード群を変更または削除することを特徴とする請求項1に記載のプログラム開発装置。
- 前記第2の編集部は、前記実行順序の制約を追加、削除、変更することを特徴とする請求項3に記載のプログラム開発装置。
- 第1〜第n(nは1以上の整数)の前記グループはそれぞれ、同一の出力変数に影響を与えるコードの集合であり、前記第1〜第nのグループに対応する出力変数は互いに独立していることを特徴とする請求項1記載のプログラム開発装置。
- 第n+1の前記グループは、前記第1〜第nのグループに対応する出力変数と無関係なコードの集合であることを特徴とする請求項5記載のプログラム開発装置。
- 前記第n+1のグループは、要求される時間制約を満足するための処理を行うコード群であることを特徴とする請求項6記載のプログラム開発装置。
- 前記区分部は、内部変数に対する代入および参照の関係に基づいて、前記グループ毎に並べられた前記コード群を区分することを特徴とする請求項1に記載のプログラム開発装置。
- 前記ソースコード生成部は、前記編集された記憶部の内容および前記編集された制約情報と、編集前の記憶部の内容および編集前の制約情報との差分をもとに前記第1のソースコードを修正することにより前記第2のソースコードを生成することを特徴とする請求項1に記載のプログラム開発装置。
- 前記ソースコード生成部は、前記編集された記憶部の内容および前記編集された制約情報とから前記第1のソースコードを用いることなく前記第2のソースコードを生成することを特徴とする請求項1に記載のプログラム開発装置。
- コンピュータが、
第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割し、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、前記グループ毎に並べられた前記コード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分し、
前記グループごとに、前記セクションに区分されたコード群を記憶部に格納し、
前記第1のソースコードをもとに、前記グループ間での各前記セクションに対する実行順序の制約を設定し、
前記記憶部に基づき、前記グループごとに前記セクションに区分されたコード群をユーザに提示し、
設定された前記グループ間での各前記セクションの実行順序の制約を表す制約情報をユーザに提示し、
ユーザからの第1の編集指令に基づき前記記憶部の内容を編集し、
ユーザからの第2の編集指令に基づき前記制約情報を編集し、
編集された前記記憶部の内容と編集された制約情報とを用いて第2のソースコードを生成する、
プログラム開発方法。 - 前記制約情報の提示は、前記グループ間において各セクション同士を方向付きアークにより結ぶことにより前記制約情報をユーザに提示することを含むことを特徴とする請求項11に記載のプログラム開発方法。
- 前記記憶部の内容の編集は、セクションに区分された新たなコード群を前記記憶部に追加、または、前記記憶部に記憶された前記グループ毎に前記セクションに区分されたコード群を変更または削除することを含むことを特徴とする請求項11に記載のプログラム開発方法。
- 前記制約情報の編集は、前記実行順序の制約を追加、削除、変更することを含むことを特徴とする請求項13に記載のプログラム開発方法。
- 第1〜第nの前記グループはそれぞれ、同一の出力変数に影響を与えるコードの集合であり、前記第1〜第nのグループに対応する出力変数は互いに独立していることを特徴とする請求項11記載のプログラム開発方法。
- 第n+1の前記グループは、前記第1〜第nのグループに対応する出力変数と無関係なコードの集合であることを特徴とする請求項11記載のプログラム開発方法。
- 前記第n+1のグループは、要求される時間制約を満足するための処理を行うコード群であることを特徴とする請求項16記載のプログラム開発方法。
- 前記グループ毎に並べられた前記コード群を前記セクションへ区分することは、内部変数に対する代入および参照の関係に基づいて前記グループ毎に並べられた前記コード群を区分することを含むことを特徴とする請求項11に記載のプログラム開発方法。
- 前記第2のソースコードの生成は、前記編集された記憶部の内容および前記編集された制約情報と、編集前の記憶部の内容および編集前の制約情報との差分をもとに前記第1のソースコードを修正することにより前記第2のソースコードを生成することを含むことを特徴とする請求項11に記載のプログラム開発方法。
- 前記第2のソースコードの生成は、前記編集された記憶部の内容および前記編集された制約情報とから前記第1のソースコードを用いることなく前記第2のソースコードを生成することを含むことを特徴とする請求項11に記載のプログラム開発方法。
- 第1のソースコードに含まれる各コードを所定のアルゴリズムにより複数のグループに分割するステップと、
各グループに含まれるコード群を前記第1のソースコード内での実行順序に従って並べ、前記グループ毎に並べられた前記コード群を、各々に連続して実行されるべき1つ以上のコードが含まれる1つ以上のセクションに区分するステップと、
前記グループごとに、前記セクションに区分されたコード群を記憶部に格納するステップと、
前記第1のソースコードをもとに、前記グループ間での各前記セクションに対する実行順序の制約を設定するステップと、
前記記憶部に基づき、前記グループごとに前記セクションに区分されたコード群をユーザに提示するステップと、
設定された前記グループ間での各前記セクションの実行順序の制約を表す制約情報をユーザに提示するステップと、
ユーザからの第1の編集指令に基づき前記記憶部の内容を編集するステップと、
ユーザからの第2の編集指令に基づき前記制約情報を編集するステップと、
編集された前記記憶部の内容と編集された制約情報とを用いて第2のソースコードを生成するステップと、
をコンピュータに実行させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007019251A JP4919825B2 (ja) | 2007-01-30 | 2007-01-30 | プログラム開発装置、プログラム開発方法およびプログラム |
US12/017,734 US8117590B2 (en) | 2007-01-30 | 2008-01-22 | Program developing apparatus, program developing method and computer readable medium |
CNA200810009052XA CN101236493A (zh) | 2007-01-30 | 2008-01-30 | 程序开发装置和程序开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007019251A JP4919825B2 (ja) | 2007-01-30 | 2007-01-30 | プログラム開発装置、プログラム開発方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008186244A JP2008186244A (ja) | 2008-08-14 |
JP4919825B2 true JP4919825B2 (ja) | 2012-04-18 |
Family
ID=39669406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007019251A Expired - Fee Related JP4919825B2 (ja) | 2007-01-30 | 2007-01-30 | プログラム開発装置、プログラム開発方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8117590B2 (ja) |
JP (1) | JP4919825B2 (ja) |
CN (1) | CN101236493A (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612954B2 (en) * | 2009-08-17 | 2013-12-17 | International Business Machines Corporation | Fine slicing: generating an executable bounded slice for program |
US8448139B2 (en) * | 2009-10-05 | 2013-05-21 | International Business Machines Corporation | Automatic correction of application based on runtime behavior |
US9081646B2 (en) * | 2010-01-22 | 2015-07-14 | Red Hat, Inc. | Building packages of functionally different programs from source code of a single program |
US8949773B2 (en) * | 2010-03-25 | 2015-02-03 | International Business Machines Corporation | Deriving process models from natural language use case models |
US9170805B2 (en) * | 2010-07-20 | 2015-10-27 | Hitachi, Ltd. | Software maintenance supporting device for analyzing relationships between variables |
US8918544B2 (en) | 2011-03-31 | 2014-12-23 | Logitech Europe S.A. | Apparatus and method for configuration and operation of a remote-control system |
US9239837B2 (en) | 2011-04-29 | 2016-01-19 | Logitech Europe S.A. | Remote control system for connected devices |
US11194624B2 (en) | 2017-05-30 | 2021-12-07 | Nec Corporation | Partial order procedure planning device, partial order procedure planning method and partial order procedure planning program |
JP6805096B2 (ja) * | 2017-08-08 | 2020-12-23 | 日本電信電話株式会社 | ファイル生成装置、ファイル生成方法、および、ファイル生成プログラム |
US10877870B2 (en) * | 2018-06-11 | 2020-12-29 | Tata Consultancy Services Limited | Method and system for verifying properties of source code |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793369A (en) * | 1991-12-06 | 1998-08-11 | Lucent Technologies Inc. | Apparatus for visualizing program slices |
US5652899A (en) * | 1995-03-03 | 1997-07-29 | International Business Machines Corporation | Software understanding aid for generating and displaying simiplified code flow paths with respect to target code statements |
US7174536B1 (en) * | 2001-02-12 | 2007-02-06 | Iowa State University Research Foundation, Inc. | Integrated interactive software visualization environment |
JP3842592B2 (ja) * | 2001-07-26 | 2006-11-08 | 株式会社東芝 | 変更危険度測定システム、変更危険度測定方法及び変更危険度測定プログラム |
US7620946B2 (en) * | 2003-05-05 | 2009-11-17 | Jeffry Thomas Russell | Program slicing for codesign of embedded systems |
JP4461771B2 (ja) * | 2003-11-06 | 2010-05-12 | 日本電気株式会社 | 異常挙動検出装置および異常挙動検出方法ならびにプログラム、希少挙動部分系列計算装置 |
US20070016894A1 (en) * | 2005-07-15 | 2007-01-18 | Sreedhar Vugranam C | System and method for static analysis using fault paths |
-
2007
- 2007-01-30 JP JP2007019251A patent/JP4919825B2/ja not_active Expired - Fee Related
-
2008
- 2008-01-22 US US12/017,734 patent/US8117590B2/en not_active Expired - Fee Related
- 2008-01-30 CN CNA200810009052XA patent/CN101236493A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN101236493A (zh) | 2008-08-06 |
JP2008186244A (ja) | 2008-08-14 |
US8117590B2 (en) | 2012-02-14 |
US20080184196A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4919825B2 (ja) | プログラム開発装置、プログラム開発方法およびプログラム | |
EP3631618B1 (en) | Automated dependency analyzer for heterogeneously programmed data processing system | |
Pleuss et al. | Model-driven support for product line evolution on feature level | |
US20080066046A1 (en) | Hardware definition language generation for frame-based processing | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
JP2007141173A (ja) | コンパイルシステム、デバッグシステムおよびプログラム開発システム | |
JP6479184B2 (ja) | コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 | |
US12032941B2 (en) | Method and system for updating legacy software | |
JP4001286B2 (ja) | プログラム保守支援装置、プログラム保守支援方法、およびプログラム | |
JP2007122135A (ja) | 開発支援装置、開発支援方法、および、開発支援プログラム | |
Bianchini et al. | TreeViewer: Flexible, modular software to visualise and manipulate phylogenetic trees | |
CN103744684A (zh) | 一种异构软硬件协同开发的方法及*** | |
JP2005242569A (ja) | データ処理装置設計方法、データ処理装置設計装置及びプログラム | |
Liu et al. | Accelerating API-based program synthesis via API usage pattern mining | |
JP2008198103A (ja) | 状態遷移図作成装置および状態遷移図作成方法 | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
Engelen | From napkin sketches to reliable software | |
JP5275087B2 (ja) | プログラム生成装置およびブロック線図生成装置 | |
KR102046622B1 (ko) | 워크플로우 기반 소프트웨어 서비스 시스템 및 이 시스템의 각 기능을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램 | |
CN104239064B (zh) | 一种提取和组织arm程序重定位信息的方法 | |
KR100846203B1 (ko) | 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 | |
JP2009211143A (ja) | 情報処理装置および情報処理プログラム | |
JP2006244383A (ja) | データベースシステム | |
WO2012137390A1 (ja) | 並列化設計支援システム、プログラム、および方法 | |
US20120192011A1 (en) | Data processing apparatus that performs test validation and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090327 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111007 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111205 |
|
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: 20120104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120131 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |