IP Library Granted Patent US 6,976,243
Granted Patent B2
US 6,976,243 · App. 09/839,645 · Granted Dec 13, 2005

Method and system for developing source code and displaying linked elements found within the source code

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,976,243
App. No.
09/839,645
Granted
Dec 13, 2005
Kind
B2
Abstract

Methods and systems consistent with the present invention provide an improved software development tool that allows a developer to determine which elements in source code are at most a given number of links away from a selected element. Moreover, the software development tool allows the developer to specify the types of links connecting the elements from the selected element.

Claims (170)

1. A method in a data processing system stored on a computer readable medium and executing on a computer for developing source code having a plurality of elements, the method comprising the steps of: converting the source code into a language-neutral representation; using the language-neutral representation to display a graphical representation of the plurality of elements; receiving a selection of one of the plurality of elements; receiving an indication of a distance; receiving an indication of a type of link; determining from the language-neutral representation which of the plurality of elements is connected to the selected element via a link of the indicated type and within the indicated distance; and displaying the determined elements.

2. The method of claim 1 , wherein the selected element comprises a class.

3. The method of claim 1 , wherein the determined element comprises a class.

4. The method of claim 1 , wherein the selected element comprises an interface.

5. The method of claim 1 , wherein the determined element comprises an interface.

6. The method of claim 1 , wherein the type comprises a reference.

7. The method of claim 1 , wherein the type comprises a super class.

8. The method of claim 1 , wherein the type comprises a sub class.

9. The method of claim 1 , wherein the type comprises a super interface.

10. The method of claim 1 , wherein the type comprises a sub interface.

11. The method of claim 1 , wherein the type comprises an implemented interface.

12. The method of claim 1 , wherein the type comprises an association.

13. The method of claim 1 , wherein the type comprises a dependency.

14. The method of claim 1 , wherein the type comprises an aggregation.

15. The method of claim 1 , wherein the type comprises a composition.

16. The method of claim 1 , wherein the type comprises an inheritance.

17. The method of claim 1 , wherein the type comprises an implementation.

18. The method of claim 1 , wherein the selected element and the examined element are in a package.

19. A method in a data processing system stored on a computer readable medium and executing on a computer for developing source code having a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a distance; receiving an indication of a type of link; and determining which of the plurality of elements is connected to the selected element via a link of the indicated type and within the indicated distance.

20. The method of claim 19 , further comprising the step of displaying the determined elements.

21. The method of claim 19 , wherein the selected element comprises a class.

22. The method of claim 19 , wherein the determined element comprises a class.

23. The method of claim 19 , wherein the selected element comprises an interface.

24. The method of claim 19 , wherein the determined element comprises an interface.

25. The method of claim 19 , wherein the type comprises a reference.

26. The method of claim 19 , wherein the type comprises a super class.

27. The method of claim 19 , wherein the type comprises a sub class.

28. The method of claim 19 , wherein the type comprises a super interface.

29. The method of claim 19 , wherein the type comprises a sub interface.

30. The method of claim 19 , wherein the type comprises an implemented interface.

31. The method of claim 19 , wherein the type comprises an association.

32. The method of claim 19 , wherein the type comprises a dependency.

33. The method of claim 19 , wherein the type comprises an aggregation.

34. The method of claim 19 , wherein the type comprises a composition.

35. The method of claim 19 , wherein the type comprises an inheritance.

36. The method of claim 19 , wherein the type comprises an implementation.

37. The method of claim 19 , wherein the selected element and the examined element are in a package.

38. A method in a data processing system stored on a computer readable medium and executing on a computer for developing source code having a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a distance; and determining which of the plurality of elements is within the indicated distance from the selected element.

39. The method of claim 38 , further comprising the step of displaying the determined elements.

40. The method of claim 38 , wherein the selected element comprises a class.

41. The method of claim 38 , wherein the determined element comprises a class.

42. The method of claim 38 , wherein the selected element comprises an interface.

43. The method of claim 38 , wherein the determined element comprises an interface.

44. The method of claim 38 , wherein the type comprises a reference.

45. The method of claim 38 , wherein the type comprises a super class.

46. The method of claim 38 , wherein the type comprises a sub class.

47. The method of claim 38 , wherein the type comprises a super interface.

48. The method of claim 38 , wherein the type comprises a sub interface.

49. The method of claim 38 , wherein the type comprises an implemented interface.

50. The method of claim 38 , wherein the type comprises an association.

51. The method of claim 38 , wherein the type comprises a dependency.

52. The method of claim 38 , wherein the type comprises an aggregation.

53. The method of claim 38 , wherein the type comprises a composition.

54. The method of claim 38 , wherein the type comprises an inheritance.

55. The method of claim 38 , wherein the type comprises an implementation.

56. The method of claim 38 , wherein the selected element and the examined element are in a package.

57. A method in a data processing system stored on a computer readable medium and executing on a computer for developing source code having a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a type of link; receiving an indication of a portion of the source code to be searched for said type of link; and determining which of the plurality of elements is connected to the selected element via a link of the indicated type.

58. The method of claim 57 , farther comprising the step of displaying the determined elements.

59. The method of claim 57 , wherein the selected element comprises a class.

60. The method of claim 57 , wherein the determined element comprises a class.

61. The method of claim 57 , wherein the selected element comprises an interface.

62. The method of claim 57 , wherein the determined element comprises an interface.

63. The method of claim 57 , wherein the type comprises a reference.

64. The method of claim 57 , wherein the type comprises a super class.

65. The method of claim 57 , wherein the type comprises a sub class.

66. The method of claim 57 , wherein the type comprises a super interface.

67. The method of claim 57 , wherein the type comprises a sub interface.

68. The method of claim 57 , wherein the type comprises an implemented interface.

69. The method of claim 57 , wherein the type comprises an association.

70. The method of claim 57 , wherein the type comprises a dependency.

71. The method of claim 57 , wherein the type comprises an aggregation.

72. The method of claim 57 , wherein the type comprises a composition.

73. The method of claim 57 , wherein the type comprises an inheritance.

74. The method of claim 57 , wherein the type comprises an implementation.

75. The method of claim 57 , wherein the selected element and the examined element are in a package.

76. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having source code comprising a plurality of elements, the method comprising the steps of: converting the source code into a language-neutral representation; using the language-neutral representation to display a graphical representation of the plurality of elements; receiving a selection of one of the plurality of elements; receiving an indication of a distance; receiving an indication of a type of link; determining from the language-neutral representation which of the plurality of elements is connected to the selected element via a link of the indicated type and within the indicated distance; and displaying the determined elements.

77. The computer-readable medium of claim 76 , wherein the selected element comprises a class.

78. The computer-readable medium of claim 76 , wherein the determined element comprises a class.

79. The computer-readable medium of claim 76 , wherein the selected element comprises an interface.

80. The computer-readable medium of claim 76 , wherein the determined element comprises an interface.

81. The computer-readable medium of claim 76 , wherein the type comprises a reference.

82. The computer-readable medium of claim 76 , wherein the type comprises a super class.

83. The computer-readable medium of claim 76 , wherein the type comprises a sub class.

84. The computer-readable medium of claim 76 , wherein the type comprises a super interface.

85. The computer-readable medium of claim 76 , wherein the type comprises a sub interface.

86. The computer-readable medium of claim 76 , wherein the type comprises an implemented interface.

87. The computer-readable medium of claim 76 , wherein the type comprises an association.

88. The computer-readable medium of claim 76 , wherein the type comprises a dependency.

89. The computer-readable medium of claim 76 , wherein the type comprises an aggregation.

90. The computer-readable medium of claim 76 , wherein the type comprises a composition.

91. The computer-readable medium of claim 76 , wherein the type comprises an inheritance.

92. The computer-readable medium of claim 76 , wherein the type comprises an implementation.

93. The computer-readable medium of claim 76 , wherein the selected element and the examined element are in a package.

94. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having source code comprising a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a distance; receiving an indication of a type of link; and determining which of the plurality of elements is connected to the selected element via a link of the indicated type and within the indicated distance.

95. The computer-readable medium of claim 94 , wherein the method further comprises the step of displaying the determined elements.

96. The computer-readable medium of claim 94 , wherein the selected element comprises a class.

97. The computer-readable medium of claim 94 , wherein the determined element comprises a class.

98. The computer-readable medium of claim 94 , wherein the selected element comprises an interface.

99. The computer-readable medium of claim 94 , wherein the determined element comprises an interface.

100. The computer-readable medium of claim 94 , wherein the type comprises a reference.

101. The computer-readable medium of claim 94 , wherein the type comprises a super class.

102. The computer-readable medium of claim 94 , wherein the type comprises a sub class.

103. The computer-readable medium of claim 94 , wherein the type comprises a super interface.

104. The computer-readable medium of claim 94 , wherein the type comprises a sub interface.

105. The computer-readable medium of claim 94 , wherein the type comprises an implemented interface.

106. The computer-readable medium of claim 94 , wherein the type comprises an association.

107. The computer-readable medium of claim 94 , wherein the type comprises a dependency.

108. The computer-readable medium of claim 94 , wherein the type comprises an aggregation.

109. The computer-readable medium of claim 94 , wherein the type comprises a composition.

110. The computer-readable medium of claim 94 , wherein the type comprises an inheritance.

111. The computer-readable medium of claim 94 , wherein the type comprises an implementation.

112. The computer-readable medium of claim 94 , wherein the selected element and the examined element are in a package.

113. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having source code comprising a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a distance; and determining which of the plurality of elements is within the indicated distance from the selected element.

114. The computer-readable medium of claim 113 , wherein the method further comprises the step of displaying the determined elements.

115. The computer-readable medium of claim 113 , wherein the selected element comprises a class.

116. The computer-readable medium of claim 113 , wherein the determined element comprises a class.

117. The computer-readable medium of claim 113 , wherein the selected element comprises an interface.

118. The computer-readable medium of claim 113 , wherein the determined element comprises an interface.

119. The computer-readable medium of claim 113 , wherein the type comprises a reference.

120. The computer-readable medium of claim 113 , wherein the type comprises a super class.

121. The computer-readable medium of claim 113 , wherein the type comprises a sub class.

122. The computer-readable medium of claim 113 , wherein the type comprises a super interface.

123. The computer-readable medium of claim 113 , wherein the type comprises a sub interface.

124. The computer-readable medium of claim 113 , wherein the type comprises an implemented interface.

125. The computer-readable medium of claim 113 , wherein the type comprises an association.

126. The computer-readable medium of claim 113 , wherein the type comprises a dependency.

127. The computer-readable medium of claim 113 , wherein the type comprises an aggregation.

128. The computer-readable medium of claim 113 , wherein the type comprises a composition.

129. The computer-readable medium of claim 113 , wherein the type comprises an inheritance.

130. The computer-readable medium of claim 113 , wherein the type comprises an implementation.

131. The computer-readable medium of claim 113 , wherein the selected element and the examined element are in a package.

132. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having source code comprising a plurality of elements, the method comprising the steps of: receiving a selection of one of the plurality of elements; receiving an indication of a type of link; receiving an indication of a portion of the source code; to be searched for said type of link; and determining which of the plurality of elements is connected to the selected element via a link of the indicated type.

133. The computer-readable medium of claim 132 , wherein the method further comprises the step of displaying the determined elements.

134. The computer-readable medium of claim 132 , wherein the selected element comprises a class.

135. The computer-readable medium of claim 132 , wherein the determined element comprises a class.

136. The computer-readable medium of claim 132 , wherein the selected element comprises an interface.

137. The computer-readable medium of claim 132 , wherein the determined element comprises an interface.

138. The computer-readable medium of claim 132 , wherein the type comprises a reference.

139. The computer-readable medium of claim 132 , wherein the type comprises a super class.

140. The computer-readable medium of claim 132 , wherein the type comprises a sub class.

141. The computer-readable medium of claim 132 , wherein the type comprises a super interface.

142. The computer-readable medium of claim 132 , wherein the type comprises a sub interface.

143. The computer-readable medium of claim 132 , wherein the type comprises an implemented interface.

144. The computer-readable medium of claim 132 , wherein the type comprises an association.

145. The computer-readable medium of claim 132 , wherein the type comprises a dependency.

146. The computer-readable medium of claim 132 , wherein the type comprises an aggregation.

147. The computer-readable medium of claim 132 , wherein the type comprises a composition.

148. The computer-readable medium of claim 132 , wherein the type comprises an inheritance.

149. The computer-readable medium of claim 132 , wherein the type comprises an implementation.

150. The computer-readable medium of claim 132 , wherein the selected element and the examined element are in a package.

151. A data processing system executing on a computer comprising: a secondary storage device further comprising source code having a plurality of elements; a memory device further comprising a program that receives a selection of one of the plurality of elements, that receives an indication of a distance, that receives an indication of a type of link, and that determines which of the plurality of elements is connected to the selected element via a link of the indicated type and within the indicated distance; and a processor for running the program.

152. The data processing system of claim 151 , wherein the program further displays the determined elements.

153. The data processing system of claim 151 , wherein the selected element comprises a class.

154. The data processing system of claim 151 , wherein the determined element comprises a class.

155. The data processing system of claim 151 , wherein the selected element comprises an interface.

156. The data processing system of claim 151 , wherein the determined element comprises an interface.

157. The data processing system of claim 151 , wherein the type comprises a reference.

158. The data processing system of claim 151 , wherein the type comprises a super class.

159. The data processing system of claim 151 , wherein the type comprises a sub class.

160. The data processing system of claim 151 , wherein the type comprises a super interface.

161. The data processing system of claim 151 , wherein the type comprises a sub interface.

162. The data processing system of claim 151 , wherein the type comprises an implemented interface.

163. The data processing system of claim 151 , wherein the type comprises an association.

164. The data processing system of claim 151 , wherein the type comprises a dependency.

165. The data processing system of claim 151 , wherein the type comprises an aggregation.

166. The data processing system of claim 151 , wherein the type comprises a composition.

167. The data processing system of claim 151 , wherein the type comprises an inheritance.

168. The data processing system of claim 151 , wherein the type comprises an implementation.

169. The data processing system of claim 151 , wherein the selected element and the examined element are in a package.

170. A system for developing source code stored on a computer readable medium and executing on a computer having a plurality of elements, the system comprising: means for receiving a selection of one of the plurality of elements; means for receiving an indication of a type of link; means for receiving an indication of a portion of the source code to be searched for said type of link; and means for determining which of the plurality of elements is connected to the selected element via a link of the indicated type.

Assignments (6)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →