IP Library Granted Patent US 9,069,645
Granted Patent B2
US 9,069,645 · App. 12/956,599 · Granted Jun 30, 2015

Decoupled development in a shared development 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 9,069,645
App. No.
12/956,599
Granted
Jun 30, 2015
Kind
B2
Abstract

A computer-implemented method of optimizing software components. The method may include receiving a software component including a layered hierarchy of structure packages, main packages, and common packages each including objects, grouping common packages into groups according to pre-determined criteria, encapsulating each group with an encapsulation package, wherein the encapsulation package is one of a structure package and a main package, allowing objects in the encapsulation package to communicate directly by bypassing common packages in the encapsulation package, and eliminating package interfaces of the common packages in the encapsulation package that are solely used for communicating with other common packages in the encapsulation package.

Claims (54)

1. A computer-implemented method of optimizing software components, comprising:

receiving, by a processor, a software component including a layered hierarchy of:

structure packages containing lower level packages, wherein the structure packages form a root of the layered hierarchy;

main packages containing lower level packages; and

common packages each including objects to develop a functionality of a business application;

wherein the lower level packages include at least one of: the main packages and the common packages; and

wherein each of the structure packages, main packages, and common packages includes at least one package interface and at least one use access parameter, the at least one package interface and the at least one use access parameter defining visibility and access of respective packages;

grouping, by the processor, common packages at a same layer into groups according to pre-determined criteria;

encapsulating, by the processor, each group with an encapsulation package, wherein the encapsulation package is one of a structure package and a main package;

responsive to the encapsulation, allowing, by the processor, objects within the encapsulation package to communicate directly with one another without checking visibility at respective package interfaces and use access parameters; and

eliminating, by the processor, at least one of: the at least one package interface and the at least one use access parameter of the common packages in the encapsulation package.

2. The method of clam 1 , wherein each structure package contains one or more main packages and one or more common packages.

3. The method of claim 1 , wherein each main package contains one or more common packages.

4. The method of claim 1 , wherein the each of the structure packages includes a default package interface that directly includes objects contained in the structure package.

5. The method of claim 1 , wherein the software component is developed in a shared development environment.

6. The method of claim 1 , further comprising:

determining whether each encapsulation package is a structure package or a main package;

if the encapsulation package is a main package, replacing the main package with a structure package including a default package interface;

allowing default package interfaces of the encapsulation package to communicate with objects contained in the encapsulation package; and

eliminating package interfaces of common packages contained in each encapsulation package.

7. The method of claim 6 , further comprising:

identifying all objects and packages that are used by other software components;

freezing the all objects and packages that are used by other software components.

8. The method of claim 1 , wherein the encapsulation includes disabling server and client properties for each group within the encapsulation package.

9. A computer-implemented method of optimizing software components, comprising:

displaying, by a processor, a user interface depicting a layered hierarchy with at least one layer including common packages that include objects;

responsive to a user interaction with the user interface, grouping common packages at a same hierarchical layer into groups;

encapsulating, by the processor, each group with an encapsulation package, wherein the encapsulation package is one of a structure package and a main package;

responsive to the encapsulation, allowing, by the processor, objects within the encapsulation package to communicate directly with one another without checking visibility at respective package interfaces and use access parameters; and

eliminating, by the processor, at least one of: the package interfaces and the use access parameters of the common packages in the encapsulation package.

10. The method of claim 9 , wherein each structure package contains one or more main packages and one or more common packages.

11. The method of claim 9 , wherein each main package contains one or more common packages.

12. The method of claim 9 , wherein the each of the structure packages includes a default package interface that directly includes objects contained in the structure package.

13. The method of claim 9 , wherein the software component is developed in a shared development environment.

14. The method of claim 9 , further comprising:

determining whether each encapsulation package is a structure package or a main package;

if the encapsulation package is a main package, replacing the main package with a structure package including a default package interface;

allowing default package interfaces of the encapsulation package to communicate with objects contained in the encapsulation package; and

eliminating package interfaces of common packages contained in each encapsulation package.

15. The method of claim 14 , further comprising:

identifying all objects and packages that are used by other software components; and

freezing the all objects and packages that are used by other software components.

16. The method of claim 9 , wherein the encapsulation includes disabling server and client properties for each group within the encapsulation package.

17. A computer-readable non-transitory medium stored thereon machine-executable codes that, when executed, performs a method, the method comprising:

receiving a software component including a layered hierarchy of:

structure packages containing lower level packages, wherein the structure packages form a root of the layered hierarchy;

main packages containing lower level packages; and

common packages each including objects to develop a functionality of a business application;

wherein the lower level packages include at least one of: the main packages and the common packages; and

wherein each of the structure packages, main packages, and common packages includes at least one package interface and at least one use access parameter, the at least one package interface and the at least one use access parameter defining visibility and access of respective packages;

grouping common packages at a same layer into groups according to pre-determined criteria;

encapsulating each group with an encapsulation package, wherein the encapsulation package is one of a structure package and a main package;

responsive to the encapsulation, allowing objects within the encapsulation package to communicate directly with one another without checking visibility at respective package interfaces and use access parameters; and

eliminating at least one of: the at least one package interface and the at least one use access parameter of the common packages in the encapsulation package.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2010
From: KEMMLER, ANDREAS
To: SAP AG
Reel/Frame 025401/0574 →