Abstract:
A method, computer program and a system for copying at least one software element are provided having the following actions. Checking whether a connection exists between the element and an entity template able to be modified by a user. and where no connection exists: Creating an entity template able to be modified by the user based on the element and Connecting the element to the entity template.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims priority of German application No. 10 2004 057 727.7 DE filed Nov. 30, 2004, which is incorporated by reference herein in its entirety.  
       FIELD OF INVENTION  
       [0002]     The invention relates to a method and a system for copying at least one software element.  
       BACKGROUND OF INVENTION  
       [0003]     This type of system or method is employed in a very wide diversity of applications for computer-aided creation of graphics and texts as well as in CAD applications.  
         [0004]     This type of system or method is employed especially in automation technology for design, implementation or commissioning of plant and machinery. To keep the outlay for such engineering tasks as low as possible efforts are usually made to refer back to existing components and modules, from old projects for example, and to adapt these to the requirements of current projects.  
         [0005]     If for example a number of chain conveyors are needed in a project and if a corresponding element already exists for describing a chain conveyor in information technology terms, one solution would be to transfer this element into the current project and adapt it to the project-specific demands.  
         [0006]     For software implementation of a number of chain conveyors copies of the element are created. When the copies are created there is often the desire for changes made to the element to be effective for all chain conveyors contained in the project. The methods which exist for this type of retrospective modification of all copies are currently as follows:  
         [0007]     In the type concept a user deliberately creates a re-usable information unit—the type. The user can form entities which refer to the type. Parameters can be defined for the type on the basis of which entity-specific modifications can be made. The entity points to the type and uses the structure and the behavior of the type directly. This means that the basic behavior of an entity can only be modified by modifying the associated type. The link between entity and type is strict, i.e. the entity is not capable of existence without the type.  
         [0008]     With the template concept the user similarly creates a re-usable information unit—the template. Unlike the type concept however, in this case the user perceives an entity based on the template as a copy of the template and at the same time as a self-contained information element. Entity-specific changes can be made by the user by modifying the entity. The system detects whether modifications made are to be interpreted as setting of parameters for the entity or must lead to a removal from the original template.  
         [0009]     By contrast with the type concept, modifications can be made in the template concept both to the template and also to the entities. The template behaves like an entity for the user. If the template is modified the change can be transferred automatically, or if required, manually by the user to all entities linked to the template, in which case the entity-specific modifications are not overwritten.  
         [0010]     What both the type concept and also the template concept have in common is that users can form their own re-usable information unit and thus have the opportunity to modify entities and copies of entities by modifying the type or the template in the same way. The changes however only affect all copies of an entity if all copies and also the original entity are linked to the template or to the type.  
         [0011]     For copying of basic elements—elements which are inherent in the system—no link is created in current systems between the original basic element and its copy. Basic element and copy behave as two independent entities.  
       SUMMARY OF INVENTION  
       [0012]     The underlying object of the invention is to specify a method and a system for simplified processing of software-based projects.  
         [0013]     This object is achieved by a method for copying at least one software element, in which the following steps are executed prior to copying: 
        Checking whether a connection exists between the software element and an entity template able to be modified by a user. 
 
 and where no connection exists: 
    Creating an entity template able to be modified by the user based on the software element and     Connecting the software element to the entity template.        
 
         [0017]     Furthermore this object is achieved by a computer program product for executing such a method.  
         [0018]     Furthermore this object is achieved by a system for project planning of data with a processing unit ( 402 ) for copying at least one software element, with the processing unit ( 402 ) being provided to execute the following steps before copying: 
        Checking whether a connection exists between the software element and an entity template able to be modified by a user. 
 
 and where no connection exists: 
    Creating an entity template able to be modified by the user based on the software element and     Connecting the software element to the entity template.        
 
         [0022]     The method in accordance with the invention is designed as follows:  
         [0023]     After a user has issued a command for copying a software element, the processing unit checks whether the software element is connected to the entity template. The term entity template here, as in the entire document, includes both a type in accordance with the type concept mentioned at the beginning and also a template in accordance with the template concept depicted at the beginning. If such a connection exists, the copying process is initiated directly. In this case modifications can be made to the original element and to its copy in the same way in which the corresponding entity template is modified.  
         [0024]     If there is not yet a connection between the original software element and an entity template, an entity template is first generated on the basis of the original software element and subsequently the original element is linked to the entity template. Then the copying process is initiated.  
         [0025]     In this way it is ensured that an entity and all copies of the entity are linked to the same entity template. If there is a request to change the entity, modifications are applied subsequently to all copies. This involves only having to modify the template linked to the entity and to its copies or the type linked to the entity and to its copies.  
         [0026]     In an advantageous embodiment of the invention the processing unit is provided for automatic execution of at least one step of the method with operator intervention. It is naturally also conceivable for all procedural steps to be executed automatically as soon as the user indexes a copying command.  
         [0027]     An automatic execution of the procedural steps is under some circumstances not useful for all applications, since it may be that the connection with an entity template is not desired for each software element to be copied. In such cases it is expedient for the processing unit to be provided for user-controlled execution of at least one step of the method. In this case the types of software element for which an entity template modified by the user is required can for example be defmed by the user in advance. It is conceivable for example that an entity template is only to be created for software elements which have been created from grouped individual elements. For software elements for which no entity template is desired, said procedural steps are not executed before the copying process.  
         [0028]     Alternatively the procedural step of “checking whether a connection exists between the software element and an entity template able to be modified by a user” is first executed. If it is established In this case that no connection exists, the user is asked via a dialog window for example whether he wishes to create a corresponding entity template for the selected element.  
         [0029]     An advantageous embodiment of the inventive system is designed such that the processing unit is provided for copying grouped system-inherent basic elements. System-inherent basic elements are not linked to an entity template modifiable by the user. If the user groups a number of basic elements into a new software element, one of the requirements is for copies of the newly-created software element—of the group—to be created. With such an embodiment a new and user-modifiable entity template is created for the group of basic elements before copying. Thus the group and copies of the group are linked to a common user-modifiable entity template via which modifications can be made simultaneously for the originally created group and for its copies.  
         [0030]     Further advantageous embodiments of the system are characterized by the system being provided for creation of graphics and/or text. For the creation of graphics there is often the desire to copy a graphics object which has been created once in order to thus reduce the effort involved in creating the graphics. If modifications are to be made to the graphics object and to the copies created in the same way after copying, these modifications can be executed very efficiently for original and copies on the basis of the common entity template.  
         [0031]     A specific variant of the inventive system is embodied as an engineering system especially for describing the behavior of components in automation technology. The simplicity of the engineering is a significant success factor in the design, implementation and commissioning of plant and machinery specifically in the automation environment. In such engineering tasks a user generally attempts to re-use part of the information from old projects in a current project, more than once if possible. Project-specific modifications can be very easily transferred to all copies of the part information by the automatic creation of an entity template. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0032]     The invention is described and explained in more detail below on the basis of the exemplary embodiments shown in the Figures. The figures show: 
         FIG. 1 a  schematic diagram of an engineering system with automatic generation of entity templates and        
 
         [0034]      FIG. 2 a  flowchart of a method for automatic generation of entity templates in a copying process. 
     
    
     DETAILED DESCRIPTION OF INVENTION  
       [0035]      FIG. 1  shows a schematic diagram of an engineering system  400  with automatic generation of entity template. The engineering system  400  is used to describe the behavior of programmable logic controllers in the automation technology system.  
         [0036]     The engineering system  400  includes a user interface  401  for presentation of project data and of commands currently available to a user  100 . Furthermore the engineering system  400  features a memory  403  in which on the one hand project data and on the other data about basic elements, templates and types as well as entities of templates and types are stored.  
         [0037]     Furthermore the engineering system  400  has a processing unit  402  with which the application control of the engineering system  400  is implemented. The application control uses a subordinate scheduling system to record commands entered by the user via an input device  200  and interprets these. The commands have an effect on project data stored in the memory  403  and on the currently available commands. Information of the engineering system  400  is displayed to the user  100  via an output device  300 .  
         [0038]     A method for automatic generation of entity templates is executed by the processing unit  402 , especially for a copying command entered by the user  100 . Such a method is shown in  FIG. 2  and is described below.  
         [0039]      FIG. 2  shows a flowchart of a method for automatic generation of entity templates in a copying process. The method is started by a user request ST 1  for copying a selected element. The selected element involved is a graphics element which was created by grouping basic elements in a graphics program. For example the group created in this way involves a symbol which consists of the inherent basic elements rectangle and line from the graphics program, with the symbol being constructed from two lines forming a diagonal cross arranged within the rectangle.  
         [0040]     In a second step ST 2  an automatic check is made as to whether the selected group is linked to an entity template which can be both a type according to the type concept and also a template according to the template concept. If such a connection exists and if the entity template involved is an entity template that can be edited by the user the element is copied directly.  
         [0041]     If on the other hand it is established in the second step ST 2  that the group is not linked to any entity template or is linked to a system-inherent template that cannot be modified by the user, the program branches to a third step ST 3 . In the third step ST 3  an entity template is generated on the basis of the selected group of basic elements. The entity template is filled with information of the selected group.  
         [0042]     Subsequently in the fourth step ST 4  the selected group is connected to the newly-generated entity template, which can be both a type and also a template, depending on the concept.  
         [0043]     In the fifth step ST 5  the selected group, which is now linked to the newly-created entity template, is finally copied. In this way the copy of the selected group is also connected to the entity template. By using this method. modifications which are now made to the entity template can be rendered effective for both the original selected group and also for its copy. For example a user of the graphics program can modify the line thickness of the diagonal cross for the originally selected group as well as for all copies created directly on the entity template.  
         [0044]     In the sixth step ST 6  a user interface available to the user is finally updated in order to display the current state of the project data.  
         [0045]     The present invention is not intended to be limited to the exemplary embodiments shown here. Instead further embodiments are conceivable and are encompassed by the invention provided the basic idea is retained of a check being made in a first step as to whether a connection exists between the selected software element and an entity template able to be modified by the user, and if no connection exists, an entity template able to be modified by the user is created and the software element is connected to the entity template. The method is thus not only applicable to graphics elements but also especially to text elements. For example the inventive method can be used to copy a paragraph of text which is not linked to a format template. During the copying process a format template for the paragraph is generated automatically or after a dialog with a user, so that changes can be made subsequently to the format template and these effect both the original paragraph and also the copy.