Требования предъявляемые к визуализаторам v.3.03

Языки программирования

  1. Визуализатор должен быть написан на Java.
  2. При использовании следующих компиляторов сообщений об ошибках (error) и предупреждений (warning) выдаваться не должно (в том числе предупреждений об использовании deprecated API).

Среды исполнения

Визуализатор должен работать в следующих средах:

  1. AppletViever vv. 1.1.4, 1.1.8, 1.3, 1.4
  2. Internet Explorer v. 5.0+
  3. Netscape Navigator v. 4.0+
  4. Opera v. 5.0+
  5. Mozilla v. 1.0+

Документация

К визуализатору должны прилагаться слудующие документы:

  1. Страница с визуализатором (HTML).
  2. Русскоязычные конфигурационные файлы (Java .properties).
  3. Англоязычные конфигурационные файлы (Java .properties).
  4. Описание алгоритма на русском языке (HTML).
  5. Описание интерфейса визуализатора на русском языке (HTML).
  6. Описание автомата, реализующего алгоритм (XML).
  7. Исходные тексты аплета (Java).
  8. Описание нестандартных параметров визуализатора(HTML).

Поддержка многоязычности

Визуализатор должен полностью поддерживать многоязычность (internationalization) на уровне параметров HTML. При этом запрещается использование явной или неявной конкатенации строк для получения сообщений выводимых пользователю.

Совместимость

Визуализатор должен быть полностью совместим с последней версией BaseApplet, в том числе по интерфейсу пользователя, параметрам, значениям параметров по умолчанию.

Интерфейс пользователя

  1. Все действия визуализатора должны быть прокомментированы.
  2. Интерфейс должен быть понятен неподготовленному пользователю.
  3. К каждому элементу управления должна отображаться соответствующая подсказка (hint).
  4. При нажатии на активную (enabled) кнопку, выбор из активного списка и т.д. должны сопровождаться видимыми изменениями состояния визуализатора.
  5. В интерфейсе не должно быть зависемостей вида "Пользователь не может изменить количество вершин, пока не нажмет кпопку Restart".
  6. Визуализатор, должен подстраивать размер своих элементов (в том числе, размер шрифтов) под размер области отведенной для рисования. Приветствуется динамическои изменение размера элементов визуализатора при просмотре в AppletViewer.
  7. Визуализатор должен прилично выглядеть при ширине 400+ и высоте 300+ пикселей. Для визуализаторов работы с деревьями и графами — соответственно 600+ и 400+ пикселей. При этом, шрифт должен быть удобочитаем (не слишком мелким).

Требования к визуализаторам алгоритмов на графах

  1. Ребра графа, смежные с одной вершиной не должны пересекаться.
  2. Для визуализаторов алгоритмов на графах рекомендуется отдельно ввести два режима: "визуализация" и "редактирование графа", переключение между которыми осуществляется по нажатии кнопки управления.
  3. При визуализации должен быть не только рисунок графа, но и его матрица смежности (с возможностью отключения).
  4. Если на некотором шаге алгоритм оперирует с вершиной (ребром, дугой), она должна быть выделена не только на рисунке графа, но и в матрице смежности. При этом, цвета выделения на рисунке и в матрице смежности должены совпадать.
  5. Столбцы и строки матрицы смежности должны быть помечены названиями (номерами) вершин.
  6. Если в граве не допускаются петли, в режиме редактирования на диагонали матрицы смежности должны быть крестики.

Форматы предоставляемых документов

Все документы должные human-readable (не сгенерированные Word, Frontpage, DreamWeaver, etc.)

  1. Java: Code Conventions for the Java(TM) Programming Language
  2. HTML: HTML 4.01 Specification, XHTMLT 1.0 The Extensible HyperText Markup Language (Second Edition) compatibility mode.
  3. XML: Extensible Markup Language (XML) 1.0 (Second Edition)
  4. XSL: Extensible Stylesheet Language (XSL) Version 1.0

Параметры визуализатора

  1. Все строки, выводимые визуалиатором дожны быть заданы в параметрах.
  2. Должна быть предусмотрена возможность задания примера, на котором работает визуализатор, в интутитивно понятной форме.
  3. Наличие кнопок "Save" и "Load" должно конфигурироваться.

Прочие требования

  1. По визуализатору (без дополнительной информации), пользователю должно быть понятно, как работает алгоритм (при этом, разрешаются ссылки на другие алгоритмы, как шаги визуализатора).
  2. При наличии структуры иерархической структуры алгоритма, должны быть предусмотрены шаги различных размеров.
  3. Визуализатор должен предусматривать сохранение своего состояния в и восстановление его из human-operable формата.

Стиль кода

  1. Отступ 4 символа.
  2. Все переменные и методы доджны быть документированы (JavaDoc).
  3. Ширина исходного кода не более 80 символов.
  4. Отсутствие неиспользуемых переменных, методов, присваиваний, приведений типа.
  5. Классы апплета должны быть в отдельном пакете (package), наследнике ru.ifmo.ips.visualizers