четверг, 11 июня 2009 г.

Формулировка конечной задачи

Требования в виде списка более понятны.

Основная задача

Написать программу, реализующую все микрозадачи, которые мы сделали во время работы над проектом.


Подробнее

  • Пользователь взаимодействует с программой по средствам экспериментов.
  • Эксперимент — это и есть микрозадача, в которой должны задаваться параметры, при чём по разному(мы можем задавать те или иные параметры и получать из них тот или иной результат).
  • Пользователь также может проводить серию экспериментов и видеть статистику для каждого.
  • Пользователь может проводить несколько экспериментов параллельно(различные типы экспериментов) и видеть возможную связь между ними.

С точки зрения интерфейса


  • Окно будет реализовано в обычном Windows-стиле, без особых эффектов.
  • Эксперименты будут в различных вкладках(TabView).
  • Для создания эксперимента будет сделан собственных диалог(wizard).
  • Редактирование параметров эксперимента будет выделено в отдельный диалог, который будет принимать объект списка параметров(см. "С точки зрения программирования").

Скриншот интерфейса стадии альфа:




С точки зрения программирования

  • Во время до практики для визуализации была разработана небольшая иерархия классов для визуализации и дальнейшей интеграции. Во главе иерархии лежит абстрактный класс GraphicsPrimitive, классы для визуализации наследуются от него и имеют некоторую общую логику построения.
  • В связи с текущей задачей было принято решение о доработке предыдущей иерархии.

Иерархия классов:

Подробно снизу-вверх:
  • ParameterList - класс, реализующий список элементов ParameterListUnit, в нём хранятся все параметры для данного эксперимента.
  • SomeVisualization - несуществующий класс, приведенный в роли примера класса, наследованного от GraphicsPrimitive
  • Expirement - класс, реализующий связь между параметрами эксперимента и его визуализацией, именно объекты этого класса будут сохранятся в файлы и передаваться куда-либо.
  • ExpirementControl - класс, реазуализующий "User Control", для прорисовки в табах.
  • Ну и верхняя связь подрузумевает что класс главной формы должен хранить в себе все объекты ExpirementControl


В разработке

  • Разработка иерархии
  • Внедрение готовых микрозадач в программу
  • Воможно: внедрение MVC(разделение GraphicsPrimitive на вычисление и рисование).
  • Возможно: вынос типов проектов в dll-файлы(плагины).

2 комментария: