IP Library Granted Patent US 6,993,759
Granted Patent B2
US 6,993,759 · App. 09/838,580 · Granted Jan 31, 2006

Diagrammatic control of software in a version control system

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,993,759
App. No.
09/838,580
Granted
Jan 31, 2006
Kind
B2
Abstract

Methods and systems consistent with the present invention provide an improved software development tool that includes a version control system that permits multiple programmers to work simultaneously on a single software project by maintaining a central repository containing a master copy of a software project and by managing versions of the software project that the programmers make through the development process. The improved software development tool enables a programmer to interact with the version control system by interacting with a diagram or diagram element that corresponds to a project, package, diagram, or class, thus facilitating the use of the version control system.

Claims (74)

1. A method in a data processing system for managing versions of a project source code with a version control system, wherein the source code is generated using a software development tool, the method comprising the steps of:

generating a language-neutral representation of the source code;

displaying a graphical diagram and a textual representation of the source code using the language-neutral representation stored in a non-repository transient meta-model,

wherein changes made to either the textual or the diagrammatic displays are automatically used to convert the language neutral representation and the source code such that the source code and the diagram are synchronized, and

wherein the diagram is composed of elements, each element having an associated file containing a portion of the source code;

receiving an indication of a selected one of the elements;

determining which file is associated with the selected element;

receiving an indication of a selection of a command performable by the version control system; and

invoking the version control system to perform the selected command on the determined file.

2. The method of claim 1 , wherein the step of receiving an indication of a selection of an element includes the step of receiving an indication of a right-click of a mouse.

3. The method of claim 1 , wherein the displaying step includes displaying a class diagram.

4. The method of claim 1 , wherein the displaying step includes displaying a use case diagram.

5. The method of claim 1 , wherein the displaying step includes displaying a sequence diagram.

6. The method of claim 1 , wherein the displaying step includes displaying a collaboration diagram.

7. The method of claim 1 , wherein the displaying step includes displaying a state transition diagram.

8. The method of claim 1 , wherein the displaying step includes displaying an activity diagram.

9. The method of claim 1 , wherein the displaying step includes displaying a package diagram.

10. The method of claim 1 , wherein the displaying step includes displaying a component diagram.

11. The method of claim 1 , wherein the displaying step includes displaying a deployment diagram.

12. The method of claim 1 , wherein the step of invoking includes invoking the version control system to obtain a working copy of the determined file from a central repository containing a master copy of the source code.

13. The method of claim 12 , wherein the step of storing includes restricting the working copy to be read only.

14. The method of claim 1 , wherein the step of invoking includes invoking the version control system to acquire a copy of a version of a selected file from a central repository, to place the copy of the file in a working directory on a requesting computer, and to prevent others from checking out the file.

15. The method of claim 14 , wherein the version acquired by the version control system is a most current version.

16. The method of claim 14 , wherein the requesting computer is a client component of the version control system.

17. The method of claim 14 , wherein a computer containing the central repository is a server component of the version control system.

18. The method of claim 1 , wherein the step of invoking includes invoking the version control system to transfer a copy of a selected file from a working directory on a requesting computer to a central repository.

19. The method of claim 1 , wherein the step of invoking includes invoking the version control system to synchronize a working copy of a selected file with a most current version of the file in a central repository.

20. The method of claim 1 , wherein the step of invoking includes invoking the version control system to commit changes made to a working copy of a selected file to a corresponding file on a central repository.

21. A data processing system for managing files in a software project with a version control system, comprising:

means for generating a language-neutral representation of a project source code;

means for displaying a graphical diagram and a textual representation of the source code using the language-neutral representation stored in a non-repository transient meta-model,

wherein changes made to either the textual or the diagrammatic displays are automatically used to convert the language-neutral representation and the source code such that the source code and the diagram are synchronized, and

wherein the diagram is composed of elements, each element having an associated file containing a portion of the source code;

means for receiving an indication of a selected one of the elements;

means for determining which file is associated with the selected element;

means for receiving an indication of a selection of a command performable by the version control system; and

means for invoking the version control system to perform the selected command on the determined file.

22. A computer-readable medium containing instructions for controlling a data processing system to perform a method for managing files in a software project with a version control system, the method comprising the steps of:

generating a language-neutral representation of a project source code;

displaying a graphical diagram and a textual representation of the source code using the language-neutral representation stored in a non-repository transient meta-model,

wherein changes made to either the textual or the diagrammatic displays are automatically used to convert the language neutral representation and the source code such that the source code and the diagram are synchronized, and

wherein the diagram is composed of elements, each element having an associated file containing a portion of the source code;

receiving an indication of a selection of one of the elements of the diagram having corresponding source code;

receiving an indication of a version control command to be performed on the corresponding source code; and

responsive to the receipt of the indication of the selected element and the receipt of the indication of the version control command, performing the version control command on the corresponding source code by the version control system.

23. The computer-readable medium of claim 22 , wherein the diagram is a class diagram.

24. The computer-readable medium of claim 22 , wherein the diagram is a use case diagram.

25. The computer-readable medium of claim 22 , wherein the diagram is a sequence diagram.

26. The computer-readable medium of claim 22 , wherein the diagram is a collaboration diagram.

27. The computer-readable medium of claim 22 , wherein the diagram is a state transition diagram.

28. The computer-readable medium of claim 22 , wherein the diagram is an activity diagram.

29. The computer-readable medium of claim 22 , wherein the diagram is a package diagram.

30. The computer-readable medium of claim 22 , wherein the diagram is a component diagram.

31. The computer-readable medium of claim 22 , wherein the diagram is a deployment diagram.

32. The method of claim 22 , wherein the step of invoking includes invoking the version control system to obtain a working copy of the determined file from a central repository containing a master copy of the source code.

33. The method of claim 32 , wherein the step of storing includes restricting the working copy to be read only.

34. The computer-readable medium of claim 22 , wherein the version control command comprises acquiring a copy of a most current version of a selected file from a central repository, placing the copy of the file in a working directory on a requesting computer, and preventing others from checking out the file.

35. The method of claim 34 , wherein the requesting computer is a client component of the version control system.

36. The method of claim 34 , wherein a computer containing the central repository is a server component of the version control system.

37. The computer-readable medium of claim 22 , wherein the version control command comprises transferring a copy of a selected file from a working directory on a requesting computer to a central repository.

38. The computer-readable medium of claim 22 , wherein the version control command comprises synchronizing a working copy of a selected file with a most current version of the file in a central repository.

39. The computer-readable medium of claim 22 , wherein the version control command comprises committing changes made to a working copy of a selected file to a corresponding file on a central repository.

40. A data processing system for managing tiles in a software project with a software development tool containing a version control system, comprising:

a secondary storage device containing the software project, the software project comprising source code;

a memory containing the software development tool that displays a graphical diagram and a textual representation of the software project using a language-neutral representation stored in a non-repository transient meta-model,

wherein changes made to either the diagrammatic or textual displays are automatically used to convert the language-neutral representation and the source code such that the source code and the diagram are synchorized, and wherein the diagram is composed of elements, each element having an associated file containing a portion of the software project, that receives an indication of a selection of one of the diagram elements corresponding to a portion of the software project, that receives a selection of a command performable by the version control system, and that invokes the version control system to perform the selected command on the portion of the software project; and

a processor for running the software development tool.

41. A data processing system for managing files in a software project with a version control system, comprising:

a first computer including a memory containing a software development tool, which displays a diagram of the software project with diagram elements, and a client component of the version control system; a secondary storage containing a working directory; and a processor for running the software development tool;

a second computer including a memory containing a software development tool and a server component of the version control system, a secondary storage containing a central repository, and a processor for running the software development tool; and

a network connecting the first and second computer;

wherein the software development tool displays a graphical diagram and a textual representation of the software project using a language-neutral representation of the software project stored in a non-repository transient meta-model such that changes to either the diagrammatic or textual displays will be automatically used by the software development tool to convert the language-neutral representation and source code of the software project simultaneously,

wherein the diagram of the software project contains diagram elements corresponding to portions of the software project, and

wherein the software development tool on the first computer receives an indication of a selection of one of the diagram elements that corresponds to a portion of the software project, receives an indication of a command performable by the version control system, and invokes the version control system to perform the selected command on the portion of the software project.

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 →