Создание программы-редактора схем
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Различные схемы являются неотъемлемой частью любой информационной системы или программного продукта. Существует множество схем создающийся по различным стандартам, в частности стандарт ГОСТ 19.701 различает следующие схемы:
1. Схема данных.
2. Схема программы.
3. Схема работы системы.
4. Схема взаимодействия программ.
5. Схема ресурсов системы.
Каждая из этих схем имеет свои особенности, к примеру, схема данных обязательно начинается и заканчивается символом данных. Проектирование схем «от руки» довольно долгий и трудоёмкий процесс, для ускорения создания схем были созданы специальные программы-редакторы схем. Программа-редактор схем, это программное обеспечение, позволяющее:
1. Создавать различные типы схем
2. Редактировать схемы
3. Распечатывать схемы
4.Находить в схеме ошибки и неточности
Таким
образом, современные программы-редакторы
схем способны помочь даже непрофессионалу
за достаточно кроткое время создать качественную
схему программного продукта.
1 Аналитический обзор
существующих программ-редакторов
схем
1.1 Microsoft Office Visio 2007
Microsoft Office Visio 2007 — программа построения чертежей и диаграмм, помогающая специалистам сферы ИТ и сферы бизнеса визуализировать, исследовать и распространять сложную информацию[1]. Трудный для понимания текст и таблицы можно представить в виде простых и наглядных диаграмм Visio. Вместо статичных рисунков пользователи создают тесно связанные с данными диаграммы Visio, которые отображают данные, легко обновляются и позволяют заметно повысить производительность работы. Широкий спектр диаграмм Office Visio 2007 помогает лучше понять информацию об организационных системах, ресурсах и процессах всего предприятия, принимать решения на основе этой информации и обмениваться ею.
Microsoft Office Visio 2007 обладает следующими преимуществами:
- Визуализация, исследование и публикация систем, ресурсов, процессов и связанных с ними данных[2]. Широкий выбор типов схем Office Visio 2007 обеспечивает эффективную визуализацию, исследование и публикацию процессов, ресурсов, систем и связанных с ними данных.
- Визуализация сложной информации путем вывода данных в схемах и выполнение соответствующих действий. Визуализация данных в диаграммах позволяет лучше понять суть данных и выполнять необходимые действия в зависимости от результатов анализа. Используя средство Microsoft Office Visio 2007 «Рисунки, связанные с данными», можно изображать данные в любой диаграмме в виде текста, элементов данных, значков и цветовых обозначений.
- Быстрое создание диаграмм благодаря автоматическому подключению к фигурам Visio. В Office Visio 2007 имеется новая функция автоматического соединения, которая может автоматически подключать, размещать и выравнивать фигуры на схеме, облегчая работу пользователя. Достаточно перетащить фигуру на страницу документа и расположить ее над одной из синих стрелок, которые находятся над фигурой, уже размещенной на странице.
- Представление комплексных данных с использованием новых шаблонов и фигур. представления данных благодаря новым и усовершенствованным шаблонам и фигурам. Например, в выпуске Office Visio Профессиональный 2007 можно составлять схемы процессов ИТ-служб с помощью нового шаблона ITIL (Information Technology Infrastructure Library), создавать диаграммы на основе экономичной методологии и визуализировать более эффективные производственные процессы при помощи нового шаблона схемы потока создания стоимости.
- Повышение производительности благодаря интеграции схем с данными из разных источников. Источники комплексных визуальных, текстовых и числовых данных. Диаграммы, подключенные к данным, обеспечивают визуальный контекст для данных и дают полное представление о системе или процессе. Связь схем с данными из различных источников стала проще благодаря функции связывания данных в Office Visio Профессиональный 2007. Привязка данных к фигурам диаграммы выполняется с помощью нового мастера автоматического связывания.
- Исследование данных для отслеживания тенденций, выявления проблем и пометки исключений с помощью сводных схем. Шаблон сводной схемы позволяет наглядно представлять и анализировать бизнес-данные в Office Visio Профессиональный 2007 в иерархической форме в виде групп и итогов данных. Имеется возможность детализировать комплексные данные, отображать информацию с помощью средства «Рисунки, связанные с данными», динамически создавать различные представления данных и лучше понимать сложную информацию. Сводные схемы можно вставлять в любую диаграмму Visio, чтобы получать доступ к показателям и отчетам, которые помогут отслеживать текущее состояние процесса или системы. Сводные схемы создаются путем подключения к различным источникам данных, таким как Microsoft Office SharePoint Server 2007, Microsoft Office Project 2007 и Microsoft Office Excel 2007. Возможность создания наглядных отчетов программ Office SharePoint Server 2007 и Office Project 2007 в форме сводной схемы повышает эффективность контроля ресурсов и проектов, управляемых с помощью этих программ.
- Эффективное распространение информации с помощью профессионально оформленных схем. Для создания диаграмм Visio профессионального качества достаточно выбрать цвет или эффект (текст, заливку, тень, линии, формат соединителей) для всей диаграммы с использованием новой функции «Тема». На выбор в Visio предлагается ряд встроенных тем, но можно создавать и собственные темы. В Office Visio 2007 используются те же встроенные темы, что и в других программах системы Microsoft Office 2007.
1.2 Редактор блок-схем
Редактор блок-схем - специализированная программа, она предоставляет тот набор инструментов, который необходим именно для создания блок-схем, что является существенным аргументом в пользу применения данной программы, а не использования графических редакторов. Набор дополнительных опций позволяет оптимизировать процесс разработки блок-схем и дальнейшего преобразования их в процедуры и функции языка программирования.
Системные требования
Останавливаясь подробнее на
опциях редактора, следует
1. Использование шаблонов при создании блок-схем.
2. Импорт процедур и функций языков программирования. Редактор предоставляет возможность импортировать процедуры и функции, реализованные на каком-нибудь из известных языков программирования. Эта опция полезна для того, чтобы лучше разобраться в структуре алгоритма, написанного на языке программирования.
3. Экспорт блок-схем в процедуры и функции языков программирования.
4. Экспорт блок-схем в различные графические форматы.
1.3 FCEditor
Основанная идея этой программы- изобразить блок-схему из блоков с произвольным по величине (имеется в виду текст) содержанием. В большинстве редакторов, если и имеется возможность автоматически менять размер компонентов, то все стрелки и переходы все равно надо расставлять вручную. В FCEditor это делается автоматически. Возможности FCEditor:
1. импорт схемы из программного кода;
2. автоматическое выравнивание блоков и стрелок;
3. возможность изменения типа блоков;
4. копирование и вставка блоков схемы;
5. отдельная схема для каждой процедуры;
6. возможность вставки разрывов страниц;
7. экспорт схемы в графический файл;
8. экспорт схемы в код.
Таким образом, несмотря на небольшой вес FCEditor является достаточно многофункциональной программой-редактором схем.
1.4 Вывод по аналитическому обзору
Рассмотрев существующие программы-редакторы схем, мы можем их обобщить, каждая из них:
1. Может использовать шаблоны для создания схем.
2. Может экспортировать созданную схему в различные форматы.
3. Обладает автоматической «подгонкой» блоков и стрелок.
4. Может создавать разные типы схем.
Однако у проанализированных программ-редакторов схем есть недостатки- они неприспособленны для российский графических стандартов. Также в FCEditor и «Редактор блок-схем» нет встроенного анализатора ошибок, который мог бы проверять смысловые неточности при создании схемы.
Проектируемая нами программа должна обладать положительными свойствами, описанными выше, а также должна иметь возможность строить схемы по российским стандартам, например ГОСТ 19.701. В создаваемую программу должен быть включён анализатор смысловых ошибок.
2 Выбор технических средств
Программа написана на базе .NET Framework 3.5
Технические средства выбираем исходя из системных требований .NET Framework 3.5
Операционные системы: Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP
Процессор: Pentium с тактовой частотой 400 MГц или аналогичный процессор (рекомендуется Pentium с тактовой частотой 1ГГц или аналогичный процессор)
ОЗУ: не менее 96 МБ (рекомендуется 256 МБ)
Жесткий диск: может потребоваться до 500 МБ доступного дискового пространства для установки .NET Framework 3.5 + 1мб дискового пространства для программы Редактор Схем.
Клавиатура и мышь: стандартные
Экран:
разрешение 800 x 600, 256 цветов (рекомендуется
разрешение 1024 x 768, 32-разрядный)
3 Диаграммы
3.1 Функциональная модель
Методология функционального моделирования IDEF0 является достаточно простым инструментом, который позволяет разработчикам корпоративных информационных систем изучить сферу деятельности заказчика и решать задачи по повышению эффективности этой деятельности[3].
Применение функционального моделирования позволяет решать не только технические проблемы заказчика, связанные с информационными технологиями, но также проблемы, имеющие отношение к сфере деятельности заказчика. Это позволяет превратить проект информационной системы из “пачки бумаги”, за которую заказчик не хочет платить, в услугу, которая может принести заказчику дополнительный эффект, сопоставимый с последующей автоматизацией.
Диаграммы декомпозиции используются для моделирования типовой ситуации, когда любое действие, операция, функция могут быть разбиты (декомпозированы) на более простые действия, операции, функции. Представляя функции графически, в виде блоков, можно как бы заглянуть внутрь блока и детально рассмотреть ее структуру и состав.
В нашем случае имеется 2 уровня декомпозиции, в которых более подробно рассмотрен процесс создания блок-схемы, они представлены ниже
Уровень А-0 диаграммы IDEF0 представлен на рис. 3.1.
Рисунок.
3.1 – Уровень А-0 IDEF0-диаграммы
Уровень А0 диаграммы IDEF0 представлен на рис. 3.2.
Рисунок
3.2 – Уровень А0 IDEF0-диаграммы
Уровень А1 диаграммы IDEF0 представлен на рис. 3.3.
Рисунок
3.3 – Уровень А1 IDEF0-диаграммы
Уровень А2 диаграммы IDEF0 представлен на рис. 3.4.
Рисунок
3.4 – Уровень А2 IDEF0-диаграммы
Уровень А3 диаграммы IDEF0 представлен на рис. 3.5.
Рисунок 3.5 – Уровень А3 IDEF0-диаграммы
В данной системе диаграммы IDEF0 помогли выявить основные функции системы и нормативные документы с которыми нужно согласовываться при проектировании программы, в частности было выявлено что схемы должны соответствовать ГОСТам, и исходя из этого вывода все блоки программы были разработаны в соответствии с этими ГОСТами. Было выявлено что схема определенного типа может состоять только из некоторой совокупности блоков. Для этого блоки были сгруппированы по категориям.
В ходе проектирования схемы IDEF0 были выявлены основные функции будущей системы, которые были впоследствии реализованы в программе. Функциональность программы хорошо показывает её интерфейс. Ниже будут представлены элементы интерфейса программы, с описанием функции в схеме IDEF0, которую они отображают.
Функция «Определить вид схемы» была реализована с помощью выпадающего списка на главное форме приложение под названием «Тип схемы» (рис. 3.6):
Функция «Создать блок в схеме» была реализована с помощью панели с различными блоками в левой части главной формы приложения (рис 3.6), а также с помощью некоторых выбираемых опций в дочерней форме «Свойства элемента» (рис 3.7), которые позволяют выбрать толщину линий блока, а также удалить блок.
Функция «Создать связи между блоками» была реализована с помощью панели с различными видами связей-стрелок в нижней левой части формы (рис 3.6), а также с помощью некоторых выбираемых опций в дочерней форме «Свойства элемента» (рис 3.7), которые позволяют сделать наконечники в начали и\или в конце стрелки, сделать стрелку пунктирной, а также удалить её.
Функция «Отредактировать подписи к блокам и связям» была реализована с помощью полей с надписями на дочерних формах «Свойства элемента» (рис 3.7) которые появляются, если нажать правой кнопкой на нужный элемент.
Функция «Запустить проверку ошибок» была реализована с помощью кнопки «Проверить» в верхней части главной формы приложения, список найденных ошибок отображается в нижней части главной формы (рис 3.6).
Рисунок
3.6 – Интерфейс программы
Рисунок 3.7 – Интерфейс программы
3.2 Функционально-стоимостной анализ IDEF0-схемы
Для расчета стоимости функции (СФ) необходимо наличие следующей информации:
1. стоимость функции (СФ), – денежный эквивалент/время;
2. стоимость механизма (СМ), – денежный эквивалент/время;
3. время выполнения функции (ВФ) – время;
4. периодичность выполнения функции (ПФ) – раз/время;
5. стоимость управления (СУ) – денежный эквивалент/время;
6. периодичность управления (ПУ) – раз/время.
Расчет производиться по следующей формуле
СФ = СМ * ВФ * ПФ + СУ * ПУ * ВФ.
Управление у нас является отдельным блоком. Его стоимость посчитаем отдельно. Поэтому расчет будем проводить по формуле СФ = СМ * ВФ * ПФ.
0. Спроектировать схему программы:
2210+9600+2880=14690 р в месяц
1. Подготовить условия для создания схемы:
240+1920+50= 2210 р в месяц
11. Согласовать с заказчиком условия создания схемы:
60 р/час*2часа* 2раз/месяц=240 р в месяц
12. Найти программные средства для создания схемы:
120р/час*2 дня*1 раз/месяц=1920 р в месяц
13. Определить вид схемы:
50р/час*1 час*1 раз/месяц= 50 р в месяц
2. Разработать структуру схемы:
120р/час*2 недели *1 раз/месяц= 9600 р в месяц
3. Редактировать схему:
120р/час*1 день*3 раз/месяц=2880
р в месяц
Функционально-
По существу, метод ФСА работает по следующему алгоритму:
- определяется последовательность функций, необходимых для производства товара или услуги;
- для каждой функции определяются полные годовые затраты и количество рабочих часов;
- для каждой функции на основе оценок из пункта 2 определяется количественная характеристика источника издержек;
- после того как для всех функций будут определены их источники издержек, проводится окончательный расчет затрат на производство конкретного продукта или услуги.
Преимущества ФСА: более точное знание стоимости продукции дает возможность принимать верные стратегические решения и большая ясность в отношении выполняемых функций.
Следующим этапом проектирования системы является построение DFD диаграммы.
3.3 Диаграмма потоков данных
DFD
позволяет уже на стадии
В
данной системе с помощью DFD диаграммы
были выявлены связи между некоторыми
классами. Было выявлено, что схема доступная
для редактирования может проверяться
на любом этапе ее проектирования. Таким
образом, процедура проверки корректности
схем была встроена в класс окна ответственного
за редактирование схемы. Было выявлено,
что схемы нужно сохранять для последующего
редактирования или в файл .jpg. Таким образом,
мы выяснили, что вся схема должна быть
сохранена в формат, отрывая который можно
восстановить схему полностью. На основе
полученного требования было принято
решение использовать сериализацию объектов,
т.е. сохранения всех объектов схемы и
их состояний на жесткий диск. Для этого
был выбран класс XmlSerializer, который позволяет
сохранять состояние объектов в формате
XML и затем восстанавливать объекты из
этого формата. Для сохранения в .jpg была
использована стандартная процедура сохранения
изображения в файл.
DFD диаграмма представлена на рис. 3.8.
Рисунок
3.8 – Уровень А0 DFD-диаграммы.
Существует так же альтернативный способ выявления требуемой функциональности системы. Выявить функциональность системы можно с помощью диаграммы прецедентов.
3.4 Диаграмма прецедентов
Диаграммы прецедентов представляют собой один из пяти типов диаграмм, применяемых в UML для моделирования динамических аспектов системы[4]. Диаграммы прецедентов играют основную роль в моделировании поведения системы, подсистемы или класса. Каждая такая диаграмма показывает множество прецедентов, актеров и отношения между ними.
Диаграммы прецедентов применяются для моделирования вида системы с точки зрения прецедентов (или вариантов использования). Чаще всего это предполагает моделирование контекста системы, подсистемы или класса либо моделирование требований, предъявляемых к поведению указанных элементов.
Диаграммы
прецедентов имеют большое
Диаграмма прецедентов представлена на рис. 3.9.
Рисунок 3.9 – Диаграмма прецедентов
В данной системе с помощью диаграммы прецедентов были выявлены основные функции, которые должна выполнять система. Был получен список функций, которые необходимо реализовать с системе.
Если мы сравним
результат применения диаграммы
прецедентов с результатом
2.5 Диаграмма последовательностей
Диаграмма взаимодействия отражает поток событий, происходящих в рамках варианта использования. В верхней части диаграммы показаны действующие лица и объекты, требуемые системе для выполнения варианта использования[5].Стрелки соответствуют сообщениям, передаваемым между действующим лицом и объектом или между объектами для выполнения требуемых функций, связь между ними изображена во времени, т.е. последовательно. Следует отметить, что на диаграмме взаимодействия показаны именно объекты, а не классы. Классы представляют собой типы объектов.
Итак, диаграммы взаимодействия строятся в соответствии с диаграммой вариантов использования, т.е. для каждого варианта использования строится своя диаграмма взаимодействия, в которой иллюстрируется последовательность действий, реализующих вариант использования.
Диаграмма
последовательностей
Для
данной системы диаграмма
Классы,
к которым принадлежат объекты,
взаимодействующие в диаграмме
последовательностей можно
3.6 Диаграмма классов
Диаграмма классов отражает взаимодействие между классами системы. Классы можно рассматривать как типы объектов[5]. Классы содержат данные и действия, влияющие на эти данные. На диаграмме изображают связи между классами, реализующие варианты использования. Каждый класс на диаграмме изображается в виде прямоугольника, в котором указывают имя класса, его атрибуты (некоторая информация, характеризующая класс) и операции (действия), выполняемые классом.
Диаграмма классов приведена на рис. 3.11.
В данной диаграмме классов не отображены все блоки присутствующие в программе. Класс «Блок определенного типа» представляет любой блок существующий в программе, т.к. все блоки отличаются друг от друга только процедурой отрисовки а все остальные поля и методы они копируют у порождающего их класса «Шаблон блока».
Диаграмму классов следует создавать, чтобы показать взаимодействующие классы, выделить детали системы, можно также выявить классы, не взаимодействующие друг с другом.
Ниже приведены интерфейсы классов представленных на диаграмме классов:
Интерфейс класса Конфигурация Схемы
public class Configuration
{
public List<BlockTemplate> shapes;
public List<ArrowTemplate> arrows;
public void Save(string fileName);
public void Open(string fileName);
public void Restore();
}