IIIH
US007073166B2
(12) United States Patent ao) Patent No.: Us 7,073,166 B2
Bera (45) Date of Patent: Jul. 4,2006
Int. CI.
G06F 9/44 (2006.01)
G06F 9/45 (2006.01)
U.S. CI 717/130; 717/158
Field of Classification Search 717/130,
717/131, 154, 155, 156, 157, 158, 133 See application file for complete search history.
References Cited
U.S. PATENT DOCUMENTS
5,778,212 A * 7/1998 Dehnert et al 717/155
5,828,883 A * 10/1998 Hall 717/133
5,838,977 A * 11/1998 Gupta 717/156
5,987,254 A * 11/1999 Subrahmanyam 717/155
6,070,009 A * 5/2000 Dean et al 717/130
6,092,180 A * 7/2000 Anderson et al 712/200
6,424,120 Bl * 7/2002 Chen 320/125
6.425.120 Bl * 7/2002 Morganelli et al 717/109
6.425.121 Bl * 7/2002 Phillips 717/109
6,519,765 Bl* 2/2003 Kawahito et al 717/127
6,636,905 Bl * 10/2003 McNamer et al 710/15
6,665,866 Bl * 12/2003 Kwiatkowski et al 717/159
6,715,139 Bl * 3/2004 Kodosky et al 717/125
6,721,941 Bl* 4/2004 Morshed et al 717/127
6,782,374 Bl * 8/2004 Nichols 706/45
6,848,100 Bl * 1/2005 Wu et al 717/157
6,901,582 Bl * 5/2005 Harrison 717/127
6,915,509 Bl * 7/2005 Chkodrov et al 717/124
OTHER PUBLICATIONS
"A Prototype System For Static and Dynamic Program
Understanding", David P. Olshefski et al, IBM Watson
Research Center, IEEE, 1993, pp. 93-106.*
"Interprocedural Reaching Definitions in the Presence of
Single Level Pointers", Hermant D. Pande et al, Rutgers
University, Oct. 13, 1992, pp. 1-30.*
Wolfe, M, High Performance Compliers for Parallel Com-
puting, Addison-Wesley, 1996, p. 56.
* cited by examiner
Primary Examiner—Todd Ingberg
(74) Attorney, Agent, or Firm—Anthony V. S. England; T. Rao Coco
![[blocks in formation]](http://www.google.es/patents?id=Hch6AAAAEBAJ&hl=es&ie=ISO-8859-1&output=text&pg=PA1&img=1&zoom=3&hl=es&q=flatulence&cds=1&sig=ACfU3U0cuarhDuYx-Jm84eAZtHJ9VvUI7g&edge=0&edge=stretch&ci=487,545,258,18)
The present invention discloses a method of developing a software system. The method facilitates the task of checking the software system's conformity to design during development, testing, and maintenance. A design control flow graph describes how the software system is to operate. Coding of the software system proceeds with reference to the design control flow graph. The design control flow graph can also be used as a framework for the construction of a monitoring module that comprises a collection of functions for checking the coding of the software system. During development, each node in the software system executes a corresponding monitoring function of the monitoring module. The monitoring function verifies, for example, whether the node was entered from a valid predecessor node, and whether some or all variables visible to the node have permissible values.
17 Claims, 6 Drawing Sheets