[[BackLinksMenu]] [[TicketQuery(summary=BASE_PERSISTENCE_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 == This task should provide a class structure for persisting books with all their elements. == Task requirements == * Revise the current code for persisting that is in org.sophie2.main.model module. * Create a class diagram(s) for the class structure related to persistence. * Modularize to the base.persistence module. * Review the existing unit tests and fix them if needed. == Task result == The result of this task should be: * source code * class diagram(s) * working unit tests == Implementation idea == * Review the existing source code. * Create the class diagram(s). * Refactor and clean up according to the diagram. * Run unit tests and fix problems if any. == Related == == How to demo == * Show the class diagrams and explain them. * Show the source code related to persistence. * Run unit tests to demonstrate the model. = Design = * Library classes for persistence (i.e. that are not related specifically to books) will be separated in the org.sophie2.base.persistence module. * Classes related to persisting books will be placed in a new module - org.sophie2.base.model.book.persist. * Classes that are in org.sophie2.main.model.book.store.* packages will be removed. * Existing unit tests will be reviewed and moved to their new location - they will be linked in the implementation section. * Below are the dependency and class diagrams that reflect the new hierarchy: [[Image(source:/trunk/sophie2-platform/doc/uml-design-diagrams/Persistence-Dependency-Diagram.png)]] [[Image(source:/trunk/sophie2-platform/doc/uml-design-diagrams/Persistence-Class-Diagram.png)]] = Implementation = ^(Implementation results should be described and linked here (from the wiki or the repository))^ = Testing = = Comments = ^(Write comments for this or later revisions here.)