[[BackLinksMenu]] [[TicketQuery(summary=PRO_CHANGE_COMMONS_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|)]] = Analysis = == Overview == Common things about changes that are not put in the other tasks listed in related section. == Task requirements == * consider carefully the relations between classes of the following: * [wiki:PRO_CHANGE_PRIMITIVES_R0] * [wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0] * [wiki:PRO_CHANGE_COMPOSING_R0] * [wiki:PRO_CHANGE_MANAGER_R0] * consider creating a module if necessary - the change manager will take an important role in changes of books on the server as well. * the module may be needed now. * the module may appear in later revisions. * the module may not be needed at all. * create a wiki page that describes all the relations and class of the PRO_CHANGE things. * provide class diagrams. == Task result == * a base design of the change part of the pro library. * a wiki page. * diagrams of the classes for connected with changes. == Implementation idea == * review the tasks that are connected with PRO_CHANGE. * view the existing source code. * provide a relations and operations explanation in a wiki page. * provide diagrams of the classes needed. == Related == [wiki:PRO_CHANGE_PRIMITIVES_R0] [[BR]] [wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0] [[BR]] [wiki:PRO_CHANGE_COMPOSING_R0] [[BR]] [wiki:PRO_CHANGE_MANAGER_R0] [[BR]] == How to demo == * show the base design, diagrams and the wiki page. = Design = = Implementation = = Testing = = Comments = The following comments could be either part of this task or the R1 revision. * A hierarchy of the types of changes should be provided, as well as their functionality and purpose such as: * Changes form a three of GroupChanges as internal nodes and ProChanges as leaves of the tree * AutoChanges are meant to be used by the developer (describe how) * GroupChanges are meant to be used itnernally by the AutoChanges and the overall change mechanism (describe how) * ProChanges are meant to be leaves of the tree (describe why) * This scheme should work if Sophie 2 uses properties and immutable objects (describe why) * Describe Changes decomposition to Change primitives, its purpose and provide a use-case