| 1 | [[BackLinksMenu]] |
| 2 | |
| 3 | [[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|)]] |
| 4 | |
| 5 | |
| 6 | |
| 7 | = Analysis = |
| 8 | ^(The purpose of the analysis is to give as much as possible of the needed information for designing and implementing the task.)^ |
| 9 | |
| 10 | == Overview == |
| 11 | ^(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.)^ |
| 12 | 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. |
| 13 | |
| 14 | == Task requirements == |
| 15 | ^(Necessary requirements that the task must fulfill.)^ |
| 16 | * Define the connections between books and other related objects (pages, some book repository) |
| 17 | * Define actions related to books |
| 18 | * for the book itself |
| 19 | * create |
| 20 | * destroy |
| 21 | * copy |
| 22 | * save/load |
| 23 | * export |
| 24 | * import |
| 25 | * for the objects inside |
| 26 | * add pages |
| 27 | * remove pages |
| 28 | * (re)order pages |
| 29 | * group pages in chapters |
| 30 | * set a page to be the cover of the book |
| 31 | * other actions |
| 32 | * merge two/many books in one |
| 33 | * split a book in two/many |
| 34 | * Decide which connections and actions are basic and obligatory and which are optional. Define a class hierarchy that supports the basic connections and actions. |
| 35 | 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) |
| 36 | |
| 37 | == Task result == |
| 38 | ^(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.))^ |
| 39 | * The result should include |
| 40 | * class diagrams |
| 41 | * source code |
| 42 | |
| 43 | == Implementation idea == |
| 44 | ^(It is advisable to include some rough implementations ideas.)^ |
| 45 | |
| 46 | == Related == |
| 47 | ^(Here you can add related tasks that could be useful or helpful.)^ |
| 48 | |
| 49 | == How to demo == |
| 50 | ^(In this section you must add instructions for the demo of the task.)^ |
| 51 | |
| 52 | = Design = |
| 53 | |
| 54 | = Implementation = |
| 55 | ^(Implementation results should be described and linked here (from the wiki or the repository))^ |
| 56 | |
| 57 | = Testing = |
| 58 | |
| 59 | = Comments = |
| 60 | ^(Write comments for this or later revisions here.) |