[[BackLinksMenu]] [[TicketQuery(summary=BASE_BOOK_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 == Manipulating with books is the main goal of sophie2. A book should hold pages, pages can be added or removed from a book. A book should be viewable, savable, exportable. == Task requirements == * Define the connections between books and other related objects (pages, some book repository) * Define actions related to books * for the book itself * create * destroy * copy * save/load * export * import * for the objects inside * add pages * remove pages * (re)order pages * group pages in chapters * set a page to be the cover of the book * other actions * merge two/many books in one * split a book in two/many * Decide which connections and actions are basic and obligatory and which are optional. Define a class hierarchy that supports the basic connections and actions. In this task a class hierarchy for books should be created. It should contain all interfaces, classes, fields common for all possible kinds of books (if any more than one) == Task result == * The result should include * class diagrams * source code == Implementation idea == * first identify the classes and the relations between them * implement the hierarchy * implement the functionality == Related == == How to demo == * show the class diagram and explain the role of the components and how they are related * show where the implemented packages and classes are = Design = = 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.)