wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0
Last modified 16 years ago Last modified on 01/11/09 13:47:32

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=PRO_CHANGE_TRANSACTION_SAFETY_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|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

This task represents the transaction safety of changes. Transaction safety is a term that has occurred from databases where one make transactions to the database. Generally it means to keep the integrity and the state consistent. Transactions should be made at once and should be undone if something is messed up in the middle of the transaction. Same applies to changes. Changes should either happen and be constructed or not. Imagine one has a composite change (see PRO_CHANGE_COMPOSING_R0) which is made of a number of small changes. Either all changes should be undone when undo is required or none should be undone.

Task requirements

  • Define how to make transaction safety consistent.
  • Create a way to achieve transaction safety for:
    • simple change:
      • a change should be defined as such and put in the list of changes when it is consistent till the time it is to be declared and stored.
      • undo to a change should be done and declared as such when everything is consistently finished otherwise it should not be undone.
    • composite change:
      • a composite change should be constructed of simple changes only when all simple changes are consistent when created.
      • a composite change can be undone if and only if all simple changes are undone one after another otherwise the state should be as if no undo is performed.
  • UndoManager - responsible for undo/redo of changes.
  • Provide unit tests for the transaction safety things.
  • Give examples is possible of scenario that implies transaction safety is impossible at this revision so that on later revisions more things are improved.

Task result

  • source code

Implementation idea

  • review code on changes: events package and UndoManager.
  • design how to manage and improve what is already implemented so that the task requirements is satisfied.

PRO_CHANGE_PRIMITIVES_R0
PRO_CHANGE_COMMONS_R0
PRO_CHANGE_COMPOSING_R0
PRO_CHANGE_MANAGER_R0

How to demo

  • show the source code and explain.
  • run unit tests.

Design

Implementation

Testing

Comments