[[BackLinksMenu]] [[TicketQuery(summary=TASK_NAME_HERE, 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 = ^(The purpose of the analysis is to give as much as possible of the needed information for designing and implementing the task.)^ == Overview == ^(The analysis of the first revision of each task should contain a brief overview of the whole task. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 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 == ^(Necessary requirements that the task must fulfill.)^ * 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 Analysis should contain strict requirements about the end product of the task (for example the result must be source code, the result must be google doc, etc.))^ * The result should include * class diagrams * source code == Implementation idea == ^(It is advisable to include some rough implementations ideas.)^ == Related == ^(Here you can add related tasks that could be useful or helpful.)^ == How to demo == ^(In this section you must add instructions for the demo of the task.)^ = 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.)