Программы, написанные в рамках курса Software Design
2007 год, 2 группа
- Форматирование-По-Примеру
- Graph Editor
- Редактор логических схем
- GPopup
- UML Diagram Editor
- Измерение производительности программ
- UML Editor
- Jina
- StarBugs
- Редактор графов
- ER Diagram Editor
- Plain SVG
- JUmlEditor
-
Форматирование-По-Примеру
Автор: Даниил Гительсон.
Данная библиотека предназначена для проверки кода (на произвольном языке программирования) на соответствие заданным стилям кодирования с выдачей сообщений о несоответствии, а также форматирования кода по заданным правилам. При этом источником правил служит другой "эталонный" код, из которого и извлекаются правила для дальнейшего использования. Возможность форматировать код на произвольном языке программирования достигается тем, что в состав библиотеки входит утилита, которая умеет по описанию грамматики (в нотации Бэкуса-Наура) генерировать код парсера (на Java), который в дальнейшем используется для форматирования программ на этом языке.
В качестве демонстрации возможностей библиотеки прилагается программа, использующая данную библиотеку и форматирующая подмножество языка Pascal.
-
Graph Editor
Автор: Владимир Иванков.
Программа предназначена для работы с основными типами графов (ориентированными, неориентированными, взвешенными и невзвешенными).
В данной версии программы реализованы следующие возможности:
- сохранение графа в файл и загрузка из файла (граф хранится в формате xml)
- создание нового графа
- редактирование внешнего вида графа (добавление и удаление вершин и ребер, изменение веса ребра, перенос ребра)
- отмена/повтор последних действий
- конвертация различных типов друг в друга
- различные укладки графа (круговая, топологическая, в виде минимального остовного дерева)
- реализованы несколько алгоритмов на графе
- Топологическая сортировка (поиск цикла)
- Минимальное остовное дерево
- Алгоритм Дейкстры
- Поиск максимального потока методом Эдмондса-Карпа
-
Редактор логических схем
Автор: Алёна Иванова.
Редактор логических схем позволяет создавать логические схемы с помощью элементов and, or, not, xor и проводов, редактировать и производить по ним вычисления.
Основные функции:
- Создание новой логической схемы.
- Редактирование схемы.
- Сохранение схемы в xml-файл.
- Загрузка схемы из xml-файла.
- Проверка схемы на корректность и вывод списка ошибок.
- Вычисление по схеме при разных исходных данных.
- Пошаговое вычисление.
-
GPopup
Автор: Алексей Калюкин.
WinPopup - cервис сообщений, в основе которого лежит нотифицирующий механизм, входящий в состав Microsoft Windows.
GPopup - LAN мессенджер , разработанный для использования в одной локальной сети. Клиент использует для передачи сообщений протокол NetBios. Программа совместима с другими WinPopup мессенджерами.
Основная функциональность:
- Принимать/посылать личные и групповые сообщения
- Список контактов
- История сообщений для каждого контакта с возможностью поиска по ней
- Проверка наличия пользователя в сети
- Фильтрация сообщений по подстроке
- Отображение сообщений в виде чата, основанного на HTML
- Использование табов для каждого контакта или группы
- Механизм плагинов
-
UML Diagram Editor
Автор: Никита Карузе.
Редактор, в котором пользователю позволяется строить диаграммы состояний, сохранять их в XML-файлы с расширением (.umd), а также загружать построенные ранее.
Для каждого состояния можно указать его название и краткое описание. Для каждого перехода - событие, вызвавшее этот переход; и сторожевое условие. Для каждого состояния определяется, является ли оно начальным или конечным.
-
Измерение производительности программ
Автор: Павел Козырев.
Программа предназначена для измерения производительности программ, написанных на языке java. Для этого программа динамически модифицирует классы профилируемой программы, добавляя в её код свой, измеряющий производительность. За основу был взят проект "Java Interactive Profiler" ( http://jiprof.sourceforge.net), который после необходимых модификаций стал ядром системы. С помощью графического интерфейса можно запускать и останавливать профайлер, настраивать параметры профилирования, а так же просматривать и обрабатывать полученные данные.
Основные возможности:
- измерение времени работы и частоты вызовов отдельных методов
- сбор и вывод информации о созданных в процессе работы объектах
- отображение дерева вызовов
- отображение списка всех вызванных методов
- фильтрация результатоа во время профилирования и после
- возможность сохранять полученные результаты
-
UML Editor
Автор: Александр Кошевой.
Программа UML Editor предназначена для редактирования UML диаграмм. В настоящий момент поддерживается диаграмма вариантов использования.
В данной версии реализованы следующие возможности:
- добавление элементов диаграммы на рабочую область окна;
- изменение положения и размеров добавленных элементов;
- редактирование свойств элементов диаграммы, как в отдельной таблице свойств, так и непосредственно на рабочей области;
- возможность отмены изменений на любом этапе редактирования;
- сохранение и загрузка диаграммы из XML-файла.
В случае дальнейшего развития программы возможно добавление:
- новых диаграмм;
- проверка диаграмм на ошибки;
- экспорт диаграмм в java файл;
- представление соединений в виде ломанных кривых с прямыми углами при вершинах.
-
Jina
Автор: Евгения Ксенофонтова.
Продукт представляет собой Personal Task Manager (PTM). Приложение отображает список задач на специальной временной диаграмме, позволяющей визуально оценить общий объем и длительность задач.
В данной версии программы реализованы следующие возможности:
- Создание, удаление задачи и изменение ее параметров (с помощью диалога);
- Сохранение задач в XML-файл при каждом изменении;
- Изменение масштаба временной диаграммы (количества отображаемых дней), переключение между режимами «3 дня» и «Неделя»;
- Перемещение по временной диаграмме на один день назад/вперед или сразу 3 или 7 дней в зависимости от масштаба;
- Переход в сегодня (то есть к такому виду, когда текущий день находится в середине интервала отображаемых дат) специальной кнопкой. Границы «сегодня» выделены особым цветом, все, что за ним, – прошлое – «закрашено» серым.
При первом запуске пользователь видит несколько типичных задач, созданных как пример для облегчения освоения программы. Масштаб («3 дня» или «Неделя») и диапазон дат, которые был установлены последними до закрытия, сохраняются и восстанавливаются.
В программе используется компонент JCalendar (www.toedter.com/en/jcalendar/).
-
StarBugs
Автор: Алексей Помелов.
StarBugs -- это многопользовательская логическая пошаговая стратегия.
-
Редактор графов
Автор: Дарья Строганова.
Эта программа позволяет оперировать ориентированными графами и выполнять основные алгоритмы.
Редактирование графов:
- создание/удаление вершины/ребра
- перемещение вершины/ребра
- изменение веса ребра.
Реализована матрица смежности:
- отображение графа
- создание/удаление ребер
- изменение веса ребра
Реализована поддержка undo/redo.
Реализованы алгоритмы:
- поиск в ширину
- поиск в глубину
- поиск кратчайших путей (алгоритм Дейкстры и алгоритм Беллмана-Форда)
- топологическая сортировка
- поиск компонент слабой связности
- поиск максимального потока в подграфе (алгоритм Эдмондса-Карпа).
Файлы программы сохраняются в виде xml-документов.
-
ER Diagram Editor
Автор: Максим Султаков.
Модель "сущность-связь" (Entity-Relationship model) представляет собой высокоуровневую концептуальную модель данных. Она представляет собой набор концепций, которые описывают структуру базы данных и связанные с ней транзакции обновления и извлечения данных. Диаграмма ER - способ графического представления такой модели.
Программа ER Diagram Editor позволяет:
- создавать сущности
- создавать, удалять и редактировать их атрибуты
- создавать, удалять и редактировать связи двух видов: с использованием внешнего ключа (Foreign Key) и без него
- сохранять и загружать диаграмму в формате xml
-
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/).
-
JUmlEditor
Автор: Дмитрий Цыганов.
JUmlEditor является редактором UML схем. Поддерживается работа с двумя типами диаграмм: деятельности (Activity diagrams) и кооперации на уровне примеров (Instance-level Collaboration diagrams). Для диаграмм деятельности присутствует валидатор модели. При хранении используется формат XML.
При разработке использованы оконные библиотеки SWT и JFace.