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

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

  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+

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

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

  1. Русскоязычная версия визуализатора
  2. Англоязычная версия визуализатора
  3. Описание алгоритма на русском языке
  4. Параметры визуализатора для англоязычной версии
  5. Параметры визуализатора для русскоязычной версии
  6. Описание интерфейса визуализатора на русском языке

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

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

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

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

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

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

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

  1. Ребра графа, смежные с одной вершиной не должны пересекаться.

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

Все документы должные human-readable (не сгенерированные Word, Frompage, 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