IP Library Granted Patent US 8,584,080
Granted Patent B2
US 8,584,080 · App. 12/728,791 · Granted Nov 12, 2013

Modeling and generating computer software product line variants

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 8,584,080
App. No.
12/728,791
Granted
Nov 12, 2013
Kind
B2
Abstract

A system for modeling computer software product line variants may include a model builder configured to construct a model of a plurality of variants of a computer software application. The model may include at least one common-to-variants element that may be common to a plurality of the variants, a plurality of variant-specific elements, and interface code configured to adapt any of the variant-specific elements to any of the common-to-variants elements. The model may further include an application generator configured to generate a plurality of computer software applications for a corresponding plurality of combinations of the common-to-variants elements and the variant-specific elements, where the model builder and the application generator may be implemented in at least one of computer hardware and computer software embodied in a tangible computer-readable storage medium.

Claims (32)

1. A system for modeling computer software product line variants, the system comprising:

a model builder configured to construct a model of a plurality of variants of a computer software application, wherein said model includes:

at least one common-to-variants element that is common to a plurality of said variants;

a plurality of variant-specific elements, wherein said plurality of variant-specific elements include at least one place-holder class having a first variant-related stereotype and a plurality of dependency associations associating said place-holder class with a plurality of variant classes having a second variant-related stereotype that is different than said first variant-related stereotype, wherein programming logic for each of said plurality of variant-specific elements is provided with each of said plurality of said variants of a variation point, and

interface code configured to conform any of said variant-specific elements to any of said common-to-variants elements; and

an application generator configured to generate a plurality of computer software applications for a corresponding plurality of combinations of said common-to-variants elements and said variant-specific elements, wherein said plurality of computer software applications are generated from a single model;

wherein said model builder and said application generator are implemented in at least one of computer hardware and computer software embodied in a tangible non-transitory computer-readable storage medium.

2. The system of claim 1 wherein said model builder is configured to construct said model employing a modeling methodology that supports classes and associations between classes.

3. The system of claim 1 wherein said model builder is configured to construct said model wherein said variant-specific elements include at least one inheritance association between any of said variant classes and said place-holder class.

4. The system of claim 1 wherein said model builder is configured to construct said model wherein said variant-specific elements include at least one inheritance association between any of said variant classes and at least one other class that itself has an inheritance association with said place-holder class.

5. The system of claim 1 wherein said model builder is configured to construct said model wherein said variant-specific elements include at least one inheritance association having a static stereotype.

6. The system of claim 1 wherein said model builder is configured to construct said model defining a name of said place-holder class as an alternative name to any of said variant classes with which said place-holder class is associated.

7. A method for modeling computer software product line variants, the method comprising:

constructing a model of a plurality of variants of a computer software application, wherein said model includes:

at least one common-to-variants element that is common to a plurality of said variants;

a plurality of variant-specific elements, wherein said plurality of variant-specific elements include at least one place-holder class having a first variant-related stereotype and a plurality of dependency associations associating said place-holder class with a plurality of variant classes having a second variant-related stereotype that is different than said first variant-related stereotype, wherein programming logic for each of said plurality of variant-specific elements is provided with each of said plurality of said variants of a variation point; and

interface code configured to conform any of said variant-specific elements to any of said common-to-variants elements; and

generating a plurality of computer software applications for a corresponding plurality of combinations of said common-to-variants elements and said variant-specific elements, wherein said plurality of computer software applications are generated from a single model;

wherein said constructing and generating are implemented in at least one of computer hardware and computer software embodied in a tangible non-transitory computer-readable storage medium.

8. The method of claim 7 wherein said constructing further comprises constructing said model employing a modeling methodology that supports classes and associations between classes.

9. The method of claim 5 wherein said constructing further comprises constructing said model wherein said variant-specific elements include at least one inheritance association between any of said variant classes and said place-holder class.

10. The method of claim 5 wherein said constructing further comprises constructing said model wherein said variant-specific elements include at least one inheritance association between any of said variant classes and at least one other class that itself has an inheritance association with said place-holder class.

11. The method of claim 5 wherein said constructing further comprises constructing said model wherein said variant-specific elements include at least one inheritance association having a static stereotype.

12. The method of claim 5 wherein said constructing further comprises constructing said model defining a name of said place-holder class as an alternative name to any of said variant classes with which said place-holder class is associated.

13. A computer program product for modeling computer software product line variants, the computer program product comprising:

a non-transitory computer-readable storage medium; and

computer-readable program code embodied in said non-transitory computer-readable storage medium, wherein said computer-readable program code is configured to:

construct a model of a plurality of variants of a computer software application, wherein said model includes:

at least one common-to-variants element that is common to a plurality of said variants;

a plurality of variant-specific elements, wherein said plurality of variant-specific elements include at least one place-holder class having a first variant-related stereotype and a plurality of dependency associations associating said place-holder class with a plurality of variant classes having a second variant-related stereotype that is different than said first variant-related stereotype, wherein programming logic for each of said plurality of variant-specific elements is provided with each of said plurality of said variants of a variation point; and

interface code configured to conform any of said variant-specific elements to any of said common-to-variants elements; and

generate a plurality of computer software applications for a corresponding plurality of combinations of said common-to-variants elements and said variant-specific elements, wherein said plurality of computer software applications are generated from a single model.

Assignments (2)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Jan 11, 2018
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045060/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2010
From: GERY, ERAN; HOLSTEIN, BEERY; POUPKO, OURI; REKHTER, ALEXANDER; SHALEV, AVRAHAM; YERUSHALMI, RAZ
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024127/0912 →