Changes between Initial Version and Version 1 of PRO_CHANGE_REVISION_ACCESS_R0


Ignore:
Timestamp:
01/28/09 18:49:27 (16 years ago)
Author:
gogov
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PRO_CHANGE_REVISION_ACCESS_R0

    v1 v1  
     1[[BackLinksMenu]] 
     2 
     3[[TicketQuery(summary=PRO_CHANGE_REVISION_ACCESS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] 
     4 
     5= Analysis = 
     6== Overview == 
     7The goal of this task is to develop a scheme on how to implement a history of changes resulting from the work of the user with Sophie 2 and provide access to any given point in time in this history. [[BR]] 
     8This way a snapshot of the state of Sophie 2 at a given time point could be obtained for various purposes such as: 
     9 * debugging 
     10 * reverting changes 
     11 * feeding the change manager with needed info 
     12 * etc. 
     13 
     14== Task requirements == 
     15 * Propose ideas for the structure of the history of changes. It should be flexible enough, so the queries as the following could be answered: 
     16  * get a snapshot of the state of all properties at a given time point 
     17  * get the value of a given property at a given time point 
     18  * get a history of all the values of a given property at a given time point 
     19  * get a list of all Changes that affect a given property before and after a given time point 
     20  * get a list of properties which a Change affects 
     21 * Since these operations might turn out quite slow, performance should be taken into consideration as early as possible: 
     22  * provide rough ideas on how these operations could be implemented algorithmically efficient 
     23  * also provide ideas for suitable data structures which could improve the performance 
     24 * Provide rough implementation of the above ideas, if possible 
     25 * Add unit test for the implementation, if possible 
     26 
     27== Task result == 
     28 * Design ideas and diagrams of the proposed solutions to the given problems in this page 
     29 * New code and unit tests, if any 
     30 
     31== Implementation idea == 
     32 * Consider using some data structure which provides logarithmic time for some of the queries 
     33 * Try providing ideas for data structures and algorithms which perform at least some of the queries efficiently. Different approaches might be possibly combined to yield good results. 
     34 
     35== Related == 
     36[wiki:PRO_LIB_CORE_TUTORIAL] [[BR]] 
     37[wiki:PRO_CHANGE_MANAGER_R0] [[BR]] 
     38[wiki:PRO_CHANGE_MERGING_R0] [[BR]] 
     39[wiki:PRO_CHANGE_PRIMITIVES_R0] [[BR]] 
     40[wiki:PRO_CHANGE_UNDO_MANAGER_R0] 
     41 
     42== How to demo == 
     43 * Show this page and explain the problems and proposed solutions 
     44 * Run the unit tests, if any 
     45 
     46= Design = 
     47^(Describe your design here.)^ 
     48 
     49= Implementation = 
     50^(Describe and link the implementation results here (from the wiki or the repository).)^ 
     51 
     52= Testing = 
     53^(Place the testing results here.)^ 
     54 
     55= Comments = 
     56^(Write comments for this or later revisions here.)