Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
BEHAVIOR ENGINEERING EDITOR (BEE)
Document Type and Number:
WIPO Patent Application WO/2015/077832
Kind Code:
A1
Abstract:
The present invention relates to a Behavior Engineering Editor (BEE) for editing a behavior engineering (BE) model. The model includes a first tree with a first node and a second tree with a second node. The first node is associated with the second node. The BEE is configured to automatically modify the first node of the first tree responsive to the second node of the second tree being modified by a user. The preferred embodiment of the present invention provides an improved Behavior Engineering Editor (BEE) for reviewing and assessing project specifications.

Inventors:
MYERS TOBY JASON (AU)
Application Number:
PCT/AU2014/050349
Publication Date:
June 04, 2015
Filing Date:
November 13, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BCI TECHNOLOGY PTY LTD (AU)
International Classes:
G06F17/50; G06F9/44; G06N5/00; G06Q10/06
Foreign References:
US20070033204A12007-02-08
US5701137A1997-12-23
US20080028003A12008-01-31
Other References:
KUMAR S.: "Freemind User Guide", 22 January 2015 (2015-01-22), Retrieved from the Internet
WEN L. ET AL.: "Integrare'', a Collaborative Environment for Behavior-Oriented Design', Cooperative Design, Visualization, and Engineering", LECTURE NOTES IN COMPUTER SCIENCE, vol. 4674, 2007, BERLIN HEIDELBERG, pages 122 - 131
"Freemind web site - documentation - history - revision 07:32", 28 June 2007 (2007-06-28), Retrieved from the Internet [retrieved on 20150122]
REINGOLD, E. M. ET AL.: "Tidier Drawings of Trees", IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, vol. SE -7, no. 2, March 1981 (1981-03-01)
Attorney, Agent or Firm:
CULLENS PATENT AND TRADEMARK ATTORNEYS (239 George StreetBrisbane, Queensland 4000, AU)
Download PDF:
Claims:
The claims defining the invention are as follows:

1. A Behavior Engineering Editor (BEE) for editing a behavior engineering (BE) model, the model including a first tree with a first node and a second tree with a second node, the first node being associated with the second node, the BEE being configured to:

automatically modify the first node of the first tree responsive to the second node of the second tree being modified b a user.

2. A BEE as claimed in claim 1 , further configured to display the second tree, and not the first tree during automatic modification.

3. A BEE as claimed in claim 1 , wherein the first node and second node are associated with a common component.

4. BEE as claimed in claim 3, wherein the common component of the first node is automatically modified responsive to the component of the second node being modified by a user,

5. A BEE as Claimed in claim 3, and configured to alert the user to delete th first node from the first tree when the user seeks to delete the component of the second node.

6. A BEE as claimed in claim 5, and configured to prohibit the user from performing deletion of the component of the second node until after the deletion of the first node is first performed.

7. A BEE as claimed in claim 5, further configured to automatically delete any nodes that are children of the deleted first node.

8. A BEE as claimed in claim 1 , wherein the BE model includes entities including the nodes, each entity including bi-directional links with other entities of the BE model, and th BEE is further configured to delete the first node only afte all back links with the other entities have been deleted.

9. A BEE as claimed in claim 8, and further configured to create 1

after all the other entities associated by a forward link have been created first.

10. A BEE as claimed in claim 1 , further configured to automatically alias the first node with another node responsive to the user aliasing the second node with that other node of the second tree.

1 1. A BEE as claimed in claim 1 , further configured to bundle all of the operations resulting from modification of the second node by the user into a single message transaction that is sent to a server which, in turn, automatically modifies the first node.

12. A BEE as claimed in claim 1 , further configured to automatically perform a re- layout of a tree and update ordering of branches when a node of the tree is dragged to a side of on of Its sibling nodes.

13. A method for editing a behavior engineering (BE) model including a first tree with a first node and a second tree with a second node, the first node being associated with the second node, the method including the step of:

automatically modifying the first node of the first tree responsive to the second node of the second tree being modified by a user.

14. A method as claimed in claim 13, wherein the step of automatically modifying involves the second tree being visible whereas the first tree is not visible.

15. A method as claimed in claim 13, wherein the first node and second node are associated with a common component.

16. A method as claimed in claim 15, wherein the step of automatically modifying involves automatically modifying the common component of the first node responsive to the component of the second node being modified by a user.

17. A method as claimed in claim 13, further including the step of alerting the user to delete the first node from the first tree when the user seeks to delete the component of the second node.

18. A method as claimed in claim 17, wherein the user is prohibi

deletion of the component of the second node until after the deletion of the first node is first performed.

19. A method as claimed in claim 17, further involving automatically deleting any nodes that are children of the deleted first node.

20. A method as claimed in claim 13, wherein the BE model includes entities including the nodes, each entity may include bi-directional links with other entities of the BE model, and the method further involves deleting the first node only after all back, links with the other entities have been deleted.

21. A method as claimed in claim 20, further involving the step of creating the first node only after all the other entities associated by a forward link have been created first.

22. A method as claimed in claim 13, wherein the step of automatically modifying involves automatically aliasing the first node with another node responsive to the user aliasing the second node with that other node of the second tree.

23. A method as claimed in claim 13, wherein the first tree is a behavior tree (BT) and the first is a BT node.

24. A method as claimed in claim 13, wherein the second tree is a composition tree (CT) and the second node is a CT node.

25. A method as claimed in claim 13, wherein the step of automatically modifying involves bundling all of the operations resulting from modification of the second node by the user into a single message transaction that is sent to a server which, in turn, automatically modifies the first node.

26. A method as claimed in claim 13, further including the step of creating the nodes with a common component, prior to the step of automatically modifying.

27. A method as claimed in claim 13, further including the step of automatically performing a re-layout of a tree and updating ordering of branches when a node of the tree is dragged to a side of one of its sibling nodes.

28. A system for editing a behavior engineering (BE) mode! inclu

a first node and a second tree with a second node, the first node being associated with the second node, the system including:

a server for automatically modifying the first node of the first tree responsive to the second node of the second tree being modified by a user.

29. A system as claimed in claim 28, further including a database storing the BE model including the first tree modified by the server,

30. A system as claimed in claim 28, wherein the stored BE mode! includes entities including the nodes, each entity including bi-directional links with other entities of the BE model resulting in prioritized creation and deletion of entities.

31. A system as claimed in claim 28, further including a user computer for bundling all of the operations resulting from modification of the second node by the user into a single message transaction that is sent to the server which, in turn, automaticall modifies the first node.

32. A system as claimed in claim 31 , wherein the user computer includes a local mirror model of the global BE model stored in the database, and modifications to the second node are bundled.

33. A system as claimed in claim 31 , wherein the server can update the global BE model with the modifications and update each local mirror model of eac user computer.

34. A Behaviour Engineering Editor (BEE) for editing a behavior engineering (BE) model including a tree with a first branch and a second branch on one side of the first branch, the first branch including a first node and the second branch including a second node, the BEE configured to:

move the second node to the other side of the first node; and

repeat the layout of the tree with the second branch on the other side of the first branch.

35. A method for editing a behavior engineering (BE) model incli

first branch and a second branch on one side of the first branch, the first branch including a first node and the second branch including a second node, the method including the steps of:

moving the second node to the other side of the first node; and

repeating the layout of the tree with the second branch on the other side of the first branch.

36. A system for editing a behavior engineering (BE) model including a tree with a first branch and a second branch on one side of the first branch, the first branch including a first node and the second branch including a second node, the system including at least one computational device configured to:

move the second node to the other side of the first node; and

repeat the layout of the tree with the second branch on the other side of the first branch.

Description:
BEHAVIOR ENGINEERING EDITOR (BEE)

TECHNICAL FIELD

[0001] The present invention generally relates to a branch of software and systems engineering known as Behavior Engineering (BE). The present invention has particular, although not exclusive application to BE in reviewing and assessing project

specifications (e.g. software and systems engineering projects, legal drafting and contracts, building bridges or other infrastructure projects).

BACKGROUND

[0002} The reference to any prior art in this specification is not, and should not be taken as an acknowledgement or any form of suggestion that the prior art forms part of the common general knowledge.

[0003] Behavior Engineering (BE) is an integrated discipline that supports the systems and software engineering of large-scale, dependable software intensive systems. BE's strength lies in the innovative way it squareiy addresses the problems of scale, complexity, and imperfect knowledge associated with the large set of

requirements needed to guide the development of challenging integrated systems.

[0004] The great advantage of BE is its ability to tame the inherent complexity in these large set of requirements. Consider arithmetic using pencil-and-paper compared to mental arithmetic. The sum of two numbers with two digits (e.g. 39 + 54) can easily be computed using either approach. However, the sum of five numbers with seven digits becomes significantly more difficult to solve with mental arithmetic as opposed to pencil and paper. This is because the pencil and paper approach maintains a constant local problem space (adding two digits) regardless of the size of the global problem space (adding two or more numbers). Consider again using a paper and pencil approach, this time using roman numerals instead of Arabic numerals. Th approach will no longer scale, as the local problem space cannot be kept constant, as roman numerals do not make use of a positional arithmetic notation. [0005] The state of system and software engineering is analogo

example. Current methodologies cannot manage the complexity contained in the thousands of requirements needed to specify current systems. This is because they do not have a representation or a process that allows one requirement to be dealt with at a time, until the system is understood as a whole. By utilizing this scalable methodology, BE is able to offer numerous advantages: early defect detection, reduced schedule time, building of the right system, change and risk management, and a shared understanding of the system by ail stakeholders.

[0006] BE has undergone a series of industry trials since 2002 that has helped to develop the methodology to its current state. The results of these trials found 130 major defects per 1000 requirements even after normal reviews.

[0007] The scalable and repeatable methodology of BE is a result of the tight interlinking of the behavior modeling language (BML) implemented using elements shown for example in Figures 1 to 3, and the behavior modeling process (BMP). A behavior tree node includes the elements 102 - 1 1.8 shown in Figure 1. Figure 2 shows elements 202-236 of Behavior Tree Notation. Figure 3 shows elements 302-312 of Composition Tree Notation.

[0008] The BML is the representation used by BE and is composed of two

integrated views where information is represented in a behavior model including a behavior tree 400 shown in Figure 4 and a composition tree 500 shown in Figure 5. The BMP is the process used to create BE models from constituent behavior trees 400 and a composition tree 500 and is made of the four distinct stages of formalization, a fitness- for-purpose test, specification and design.

[0009] BE can be performed in reviewing and assessing project specifications (e.g. software and systems engineering projects, legal drafting and contracts, building bridges or other infrastructure projects) using diagramming toolkits such as Visio or Smartdraw. However, these types of editors are not particularly well suited to creating and modifying complex BE models, such as the behavior tree (BT) 600 as shown for example in Figure 6.

[00010] The preferred embodiment of the present invention provides an improved Behavior Engineering Editor (BEE) for reviewing and assessing project specifications. SUMMARY OF THE INVENTION

[00011] According to one aspect of the present invention, there is provided method for editing a behavior engineering (BE) model including a first tree with a first node and a second tree with a second node, the first node being associated with the second node, the method including the step of:

automatically modifying the first node of the first tree responsive to the second node of the second tree being modified by a user.

[00012] Preferably, the step of automatically modifying involves the second tree being visible whereas the first tree is not visible.

[00013] Preferably, the first node and second node may be associated with a common component. The step of automatically modifying may involve automatically modifying the common component of the first node responsive to the component of the second node being modified by a user.

[0001 ] The method may include the step of alerting the user to delete the first node from the first tree when the user seeks to delete the component of the second node. The user may be prohibited from performing deletion of the component of the second node until after the deletion of the first node is first performed. The method may further involve automatically deleting any nodes that are children of the deleted first node.

[00015] The BE model may include entities including the nodes, each entity may include bi-directional links with other entities of the BE model, and the method may further involve deleting the first node only after ail back links with the other entities have been deleted. The method may involve the step of creating the first node only after a!l the other entities associated by a forward link have been created first.

[00016] The step of automatically modifying may involve automatically aliasing the first node with another node responsive to the user aliasing the second node with that other node of the second tree- [00017] The first tree may be a behavior tree (BT) and the first nc

node. The second tree may be a composition tree (CT) and the second node may be a

CT node.

[00018] The step of automatically modifying may involve bundling all of the

operations resulting from modification of the second node by the user into a single message transaction that is sent to a server which, in turn, automatically modifies the first node.

[00019] The method may further include the step of creating the nodes with the common component, prior to the step of automatically modifying.

[00020] The method may further involve the step of automatically performing a re- layout of a tree and updating ordering of branches when a node of the tree is dragged to a side of one of its sibling nodes.

[00021] According to another aspect of the present invention, there is provided a system for editing a behavior engineering (BE) model including a first tree with a first node and a second tree with a second node, the first node being associated with the second node, the system including:

a server for automatically modifying the first node of the first tree responsive to the second node of the second tree being modified by a user.

[00022] The system may further include a database storing the BE model including the first tree modified by the server. The stored BE mode! may include entities including the nodes, each entity may include bi-directional links with other entities of the BE model resulting in prioritized creation and deletion of entities.

[00023] The system may further include a user computer for bundling all of the operations resulting from modification of the second node by the user into a single message transaction that is sent to the server which, in turn, automatically modifies the first node. The user compute may include a local mirror model of the global BE model stored in the database, and modifications to the second node may be bundled. In turn, the server may update the global BE modei with the modifications and update each local mirror model of each user computer. [00024] According to another aspect of the present invention.

Behaviour Engineering Editor (BEE) for editing a behavior engineering (BE) model, the model including a first tree with a first node and a second tree with a second node, the first node being associated with the second node, the BEE being configured to:

automatically modify the first node of the first tree responsive to the second node of the second tree being modified by a user.

[00025] According to another aspect of the present invention, there is provided a method for editing a behavior engineering (BE) model including a tree with a first branch and a second branch on one side of the first branch, the first branch including a first node and the second branch including a second node, the method including the steps of:

moving the second node to the other side of the first node; and

repeat the layout of the tree with the second branch on the other side of the first branch.

[00026] Any of the features described herein can be combined in any combination with any one or more of the other features described herein within the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[00027] Preferred features, embodiments and variations of the invention may be discerned from the following Detailed Description which provides sufficient information for those skilled in the art to perform the invention. The Detailed Description is not to be regarded as limiting the scope of the preceding Summary of the Invention in any way. The Detailed Description will make reference to a number of drawings as follows:

[00028] Figure 1 shows elements of a Behavior Tree node;

[00029] Figure 2 shows elements of Behavior Tree Notation;

[00030] Figure 3 shows elements of Composition Tree Notation; [00031] Figure 4 is a simple behavior tree example representing

"if the oven door is closed and you push the button, the oven will start cooking (that is, energize the power-tube) for one minute";

[00032] Figure 5 is a simple composition tree example representing the same requirement of Figure 4;

[00033] Figure 6 is an example behavior tree of a requirements specification from industry;

[00034] Figure 7 is a block diagram of a system 700 for enabling muitipie users to review and assess project specifications.

[00035] Figures 8-10 demonstrate the process of adding a BT node to a Behavior Tree and the resulting impact on collaborating users and the CT.

[00036] Figures 1 1 -13 demonstrate the process of modifying a BT node and the resulting impact on collaborating users and the CT,

[00037] Figures 14-16 demonstrate the process of modifying a CT node and the resulting impact on collaborating users and the CT.

[00038] Figures 17 and 18 demonstrate the process of attempting to delete a CT node when it is still associated with existing BT nodes.

[00039] Ftgure 19 demonstrates the process of deleting a BT node from the BT of Figure 12 and the resulting impact on collaborating users.

[00040] Figure 20 shows the types of entities stored in a model database.

[00041] Figure 21 and 22 show the transaction process utilized for collaboration.

[00042] Figure 23 is a screenshot of Behavior Engineering Editor (BEE) user interface in accordance with an embodiment of the present invention. [00043] Figures 24 and 25 show the result of the automated layo

partial interventio being used to change the ordering of two branches.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[00044] According to an embodiment of the present invention, there is provided a system 700 as shown in Figure 7 and for enabling multiple users 702a, 702b to review and assess project specifications,

[00045] The system 700 includes user computers 704a, 704b with which users 702a, 702b can use an improved Behavior Engineering Editor (BEE). Advantageously, the web-based architecture of the system 700 enables multiple users 702a, 702b, concurrently and in collaboration, to develop single BE models.

[00046] The system 700 further includes a web server 706 which can be accessed by remote computers 704a, 704b over the network 708. The server 706 hosts a website which enables computers 704a, 704b to access the BEE, The server 706 includes a model database 710 for storing BE models created and amended by the users 702a, 702b.

[00047] Behavior Engineering Editor (BEE)

[00048] The BEE enables users 702 to perform a model-based review of a product specification by building a BE model. The BEE is accessed through a web browser, whilst connected to a VPN, to enable users 702 to securely collaborate on a BE model.

[00049] BE models are built by translating each requirement, written in natural language, one at a time into a Behavior Tree (BT) and a Composition Tree (CT), BTs and CTs are graphical languages, which describe the emergent behavior of a system based upon the individual behaviors of an integrated network of entities known as components.

[00050] Both BTs and CTs are composed of multiple nodes (see Fig.s 1 to 3), which have a tag 116 attached to the left of the main part of the node. This tag 116 contains a traeeability link 112 to trace the node to the natural language requirements from which it was originally translated. [00051] BT nodes are arranged to form a BT 400 that shows the

control. Each BT node describes a component 102 exhibiting a behavior 104 qualified by a behavior type 110. A BT node may have an optional operator 106 and a label 108, which are used as part of the BT syntax.

[00052] CT nodes are arranged to form a CT 500 that shows how the components are composed to form a system, or a system of systems. CT nodes are formed using single instances of components that may be used multiple times in several related BTs. This enables CTs to provide the complete system vocabulary in an easy to access format. CT nodes can define the multiplicity of a component 308, 310, 312 as well as any aliases 1702 (other terms used for the same component) that are present.

[00053] Several tasks are necessary for the users 702a, 702b to translate a natural language requirement into a behavior tree, namely: (1 ) identifying components and behaviors; (2) associating behaviors with components; (3) determining the type of behavior being exhibited; (4) determining cause and effect; and (5) identifying implied or missing behavior. Whenever implied or missing behavior is detected, an issue describing the problem with the requirement is registered and associated against the BT node or CT node.

[00054] Figure 23 shows a screenshot of a user interface 2300 of the BEE. The user interface 2300 of BEE is composed of five sections:

(A) Navigation Panel 2302

The use 704 can open/create a composition tree or a behavior tree using the navigation panel 2302. Furthermore, the user can use the navigation panel 2302 to view the components, requirements and issues associated with a BE model.

(B) Menu Panel 2304

The user 704 can open a model using the Menu Panel 2304. Furthermore, the user 704 can view statistics about the model and share the model with other users using the Menu Panel 2304.

(C) Properties Panel 2306 The user 704 can use the properties panel 2306 to edit or delete a 1

(D) Issues & Requirements Panel 2308

The user 704 can create, edit and delete issue and requirements using the Issues & Requirements Panel 2308.

(E) Behavior Tree / Composition Tree View 2310The user 704 can select and create a node using the Behavior Tree / Composition Tree View Panel 2310 and switch or toggle between viewing a behavior tree or composition tree of a model.

[00055] Whilst building a BE model, onl one view in the Behavior Tree / Composition Tree View Panel 2310 is visible and active at any one time i.e. one Behavior Tree or the Composition Tree. However, changes that are made to the active view (e.g. BT) can impact on the other views (e.g. CT), The BEE automatically performs these changes to maintain the other views so that the user 702 can focus solely on the active view in the panel 2310. The BEE also ensures that the user 702 does not perform changes that have an unrecoverable impact on the other views and could potentially corrupt the BE model.

[00056] An example of these changes is when the user 702 creates a new BT node 402 in the Behavior Tree (BT) with a new component, the component is automatically added to the Composition Tree (CT). Similarly, when a user 702 changes the name of a component in the CT, this change is carried through all the BT nodes where that component is used. If a user 702 tries to delete a component in the CT that has other BT nodes associated with it, the user computer 704 executing the BEE provides an aiert to the user 702 notifying them to first delete all the associated BT nodes as per 1800.

[00057] Figures 8-10 demonstrate the process of adding a BT node to a Behavior Tree and the resulting impact on collaborating users 702 and the CT. Turning to Figure 8, a new BT node 802 is created in a BT 808 when a user 702a double clicks in the view 808. While a BT node 802 is selected, the Properties Panel 804 is visible. The details of the BT node, such as the component and its behavior, are added into the Properties Panel 804. When finished, the update button 808 is pressed to update the BT node 802. At this point, transactional messaging is used to update the model database 710 and the server 706 ensures that the BT node is updated on all remote computers 704a and 704b that are collaborating on that Behavior E

Turning to Figure 9, the user 702a, and any collaborating users 702b, will see the automatically updated BT node 902 if they are viewing the BT 904. Turning to Figure 10, the system 700 automatically adds the new component 1002 to the Composition Tree 1004.

[00058] Figures 1 1 - 13 demonstrate the process of modifying a BT node and the resulting impact on collaborating users 702. Turning to Figure 11, a BT node 1 102 can be modified in a BT 1108 by the user 702a selecting the BT node 1102 and modifying its details in the Properties Panel 1104. When finished the update button 1106 is pressed to update the BT node 1202. At this point, transactional messaging is used to update the model database 710 and the server 706 ensures that the BT node 1102 is updated on ail remote computers 704a and 704b that are collaborating on the BE model. Turning to Figure 12, the user 702a, and any collaborating users 702b will see the updated BT node 1202 if they are viewing the BT 1204. Turning to Figure 13, the system 700 automatically adds any new components 1306 to the Composition Tree 1302.

[00059] Figures 14-16 demonstrate the process of modifying a CT node and the resulting impact on collaborating users 702. Many of the actions that are performed on the BT can also be performed on the CT. For example, the user 702a may want to make an existing component 1304 an alias of another component 1306 in the CT. Turning now to Figure 14, the user 702a selects the existing component 1404 and selects an alias option from a properties menu 1402. This opens a dialog window 1500 shown in Figure 15 from which the user 702a can choose the appropriate component 1502. The same dialog window 1500 is accessible from a BT 808 by clicking on the banner 810 that appears when a new component is entered. In both cases, once the ok button 1504 is pressed, transactional messaging is used to update the model database 710 and the server 706 ensures that the BT node is updated on ail remote computers 704a and 704b that are collaborating on the BE model The user 702a, and any collaborating users 702b will see the updated CT node 1602 shown i Figure 16 if they are viewing the CT 1604. If they are viewing a BT, any references to the alias 1304 in any BT nodes will be changed to the component 1306. [00060] Similarly, the BEE also ensures that the user 702 does n

changes that have an unrecoverable impact on the other views and could potentially corrupt the BE model, One example of this, with reference to Figure 17, is if the user attempts to delete with button 1706 a Component 1702 that is still associated with other BT nodes 1202 in a BT 1204. The user will be prompted with a dialog window 1800 shown in Figure 18, informing them they must delete the associated BT nodes 1202 prior to deleting the component. The user 702 can then locate these associated nodes by using the navigation panel 1706.

[00061] A BT node 1202 can be deleted in a BT 1204 by the user 702a selecting the BT node 1202 and pressing the delete button 1206. At this point, transactional messaging is used to update the mode! database 710 and the server 706 ensures that the BT node is deleted on all remote computers 704a and 704b that are collaborating on the BE model. The user 702a, and any collaborating users will no longer see the deleted BT node in the BT 1902 as shown in Figure 19. Furthermore, the system 700 automatically deletes any BT nodes that are children of the deleted BT node.

[00062] Transactional Messaging & Collaboration

[00063] Collaboration enables multiple users 702a, 702b to bui!d and analyse a model at any one time. By using the composition free to maintain consistency, multiple modellers 702 can build a single integrated and coherent model of the requirements concurrently and thereb reduce the overall modeling time. Collaboration is

implemented by forwarding operations received by the server 706 to any othe client 702 to kee alt clients' 702a, 702b synchronised with the server 706.

[00064] Operations received by the server 706 are used to keep the model database 710 up to date., The Model Database 710 consists of an Entity Model 2000 shown in Figure 20 that is composed of several entities: Model 2002, BT 2004, BT Node 2006, Operator 2008, Relation 2010, Issue 2012, Requirement 2014, Component 2016, Identifier 2018, Attribute 2020, Container 2022 and Behavior 2024. Each of these entities is associated with one or more entities using bi-directional links, with one direction defined as a forward link and the alternate direction defined as a backward link. [00065] Often, a number of operations are performed on entities

model database 710 that all relate to a single task performed by a user 704 in BEE. For example, updating a BT Node 2006 could cause changes to the BT 2004, Issue 201 , Requirement 2014, Component 2016 and Behavior 2024 entities in the model database 710. Even with asynchronous communication, the transmission and computation overhead of individually managing the numerous operations resultant from a task performed by the user can be prohibitively expensive.

[00086] The BEE overcomes these issues by bundling ail of the operations resulting from a task performed by a user 702 into a single transaction that is sent from the user computer 704 to the server 706, Transactional messaging both simplifies and reduces the transmission time of operations that are performed on a remote computer 704 either locally by the user 702 or remotely by the server 706 as part of collaboration,

[00067] Three types of operations 2104 can be performed on each entity 2108:

create, update and delete. A create actio is used to instantiate a new entity. An update action is used to change one or more links of an entity. A delete action is used to remove an entity. The bi-directional links between entities are used to determine the order in which actions are processed to avoid deadlocks. An entity cannot be created until all the entities associated by a forward link have been created first. An entity cannot be deleted until all of its back links in the associated entities have been deleted first.

[00068] When an operation is performed on an entity, the entity can trigger a furthe series of other create, update and delete operations on its associated entities. For example, when a BT Node 2006 is deleted, it causes updates to other entities such as a Component 2016 and a Behavior 2024. The series of operations that are triggered are also often recursive. For example, when a BT node 2006 is deleted, the children of that BT Node 2006 are deleted. When the child BT Nodes 2006 are deleted, they once again trigger the deletion of their child BT Nodes 2006 and so on.

[00069] Local Data Module

[00070] To minimise the transfer of entities between the remote computers 704a and 704b and the server 706, each remote computer 704 has a Local Data modul 2100, shown in Figure 21 , that performs the role of a central dispatch centre. When a BE model is created or opened. Local Data module 2100 stores a curre

entities 2108 of the model 2000 in a local model database 21 10.

[00071] A transaction 2102 begins by notifying Local Data module 2100 that a task is about to be performed by the user computer 704. As entitie 2108 are created, updated and deleted during the transaction, the entities 2108 log the operations 2104 that have been performed with Local Data module 2100. Once the Local Data module 2100 is notified that the transaction is complete, all the operations that have been recorded during the transaction 2102 are transferred in a bundle from the computer 704 to th server 706.

[00072] Each entity 2108 in the local model database 2110 is responsible for operations 2104 performed on its values by making the Local Data module 2100 of the computer 704 aware of these operations 2104. Operations that make reference to another entity 2108 are logged using Link Objects 2112 to allow the referenced entities 2108 to be located on the server 706 (or the local data of collaborating users). An example is if a requirement 2014 is associated with a component 20 6, the requirement 2014 and component 2016 would both inform Local Data module 2100 of the operations that have been performed on them and reference each other using Link Objects 2112.

[00073] Operations consist of Link Objects 211 that are used in transactions to match a reference to an Entity 2108 in the Local Data module 2100, to the

corresponding entity in the Model Database 710. Link Objects 21 12 are also used when a new Entity 2108 is created, as unique identifiers can only be created on the server 706. To overcome this, the link object of a new entity is assigned a temporary identifier until the identifier created by the Server 706 is returned.

[00074] Turning to Figure 22, once the server 706 receives the transaction 2102, it iterates over the Link Objects 21 12 that have operations ready to be executed and either finds or creates the referenced entity 2108. Operations are only ready when all the entities references in the forwards links of the entity related to the Link Object have been created. This determines the order in which entities are created, updated or deleted. All operations are performed until the complete set of operations in the transaction have been processed in th database 710 by the server 706. The

transaction is then passed to all of the other user computers 704a, 704b with that BE model opened so that the local model can be updated. Each client 1

process to update the altered entities in their Local Data.

[00075] Automated Layout

[00076] Users 702 shouldn't be spending their time aligning and positioning nodes. Instead, the BEE performs automated iayout of the Behavior Trees and the Composition Tree with partial intervention. Users 702 can add a new node simply with a mouse double-click on a parent node or empty space. When there are several branches 2402, 2404 of nodes as in Figure 24, the user can decide the ordering of a branch by dragging, using a mouse, a nod 2402 to either the left or right of one or more of its sibling nodes 2404. After this operation, the automated layout then performs a re-layout of the tree with the updated ordering of the branches as shown in Figure 25.

[00077] Instead, previous automated layouts of Behavior Trees were performed as layered drawings, where nodes of varying heights were drawn wher all nodes at the same depth in the tree have the same vertical position. This often resulted in

unaesthetic trees as nodes could be of significantly different heights due to the presence of relational behavior in BTs and aliases in CTs.

[00078] The BEE automates the layout of the Behavior Tree and Composition Trees and also caters for nodes of different heights as shown in Figure 24. This is done through the implementation of a non-layered tree Iayout algorithm that is a modification of the Reingold-Tilford algorithm that operates in linear time. The tops of each child node are related only to their parent node, and sibling nodes need not be vertically aligned to each other.

A person skilled in the art will appreciate that many embodiments and variations can be made without departing from the ambit of the present invention.

In compliance with the statute, the invention has been described in language more or less specific to structural or methodical features. It is to be understood that the invention is not limited to specific features shown or described since the means herein described comprises preferred forms of putting the invention into effect.

Reference throughout this specification to 'one embodiment' or ! an embodiment/ means that a particular feature, structure, or characteristic described in cor

embodiment is included in at least one embodiment of the present invention. Thus, the appearance of th phrases 'in one embodiment' or In an embodiment' in various places throughout this specification are not necessarily ail referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more combinations.