JP4183192B2 - アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 - Google Patents
アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 Download PDFInfo
- Publication number
- JP4183192B2 JP4183192B2 JP2004380298A JP2004380298A JP4183192B2 JP 4183192 B2 JP4183192 B2 JP 4183192B2 JP 2004380298 A JP2004380298 A JP 2004380298A JP 2004380298 A JP2004380298 A JP 2004380298A JP 4183192 B2 JP4183192 B2 JP 4183192B2
- Authority
- JP
- Japan
- Prior art keywords
- inconsistency
- information
- server object
- data flow
- processing apparatus
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
1.到達する定義の問題(Reaching Definition)
2.使える式の問題(Available Expression)
3.生きている変数の問題(Live Variable)
これらの各データフロー問題については、本発明のデータフロー問題を用いて、具体的に後述する。
PageはJSP等ページ生成コンポーネント、Actionはサーバロジック、ActionResultはサーバロジックの実行結果(成功 or 失敗など)に応じたページフローの選択肢を表す。また、ActionResultにはActionからのみつながる。
2)ActionResultノードは、redirectか否かを示す情報(真偽値)を持つ。
redirectが真であるActionResultノードでは、scopeがREQUESTであるサーバ・オブジェクトの定義は消滅する。
3)サーバ・オブジェクト(bean)を<name, scope, classname>の三つ組みで表現する。ただし、scope={REQUEST,SESSION,APPLICATION}とする。各値は、ServletAPIで定義されるものと同じ意味を持つ。サーバ・オブジェクトはnameとscopeの組で識別される。
4)サーバ・オブジェクトに対する操作αを、(op, bean)の組で表現する。各ノードには0個以上のαを付加することができる。ただし、op={CREATE,READ,UPDATE,DELETE, MAY_CREATE,MAY_READ,MAY_UPDATE,MAY_DELETE}とする。それぞれ、次のような意味を持つ。
* CREATE: beanの作成
* READ: beanの参照(読み込み)
* UPDATE: beanの更新
* DELETE: beanの削除
* MAY_*: 「かもしれない」(何も作用しない)
1)RD (Reaching Definition): 到達するサーバ・オブジェクト定義の問題
2)AB (Available Bean): 使えるサーバ・オブジェクトの問題
3)LB (Live Bean): 生きているサーバ・オブジェクトの問題
1) 存在しないサーバ・オブジェクトへの参照があることによる不整合
2) サーバ・オブジェクトの型違いがあることによる不整合
3) 冗長なサーバ・オブジェクトの生成があることによる不整合
4) 不要なサーバ・オブジェクトの放置されていることによる不整合
1)存在しないサーバ・オブジェクトへの参照があることによる不整合
この不整合は、Webアプリケーション(Servlet)やページ(JSP)が、あるサーバ・オブジェクトの存在を前提に記述されているのにも関わらず、そのサーバ・オブジェクトが作られずにそのWebアプリケーション(Servlet)やページJSPに到達してしまうような経路がある場合に発生する。このような経路が存在する画面遷移は実行時エラーを引き起こすため、間違った画面遷移であると言える。この問題は、制御フローグラフの各ノードnおいて、そこでREADアクセスすると宣言されているサーバ・オブジェクトがAB[n]に含まれていない場合に、不整合として検出すればよい。以下に、不整合検出部330が、この不整合を検出するアルゴリズムの一例を示す。
この不整合は、Webアプリケーション(Servlet)やページ(JSP)が期待している型とは違う型のサーバ・オブジェクトが格納されている場合で、Webアプリケーション(Servlet)やページ(JSP)の実行時にClassCastExceptionという形で表面化する。この問題は、制御フローグラフの各ノードnにおいて、そこでサーバ・オブジェクトに関するものについて、このclassnameがαのclassnameと異なる場合に、不整合として検出すればよい。以下に、不整合検出部330が、この不整合を検出するアルゴリズムの一例を示す。
この不整合は、一度も参照されないサーバ・オブジェクトの生成があることの不整合である。このような不整合は、Webアプリケーションにとって致命的な問題ではないが、パフォーマンス上の不利益をもたらすため、内部設計から排除すべき間違いである。この問題は、制御フローグラフの各ノードnにおいて、そこでCREATEもしくはUPDATEでアクセスすると宣言されているサーバ・オブジェクトα.beanに関して、α.beanがLB[n]に含まれていない場合に、不整合として検出すればよい。以下に、不整合検出部330が、この不整合を検出するアルゴリズムの一例を示す。
この不整合は、どこからも参照される可能性の無いサーバ・オブジェクトが消されずに残っている場合である。このような不整合は、Webアプリケーションにとって、致命的な問題ではないが、パフォーマンス上の不利益をもたらすため、内部設計から排除すべき間違いである。この問題は、制御フローグラフの各ノードnにおいて、AB[n]に含まれるがLB[n]には含まれないサーバ・オブジェクトの中で、nでDELETEされないものがあった場合に、不整合として検出すればよい。以下に、不整合検出部330が、この不整合を検出するアルゴリズムの一例を示す。
op={CREATE,READ,UPDATE,DELETE,MAY_CREATE,MAY_READ,MAY_UPDATE,MAY_DELETE}のPower Setを表すためのクラスとして下記のように定義する。
Class Info {
Op op;
ObjInfo bean;
List list;
}
100 入力部
200 出力部
300 制御部
310 制御フローグラフ作成部
320 データフロー解析部
330 不整合検出部
340 修正部
500 記憶部
Claims (13)
- アプリケーション・プログラムの画面遷移の設計について、整合性を検出する情報処理装置であって、
前記アプリケーション・プログラムの画面遷移の設計情報を含む内部設計情報であるモデル情報に基づいて、前記アプリケーション・プログラムのうちのアプリケーション・オブジェクトであるサーバ・オブジェクトへのアクセスに関する情報を含み、有向グラフで表される制御フローグラフであって、前記画面遷移の画面の情報となるページのノードと、次の画面に遷移するかを選択させるアクションのノードと、このアクションの結果となるアクション・リザルトのノードと、から構成される制御フローグラフを作成する制御フローグラフ作成部と、
前記サーバ・オブジェクトに関するデータフロー問題であって、到着する前記サーバ・オブジェクトの定義点の集合の問題、使用可能な前記サーバ・オブジェクトの問題及び参照される可能性がある前記サーバ・オブジェクトの問題を含む前記データフロー問題を解くための一般化されたシステムである単調データフローシステムを、前記制御フローグラフ作成部において作成された制御フローグラフに用いて、前記データフロー問題の解を算出するデータフロー解析部と、
前記算出したデータフロー問題の解を利用して、前記アプリケーション・プログラムの前記サーバ・オブジェクトへのアクセスに関する不整合を検出する不整合検出部と、
前記検出した不整合に関する情報を表示する出力部と、
前記不整合に関する情報に基づいて、この不整合を修正する情報を提示する修正部と、
を備えることを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記修正部は、ユーザからの修正に関する入力を受けつけ、この入力された修正内容に応答して、前記不整合を修正することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記不整合検出部は、存在しないサーバ・オブジェクトへの参照を検出する情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記不整合検出部は、サーバ・オブジェクトの種類が異なることを検出する情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記不整合検出部は、余分なサーバ・オブジェクトの生成があることを検出する情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記不整合検出部は、どこからも参照されないサーバ・オブジェクトが存在することを検出する情報処理装置。 - アプリケーション・プログラムの画面遷移の設計について、整合性を検出する方法であって、
情報処理装置が、
前記アプリケーション・プログラムの画面遷移の設計情報を含む内部設計情報であるモデル情報に基づいて、前記アプリケーション・プログラムのうちのアプリケーション・オブジェクトであるサーバ・オブジェクトへのアクセスに関する情報を含み、有向グラフで表される制御フローグラフであって、前記画面遷移の画面の情報となるページのノードと、次の画面に遷移するかを選択させるアクションのノードと、このアクションの結果となるアクション・リザルトのノードと、から構成される制御フローグラフを作成する制御フローグラフ作成段階と、
前記サーバ・オブジェクトに関するデータフロー問題であって、到着する前記サーバ・オブジェクトの定義点の集合の問題、使用可能な前記サーバ・オブジェクトの問題及び参照される可能性がある前記サーバ・オブジェクトの問題を含む前記データフロー問題を解くための一般化されたシステムである単調データフローシステムを、前記制御フローグラフ作成段階において作成された制御フローグラフに用いて、前記データフロー問題の解を算出するデータフロー解析段階と、
前記算出したデータフロー問題の解を利用して、前記アプリケーション・プログラムの前記サーバ・オブジェクトへのアクセスに関する不整合を検出する不整合検出段階と、
前記検出した不整合に関する情報を表示する表示段階と、
前記不整合に関する情報に基づいて、この不整合を修正する情報を提示する修正段階と、
を備えることを特徴とする方法。 - 請求項7に記載の方法であって、
前記修正段階は、ユーザからの修正に関する入力を受けつけ、この入力された修正内容に応答して、前記不整合を修正することを特徴とする方法。 - 請求項7に記載の方法であって、
前記不整合検出段階では、存在しないサーバ・オブジェクトへの参照を検出する方法。 - 請求項7に記載の方法であって、
前記不整合検出段階では、サーバ・オブジェクトの種類が異なることを検出する方法。 - 請求項7に記載の方法であって、
前記不整合検出段階では、余分なサーバ・オブジェクトの生成があることを検出する方法。 - 請求項7に記載の方法であって、
前記不整合検出段階では、どこからも参照されないサーバ・オブジェクトが存在することを検出する方法。 - 請求項7乃至12のいずれか1項に記載の方法の各段階をコンピュータに実行させるためのコンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380298A JP4183192B2 (ja) | 2004-12-28 | 2004-12-28 | アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 |
US11/318,718 US7886276B2 (en) | 2004-12-28 | 2005-12-27 | Application program development assisting method, program, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380298A JP4183192B2 (ja) | 2004-12-28 | 2004-12-28 | アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006185324A JP2006185324A (ja) | 2006-07-13 |
JP2006185324A5 JP2006185324A5 (ja) | 2008-01-31 |
JP4183192B2 true JP4183192B2 (ja) | 2008-11-19 |
Family
ID=36738378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004380298A Expired - Fee Related JP4183192B2 (ja) | 2004-12-28 | 2004-12-28 | アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7886276B2 (ja) |
JP (1) | JP4183192B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220236967A1 (en) * | 2000-01-27 | 2022-07-28 | Aidin NASIRISHARGH | Virtual keyboard for writing programming codes in electronic device |
US8078954B2 (en) * | 2005-09-27 | 2011-12-13 | Oracle International Corporation | System and method for page flow editor |
US20070083853A1 (en) * | 2005-09-27 | 2007-04-12 | Bea Systems, Inc. | System and method for declarative validation rule editor |
US9336015B2 (en) * | 2005-09-27 | 2016-05-10 | Oracle International Corporation | System and method for action output/page input mismatch detection and resolution |
US8499293B1 (en) * | 2005-09-28 | 2013-07-30 | Oracle America, Inc. | Symbolic renaming optimization of a trace |
US20100083240A1 (en) * | 2006-10-19 | 2010-04-01 | Checkmarx Ltd | Locating security vulnerabilities in source code |
US8904341B2 (en) * | 2007-04-30 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Deriving grounded model of business process suitable for automatic deployment |
JP2009009362A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Information Systems Ltd | プログラムの変数管理システム |
US8607197B2 (en) * | 2007-08-28 | 2013-12-10 | International Business Machines Corporation | Displaying HTTP session entry and exit points |
EP2223277A4 (en) * | 2007-12-20 | 2012-02-29 | Hewlett Packard Development Co | MODEL-BASED USE OF A COMPUTER-BASED COMPANY PROCESS ON DEDICATED HARDWARE |
CN101946260A (zh) * | 2007-12-20 | 2011-01-12 | 惠普开发有限公司 | 对基于计算机的业务过程进行建模以用于定制和递送 |
US20100280863A1 (en) * | 2007-12-20 | 2010-11-04 | Lawrence Wilcock | Automated Model Generation For Computer Based Business Process |
US8200578B2 (en) * | 2008-07-09 | 2012-06-12 | Hill Matthew D | Methods and systems for account management and virtual agent design and implementation |
US8312419B2 (en) * | 2008-10-30 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Automated lifecycle management of a computer implemented service |
US8645923B1 (en) * | 2008-10-31 | 2014-02-04 | Symantec Corporation | Enforcing expected control flow in program execution |
US8661409B2 (en) * | 2009-05-18 | 2014-02-25 | National Instruments Corporation | Editing a graphical data flow program in a browser |
US8468512B2 (en) * | 2009-10-30 | 2013-06-18 | International Business Machines Corporation | Abstracting benefit rules from computer code |
US8627286B2 (en) * | 2010-03-26 | 2014-01-07 | Oracle International Corporation | Fully declarative build system for build optimization |
JP5303795B2 (ja) * | 2010-06-02 | 2013-10-02 | 株式会社日立製作所 | アプリケーションの解析方法、解析システム及び解析プログラム |
US8316314B2 (en) * | 2010-06-30 | 2012-11-20 | Thermo Electron Scientific Instruments Llc | Intelligent multi-functional macros language for analytical measurements |
US9104795B2 (en) * | 2011-06-28 | 2015-08-11 | International Business Machines Corporation | Integrating compiler warnings into a debug session |
CN102306098A (zh) * | 2011-08-18 | 2012-01-04 | 电子科技大学 | 一种隐式污点传播系统及其方案 |
US20130179863A1 (en) * | 2012-01-11 | 2013-07-11 | Microsoft Corporation | Bug variant detection using program analysis and pattern identification |
US20130219311A1 (en) * | 2012-02-20 | 2013-08-22 | International Business Machines Corporation | Displaying association information of multiple graphic objects in a graphical user interface |
WO2015015251A1 (en) * | 2013-08-01 | 2015-02-05 | Yogesh Chunilal Rathod | Presenting plurality types of interfaces and functions for conducting various activities |
US11397520B2 (en) | 2013-08-01 | 2022-07-26 | Yogesh Chunilal Rathod | Application program interface or page processing method and device |
EP3401827A1 (en) | 2017-05-10 | 2018-11-14 | Checkmarx Ltd. | Method and system of static and dynamic data flow analysis |
US11960390B2 (en) * | 2019-05-13 | 2024-04-16 | Nippon Telegraph And Telephone Corporation | Test apparatus, test method and program |
US11836258B2 (en) | 2020-07-28 | 2023-12-05 | Checkmarx Ltd. | Detecting exploitable paths in application software that uses third-party libraries |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0869380A (ja) * | 1994-08-29 | 1996-03-12 | Fujitsu Ltd | ソースプログラムチェック装置 |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6745383B1 (en) * | 1999-12-29 | 2004-06-01 | Veritas Operating Corporation | Early warning mechanism for enhancing enterprise availability |
JP2001344105A (ja) | 2000-03-31 | 2001-12-14 | Hitachi Software Eng Co Ltd | Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体 |
JP2001344205A (ja) | 2000-05-31 | 2001-12-14 | Nippon Telegr & Teleph Corp <Ntt> | サービス提供システムおよびサービス提供方法ならびに記録媒体 |
US6829758B1 (en) * | 2000-07-14 | 2004-12-07 | Nokia Internet Communications, Inc. | Interface markup language and method for making application code |
JP2003015870A (ja) | 2001-06-28 | 2003-01-17 | Hitachi Software Eng Co Ltd | Webアプリケーション開発方法および開発支援装置 |
US7426717B1 (en) * | 2001-11-27 | 2008-09-16 | Adobe Systems Incorporated | System and method for debugging files in a runtime environment |
US7398516B2 (en) * | 2003-04-18 | 2008-07-08 | Ounce Labs, Inc. | Method and system for detecting race condition vulnerabilities in source code |
US20050015752A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Static analysis based error reduction for software applications |
US7526755B2 (en) * | 2003-10-08 | 2009-04-28 | Microsoft Corporation | Plug-in pre- and postconditions for static program analysis |
US7975306B2 (en) * | 2004-06-04 | 2011-07-05 | Hewlett-Packard Development Company, L.P. | Apparatus and method for monitoring secure software |
US7617486B2 (en) * | 2004-10-19 | 2009-11-10 | Ebay, Inc. | Method and system to automate software testing using sniffer side and browser side recording and a toolbar interface |
US7991755B2 (en) * | 2004-12-17 | 2011-08-02 | International Business Machines Corporation | Dynamically ranking nodes and labels in a hyperlinked database |
-
2004
- 2004-12-28 JP JP2004380298A patent/JP4183192B2/ja not_active Expired - Fee Related
-
2005
- 2005-12-27 US US11/318,718 patent/US7886276B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2006185324A (ja) | 2006-07-13 |
US7886276B2 (en) | 2011-02-08 |
US20090183141A1 (en) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4183192B2 (ja) | アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 | |
US8201143B2 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
US8181150B2 (en) | System and method for synchronized workflow management | |
US8359576B2 (en) | Using symbolic execution to check global temporal requirements in an application | |
KR101645052B1 (ko) | 디버깅 파이프라인 | |
US8443342B2 (en) | Static analysis using interactive and integration tools | |
US9535821B1 (en) | Displaying violated coding rules in source code | |
US8533684B2 (en) | Source identification of compliance errors in a web page with custom widgets | |
US8533666B2 (en) | Interactive design environments to visually model, debug and execute resource oriented programs | |
US20060190771A1 (en) | System and method for model based generation of application programming interface test code | |
US8661416B2 (en) | Method and apparatus for defining and instrumenting reusable Java server page code snippets for website testing and production | |
US20060212843A1 (en) | Apparatus for analysing and organizing artifacts in a software application | |
US20040003335A1 (en) | Auto suggestion of coding error correction | |
JP4023803B2 (ja) | ウェブアプリケーション開発支援装置、データ処理方法及びプログラム | |
US20150317288A1 (en) | Method and system to maintain a web page | |
Alimadadi et al. | Hybrid DOM-sensitive change impact analysis for JavaScript | |
CN112527382B (zh) | 部署流水线引擎系统的方法、持续集成的方法及装置 | |
US20110055744A1 (en) | Visual Linking of Elements to Model Attributes | |
US8898649B2 (en) | Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program | |
Swearngin et al. | Genie: Input Retargeting on the Web through Command Reverse Engineering | |
Singh | Ajax asynchronous database refresh | |
US11816420B2 (en) | Automatic template and logic generation from a codified user experience design | |
US12079104B2 (en) | Infrastructure to integrate an integrated development environment (IDE) with game engines | |
Alaküla et al. | Property probes: Live exploration of program analysis results | |
JP2017004208A (ja) | テスト支援装置、及びテスト支援方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071210 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20071221 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20080116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080711 |
|
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: 20080826 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080829 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110912 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120912 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |