wiki:BASE_BOOK_COMMONS_R0

Version 4 (modified by boyan, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro 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|) failed
current transaction is aborted, commands ignored until end of transaction block

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

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.)