WO2011123924A1 - Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande - Google Patents
Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande Download PDFInfo
- Publication number
- WO2011123924A1 WO2011123924A1 PCT/CA2010/000532 CA2010000532W WO2011123924A1 WO 2011123924 A1 WO2011123924 A1 WO 2011123924A1 CA 2010000532 W CA2010000532 W CA 2010000532W WO 2011123924 A1 WO2011123924 A1 WO 2011123924A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- financial
- undo
- change
- user
- factor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Definitions
- the present invention relates to personal financial planning systems and methods.
- the present invention also relates to undo systems and methods for computer programs.
- Many financial advisors can assist a client with some of the common reasons and then work to build a more comprehensive long-term financial plan. For example, some financial advisors will not assist a client with retirement planning until they have first helped the client with basic risk mitigation strategies, such as life and disability insurance.
- Advisors need a tool to help a client understand their current and future financial positions. Yet, there is no
- NaviPlanTM developed by Emerging Information Systems Inc. NaviPlanTM Standard allows advisor s to specify retirement, education and major purchase goals' and determines if existing strategies can meet those goals.
- the program is designed for wealth-accumulating and affluent clients.
- the program uses a province-specific tax rate calculations, highlights the advantages and disadvantages of different planning strategies, produces reports and
- the program models income, expenses, assets and liabilities, goals, insurance coverage and different asset allocations, and includes a "Planning Assistant" to analyze plans and recommend actions.
- NaviPlanTM and other prior art tools remain very difficult and cumbersome to use. They do not help the advisor understand their client's complete financial picture, or even address how such tools might integrate with a financial plan to help the client achieve their desired lifestyle and life's goals. In addition, these prior art tools have not developed a user-friendly graphical user interface .
- NaviPlanTM is currently the top software in this space
- a single financial advisor was found who uses NaviPlan and this advisor organized his affairs such that NaviPlan was shared with six other advisors and, between them, they hired a shared, full-time NaviPlan support employee that rotated between their offices 1 day a week. This, clearly, is both inefficient and expensive.
- undo systems (which can reverse changes previously implemented) function at the user-interface level of the software. User actions are recorded by the software as the user does them, and a hard-coded "undo" is written by the developer to allow the user to undo that action or reverse any changes made. This prevents the system from performing an undo on an arbitrary action performed an arbitrary number of steps ago because each undo action is recorded relative to the previous state of the system. For each action the user performs, a software developer must code both the action and the corresponding undo action, which increases both the development and testing effort - and therefore the cost - of developing an undo system.
- the entire undo system is only applicable for that specific user interface - if a new user interface is created, a new undo system will need to be created. For example, if the original application was a desktop application the undo would only work with the desktop application; if the application was also made available as a web application a completely new undo system would need to be created.
- the present invention provides systems and methods for personal computerized financial planning through a user interface.
- the present invention also provides an undo system and method for computer programs.
- the present invention provides a system for personal financial planning for a user along a specified timeline comprising: a data storage device for storing data associated with a user; data processing means, operatively coupled to a data storage device, and configured with: a control component that generates a first lifeline for the user along the specified timeline; at least one sub- control component, wherein each sub-control component
- a display device operatively coupled to the processor, for displaying at least one the financial factor along the specified timeline from a start position to an end position, wherein the start position and the end position are determined by the sub- control component based on corresponding financial information in the financial factor.
- the present invention provides a computer readable media having encoded thereon a method for creating a visual representation of at least one financial factor in personal financial planning for an individual along a specified timeline, the method comprising: (a) selecting the at least one financial factor, and providing financial information corresponding to the at least one financial factor; (b) determining a start position and an end position for the financial factor along the specified timeline, based on financial information corresponding to the financial factor; (c) repeating steps (a) and (b) for each of the at least one financial factor; and(d) displaying a representation of each financial factor along the specified timeline to form a lifeline for the individual.
- the present invention provides a method for tracking changes in values in a computer program such that the changes may be reversed, the method comprising: (a) for each top level object in the program : (al) creating a top level change monitor object; (a2) determining child objects created for the top-level object; (a3) for each child object, creating a change monitor object to monitor changes relating to the child object; (a3-l) determining subsidiary child objects created for the child object; (a3-2) for each subsidiary child object determined in step (a3-l) ; creating a corresponding change monitor object to monitor changes relating to the subsidiary child object; (a4) recursively executing steps (a3-l) to (a3-2) for each subsidiary child object and for each child object such that each child object and each subsidiary child object has a corresponding change monitor object; (b) registering each change monitor object with the top level change monitor object; (c) registering each change monitor object with a parent monitor object; and (d) for each change relating to a child object or
- each undo object when activated by a user, reverses a change which caused a creation of the undo object.
- FIGURE 1 is a block diagram illustrating a hardware computer system on which the invention may be implemented
- FIGURE 2 is a graphical representation of a lifeline in accordance with an embodiment of the present invention.
- Figure 3 is a user profile interface in accordance with an embodiment of the present invention.
- Figure 4 is a flowchart representation of a process for arranging financial factors along a specified timeline in accordance with an embodiment of the present invention
- Figure 5 is a first graphical representation of a graph overlaid on a lifeline in accordance with another embodiment of the present invention
- Figure 6 is a second graphical representation of a graph overlaid on a lifeline in accordance with another embodiment of the present invention
- Figure 7 is a third graphical representation of a graph overlaid on a lifeline in accordance with another embodiment of the present invention.
- Figure 8 is a fourth graphical representation of a graph overlaid on a lifeline in accordance with another embodiment of the present invention.
- Figure 9 is a fifth graphical representation of a graph overlaid on a lifeline in accordance with another embodiment of the present invention.
- Figure 10 is a graphical representation of a lifeline showing a series of bar graphs adjacent to the lifeline in accordance with another embodiment of the present invention.
- Figure 11 is a graphical representation of an expanded bar graph shown in Figure 10.
- Figure 12 is a graphical representation of a first lifeline in accordance with another embodiment of the present invention.
- Figure 13 is a graphical representation of the first lifeline shown in Figure 12 and of a second lifeline is identical to the first lifeline in accordance with another embodiment of the present invention
- Figure 14 is a user interface for a financial factor in accordance with another embodiment of the present invention .
- Figure 15 is a representation of graphical icons in accordance with another embodiment of the present invention.
- Figure 16 is a representation of graphical icons for a user's family in accordance with another embodiment of the present invention.
- Figure 17 is a graphical representation of an
- Figure 18 is a representation of a list of reversible changes or undo objects which, if activated by the user, reverses specific changes which have been previously entered;
- Figure 19 is a representation of domain objects and change monitor objects in accordance with a further embodiment of the present invention.
- Figure 20 is a representation of items and their relationships in the reversible change system in accordance with a further embodiment of the present invention .
- the present invention provides an information processing apparatus and method, a program, and a recording medium and, more particularly, to an information processing apparatus and method, a program, and a recording medium that are adapted to enable the legal distribution of works derived from
- FIG. 1 a block diagram of a system 10 on which the invention may be practiced is illustrated.
- a computer system 10 having a processor 20, memory 30, storage 40, and a display device 50 is illustrated.
- the processor 20 retrieves data for the above invention from storage 40 and, by using memory 30, executes the steps of one aspect of the invention.
- the processor 20 then displays the processed data through the display device 50. It should be noted that the processor 20 may be
- the processor 20 may store to and retrieve data from the storage 40.
- the document will refer to data processing means which can include a processor and memory, and may also include any other sub-systems which may be part of a computer or a data server .
- the display device 50 provides a user interface, such as a graphical user interface (GUI) whereby graphical icons and visual indicators are offered, as opposed to text-based interfaces, typed command labels or text navigation, to fully represent the information or actions available to a user.
- GUI graphical user interface
- GUI user actions may be performed through direct manipulation of the graphical elements.
- the processor may be operatively coupled to a remote server 70 through a wireless or wired connection, via the Internet or some other networked interface. All or part of the present invention may be hosted at and performed by the remote server 70.
- the present invention provides a computerized system that produces a visual or graphical representation of a user's financial life.
- a user's financial life will be represented by what is termed a "lifeline”.
- the lifeline is a representation of the user's financial information over a specified period of time .
- a timeline is defined as a graphical representation of a chronological sequence. That chronological sequence may begin at a future date and end at a past date, or conversely, begin at some past or current date and end at a future date.
- a lifeline can therefore be termed as a representation of user's financial information over a specified timeline. It should also be mentioned at the outset that a
- the financial advisor may use the system on behalf someone else, such as a client.
- the lifeline represents the financial information of the client, rather than that of the user.
- the client is the user.
- a graphical representation 100 of a lifeline is shown.
- the lifeline representation 100 includes a timeline that begins at the year 2010 and continues past the year 2016.
- the user has a number of associated financial factors: personal expenses, entertainment expenses, spend spare income, full-time employment, vacation in Vancouver, fixed-rate mortgage, housing costs, vacation in Cuba, cash received ( ⁇ 10,000 yen), short-term disability, dependent expenses for a child, vacation in P.E.I. , and cancer.
- these financial factors are represented as graphical icons on the lifeline.
- Other financial factors may be selected from a toolbar and dragged-and-dropped onto the lifeline.
- the financial factors can comprise at least one of, but not limited to, factors relating to income (from employment, business, or other) , expenses (entertainment or other) , assets, liabilities, investments, calamities, various types of insurance, taxes, vacations, children, etc.
- the system can determine in real-time how the addition or removal of a financial factor, or a change made to a financial factor, in the lifeline affects the user's cash flow, income,
- the user may input personal information into a user profile interface 200 as shown in Figure 3.
- a user will input personal information, such as his or her name, birth date, contact information, target retirement age, and equity needed to retire.
- the user profile 200 is a graphical user interface; however, a text-based user interface may also be implemented.
- a lifeline may be created without entering any personal information.
- a lifeline is generated by a control component and each financial factor is generated by an associated sub-control component.
- the control component interacts with each sub-control component to display each financial factor along a specified timeline such that each financial factor is graphically displayed and forms part of the user's lifeline.
- Each financial factor such as full-time employment or a mortgage, is generated by a specialized sub-control component.
- Each sub-control component has its own timeline to allow each financial factor to display child factors (such as a pay-raise or a pay cut in the case of employment) in a separate timeline that aligns with user's lifeline.
- child factors such as a pay-raise or a pay cut in the case of employment
- FIG 17 an example of a child factor could be the different types of expenses for a baby changing over time.
- the ball represents toddler expenses
- the cell phone represented teenager expenses
- the little hat represents university expenses
- the door with an arrow represents the child attaining financial independence.
- the ring represents wedding costs incurred by the parents.
- child factors change the financial factor at, or starting from, the point in time along the timeline that they are created. For example, for a full-time
- a pay-raise is a child factor that changes the income received from that point on, but a bonus is a child factor that would change the financial factor at a given point in time.
- all financial factors are displayed horizontally according to their start and end date, or according to a "centre-on" date.
- Sub-control components, for each financial factor expose these values to the control component.
- the control component utilizes the dates to determine a position on the lifeline. For clarity purposes, this position is referred to as an x- position .
- the control component defines the resolution width.
- the control component lays out the sub-controls according to its resolution width and the start and end dates of the sub- control.
- the resolution width is the time between each major vertical line, which is 1 year in this example. While the example in Figure 2 uses a resolution width of one year, the resolution width may be any increment of time, for example, weeks, months, or decades.
- the following process may be followed to convert a date into an x- position value:
- the process determines the number of days between the start-date of the timeline, which is the left-most graphically visible date, and the date-to-convert, which is the start date for the financial factor.
- the start-date would be a date close to the beginning of the year 2010.
- the date-to-convert would be January 1, 2010 for personal expenses as this is the starting date for this financial factor.
- the x-position is then expressed as the number of days between the start date of the timeline and the date-to-convert.
- the x-position expressed as a number of days, is divided by the number of days in each resolution. For example, if the resolution is 10 years then there would be 3650 days in each resolution; 1825 days, if the resolution is 5 years; or 365, if the resolution is 1 year, and so on and so forth. This gives the x-position as a fractional number of the control's resolution. In other words, the x-axis is divided into however many days there are in the given
- the process then multiplies the fractional number of timeline resolutions by the width in screen pixels of one resolution to arrive at a concrete x value in pixels.
- the above process enables the user to change the resolution width, and therefore, provide a sort of "zoom” or "squish” feature for increasing or decreasing the resolution width
- timeline control component and sub-control components can be configured to order financial factors vertically.
- Each sub-control component must generate an explicit vertical Y-position value for its financial factor, such that the timeline control component enables it regardless of whether it causes the financial factor of one sub-control component to overlap with that of another sub- control component (s) .
- the timeline control component will arrange financial factors for all sub-control components at the top of the timeline at any specified height.
- the timeline control component will arrange all financial factors for all sub-control components in the middle of the timeline at any specified height.
- the timeline control component will arrange all financial factors for all sub-control components at the bottom of the timeline.
- the timeline control component will stretch all financial factors for all sub-control components from the top to the bottom of the timeline. 6. Automatic stack: Starting from the top of the timeline, each financial factor is stacked vertically when it collides with another item.
- the automatic stacking process associates meta-data with every sub-control component, which is used to help maintain extra information about the sub-control component such as its related sub-control components and its total height including all sub-control components.
- x-positions and y-positions are interchangeable.
- financial factors may be stacked horizontally along a vertical timeline, rather than stacked vertically along a horizontal timeline as shown in Figure 2.
- Figure 4 is a flowchart representation of a process 400 for arranging financial factors along a specified timeline, for financial factors that have an associated duration of time (as compare to an event, which occurs at a given point in time) .
- the process enables a specified financial factor to have related-below financial factors (which are displayed
- the lifeline representation shows mortgage, followed by a related-after mortgage-free house sub-control component and with a related-below housing-costs sub-control component.
- the x-position could the rightmost position along the timeline, and a financial factor's end position as it leftmost position along the timeline.
- the process includes the following steps:
- Step 410 The process begins here and determines the desired width and height for each financial factor
- This information may be previously
- Step 420 This process step determines the total height for all related financial factors based on relationships between financial factors, i.e., for the related-below financial factors. This ensures that during the vertical layout process there is room for the financial factor and its related-below factors.
- Step 430 This process step determines the horizontal x- position of each financial factor. Specifically, the step calculates the horizontal x-position of each financial factor based on the item's start date and end date, or based on the item's centre-at date and the sub-controls desired width.
- Step 440 The process sorts all of the financial factors by increasing x-position.
- Step 450 Next, the process creates an initially empty linked-list for each financial factor that will store all sub- control components that have been assigned a vertical y- position.
- the linked-list may be referred to as V.
- Step 460 the process will determine the vertical y-position for each contributor and update the linked-list V accordingly. Specifically, the process will determine the vertical position of each financial factor a in our sorted list by comparing it to each financial factor ⁇ in V. If there is space for a above ⁇ then insert a into V before ⁇ and the process can stop examining financial factors in V because a vertical position has been found. If a cannot be fit above any of the financial factors in V then position a after all of them and add a to the end of V.
- list V remains sorted by y values without incurring the performance slowdown of manually sorting the list, or using a sorted list data structure .
- the process for performing financial calculations is optimized.
- the user is required to actively trigger a calculation.
- the user may be required to press a "Calculate Now" graphical user interface button, or calculations are done when the user closes the current dialog box in which they are entering information.
- the processor calculates, or re-calculates, financial information as the user changes financial information, adds, or removes financial factors. Therefore, the user does not need to close a dialog box or press a "calculate now" button to view updated
- each financial factor comprises financial information that may be input by the user or by another source or may be pre-configured with specific financial information.
- Financial information may be defined as a value, wherein that type of value may be, but is not limited to, a date, a monetary cost, a monetary amount, or a number.
- the present invention has reduced the number of calculations that need to be made by the processor (as compared to the prior art systems) .
- the change is always made on a specific date on the timeline.
- the processor uses that date to reduce the number of calculations required. Any financial factor on the same timeline that ends before the specific date cannot be affected by the change, and thus its financial information does not need to be recalculated.
- the processor will not recalculate the financial information related to the full-time employment because the vacation does not affect the full-time employment five years earlier.
- the processor determines the specific date on which the change occurred so that the processor can begin calculations from that date. Calculations related to information before that specific date do not need to be performed. By reducing the number of calculations, the system of the present invention performs more efficiently.
- the second process to reduce the number of calculations involves having each financial factor declare its external dependencies.
- the processor utilizes the external dependency, or dependencies, to determine the minimum subset of financial factors that are affected by a change made to financial information for a specific financial factor.
- a financial factor can declare one of five types of external dependencies: 1. No dependents: The financial factor does not have any dependent financial factors. Therefore, any changes will only be recalculated when the user changes that financial factor directly. For example, a change could be made by moving the financial factor along the lifeline, or by changing
- Depends on economic factors The financial factor depends on external economic information, such as financial market projections or insurance rate projections, for its calculations. Thus, if the economic information changes (by user input or other) , the processor recalculates the financial information for the dependent financial factors.
- Dependent financial factors are defined as those factors that are dependent on projections, financial or other.
- a financial factor such as full-time employment, depends on the user's ability to work; for example, vacations and the health of the person (e.g., heart attack, cancer, etc.) can affect some financial factors.
- a user may indicate that financial
- information for a financial factor depends on information generated by other financial factors.
- the processor will recalculate this information at each instance where information relating to other financial factors changes.
- a specific financial factor requires the tax amounts generated for other financial factors. These financial factors are calculated after all other financial factors and yearly taxes are calculated and may be recalculated if the yearly tax changes.
- control component associated with the lifeline can generate lifeline overlay charts.
- Figures 6 through 12 show a number of different overlay charts generated by various embodiments of the present invention.
- the lifeline overlay chart is generated by a reusable control component that, according to one embodiment, generates one or more line graphs along a specified timeline.
- the chart control component interacts with a timeline control component, such that the chart control component utilizes a specific timeline to convert a date-based x-coordinate for every data point on the chart into an x pixel position in the display that lines up with the same date on the specified timeline.
- a chart can be either be overlaid on top of a lifeline (by setting its background colour to transparent so the chart does not obscure the image of the lifeline and its
- FIGs 5 through 9 illustrate how the line graphs may be overlaid on the lifeline.
- after-tax income 610 and expenses 620 are shown as an overlaid line graph.
- a heart attack shown in the lifeline which is a type of financial factor referred to herein as a calamity. Therefore, the line graph changed to demonstrate the effect the timing of the heart attack has on after-tax income 610 and expenses 620.
- the change in line graph also demonstrates that the processor can perform calculations and output new financial information in real-time as changes to the financial information are being inputted by a user or other source.
- each decade in the timeline has its own corresponding bar graph 630A, 630B, 630F.
- an expanded bar graph 630B for the 2030 decade is shown.
- each bar in the bar graph represents a monetary value for specific financial information.
- the bar graph 630B has a bar for income, expenses, taxes, cash, assets and liabilities.
- the monetary value of cash is much greater than any of the other monetary values.
- the present invention is not limited to the
- Figure 7 is a line graph, overlaid on a lifeline, of well-known financial indexes for the Dow Jones, MSCI EAFE World Index, and the NASDAQ.
- the line graphs were generated by the processor based on projections made from 20 years of historical information on these financial indexes.
- Figure 8 is a line graph, overlaid on a lifeline, of insurance information.
- Figure 9 is a line graph, overlaid on a lifeline, showing projections for the Dow Jones index 710, the NASDAQ 720, a user's desired amount of insurance 730, and a user's financial assets 740.
- Figure 9 illustrates how lifeline, insurance, and economic information can be charted and overlaid on top of one another .
- the lifeline information may be cloned.
- Figures 12 and 13 illustrate this optional feature.
- Figure 12 shows a first lifeline.
- Figure 13 shows a first lifeline 810 and a cloned lifeline 820.
- a cloned lifeline is a second lifeline with the same financial factors as the first. The cloned lifeline enables a user to change information related to various financial factors, and add new financial factors, and
- the present invention contemplates providing financial summaries adjacent to the first lifeline and the cloned lifeline (s) . These summaries enhance the user's experience by displaying
- FIG. 14 a graphical user interface for a financial factor, the fixed rate mortgage, is shown.
- the down payment amount plus the mortgage amount equals the initial value of the property.
- the mortgage amount also affects the regular payment amount for the mortgage, as does the interest rate. Changing any of the values for this financial factor would change the other values associated with it as well as values associated with financial factors which are related to or dependent on this specific financial factor.
- each financial factor comprises financial information.
- the sub-control component for the given financial factor re-calculates the required financial information (or properties of that financial information) to ensure that the mathematical relationships between the financial information remain correct.
- a user may change the "annual percentage interest rate” from “4.500%” to "5.500%".
- the sub- control component for the fixed rate mortgage financial factor would then re-calculate the "regular payment amount" because it would be affected by the interest rate change.
- sub-control component functionality is accomplished at the domain object level, such that a user interface is not required.
- a domain object must specifically create a related-properties object that implements this functionality.
- a special software construct or class may be used to implement the above feature.
- a special class (here called the RelatedProperties class) can provide this functionality.
- the creating class - which in the example shown in Figure 14 would be the mortgage financial factor - creates an instance of the
- the RelatedProperties class maintains the collection of the financial properties and the equations used to calculate each property.
- the financial information name is
- DownPayment totalValue - outstandingBalance
- the RelatedProperties class then records each instance where financial information changes on the mortgage financial factor.
- the class maintains a most-recently-changed list of changed financial information.
- the most-recently changed list is a standard and reusable data structure for storing the most recently used items.
- the "Recent Documents" feature in the MS VistaTM operating system, or in the MS WordTM application, are examples of this data structure in the prior art.
- the RelatedProperties class uses the most-recently- changed list to determine the property that was changed by the user longest ago. It then uses the equation associated with that property to recalculate the property that was changed longest ago, so that the mathematical inter-relationship between financial information is correctly maintained without negatively impacting information more recently entered by the user .
- the financial factors can include calamities, which are typically negative events with variable durations along the lifeline.
- calamities 800 are typically negative events with variable durations along the lifeline.
- Figure 15 lists the following calamities 800 as graphical icons: cancer, heart attack, long term disability, short term disability, and stroke.
- a graphical icon menu 810 is shown.
- a user's lifeline can include financial factors related to a family member, such as a dependent child.
- graphical icons for the user's family 820 are shown.
- Figure 17 shows a lifeline with a baby as a financial factor and child factors.
- lifelines may be saved in memory or in the storage device and may thus be recalled at a later date.
- the present invention further contemplates an undo or a reverse change system and method that is utilized with the personal financial planning system and method.
- the undo or reverse change system described herein is a powerful, generic and reusable system that may be utilized in other computer programs.
- each item visible to and changeable by the user e.g., address, phone number, client, lifeline item, etc.
- each undo object constructs an appropriate human-readable description of the change based on meta-data applied to the property that was changed.
- An appropriate icon may also be assigned to the property that was changed.
- the reverse change system (or the undo system) may be applied to all items and/or properties noted above. Items for which changes may be reversed may include events, financial information, financial factors, lifelines, timelines, and any other item mentioned above.
- the undo object When the user selects an undo object through the user interface (graphical or textual) the undo object undoes or reverses the change. If necessary, this event signals to the processor that a recalculation may be needed for the item changed as well as any items or properties which may be dependent upon that item.
- Figure 18 is a representation of a list of reversible changes or undo objects which, if activated by the user, reverses specific changes which have been previously entered.
- Figure 19 is a representation of domain objects and change monitor objects in accordance with an embodiment of the present invention.
- Figure 20 is a representation of items and their relationships in the reversible change system in accordance with an embodiment of the present invention.
- the undo or reverse change system and method of the present invention operates at the domain logic layer
- the domain logic layer is defined as the internal code layer where business rules and business objects are codified. Each business "noun” is codified as a class. For example, the domain logic layer may have classes for "client”, “phone number”, “address”, “mortgage”, “vacation”, “heart-attack”, etc. Each domain object has a number of properties or specific data values associated with it. For example, a client has a first name, last name, birth date, two e-mail addresses, a list of phone numbers, a list of addresses, a list of lifelines, and etc.
- the undo or reversible changes system operates at the domain object layer by understanding that domain object properties change, and that lists of things can also change by adding, removing, moving or changing an item within the list.
- the "top-level” domain object is of the class "client”. Whenever a "client” is created, a special “undoable-object monitor” or “change monitor object” is also created and is associated with that client.
- the top- level domain object is “fred” and that, associated with this top-level domain object are the lists “addresses” and “phone numbers”. For these two lists, each list has multiple domain objects. For “addresses”, two domain objects are "home” and “cottage”, both of which are of the class “address”, meaning that each of "home” and "cottage” have the properties
- a top level change monitor object is created (see top right corner of Fig 19) .
- a separate change monitor object (or change monitor in the figure) is created. As can be seen, each change monitor object created is
- the change monitor object for the list "addresses" has child monitor objects, each corresponding to a specific domain object that is a child domain object of the list "addresses".
- each domain object is mirrored by a change monitor object that monitors the properties of that domain object.
- the top-level change monitor object associated with that new top level domain object client reviews all the properties of that top level domain object and looks for any public properties or lists that should be watched for changes. If the top-level change monitor object discovers child objects that are other domain objects (e.g., an "address" object on a "client” object) then the top-level change monitor object creates a new change monitor object and associates it with the discovered domain object.
- this child domain object may have a number of properties or values such as interest rate, maturity date, down payment, bank name, amount mortgaged, etc., etc.
- This child domain object would have a corresponding change monitor object that monitors those properties and the child object itself for any changes.
- This discovery process occurs recursively down the chain of domain objects until every domain object, whether a child object or a subsidiary child object subsidiary to a child object, and every list is associated with a change monitor object.
- Each change monitor object has knowledge of its parent change monitor object, such that a hierarchy of change monitor objects is created that mimics the domain object hierarchy in memory. This mirroring of the hierarchy can be seen in the example in Fig. 19.
- each of the various change monitor objects monitor their associated domain object or list for any changes related to this domain object or list.
- a change e.g. a property is changed, the domain object is deleted, etc.
- the relevant change monitor is notified and that relevant change monitor creates an undo object specific to that change.
- the created undo object may have, as its parameters, the domain object whose property changed, the specific property for that domain object that was changed, the previous value for that property, the new value for that property and the change monitor that is creating the undo object.
- an undo object for a change to a list will also have the actual type of change done to the list.
- the created undo object is then listed/registered by the top level change monitor in its master list of undo objects. This master list can then be presented to the user if and when the user wishes to undo or reverse any changes which may have been carried out
- the human readable data (as well as an associated icon) for the master list can also be generated by each undo object.
- the master list of undo objects is presented to the user and the user can activate any of the undo objects listed.
- an undo object has been activated, since the undo object knows which specific domain object and property is to be affected, that domain object and/or property is changed based on the parameters for that specific undo object.
- each undo object provides the user with an indication of what which property/object is to be changed and what it is to be changed back to. Once the undo object is activated, that undo object undoes or reverses the change that caused its own creation.
- an undo object does not necessarily entail the removal of that undo object from the master list of undo objects.
- the undo object which has been activated may still be in the master list.
- the activation of an undo object will cause the creation of another undo object, one that reverses the change that the first undo object effected. As an example, if a value is changed from 0 to 1, this may cause the creation of undo object A which notes the change of the value from 0 to 1.
- Activation of undo object A will change the value back from 1 to 0 but this activation will also cause the creation of a new undo object B which will note the change of the value from 1 to 0.
- This special type of change monitor object monitors its associated list for list changes such as insertions, changes, additions, and removals from the list. When such changes occur to the associated list, the list undo object created for that change notes the specific change type (insertion, deletion, change, addition, or removal) and what was inserted, removed, or added.
- dictionary changes may be possible.
- any changes as to what key is mapped to what value are recorded by the relevant change monitor object.
- each change monitor object knows its top-level change monitor object, and registers itself with this top-level change monitor object. As such, the top-level change monitor object knows about all subsidiary change monitor objects in the hierarchy. As an example from Fig 19, the top-level change monitor object at the top right corner of the figure will have registered with it all the change monitor objects below it in the hierarchy.
- each change monitor object watches its associated domain object for changes.
- Each domain object is responsible for raising a special event when a property or list changes or when any change relating to its associated domain object occurs. Raising a property-changed event is common practice in programming; in .NET framework the event contains the name of the property, and in Java the event contains the new and old values of the property as well.
- Raising the property changed event can be made completely automatic by using aspect oriented programming techniques in conjunction with the undo/reversible change system. It should be noted that this automating of the raising of the property changed event is not necessary but it has been found to contribute to clarity in the domain object code.
- undo/reversible change system may best be used with a property changed event that contains both the old value and new value, as well as the programmatic name of the property.
- the associated change monitor object is notified, and can record the change.
- a special attribute can be applied to any property on the domain object that instructs the undo/reversible change system to ignore changes to that property. This is useful in many situations where a property on a domain object should never be exposed or changed by the user, so the undo/reversible change system does not need to watch it .
- every undo-able/reversible change is registered with the top-level change monitor object, so that the user interface has one location to look for all possible changes.
- each relevant and allowable change to an object or property causes the creation of a specific undo object which is listed with the master list administered by the top-level monitor object.
- Each undo object is responsible for determining its own representative image and its own undo message text. To clarify, each undo object determines which representative image is suitable based on such considerations as the type of object being monitored and/or the data-type of the property that was changed and, once the image and its text has been determined, the undo object saves this information for future use. Each undo object investigates or determines which image and text is suitable for it based on the object being monitored .
- Each undo object knows which domain object and which property on the domain object it was created for (or, in the case of list change-actions the list action that occurred) , and the exact property on that domain object that changed. Every domain object property is attributed with a special resource-key.
- the undo object determines the various parameters it needs such as the domain object which was changed, the property which was changed, etc., etc.
- the resource key is retrieved from the property, and then looked up in a language-specific dictionary of terms.
- the dictionary maps resource-keys to human-readable names.
- the property might be "FirstName” and the associated key might be "FirstName_Key” .
- the undo object can retrieve the human-readable name of the property that changed, and combine it with the original value of the property to construct a rich human readable description of the undo-able or reversible change. This description can then be used when listing the created undo object in the master list.
- each undo object when created, examines the data type of the property that changes and dynamically determines the type of image.
- the undo object may associate itself with a check-box image, but for a string data type it may associate itself with a little text cursor image, etc. If the property is tagged with a special undo-image attribute then the data type is treated as an image or a pointer to an image, and the actual image is used to annotate the undo-able or reversible change in the user interface.
- ch undo object can test if it is currently relevant For example, if a person domain object's first name is currently “Frank”, but the user changes the first name to "Susan”, then changes it to "Bob”, and then changes it back to "Frank” there will be three undo-able or reversible changes:
- each reversible change exposes the ability to determine if that particular reversible change is currently appropriate or relevant.
- the user interface only displays relevant reversible changes. Reversible changes will only report that they are relevant if the change monitor object that created the undo object is still in the change monitor object hierarchy. Thus, when the user deletes a domain object, all its associated reversible changes and its
- this mapping between change monitor objects and domain objects can be made static, such that it is shared between all top-level objects.
- the master list of undo objects as well as the hierarchy of both the change monitors and the domain objects may be saved prior to exiting a computer program which uses the undo/reverse change system. Such an action would allow a user to save a state of the system for future use so that changes made in one session may be undone or redone in another session.
- the method steps of the invention may be embodied in sets of executable machine code stored in a variety of formats such as object code or source code. Such code is described
- the embodiments of the invention may be executed by a computer processor or similar device programmed in the manner of method steps, or may be executed by an electronic system which is provided with means for executing these steps.
- an electronic memory means such as computer diskettes, CD-ROMs, Random Access Memory (RAM) , Read Only Memory (ROM) or similar computer software storage media known in the art, may be programmed to execute such method steps.
- RAM Random Access Memory
- ROM Read Only Memory
- electronic signals representing these method steps may also be transmitted via a communication network.
- Embodiments of the invention may be implemented in any conventional computer programming language
- preferred embodiments may be implemented using suitable programming languages or platforms such as C#, Java, or
- VB.NET Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components. Embodiments can be implemented as a computer program product for use with a computer system. Such
- implementations may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium.
- the medium may be either a tangible medium (e.g., optical or electrical communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques) .
- the series of computer instructions embodies all or part of the functionality previously described herein. Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems.
- Such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies . It is expected that such a computer program product may be distributed as a removable medium with
- inventions may be implemented as entirely hardware, or entirely software (e.g., a computer program product).
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Game Theory and Decision Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
L'invention porte sur un système de planification financière personnelle pour un utilisateur selon un calendrier spécifié, le système comprenant : un dispositif de stockage de données ; un moyen de traitement de données ; un élément de commande qui génère un premier calendrier pour l'utilisateur selon le calendrier spécifié ; un sous-élément de commande qui génère une représentation d'un facteur financier et d'informations financières, chaque représentation du facteur financier faisant partie d'un calendrier ; un dispositif d'affichage pour l'affichage d'au moins le facteur financier selon le calendrier spécifié d'une position de départ à une position finale déterminées par le sous-élément de commande sur la base des informations financières correspondantes dans le facteur financier. La présente invention porte en outre sur un système et un procédé d'annulation de commande ou de changement en sens inverse qui sont utilisés avec le système et le procédé de planification financière personnelle. Le système d'annulation de commande ou de changement en sens inverse est un système puissant, générique et réutilisable, qui peut être utilisé dans d'autres programmes d'ordinateur.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CA2010/000532 WO2011123924A1 (fr) | 2010-04-08 | 2010-04-08 | Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CA2010/000532 WO2011123924A1 (fr) | 2010-04-08 | 2010-04-08 | Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011123924A1 true WO2011123924A1 (fr) | 2011-10-13 |
Family
ID=44761951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CA2010/000532 WO2011123924A1 (fr) | 2010-04-08 | 2010-04-08 | Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2011123924A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484166B2 (en) | 2011-11-03 | 2013-07-09 | Oracle International Corporation | Oracle rewind: metadata-driven undo |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0621528A1 (fr) * | 1993-04-22 | 1994-10-26 | Microsoft Corporation | Mécanisme d'annulation et de répétition à niveaux multiples |
US6064984A (en) * | 1996-08-29 | 2000-05-16 | Marketknowledge, Inc. | Graphical user interface for a computer-implemented financial planning tool |
US6111575A (en) * | 1998-09-24 | 2000-08-29 | International Business Machines Corporation | Graphical undo/redo manager and method |
US6185591B1 (en) * | 1997-07-29 | 2001-02-06 | International Business Machines Corp. | Text edit system with enhanced undo user interface |
WO2001059670A1 (fr) * | 2000-02-11 | 2001-08-16 | Wood John F Jr | Systeme, procede et programme personnels de gestion financiere mettant en oeuvre une methodologie graphique de programmation orientee objet |
US6360188B1 (en) * | 1998-10-27 | 2002-03-19 | Brixx Limited | Time-based modeling |
US20050081105A1 (en) * | 2003-09-30 | 2005-04-14 | Malte Wedel | Undoing user actions in a client program |
US20070027736A1 (en) * | 2003-06-02 | 2007-02-01 | Damon Reynolds | Planning tool |
US20090024540A1 (en) * | 2001-04-05 | 2009-01-22 | Lee Ryder | Personal or family financial accounting and management system |
US7680720B1 (en) * | 2000-05-26 | 2010-03-16 | Intuit Inc. | Managing changes among multiple life cycle plans |
-
2010
- 2010-04-08 WO PCT/CA2010/000532 patent/WO2011123924A1/fr active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0621528A1 (fr) * | 1993-04-22 | 1994-10-26 | Microsoft Corporation | Mécanisme d'annulation et de répétition à niveaux multiples |
US6064984A (en) * | 1996-08-29 | 2000-05-16 | Marketknowledge, Inc. | Graphical user interface for a computer-implemented financial planning tool |
US6185591B1 (en) * | 1997-07-29 | 2001-02-06 | International Business Machines Corp. | Text edit system with enhanced undo user interface |
US6111575A (en) * | 1998-09-24 | 2000-08-29 | International Business Machines Corporation | Graphical undo/redo manager and method |
US6360188B1 (en) * | 1998-10-27 | 2002-03-19 | Brixx Limited | Time-based modeling |
WO2001059670A1 (fr) * | 2000-02-11 | 2001-08-16 | Wood John F Jr | Systeme, procede et programme personnels de gestion financiere mettant en oeuvre une methodologie graphique de programmation orientee objet |
US7680720B1 (en) * | 2000-05-26 | 2010-03-16 | Intuit Inc. | Managing changes among multiple life cycle plans |
US20090024540A1 (en) * | 2001-04-05 | 2009-01-22 | Lee Ryder | Personal or family financial accounting and management system |
US20070027736A1 (en) * | 2003-06-02 | 2007-02-01 | Damon Reynolds | Planning tool |
US20050081105A1 (en) * | 2003-09-30 | 2005-04-14 | Malte Wedel | Undoing user actions in a client program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484166B2 (en) | 2011-11-03 | 2013-07-09 | Oracle International Corporation | Oracle rewind: metadata-driven undo |
US9075750B2 (en) | 2011-11-03 | 2015-07-07 | Oracle International Corporation | Oracle rewind: metadata-driven undo |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7899757B1 (en) | Mechanism for indicating and resolving the trust level of information | |
US10740069B2 (en) | Compositional entity modeling systems and methods | |
CA3032079C (fr) | Systemes et procedes mis en oeuvre par ordinateur pour preparer des formulaires de conformite pour satisfaire des exigences reglementaires | |
US9087361B2 (en) | Graph traversal for generating table views | |
CA2817652C (fr) | Creation controlee de rapports provenant de vues tabulaires | |
US8370795B1 (en) | Method and system for explaining a value of a field in a form | |
US9400777B2 (en) | Management data processing system and method | |
US20180122112A1 (en) | Generating object time series from data objects | |
JP5106840B2 (ja) | データ要素のモデル化 | |
US20200394723A1 (en) | Accounting Platform Functionalities | |
US20050060252A1 (en) | Graphical software tool for modeling financial products | |
US20150205583A1 (en) | Intelligently recommending schemas based on user input | |
US8600851B1 (en) | Military benefits in financial planning | |
EP1105815A1 (fr) | Programme informatique pour systeme de planification et de conseil financiers | |
US7752092B1 (en) | System and method for indicating previous document source information for current document fields | |
US8799117B2 (en) | Record retention and post-issuance compliance system and method for municipal bonds | |
WO2018063659A1 (fr) | Systèmes et procédés pour générer des rapports personnalisés sur la base de règles d'étapes opérationnelles | |
US10269079B2 (en) | Determining local regulatory filing workflow through user contribution | |
US10474702B1 (en) | Computer-implemented apparatus and method for providing information concerning a financial instrument | |
US7753258B1 (en) | Method and apparatus for completing a financial form | |
Botafogo | The syntax of the accounting language: a first step | |
US8321309B1 (en) | Method and system for streamlined payroll set up and compliant paycheck generation | |
WO2011123924A1 (fr) | Système et procédé de planification financière personnelle ayant de nouveaux système et procédé d'annulation de commande | |
US20120136738A1 (en) | Royalty calculation engine | |
US10970477B1 (en) | Computer-implemented methods systems and articles of manufacture for automated construction of computer-generated user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10849203 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10849203 Country of ref document: EP Kind code of ref document: A1 |