Word Processor Specification Team C: Christiaan Ypma Oscar de Groot Vassilis Boucharas
Description Company Giiggle wants to enter the word processing market with a totally new and incredible program. Because they don’t know anything about programming, they want to outsource this venture. Giiggle has asked for a specification for such a program.
Problem Statement User has to be able to create, edit and save documents and add structure and formatting to the document. It should be a WYSIWYG word processor. The program should have a notion of Titles, paragraphs, sections Manipulating fonts (face, size, style, color) Adjusting spacings (of paragraphs etc.) Adjusting margins
Simplifying Assumptions One page size (like A4) No printing No images
Specification of Program Input: [Command | Character] Command : (FileAction | ContentManipulation) Document FileAction: Save | Load | New Character : UserInput Output: RenderedDocument | File
Specification of Document Structure versus style Structure: Title Sections Paragraphs Text Style: Page layout Font including font properties Spacing Cascading style
Specification of Structure Document: Title?, Section* Section: Title?, (Section, Paragraph)* Title: Character* Paragraph: Character* Character: {A..Z, etc.} (includes control chars)
Specification of Style Document: PageMargins?, TitleDefaultMarkup*, ParagraphDefaultMarkup? PageMargins: 4 numbers (left/right/top/bottom) TitleDefaultMarkup, ParagraphDefaultMarkup, Title, Section, Paragraph: TextMarkup?, IndentsAndSpacing? TextMarkup: FontFace?, FontSize?, FontStyle?, FontColor? IndentsAndSpacing: Indentation | Spacing Indentation: 2 numbers (left/right) Spacing: 2 numbers (top/bottom)
Cascading Style Each document structure type carries a Priority value which determines which style rules apply if more than one rule matches against a particular element. Priority: (lowest) Document Section Title / Paragraph (highest)