The present invention relates to methods and computer program products for visualizing feature model information.
Complex products can be modeled in various manners and in order to satisfy different needs. An architect can use an architectural model of a product that illustrates the implementation details of the product.
Closely related products can form a product line. These product can differ from each other by some features while share other features. A feature model illustrates these features.
The growing complexity of products and product lines should be answered by an effective modeling paradigm that can easily reflect architectural structure and its relation to the product's features.
A method, a system and a computer program product for visualizing feature model information. The method includes: (i) receiving a feature model that comprises multiple features, an architecture model that comprises multiple architectural elements, and information representative of features implemented by the architecture elements; and (ii) generating a hybrid model that comprises architectural model elements and visual indicators representative of feature model semantics.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which:
A method, a system, and a computer program product are provided. They facilitate having a feature model as well as a hybrid model. Additional information is included in the hybrid model while the feature module is left unchanged thus can remain relatively simple and easy to manage while a hybrid model includes an architectural model and visual indicators that represent feature model semantics.
The hybrid model can be generated by adding the visual indicators to an existing architectural model.
The hybrid model provides a clear picture of the product line variability. This allows the architect to distinguish between mandatory and optional architectural elements, observe alternative, and mutually inclusive architectural elements. This also enables the architect to adjust the architecture accordingly, design test cases, decide and control system resources and more.
A feature model can include multiple features. Every feature has a type. Samples of feature types include mandatory feature, alternative feature, a feature that is included in a group, a group's default feature, and the like. Different features of a feature model can be related to each other. A relationship between one feature and at least one other feature of the same feature model is referred to as a feature relationship.
Feature model semantics define feature types and feature relationships. Examples of feature types are mandatory, optional, alternative, default, mutually inclusion, inclusion in a group, and the like. Accordingly, a feature can be a mandatory feature, an optional feature, an alternative feature, included in a mutually inclusive group of features, included in a group of features, included in a group of optional features, and the like.
A feature relationship can be expressed as a relationship between multiple features. If, for example, a product can be characterized by one out of two features then these features can be defined as alternative features. This feature relationship can be expressed by the relationship between the features—one feature is an alternative to the other feature. Another manner of expression can include defining a product as including either one feature or the other.
A hybrid model includes architectural model elements and feature model semantics. The feature model semantics is represented by visual indicators. These visual indicators can indicate a feature related type of an architectural model element or a feature relationship that is associated with architectural model elements.
A type of an architectural model element can be responsive to the type of feature that is implemented (is being realized) by the architectural model element. For example, an architectural model element that realizes a mandatory feature is a mandatory architectural element.
A type of an architectural model element can be responsive to the functionality of that architectural model element.
A feature relationship can be associated with different architectural model elements if each of these architectural model elements is associated with a corresponding feature and there is a feature relationship between these corresponding features. This can be illustrated by the following example. It is assumed that: (i) a microwave oven product line can include a microwave oven that provides three level heating and another microwave oven that provides ten level heating—they belong to an alternative group (ii) A three level heating element can realize the three level heating feature while the ten level heating element can realize the ten level heating feature. Given these assumptions the three level heating element is regarded as an alternative architectural model element to the ten level heating element. Accordingly, a feature relationship (in this case alternative features) exists between the mentioned above heating elements.
When the hybrid model is displayed architectural model elements are marked with the features they realize. Based on the element marking and the feature model, the hybrid model elements are visualized so that: (i) an architectural model element that implements a mandatory feature is visualized as a mandatory architectural model element; (ii) an architectural model element that implements an optional feature is visualized as a optional architectural model element; (iii) architectural model elements that belong to the same feature group are marked as belonging to the same group; (iv) an architectural model element that implements a feature that is classified to be a default feature of its feature group, is visualized as a default architectural model element.
According to an embodiment of the invention the type of group (alternative, selective, mutual inclusive, and the like) is also visualized.
A hybrid model is stored at a tangible memory unit. It can be outputted (printed, displayed, transmitted) to a user or a user device in various manners. A hybrid model includes one or more visual indicators that represent visual model semantics.
The visual indicator can be a number, text, a symbol, an icon, a shape, a color, a texture, a style (or text), or a combination thereof. For example, members of a certain group can be surrounded by an enclosing shape (such as but not limited to a box), the color of the enclosing shape can indicate the type of the group. Yet for another example, a certain symbol or text can be displayed near (or inside) members of the same group. Yet for a further example a visual indicator (such as but not limited to an arrow) can link between architectural elements so as to emphasize that these architectural model elements are associated to each other.
It is noted that feature model can include hierarchical model groups and that the hybrid model can display only one or more hierarchical levels. The inclusion of partial information can be determined by a user. At the basic level—only low-level groups and individual features (optional and mandatory) are visualized. Each additional visualization level marks elements that are associated with next hierarchal level of features group in the feature model.
Alternatively, a hybrid model can be generated based upon feature model information and architectural model information but can have a format that is not based upon the format of the architectural model.
The hybrid model can be automatically generated for at least one sub-tree of features in the feature model. The mentioned below methods can be executed by one or more computers.
The hybrid model can be generated by a tangible computer that includes a processor and a memory unit.
Method 100 starts by stages 110, 120 and 125.
Stage 110 includes receiving a feature model.
Mandatory elements are marked by dots (.), optional elements are marked by hollow squares, alternative groups are marked by a “+” symbol and default architectural model elements are marked by a “<default>” symbol.
Feature model 200 includes mandatory features such as weight sensing 202, heating 210, displaying 224 and timing 226. The feature model includes the optional feature recipe 228.
Weight sensing 202 can be implemented by any member of alternative group 204. Alternative group 204 includes Boolean weight sensing 206 or analog weight sensing 208. Boolean weight sensing 206 is the default feature of alternative group 204.
Heating 210 can be implemented by any member of alternative group 212. Alternative group 212 includes a one level heating 214 (which is the default element) and another alternative group 218. Alternative group 218 includes three level heating 220 (which is the default element of alternative group 218) and ten level heating 222.
Referring back to
Stage 120 includes receiving an architectural model. The architectural model represents architectural model elements and the architectural model relationships between the architectural model elements.
For example, and referring to the example set forth in
Architectural model 300 includes the following architectural model elements: Boolean weight sensor 302, analog weight sensor 304, recipe module 306, light element 308, controller 310, one level heating element 312, timer 314, display 316, display controller 318 and multiple level heating element 320.
Controller 310 is linked to all other architectural model elements 302, 304, 306, 308, 312, 314, 316, 318 and 320. It is noted that multiple level heating element 320 can function as a three level heating element or a ten level heating element.
Architectural model 300 does not illustrate the product line variability, and does not include feature model semantics.
Referring back to
Stages 110, 120 and 125 are followed by stage 130 generating a hybrid model. The hybrid model includes architectural model elements and feature model semantics. The feature model semantics is represented by visual indicators. These visual indicators can indicate a type of an architectural model element or a feature relationship that is associated with architectural model elements.
Hybrid model 400 includes the following architectural model elements: Boolean weight sensor 302, analog weight sensor 304, recipe module 306, light element 308, controller 310, one level heating element 312, timer 314, display 316, display controller 318 and multiple level heating element 320.
Hybrid model 400 illustrates the product line variability. It includes feature model semantics. The feature model semantics are visualized by using visual indicators. For simplicity of explanation color based visual indicators were replaced (in
Boxes 403, 419 and 417 are visual indicators that are indicative of groups of architectural model elements.
A first alternative architectural model group is denoted 403 and includes Boolean weight sensor 302 (that is default architectural model group element) and analog weight sensor 304. The two elements belong to an alternative group since both implement features that are marked as alternative in the feature model.
A second alternative architectural model group is denoted 419 and one level heating element 312 (that is default architectural model group element) and a multiple level heating element 320. The two elements belong to an alternative group since both implement features that are marked as alternative in the feature model.
A third group is denoted 417 (it is also referred to as a non-alternative architectural model group) and includes two elements—display 316 and display controller 318. Both architectural model elements are mandatory. They are grouped since both implement the same feature.
Mandatory architectural elements such as controller 310 and timer 314 are illustrated by a first type of boxes. The architectural elements are marked as mandatory since they implement mandatory features.
Optional architectural element such as light 308 and recipe 306 are illustrated by a second type of boxes. The architectural elements are marked as optional since they implement optional features.
Alternative groups of architectural model elements such as alternative architectural model group 403 and alternative architectural model group 419 are illustrated by a third type of boxes.
Default features such as Boolean weight sensor 302 and one level heating element 312 are illustrated by a fourth type of boxes.
A first “MI” (mutually inclusive) arrow links recipe 306 and analog weight sensor 304 while a second MI arrow links recipe 306 and multiple level heating element 320 to indicate that recipe 306 requires both analog weight sensor 304 and multiple level heating element 320. This information is taken from the feature model.
Stage 130 is followed by stage 140 of storing in a tangible memory unit the hybrid model.
Stage 140 can be followed by stage 150 of outputting (displaying or printing) the hybrid model.
It is noted that stage 140 and 150 can be executed in parallel to each other.
According to an embodiment of the invention memory unit 520 can store a feature model. Processing unit 510 can execute code that causes it to generate a hybrid model that comprises architectural model elements and visual indicators representative of feature model semantics. Memory unit 520 can store the hybrid model but this is not necessarily so and other memory or storage units that are connected to system 500 can store the hybrid model. System 500 can include (or can be connected) to display 530 and additionally or alternatively to printer 550. The hybrid model and especially its visual indicators can be display on display 530 and/or printer by printer 550.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium generating program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can store information that can be read by electronic, magnetic, optical, electromagnetic or infrared based techniques, or semiconductor system (or apparatus or device). Examples of a computer-readable medium include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which generate temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Variations, modifications, and other implementations of what is described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention as claimed.
Accordingly, the invention is to be defined not by the preceding illustrative description but instead by the spirit and scope of the following claims.