Программы, написанные в рамках курса Software Design

2007 год, 2 группа

  1. Форматирование-По-Примеру
  2. Graph Editor
  3. Редактор логических схем
  4. GPopup
  5. UML Diagram Editor
  6. Измерение производительности программ
  7. UML Editor
  8. Jina
  9. StarBugs
  10. Редактор графов
  11. ER Diagram Editor
  12. Plain SVG
  13. JUmlEditor
  1. Форматирование-По-Примеру

    Автор: Даниил Гительсон.

    Данная библиотека предназначена для проверки кода (на произвольном языке программирования) на соответствие заданным стилям кодирования с выдачей сообщений о несоответствии, а также форматирования кода по заданным правилам. При этом источником правил служит другой "эталонный" код, из которого и извлекаются правила для дальнейшего использования. Возможность форматировать код на произвольном языке программирования достигается тем, что в состав библиотеки входит утилита, которая умеет по описанию грамматики (в нотации Бэкуса-Наура) генерировать код парсера (на Java), который в дальнейшем используется для форматирования программ на этом языке.

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

    Программа и примеры.

  2. Graph Editor

    Автор: Владимир Иванков.

    Программа предназначена для работы с основными типами графов (ориентированными, неориентированными, взвешенными и невзвешенными).

    В данной версии программы реализованы следующие возможности:

    • сохранение графа в файл и загрузка из файла (граф хранится в формате xml)
    • создание нового графа
    • редактирование внешнего вида графа (добавление и удаление вершин и ребер, изменение веса ребра, перенос ребра)
    • отмена/повтор последних действий
    • конвертация различных типов друг в друга
    • различные укладки графа (круговая, топологическая, в виде минимального остовного дерева)
    • реализованы несколько алгоритмов на графе
      • Топологическая сортировка (поиск цикла)
      • Минимальное остовное дерево
      • Алгоритм Дейкстры
      • Поиск максимального потока методом Эдмондса-Карпа
    При развитии программы будет расширен список возможных алгоритмов, появится возможность настройки внешнего вида программы.

    Программа.

    Исходный код.

  3. Редактор логических схем

    Автор: Алёна Иванова.

    Редактор логических схем позволяет создавать логические схемы с помощью элементов and, or, not, xor и проводов, редактировать и производить по ним вычисления.

    Основные функции:

    1. Создание новой логической схемы.
    2. Редактирование схемы.
    3. Сохранение схемы в xml-файл.
    4. Загрузка схемы из xml-файла.
    5. Проверка схемы на корректность и вывод списка ошибок.
    6. Вычисление по схеме при разных исходных данных.
    7. Пошаговое вычисление.

    Программа.

  4. GPopup

    Автор: Алексей Калюкин.

    WinPopup - cервис сообщений, в основе которого лежит нотифицирующий механизм, входящий в состав Microsoft Windows.

    GPopup - LAN мессенджер , разработанный для использования в одной локальной сети. Клиент использует для передачи сообщений протокол NetBios. Программа совместима с другими WinPopup мессенджерами.

    Основная функциональность:

    • Принимать/посылать личные и групповые сообщения
    • Список контактов
    • История сообщений для каждого контакта с возможностью поиска по ней
    • Проверка наличия пользователя в сети
    • Фильтрация сообщений по подстроке
    • Отображение сообщений в виде чата, основанного на HTML
    • Использование табов для каждого контакта или группы
    • Механизм плагинов

    Программа.

    Исходный код.

  5. UML Diagram Editor

    Автор: Никита Карузе.

    Редактор, в котором пользователю позволяется строить диаграммы состояний, сохранять их в XML-файлы с расширением (.umd), а также загружать построенные ранее.

    Для каждого состояния можно указать его название и краткое описание. Для каждого перехода - событие, вызвавшее этот переход; и сторожевое условие. Для каждого состояния определяется, является ли оно начальным или конечным.

    Программа.

  6. Измерение производительности программ

    Автор: Павел Козырев.

    Программа предназначена для измерения производительности программ, написанных на языке java. Для этого программа динамически модифицирует классы профилируемой программы, добавляя в её код свой, измеряющий производительность. За основу был взят проект "Java Interactive Profiler" ( http://jiprof.sourceforge.net), который после необходимых модификаций стал ядром системы. С помощью графического интерфейса можно запускать и останавливать профайлер, настраивать параметры профилирования, а так же просматривать и обрабатывать полученные данные.

    Основные возможности:

    • измерение времени работы и частоты вызовов отдельных методов
    • сбор и вывод информации о созданных в процессе работы объектах
    • отображение дерева вызовов
    • отображение списка всех вызванных методов
    • фильтрация результатоа во время профилирования и после
    • возможность сохранять полученные результаты

    Программа.

    Исходный код.

  7. UML Editor

    Автор: Александр Кошевой.

    Программа UML Editor предназначена для редактирования UML диаграмм. В настоящий момент поддерживается диаграмма вариантов использования.

    В данной версии реализованы следующие возможности:

    • добавление элементов диаграммы на рабочую область окна;
    • изменение положения и размеров добавленных элементов;
    • редактирование свойств элементов диаграммы, как в отдельной таблице свойств, так и непосредственно на рабочей области;
    • возможность отмены изменений на любом этапе редактирования;
    • сохранение и загрузка диаграммы из XML-файла.

    В случае дальнейшего развития программы возможно добавление:

    • новых диаграмм;
    • проверка диаграмм на ошибки;
    • экспорт диаграмм в java файл;
    • представление соединений в виде ломанных кривых с прямыми углами при вершинах.

    Программа.

    Исходный код.

  8. Jina

    Автор: Евгения Ксенофонтова.

    Продукт представляет собой Personal Task Manager (PTM). Приложение отображает список задач на специальной временной диаграмме, позволяющей визуально оценить общий объем и длительность задач.

    В данной версии программы реализованы следующие возможности:

    • Создание, удаление задачи и изменение ее параметров (с помощью диалога);
    • Сохранение задач в XML-файл при каждом изменении;
    • Изменение масштаба временной диаграммы (количества отображаемых дней), переключение между режимами «3 дня» и «Неделя»;
    • Перемещение по временной диаграмме на один день назад/вперед или сразу 3 или 7 дней в зависимости от масштаба;
    • Переход в сегодня (то есть к такому виду, когда текущий день находится в середине интервала отображаемых дат) специальной кнопкой. Границы «сегодня» выделены особым цветом, все, что за ним, – прошлое – «закрашено» серым.

    При первом запуске пользователь видит несколько типичных задач, созданных как пример для облегчения освоения программы. Масштаб («3 дня» или «Неделя») и диапазон дат, которые был установлены последними до закрытия, сохраняются и восстанавливаются.

    В программе используется компонент JCalendar (www.toedter.com/en/jcalendar/).

    Программа.

    Исходный код.

  9. StarBugs

    Автор: Алексей Помелов.

    StarBugs -- это многопользовательская логическая пошаговая стратегия.

    Программа.

    Исходный код.

  10. Редактор графов

    Автор: Дарья Строганова.

    Эта программа позволяет оперировать ориентированными графами и выполнять основные алгоритмы.

    Редактирование графов:

    • создание/удаление вершины/ребра
    • перемещение вершины/ребра
    • изменение веса ребра.

    Реализована матрица смежности:

    • отображение графа
    • создание/удаление ребер
    • изменение веса ребра

    Реализована поддержка undo/redo.

    Реализованы алгоритмы:

    • поиск в ширину
    • поиск в глубину
    • поиск кратчайших путей (алгоритм Дейкстры и алгоритм Беллмана-Форда)
    • топологическая сортировка
    • поиск компонент слабой связности
    • поиск максимального потока в подграфе (алгоритм Эдмондса-Карпа).

    Файлы программы сохраняются в виде xml-документов.

    Программа.

  11. ER Diagram Editor

    Автор: Максим Султаков.

    Модель "сущность-связь" (Entity-Relationship model) представляет собой высокоуровневую концептуальную модель данных. Она представляет собой набор концепций, которые описывают структуру базы данных и связанные с ней транзакции обновления и извлечения данных. Диаграмма ER - способ графического представления такой модели.

    Программа ER Diagram Editor позволяет:

    • создавать сущности
    • создавать, удалять и редактировать их атрибуты
    • создавать, удалять и редактировать связи двух видов: с использованием внешнего ключа (Foreign Key) и без него
    • сохранять и загружать диаграмму в формате xml

    Программа.

    Исходный код.

  12. Plain SVG

    Автор: Алексей Фёдоров.

    Plain SVG - это достаточно простой редактор векторной графики, который позволяет работать с несложными векторными изображениями в формате SVG (Tiny SVG).

    Scalable Vector Graphics (SVG) - формат графики, базирующийся на XML и разработанный W3C (http://www.w3.org). Изображение строится поэлементно. На элементах задан порядок. Элемент с более высоким порядком в случае пересечения элемента с более низким порядком отображается поверх него.

    Гарантируется корректное сохранение изображения в формате SVG и корректная работа с изображениями, ранее созданными с помощью этого редактора.

    Более подробную информацию можно найти на сайте W3C SVG (http://www.w3.org/Graphics/SVG/).

    Программа.

    Исходный код.

  13. JUmlEditor

    Автор: Дмитрий Цыганов.

    JUmlEditor является редактором UML схем. Поддерживается работа с двумя типами диаграмм: деятельности (Activity diagrams) и кооперации на уровне примеров (Instance-level Collaboration diagrams). Для диаграмм деятельности присутствует валидатор модели. При хранении используется формат XML.

    При разработке использованы оконные библиотеки SWT и JFace.

    Программа.

    Исходный код.

    Примеры.