IP Library Granted Patent US 6,851,105
Granted Patent B1
US 6,851,105 · App. 09/680,030 · Granted Feb 1, 2005

Method and system for generating, applying, and defining a pattern

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,851,105
App. No.
09/680,030
Granted
Feb 1, 2005
Kind
B1
Abstract

The present invention relates a method and systems for generating, applying and defining patterns for software development. The software development tool receives an indication of a pattern, generates software code reflecting the pattern, and stores identification information for the pattern in a comment associated with the generated software code. The software development tool receives an indication of the software element, determines whether the software element is capable of playing the role, and when it is determined that the software element is capable of playing the role, designates that the software element plays the role in the pattern. The software development tool displays a plurality of software elements to a user, receives an indication of a selected one of the plurality of software elements, receives an indication of a user-defined pattern role that the selected software element plays in a pattern, and stores the plurality of software elements as the pattern.

Claims (76)

1. A method in a data processing system having a plurality of patterns, wherein each of the plurality of patterns has an associated element type, the method comprising the steps of:

receiving an indication of an element type, wherein the element type is a class, link, or any known object-oriented component of a software program;

displaying a matching one of the plurality of patterns, the matching pattern having an associated element type that matches the received element type;

receiving from a user an indication of a selection of the matching pattern;

receiving an indication of a variation;

modifying the matching pattern based on the variation;

receiving an identification of a language; and

generating software code reflecting the modified matching pattern, wherein the software code is generated in the language.

2. The method of claim 1 further comprising the step of determining whether the variation is suitable for the matching pattern before modifying the matching pattern.

3. The method of claim 1 , further comprising the step of storing identification information for the matching pattern in a comment associated with the generated software code.

4. The method of claim 1 , wherein the step of generating includes the steps of determining a location for storing the generated software code and storing the generated software code at the location.

5. A method in a data processing system having a pattern, wherein the pattern has a first participant playing a first role in the pattern and a second participant playing a second role in the pattern, the method comprising the steps of:

receiving an indication of a first of a plurality of software elements, wherein the first of the plurality of software elements is a substantiation of an element type; wherein the element type is a class, link, or any known object-oriented component of a software program;

determining whether the first software element is capable of playing the first role;

when it is determined that the first software element is capable of playing the first role;

determining whether a second of the plurality of software elements is capable of playing the second role, wherein the second of the plurality of software elements is a substantiation of an element type;

when it is determined that the second software element is capable of playing the second role;

designating that the first software element plays the first role in the pattern; and

designating that the second software element plays the second role in the pattern.

6. The method of claim 5 , further including the step of, when it is determined that the second software element is not capable of playing the second role, designating that a missing participant plays the second role in the pattern.

7. The method of claim 5 , wherein the step of designating the first software element includes the steps of:

detecting a portion of the first software element; and

replacing the portion of the first software element with at least a portion of the first participant.

8. The method of claim 5 , further comprising the steps of:

receiving an indication of a variation for the first participant; and

modifying the first participant with the variation before the first software element is designated to play the first role in the pattern.

9. The method of claim 8 , further comprising the steps of:

receiving an indication of a second variation for the second participant; and

modifying the second participant with the second variation before the second software element is designated to play the second role of the pattern.

10. The method of claim 5 , further comprising the step of storing identification information for the pattern in a comment associated with the software code.

11. A method in a data processing system for creating a pattern having a first particular with a first role name, and a second particular with a second role name, wherein the pattern is based on code having a first software element with a first coded name and a second software element with a second coded name, the method comprising the steps of:

receiving an indication of the first software element, wherein the first software element is a substantiation of an element type; wherein the element type is a class, link, or any known object-oriented component of a software program;

receiving an indication that the first software element corresponds to the first participant;

replacing the first coded name of the first software element with the first role name of the first participant;

receiving an indication of the second software element, wherein the second software element is a substantiation of an element type;

receiving an indication that the second software element corresponds to the second participant;

replacing the second coded name of the second software element with the second role name of the second participant; and

storing the code with the first coded name and the second coded name as the pattern.

12. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having a plurality of patterns, wherein each of the plurality of patterns has an associated element type, the method comprising the steps of:

receiving an indication of an element type, wherein the element type is a class, link, or any known object oriented component of a software program;

displaying a matching one of the plurality of patterns, the matching pattern having an associated element type that matches the received element type;

receiving from a user an indication of a selection of the matching pattern;

receiving an indication of a variation;

modifying the matching pattern based on the variation;

receiving an identification of a language; and

generating software code reflecting the modified matching pattern, wherein the software code is generated in the language.

13. The computer-readable medium of claim 12 , wherein the method further comprises the step of determining whether the variation is suitable for the matching pattern before modifying the matching pattern.

14. The computer-readable medium of claim 12 , wherein the method further comprises the step of storing identification information for the matching pattern in a comment associated with the generated software code.

15. The computer-readable medium of claim 12 , wherein the step of generating includes the steps of determining a location for storing the generated software code and storing the generated software code at the location.

16. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having a pattern, wherein the pattern has a first participant playing a first role in the pattern and a second participant playing a second role in the pattern, the method comprising the steps of:

receiving an indication of a first of a plurality of software elements, wherein the first of the plurality of software elements is a substantiation of an element type; wherein the element type is a class, link, or any known object-oriented component of a software program;

determining whether the first software element is capable of playing the first role;

when it is determined that the first software element is capable of playing the first role;

determining whether a second of the plurality of software elements is capable of playing the second role, wherein the second of the plurality of software elements is a substantiation of an element type;

when it is determined that the second software element is capable of playing the second role;

designating that the first software element plays the first role in the pattern; and

designating that the second software element plays the second role in the pattern.

17. The computer-readable medium of claim 16 , wherein the method further includes the step of, when it is determined that the second software element is not capable of playing the second role, designating that a missing participant plays the second role in the pattern.

18. The computer-readable medium of claim 16 , wherein the step of designating the first software element includes the steps of:

detecting a portion of the first software element; and

replacing the portion of the first software element with at least a portion of the first participant.

19. The computer-readable medium of claim 16 , wherein the method further comprises the steps of:

receiving an indication of a variation for the first participant; and

modifying the first participant with the variation before the first software element is designated to play the first role in the pattern.

20. The computer-readable medium of claim 19 , wherein the method further comprises the steps of:

receiving an indication of a second variation for the second participant; and

modifying the second participant with the second variation before the second software element is designated to play the second role of the pattern.

21. The computer-readable medium of claim 16 , wherein the method further comprises the step of storing identification information for the pattern in a comment associated with the software code.

22. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having a pattern having a first participant with a first role name, and a second participant with a second role name, wherein the pattern is based on code having a first software element with a first coded name and a second software element with a second coded name, the method comprising the steps of:

receiving an indication of the first software element, wherein the first software element is a substantiation of an element type; wherein the element type is a class, link, or any known object-oriented component of a software program;

receiving an indication that the first software element corresponds to the first participant;

replacing the first coded name of the first software element with the first role name of the first participant;

receiving an indication of the second software element, wherein the second software element is a substantiation of an element type;

receiving an indication that the second software element corresponds to the second participant;

replacing the second coded name of the second software element with the second role name of the second participant; and

storing the code with the first coded name and the second coded name as the pattern.

Assignments (7)
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: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2008
From: TOGETHERSOFT CORPORATION
To: BORLAND SOFTWARE CORPORATION
Reel/Frame 020317/0308 →