Программно-аппаратная система генерации сигналов с заданными параметрами

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,08 Мб
  • Опубликовано:
    2012-06-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программно-аппаратная система генерации сигналов с заданными параметрами

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1 ПОСТАНОВКА ЗАДАЧИ

.1 Основание для создания

.2 Характеристика объектов проектирования

.3 Цель и назначение

.4 Требования к модулю интерфейсной части системы

.5 Требования к аппаратной части комплекса

2 ОБЗОР ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ ПО ТЕМЕ ПРОЕКТА

.1 USB-генераторы

.2 ArbExpress

.3 Среда разработки LabVIEW

.4 Intel High Definition Audio

.5 Simulink

.6 Заключение

3 СИСТЕМНЫЙ АНАЛИЗ ПРОЕКТА

4 ВАРИАНТНЫЙ АНАЛИЗ ПРОЕКТА

.1 Выбор звуковой карты

.2 Выбор библиотеки для создания графического интерфейса

5 ОПИСАНИЕ ПРОГРАММНОЙ ЧАСТИ СИСТЕМЫ

.1 Общие сведения

.2 Функциональное назначение

.3 Описание логической структуры

.4 Используемые технические средства

.5 Вызов и загрузка

.6 Входные данные

.7 Выходные данные

.8 Текст программы

6 МЕТОДИКА ОТЛАДКИ И ТЕСТИРОВАНИЯ

.1 Объект испытаний   45

.2 Цель испытаний       45

.3 Требования к программе 45

.4 Требования к программной документации 45

.5 Средства и порядок испытаний 45

.6 Методы испытаний  45

7 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ   51

.1 Назначение программы    51

.2 Условия выполнения программы       51

.3 Выполнение программы  51

.4 Сообщения оператору      54

8 ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ      55

.1 Маркетинговые исследования   55

.2 Определение затрат на проектирование продукта        61

.3 Заключение     84

9 ОХРАНА ТРУДА     85

.1 Анализ условий труда разработчика проектируемого продукта   85

.2 Расчет защитного заземления    93

.3 Заключение     98

10 БЕЗОПАСНОСТЬ В ЧРЕЗВЫЧАЙНЫХ СИТУАЦИЯХ      99

.1 Вводная часть 99

.2 Расчетная часть       102

.3 Мероприятия по защите сотрудников лаборатории     104

.4 Заключение     105

ЗАКЛЮЧЕНИЕ 106

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ  108

ПРИЛОЖЕНИЕ А       110

Приложение А1  110

Приложение А2  112

Приложение А3  113

Приложение А4

Приложение А5

Приложение А6

Приложение А7

Приложение А8

Приложение А9

Приложение А10

Приложение А11

ПРИЛОЖЕНИЕ Б

ПРИЛОЖЕНИЕ В

ВВЕДЕНИЕ


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

Актуальность разработки генератора сигналов заданной формы заключается в том, что в настоящее время ощущается острый дефицит программно-аппаратных систем, способных генерировать сигнал с заданными параметрами. Приборы иностранного производства стоят чрезвычайно дорого. Как показал анализ предметной области, для большинства приложений в научной, учебной и производственной сфере достаточно простейшего генератора, способного синтезировать сигналы в диапазоне частот от 0 до 44 кГц. Этот генератор можно реализовать на основе «встроенной» звуковой карты, входящей в состав любой современной ЭВМ.  Существуют приложения с существенно ограниченными параметрами генерации сигнала. Как показала практика, просто синусоидального не достаточно, поэтому целесообразно добавить возможность генерировать сигналы разной формы в данный проект.

В первом разделе пояснительной записки рассмотрена развернутая постановка задачи. Во втором разделе представлен обзор литературных источников. Третий раздел посвящается вопросам системного анализа структуры системы: производится декомпозиция системы на подсистемы, определяются связи между модулями. В четвертом разделе производится вариантный анализ элементов системы: выполняется выбор звуковой карты и библиотеки для создания графического интерфейса. В пятом разделе рассматривается программное обеспечение системы: производится описание системы, реализована структура программой части, определены форматы данных, разработана спецификация фрагментов системы и приведен текст программы. В шестом разделе рассматривается методика отладки и тестирования. Седьмой раздел является руководством пользователя. В нем приводится общее понятие о программной системе, объясняется, каким образом требуется пользоваться программой и какие функциями она обладает. В разделах восемь, девять и десять являются разделами технико-экономического обоснования, охраны труда и безопасности в чрезвычайных ситуация, соответственно.

1 ПОСТАНОВКА ЗАДАЧИ

 

1.1 Основание для создания

Основанием для проведения работ по созданию системы является приказ об утверждении тем дипломного проектирования  № 178-П от 06 апреля 2012 года по Севастопольскому Национальному техническому университету. Финансирование работ не осуществляется.

.2 Характеристика объектов проектирования

Требуется разработать систему генерации аналоговых сигналов с заданными параметрами. Сигнал (в теории информации и связи) - материальный носитель информации, используемый для передачи сообщений в системе связи. Сигналом может быть любой физический процесс, параметры которого изменяются во времени.

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

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

Параметрами сигнала являются: форма (прямоугольник, синусоида, треугольник), частота, амплитуда, скважность для  прямоугольных импульсов. Диапазон частот 100 Гц - 40 кГц. Амплитуда - ±5В. Количество уровней квантования - 256. Шаг дискретизации по частоте - 100 Гц. ПЭВМ Pentium IV или совместимая (рисунок 1.1).

Рисунок 1.1 - Сигнал и его параметры

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

 

.3 Цель и назначение


Целью создания системы является разработка программно-аппаратного комплекса на базе ПЭВМ типа Pentium IV, способного формировать сигнал с заданными параметрами. Данный комплекс может быть использован для тестирования работоспособности радиоэлектронных и акустических устройств, управления промышленными системами (например, системой промывки инжекторов в автомобильных мастерских), а также в учебном процессе СевНТУ.

Создаваемая система ориентирована на частных лиц, занимающихся диагностикой радиоэлектронных систем, ремонтом автомобильных двигателей и электроники, а также учебный процесс в технических ВУЗах. При этом, предполагается, что пользователь системы уже имеет ПЭВМ, оснащенную звуковой картой.

.4 Требования к модулю интерфейсной части системы

Результатом является ПС с визуальной оболочкой, куда будет выводиться схема генератора. Должна быть обеспеченна возможность выполнения множества команд по управлению. Кроме того, должна быть обеспечена возможность выполнять настройку и конфигурирование системы.

 

.5 Требования к техническому обеспечению

Программный комплекс должен быть реализован на персональной ЭВМ типа IBM PC.

Требования к программному обеспечению

В качестве операционной системы должна использоваться Windows XP и выше с установленным Microsoft .NET Framework 4 и выше.

Требования к аппаратной части комплекса

Требования к техническим характеристикам

Персональная ЭВМ должна быть оснащена звуковой картой.

Требования к надежности

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

Условия эксплуатации

Необходимо соблюдать правила эксплуатации ПЭВМ. В частности не допускать её перегрева.

2. ОБЗОР ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ ПО ТЕМЕ ПРОЕКТА


В настоящее время широкое применение все больше получают автоматизированные средства для диагностики и ремонта различного радиоэлектронного оборудования  на базе персональных компьютеров или «виртуальные приборы». Такие средства измерений не могут функционировать без внешнего компьютера, на котором установлено управляющее программное обеспечение и осуществляется отображение всей информации (но возможна автономная работа без ПК уже после загрузки данных). Такая техническая реализация «прибор и компьютер раздельно» позволяет создавать достаточно сложные средства диагностики и измерений при относительно невысокой цене.

Вопросы проектирования подобных программно-аппаратных систем рассмотрен в ряде литературных источников. В частности в [6] рассматриваются различные генераторы сигналов. В [16] проведен обзор USB-генераторов и их программного обеспечения.

Далее рассмотрим аналоги проектируемой системы.

 

2.1 USB-генераторы


Прежде всего, следует отметить ступенчатость в работе приложения «AWG-Navigator» при моделировании форм сигналов. Это следует из назначения генератора АКИП-3405 - формирование сложных сигналов произвольной формы с переменной частотой дискретизации. Здесь имеет смысл разъяснить основное различие при формировании выходного сигнала между "классическими" генераторами произвольной формы и генераторами АКИП-3403, АКИП-3404 и АКИП-3405. Для примера рассмотрим, как будут формировать несложный сигнал, состоящий из трех периодов синусоидального сигнала, двух периодов прямоугольного сигнала и одного периода треугольного сигнала два разных типа генераторов.

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

Генераторы АКИП-3403, АКИП-3404 и АКИП-3405 эту форму сигнала будут формировать по другому принципу. Форму сигнала, приведенную на рисунке 2, можно разложить на три элементарные формы сигнала - один период синусоиды, один период прямоугольника и один период треугольной формы сигнала. Далее необходимо воспроизвести один период синусоиды три раза, далее перейти к воспроизведению одного периода прямоугольного сигнала два раза, далее воспроизвести один период треугольного сигнала и начать заново цикл воспроизведения по "большому" кругу.

Очевидно, что для формирования этого не очень сложного сигнала генератор АКИП расходует в два раза меньше памяти, чем "классический" генератор сигналов произвольной формы. Если предположить, что сигнал, приведенный на рисунке 2, будет иметь не три периода синусоидального сигнала, а 96, то "классический" будет вынужден держать в памяти уже 99 периодов формы сигнала, а генератор АКИП все те же три, только синусоидальная форма сигнала будет воспроизведена по кругу 96 раз. Выигрыш в использовании памяти в этом случае уже составит 33 раза. Если предположить, что сигнал, приведенный на рисунке 2, будет иметь миллион периодов синусоидального сигнала, то может оказаться, что "классический" генератор из-за ограниченной длины памяти уже будет не в состоянии воспроизвести этот сигнал. А ресурсы памяти генератора АКИП останутся на прежнем уровне - три элементарные формы сигнала и воспроизвести сигнал по кругу миллион раз для первой формы, два раза для второй и один раз для третьей не составит никакого труда. При этом генератор АКИП будет иметь еще достаточно большой объем свободной памяти, в который могут быть записаны и воспроизведены и другие формы сигнала. Такой принцип использования памяти при формировании сигнала называется "сегментированной памятью". Он позволяет наиболее рационально использовать память генератора произвольной формы и даже при небольшом объеме памяти формировать достаточно сложные сигналы с большим периодом повторения.

Сложный сигнал, формируемый генератором АКИП-3405, в подавляющем большинстве случаев можно разложить на множество более простых составляющих, подобно кирпичикам, из которых и будет конструироваться выходной сигнал. Поскольку число составляющих «кирпичиков» весьма велико, то их комбинирование по различным законам приводит к практически бесконечному числу возможных выходных форм сигнала. Сама же «элементарная» форма сигнала имеет вполне определенную структуру и является одной из стандартных форм сигнала, задается математической формулой или загружается из внешнего файла.

 

.2 ArbExpress


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

В позиции Math меню есть команды математических операций и нормализации кривых. Команда Waveform Math позволяет выполнять ряд

математических операций с заданной формой сигнала и вспомогательной зависимостью. Это делается в открывающемся окне математических операций. Окно содержит три окна с графиками сигналов - основным, вспомогательным и результирующим. В левой части представлена зона Math Source выбора вспомогательного сигнала (из библиотеки или в виде скалярного сигнала), операций (сложения, вычитания, умножения и деления), окно задания опции работы только с областями сигнала, выделенными курсорами и, наконец, кнопки завершения работы OK, выхода.

 

.3 Среда разработки LabVIEW


Среда разработки лабораторных виртуальных приборов LabVIEW (Laboratory Virtual Instrument Engineering Workbench) представляет собой среду прикладного графического программирования, используемую в качестве стандартного инструмента для проведения измерений, анализа их данных и последующего управления приборами и исследуемыми объектами. LabVIEW может использоваться на компьютерах с операционными системами Windows, MacOS, Linux, Solaris и HP-UX. Компьютер, оснащенный измерительно-управляющей аппаратной частью и LabVIEW, позволяет полностью автоматизировать процесс физических исследований. Создание любой программы для достижения этих целей (виртуального прибора) в графической среде LabVIEW отличается большой простотой, поскольку исключает множество синтаксических деталей.

Традиционно для исследователя функции моделирования и экспериментирования разделены. Моделирование осуществляется в среде математических программных пакетов, а эксперименты поддерживаются другими программными средствами, что отнюдь не повышает эффективность исследований. Эффективность использования среды LabVIEW в научных исследованиях состоит в том, что, оставаясь в ее рамках, можно разрабатывать как математическую модель объекта, так и снабжать эту модель экспериментальными данными с помощью аппаратных средств ввода-вывода, сопряженных с реальным объектом.

2/4 Intel High Definition Audio

История возникновения спецификации High Definition Audio такова. С забвением DOS и приходом Windows закончилась эпоха разношерстных архитектур и прямого программирования звуковых карт. ОС Windows привела к появлению единых стандартов и единых API. В данном случае API (Application Programming Interface) - это единый стандартный интерфейс, служащий для высокоуровневого обращения к похожим функциям различных устройств, вместо низкоуровневого программирования под каждое устройство. В применении к звуку ОС Windows 3.11 содержала MME (Multi Media Extensions) в составе Windows API, с несколькими простейшими функциями по инициализации устройства, задания параметров работы, воспроизведения и записи звука. В 1996 году компания Microsoft выпустила довольно мощный DirectSound API с поддержкой многоканального звука, софтовой эмуляцией и возможностью аппаратного ускорения аудио функций, так что все звуковые карты начали обзаводиться DirectSound драйверами.Definition Audio (HD Audio) является преемником и эволюционным продолжением спецификации AC‘97. Новые кодеки имеют тот же форм-фактор и совместимы с HD Audio контроллерами снизу вверх. Вероятно, следуя принципу "пользователь покупает мегагерцы", в Intel выбрали название по основному отличительному признаку - поддержке звуковых форматов высокого разрешения, что совпадает с дословным переводом названия стандарта.Definition Audio кодек ALC880 поддерживает UAA (Universal Audio Architecture), имеет 4 стерео 24 бит ЦАП (SNR >100 дБA), три стерео 20 бит АЦП (SNR >85 дБA) предназначен для высококачественных мультимедиа-компьютеров. ЦАПы имеют интегрированную защиту контента от Realtek для поддержки DVD-Audio. Три стерео микрофонных входа поддерживают микрофонный массив с технологиями Acoustic Echo Cancellation (AEC), Beam Forming (BF) и Noise Suppression (NS). Входы и выходы поддерживают авто-распознавание благодаря impedance sensing и jack detect. Усилители на наушники интегрированы в каждом аналоговом выходе. Все аналоговые входы/выходы переназначаемы или автоматически подстраиваются в зависимости от подключенного устройства (Universal Audio Jack). ALC880 поддерживает 32 бит 96 кГц S/PDIF вход и выход. ALC880 поддерживает host/soft контроллер чипсета Intel ICH6, а также любой HDA совместимый контроллер. Драйверами поддерживается EAX/Direct Sound 3D/I3DL2/A3D для поддержки в играх. Интересно, что опционально заявлено кодирование в Dolby® AC-3 для вывода цифрового звука на акустику с декодером или бытовой ресивер.

И по измерениям, и по слуховым тестам High Definition Audio кодек ALC880 оказался ощутимо лучше (RMAA "Очень хорошо"), чем АС'97 кодеки Sigmatel 9721 и ALC650 (RMAA "Хорошо"). Интегрированный звук на базе High Definition Audio играет лучше современного интегрированного АС'97-звука и звуковых карт 5-летней давности, и по качеству находится приблизительно на уровне карты Creative Audigy 3-летней давности, но пока не может приблизиться к современным звуковым картам класса Audigy2 и выше. Таким образом, мы становимся свидетелями эволюционного развития стандарта АС'97 с обновлённым названием High Definition Audio, чуть улучшенным звучанием в аппаратной части и поддержкой высоких форматов звука 24 бит 96-192 кГц, Правда, они не очень нужны пользователям low-end решений, поэтому мы намеренно не заостряем внимание читателей на такой поддержке. Из полезных возможностей остаются стандартные драйвера Universal Audio Architecture от Microsoft, а также Sensaura при установке драйверов от Realtek.

2.5 Simulink

- это графическая среда имитационного моделирования, позволяющая при помощи блок-диаграмм в виде направленных графов, строить динамические модели, включая дискретные, непрерывные и гибридные, нелинейные и разрывные системы. Интерактивная среда Simulink, позволяет использовать уже готовые библиотеки блоков для моделирования электросиловых, механических и гидравлических систем, а также применять развитый модельно-ориентированный подход при разработке систем управления, средств цифровой связи и устройств реального времени. Дополнительные пакеты расширения Simulink позволяют решать весь спектр задач от разработки концепции модели до тестирования, проверки, генерации кода и аппаратной реализации. Simulink интегрирован в среду MATLAB, что позволят использовать встроенные математические алгоритмы, мощные средства обработки данных и научную графику.

.6 Заключение

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

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

Имеется техническая возможность на базе стандартных решений, имеющихся в составе абсолютного большинства ПЭВМ, решить поставленную задачу. Ограничения: максимальная частота, амплитуда, уровень шума.

Рассмотрение реализации системы на базе стандартной аудиокарты и её составных частей, а также взаимодействие с программным обеспечением будут рассмотрены в следующих разделах.

3. СИСТЕМНЫЙ АНАЛИЗ ПРОЕКТА


Системный анализ - научный метод познания, представляющий собой последовательность действий по установлению структурных связей между переменными или элементами исследуемой системы. Опирается на комплекс общенаучных, экспериментальных, естественнонаучных, статистических, математических методов.

Ценность системного подхода состоит в том, что рассмотрение категорий системного анализа создает основу для логического и последовательного подхода к проблеме принятия решений. Эффективность решения проблем с помощью системного анализа определяется структурой решаемых проблем.

Принципы системного анализа - это некоторые положения общего характера, являющиеся обобщением опыта работы человека со сложными системами. Различные авторы излагают принципы с определенными отличиями, поскольку общепринятых формулировок на настоящее время нет. Однако, так или иначе все формулировки описывают одни и те же понятия.

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

Методика проведения системного анализа описана в методических указаниях [8].

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

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

Модели помогают:

проверить работоспособность разрабатываемой системы на ранних этапах ее разработки;

общаться с заказчиком системы, уточняя его требования к системе;

вносить (в случае необходимости) изменения в проект системы (как в начале ее проектирования, так и на других фазах ее жизненного цикла).

В основе метода системного анализа лежит принцип «черного ящика» (рисунок 3.1).  Его выходы определяются входами и  внутренним строением (состянием). В этом смысле говорят, что выход есть функция от входа и самого «черного ящика» Y=F(X,Z).

 

Рисунок 3.1 - Модель системы при использовании принципа конечной цели

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

Цель создаваемой системы - обеспечить анализ, обработки и генерацию сигналов с заданными параметрами.

Используя принцип единства, в программной системе выделяются подсистемы, каждая из которых выполняет некоторые функции проектируемой системы. Совокупность этих подсистем выполняет все функции системы. Отдельные подсистемы имеет смысл выделять для решения семантически слабо зависимых и достаточно крупных подзадач.

На основании функций проектируемой системы, представленных выше, в ней можно выделить следующие подсистемы:

подсистема, обеспечивающая доступ к компонентам;

дизайнер схем;

подсистема интерпретации;

подсистема взаимодействия с аппаратурой;

подсистема, обеспечивающая взаимодействие пользователем.

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

Для обеспечения этой функциональности используется шаблон  Model-View-ViewModel (рисунок 3.2).

Рисунок 3.2 - Шаблон  Model-View-ViewModel

Модульность - обязательный атрибут всех успешно работающих крупных систем.

С увеличением объема программы становится невозможным удерживать в памяти все детали. Естественным способом борьбы со сложностью любой задачи является ее разбиение на более простые и обозримые части.  Результатом применения принципа модульности является декомпозиция подсистем и системы в целом на главную программу, модули, библиотеки. Программная система достаточно децентрализована. Выделяются две автономные части - компоненты и интерфейс, которые полностью независимы. Это позволяет расширять функциональность программы без перекомпиляции программной системы.

Согласно принципу иерархии в сочетании с методологией объектно-ориентированного программирования, в проектируемой системе можно выделить следующую иерархию:

Рисунок 3.3 - Диаграмма классов

Функции системы в целом рассмотрены в связи с принципом конечной цели. Рассмотрим функции, входные и выходные данные выделенных подсистем. Функцией подсистемы интерфейса является осуществление обмена информацией с пользователями системы.

Рисунок 3.4 - Диаграмма вариантов использования

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

4. ВАРИАНТНЫЙ АНАЛИЗ ПРОЕКТА


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

Методика проведения вариантного анализа с использованием МАИ описана в методических указаниях [13].

Задачей вариантного анализа в данном проекте является выбор звуковой карты и библиотеки для создания графического интерфейса.

 

.1 Выбор звуковой карты


Выбор будем осуществлять методом анализа иерархий. Для этого необходимо определить цель, критерии и альтернативы. Целью в данном случае является выбор наиболее подходящей звуковой карты, альтернативами - несколько моделей, подходящих для решения данной задачи. Имеется следующий список альтернатив:

З1. ASUS Xonar D2;

З2. Creative SB Audigy SE;

З3. HD Audio.

Определим существенные для данного проекта характеристики, то есть критерии, на основании которых будет делаться выбор:

А1. Цена;

А2. Разрядность и максимальная частота;

А3. Уровень шума.

Представим иерархическое представление поставленной задачи (рисунок 4.1):

Рисунок 4.1 - Иерархичное представление поставленной задачи

Для построения матрицы парных сравнений элементов второго уровня иерархии используется таблица 4.1.

Таблица 4.1 - Шкала относительной важности

Интенсивность относительной важности

Определение

1

Равная важность

3

Незначительно важнее

5

Значительно важнее

7

Явно важнее

9

Абсолютное превосходство

2, 4, 6, 8

Промежуточные решения между двумя соседними суждениями.

Обратные величины



Парные суждения проводим в терминах доминирования одного критерия над другим. Эти суждения затем выражаем в целых числах, в соответствии с таблицей 4.1

Таблица 4.2 - Матрица парных сравнений


А1

А2

А3

А1

1

4

5

А2

1

2

А3

1


Расчет коэффициентов критерием для матрицы второго уровня приведен в приложении А1.

В результате расчетов получено, что ОС=2.16%. Так как ОС < 10%, то матрица  считается согласованной.

Построим матрицы парных сравнений третьего уровня.

Критерий А1 - Цена


Таблица 4.3 - Матрица парных сравнений альтернатив по критерию «Цена»

Цена

ASUS Xonar D2

Creative SB Audigy SE

HD Audio

ASUS Xonar D2

1

Цена

ASUS Xonar D2

Creative SB Audigy SE

HD Audio

Creative SB Audigy SE

1

HD Audio

1


Расчет коэффициентов по критерию приведен в приложении A2.

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

1.1.1    Критерий А2 - Разрядность и максимальная частота


Таблица 4.4 - Матрица парных сравнений альтернатив по критерию «Разрядность и максимальная частота»

Разрядность и максимальная частота

ASUS Xonar D2

Creative SB Audigy SE

HD Audio

ASUS Xonar D2

1

Creative SB Audigy SE

1

HD Audio

1


Расчет коэффициентов по критерию приведен в приложении A3

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

Критерий А3 - Уровень шума

Таблица 4.5 - Матрица парных сравнений альтернатив по критерию «Уровень шума»

ASUS Xonar D2

1

Creative SB Audigy SE

1

HD Audio

1

Уровень шума

ASUS Xonar D2

Creative SB Audigy SE

HD Audio


Расчет коэффициентов по критерию приведен в приложении A4

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

Синтез глобальных приоритетов

Представим значения векторов локальных приоритетов, матриц третьего уровня, для всех альтернатив в отношении к векторам локальных приоритетов, второго уровня в виде таблицы:

Таблица 4.6 - Сводная таблица результатов вычислений локальных приоритетов


x1 (0,6833)

x2 (0,1998)

x3 (0,1169)

З1

0,0914

0,6483

0,5396

З2

0,2176

0,2297

0,297

З3

0,6909

0,122

0,1634


Расчет глобальных приоритетов приведен в приложении A5

В результате расчетов получено, что ОС=%.

Так как полученное отношение согласованности менее 10%, можно сделать вывод, что иерархия  согласована.

Из глобальных приоритетов следует, что наиболее предпочтительной является альтернатива А3, то есть встроенная звуковая карта на основе HD Audio.

 

.2 Выбор библиотеки для создания графического интерфейса


Выбор будем осуществлять методом анализа иерархий. Для этого необходимо определить цель, критерии и альтернативы. Целью в данном случае является выбор наиболее подходящей библиотеки для создания графического интерфейса. Имеется следующий список альтернатив:

Б1. Window Presentation Foundation (WPF);

Б2. Windows Forms;

Б3. Gtk#.

Определим существенные для данного проекта характеристики, то есть критерии, на основании которых будет делаться выбор:

А1. Производительность;

А2. Эффективность;

А3. Количество компонент;

А4. Кроссплатформенность.

Представим иерархическое представление поставленной задачи (рисунок 4.2):

Рисунок 4.2 - Иерархическое представление поставленной задачи

Парные суждения проводим в терминах доминирования одного критерия над другим. Эти суждения затем выражаем в целых числах, в соответствии с таблицей 4.7.

Таблица 4.7 - Матрица парных сравнений


А1

А2

А3

А4

А1

1

5

5

5

А2

1

3

1

А3

1

А4

3

1


Расчет коэффициентов критерием для матрицы второго уровня приведен в приложении А6.

В результате расчетов получено, что ОС=6.27%. Так как ОС < 10%, то матрица  считается согласованной.

Построим матрицы парных сравнений третьего уровня.

Критерий А1 - Производительность


Таблица 4.8 - Матрица парных сравнений альтернатив по критерию «Производительность»

Производительность

WPF

Windows Forms

Gtk#

WPF

1

3

5

Windows Forms

1

3

Gtk#

1


Расчет коэффициентов по критерию приведен в приложении А7.

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

1.1.2    Критерий А2 - Эффективность


Таблица 4.9 - Матрица парных сравнений альтернатив по критерию «Эффективность»

Эффективность

WPF

Windows Forms

Gtk#

1

5

5

Windows Forms

1

2

Gtk#

1


Расчет коэффициентов по критерию приведен в приложении А8.

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

Критерий А3 - Количество компонент



Таблица 4.10 - Матрица парных сравнений альтернатив по критерию «Количество компонент»

Количество компонент

WPF

Windows Forms

Gtk#

WPF

1

2

5

Windows Forms

1

4

Gtk#

1


Расчет коэффициентов по критерию А3 приведен в приложении А9.

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

Критерий А4 - Кроссплатформенность


Таблица 4.11 - Матрица парных сравнений альтернатив по критерию «Кроссплатформенность»

Кроссплатформенность

WPF

Windows Forms

Gtk#

WPF

1

Windows Forms

1

Gtk#

1


Расчет коэффициентов по критерию А3 приведен в приложении А10.

В результате расчетов получено, что ОС=%. Так как ОС < 10%, то матрица  считается согласованной.

Синтез глобальных приоритетов

Представим значения векторов локальных приоритетов, матриц третьего уровня, для всех альтернатив в отношении к векторам локальных приоритетов, второго уровня в виде таблицы:

Таблица 4.12 - Сводная таблица результатов вычислений локальных приоритетов


x1 (0,6091)

x2 (0,1603)

x3 (0,0703)

x4 (0,1603)

Б1

0,637

0,7088

0,5695

0,0905

Б2

0,2583

0,1786

0,3331

0,1512

Б3

0,1047

0,1125

0,0974

0,7583


Расчет глобальных приоритетов приведен в приложении A11

В результате расчетов получено, что ОС=%.

Так как полученное отношение согласованности менее 10%, можно сделать вывод, что иерархия  согласована.

Из глобальных приоритетов следует, что наиболее предпочтительной является альтернатива А1, то есть использование библиотеки Windows Foundation Presentation.

5. ОПИСАНИЕ ПРОГРАММНОЙ ЧАСТИ СИСТЕМЫ

 

.1 Общие сведения


Объектом проектирования является программно-аппаратный комплекс генерации сигналов с заданными параметрами, реализованный на платформе .NET Framework на языке C#.

 

.2 Функциональное назначение


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

 

.3 Описание логической структуры


Архитектура программной системы основа на шаблоне MVVM.используется для разделения модели и её представления, что необходимо, так как позволяет изменять их отдельно друг от друга. Например, программист задает логику работы с данными, а дизайнер соответственно работает с пользовательским интерфейсом.

Шаблон MVVM делится на три части:

модель (Model), так же, как в классической MVC, Модель представляет собой фундаментальные данные, необходимые для работы приложения;

- вид/Представление (View) так же, как в классической модели MVC <#"551743.files/image030.gif">

Рисунок 5.1 - Структурная схема

С точки зрения разработчика, система разделена на такие проекты:

Базовый элемент. Содержит описание основных интерфейсов взаимодействия и реализацию базового класса для всех компонентов.

Редактор. Реализация редактора схем.

Интерфейс. Содержит WPF логику ввода/вывода.

Интерпретатор. Интерпретация схемы.

Утилиты. Содержит часто используемых реализацию классов-помощников.

Ниже приведено детальное описание проектов.

Проект «Базовый элемент»


1.1.2.1        Описание

Реализация базового элемента для всех элементов схемы генератора. Также содержит описание портов, сигналов. Проект находится в папке «\Plugin\».

1.1.2.2        Спецификация процедур и функций


1.1.2.2.1     Класс «Plugin.cs»

Список портов.List<Port> Ports;

Имя.string Name

Тип.string Library.

Версия элемента.

public string Version.

Описание элемента.

public string Description.

Настройки элемента.XElement Settings

Показывает окно настроек.abstract void ShowConfigureWindow(Window owner);

Получает значение сигнала с выходного порта portName.

public Signal GetOutputSignal(string portName, IDictionary<Port, Signal> data)

Получает значение сигнала с входного порта portName.

public Signal GetInputSignal(string portName, IDictionary<Port, Signal> data)

В этом методе описывается логика интерпретации элемента.

public abstract void Emulate(IDictionary<Port, Signal> data);

В этом методе описывается логика при завершении интерпретации схемы.

public virtual void Stop();

1.1.3    Проект «Редактор»


1.1.3.1        Описание

Графический редактор схемы генератора. Позволяет удобно размещать и соединять элементы. Дополнительная функциональность - возможность отката действий пользователя.

1.1.3.2        Спецификация процедур и функций


1.1.3.2.1     Класс «UndoRedoService.cs»

Стек действий для отмены.

private readonly Stack<IDesignerCommand> undoCommands

Стек действия для повторения.readonly Stack<IDesignerCommand> redoCommands

Выполняет команду command.void Execute(IDesignerCommand command)

Отменяет последнюю командуvoid Undo()

Повторяет последнюю команду

public void Redo()

1.1.4    Проект «Интерфейс»


1.1.4.1        Описание

Интерфейсный модуль ПС предназначен для отображения результатов работы ПС, а также для удобства использования встроенных функций.

Вся визуальная часть интерфейса описывается декларативно в «XAML» файлах. Модуль описан в файле «\Main\MainWindow.xaml».

1.1.4.2        Структура


1.1.4.2.1     Меню и панель управления

Рисунок 5.2 - Меню и панель управления

Основными функциями являются:

открытие схемы генератора;

сохранение схемы генератора;

вырезать выделенные объекты из схемы и поместить в буфер обмена;

копировать выделенные объекты в буфер обмена;

вставить объекты из буфера обмена;

удалить объекты из схемы генератора;

отменить последнее действие пользователя;

повторить отмененное действие пользователя;

интерпретация схемы.

1.1.4.2.2     Библиотека элементов

Рисунок 5.3 - Библиотека элементов

Содержит доступные элементы для создания схемы генератора. Добавление элемента осуществляется путём перетаскивания выбранного элемента в редактор.

1.1.4.2.3     Редактор

Рисунок 5.4 - Окно редактора схемы генератора

Редактор позволяет собирать схемы генератора путём соединения элементов схемы определённым образом. Основными возможностями являются:

выделение элементов;

удаление элементов;

перемещение элементов;

добавление и удаление связей;

открытие окна настроек выбранного элемента.

1.1.4.2.4     Панель состояния

Рисунок 5.5 - Панель состояния

Панель состояния отображает текущее состояние приложения и дополнительно содержит функцию изменения масштаба.

1.1.5    Проект «Интерпретатор»


1.1.5.1        Описание

Интерпретирует схему генератора. В процессе интерпретации редактирование схемы невозможно. Расположение -«\Emulator\».

1.1.5.2        Спецификация процедур и функций

Список элементов для интерпретации.readonly IEnumerable<DesignerItem> designerItems

Запускает интерпретацию схемы.void Emulate()

Останавливает интерпретацию схемы.

public void Stop()

Возвращает номер элемента в очереди интерпретации.

private static int GetItemLevel(DesignerItem designerItem)

1.1.6    Проект «Утилиты»


1.1.6.1        Описание

Основные вспомогательные классы, которые используются в нескольких проектах. Расположение -«\Common\».

1.1.6.2        Спецификация методов и функций


1.1.6.2.1     Класс «LinqExtension.cs»

Преобразует последовательность в очередь.

public static Queue<T> ToQueue<T>(this IEnumerable<T> source)

Вспомогательный метод для работы с древовидными структурами.

public static TResult With<TInput, TResult>(this TInput o, Func<TInput, TResult> evaluator)

 

5.4 Используемые технические средства


Программная система была реализована на языке высокого уровня C# на платформе Microsoft .NET Framework для Windows.

Среда разработки - Microsoft Visual Studio 2010.

Дополнительно используется аудио-библиотека NAudio по средством которой осуществляется взаимодействие с DirectSound API.

Все необходимое программное обеспечение для разработки такой ПС можно скачать с сайта Майкрософт (<#"551743.files/image035.gif"> 

Рисунок 5.6 - Окно загрузки

5.6 Входные данные


Входными данными является схема генератора представленная в формате XML.

Формат хранения элемента схемы:

   <DesignerItem>

     <Id>{Идентификационный номер}</Id>

     <Left>{Позиция по X}</Left>

     <Top>{Позиция по Y}</Top>

     <Width>{Ширина}</Width>

     <Height>{Высота}</Height>

     <Plugin>

       <Name>{Имя элемента}</Name>

       <Version>{Версия}</Version>

       <Settings />

     </Plugin>

   </DesignerItem>

 </Items>

Формат хранения связи:

 <Connections>

   <Connection>

     <Path>

       <Point>

         <X>{Координата X}</X>

         <Y>{Координата Y}</Y>

       </Point>

     </Path>

     <Source>

       <Id>{Идентификационный номер источника}</Id>

       <Name>{Имя порта}</Name>

     </Source>

     <Sink>

       <Id>{Идентификационный номер приёмника}</Id>

       <Name>{Имя порта}</Name>

     </Sink>

   </Connection>

 </Connections>

5.7 Выходные данные


Выходными данными является полученный сигнал, а также схема генератора, составленная пользователем.

 

.8 Текст программы


Для разработки данной программной системы использовались [7, 17].

Исходный текст основных модулей программы приведен в приложении Б.

6. МЕТОДИКА ОТЛАДКИ И ТЕСТИРОВАНИЯ

 

.1 Объект испытаний


Объектом испытаний является программно-аппаратная система генерации сигналов с заданными параметрами.

 

.2 Цель испытаний


Индивидуальная проверка некоторых модулей программной системы, а также проверка правильности работы программно-аппаратной системы в целом методом «черного ящика».

 

.3 Требования к программе


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

 

.4 Требования к программной документации


Требования к программной документации заданы не были.

 

.5 Средства и порядок испытаний


На первом этапе тестируются основные модули программной системы. Для этого используется платформа Microsoft Unit Testing Framework, которая входит в состав среды разработки Visual Studio.

На втором этапе тестируется правильность работы программно-аппаратной системы. Средством тестирования является следующее программное обеспечение: Virtual Audio Cable и Audacity.

 

.6 Методы испытаний

 

Модульное тестирование

Описание

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

Для каждого модуля, подвергаемого тестированию, разрабатывается тестовое окружение, включающее в себя драйвер и заглушки, готовятся тест-требования и тест-планы, описывающие конкретные тестовые примеры.

Основная цель модульного тестирования - удостовериться в соответствии требованиям каждого отдельного модуля системы перед тем, как будет произведена его интеграция в состав системы.

При этом в ходе модульного тестирования решаются следующие основные задачи:

поиск и документирование несоответствий требованиям;

поддержка разработки и рефакторинга низкоуровневой архитектуры системы и межмодульного взаимодействия;

поддержка рефакторинга модулей;

поддержка устранения дефектов и отладки.

Тестирование

Протестируем подсистему загрузки схемы из файла. Для этого воспользуемся модульным тестом «\Tests\SchemeTest\», который приведен в приложении В. Откроем проект в  среде разработки Visual Studio. Переходим на проект «Tests», выделяем модульный тест и выполняем «Run All Tests».

Рисунок 6.1 - Окно сессии тестирования

На рисунке 6.1 можно видеть, что все тесты подсистемы загрузки схемы из файла успешно пройдены. Исходя из этого, можем сделать вывод, что подсистема реализована правильно.

Тестирование методом «черного ящика»

Описание

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

С точки зрения программного кода черный ящик может представлять с собой набор классов (или модулей) с известными внешними интерфейсами, но недоступными исходными текстами.

Virtual Audio Cable - виртуальный звуковой кабель (VAC) представляет собой звуковой драйвер Windows, создающий в системе два звуковых порта: Virtual Cable In и Virtual Cable Out. К каждому из портов может быть присоединено любое количество приложений. Звуковые сигналы, выводимые приложениями в порт Out, смешиваются в единый сигнал, который затем передается всем приложениям, извлекающим звук из порта In. От приложений требуется лишь умение работать со стандартными Wave-устройствами Windows .

Audacity - свободный, простой в использовании звуковой редактор для Windows, Mac OS X, GNU/Linux и других операционных систем. Audacity можно использовать для:

- записи звука;

оцифровки аналоговых записей (кассет, грампластинок);

редактирования файлов в форматах Ogg Vorbis, MP3 и WAV;

физического редактирования нескольких файлов (вырезание, склейка, сведение);

изменения скорости и высоты тона записи.

Тестирование

Проверим правильность работы правильности работы программно-аппаратной системы. Для этого соберем простейшую схему генератора (рисунок 6.2).


Рисунок 6.2 - Простейшая схема генератора с настройками

Параметры элемента: «Waveform Generator»:

частота дискретизации: 44100 Гц;

амплитуда: 50%;

частота: 2500 Гц;

форма сигнала: синусоидальный.

Параметры элемента «Audio Output»:

устройства вывода: Line 1 (Virtual Audio Cable).

Запускаем интерпретацию. Затем запускаем Audacity и начинаем запись с порта Line 1 (Virtual Audio Cable). По полученными данным строим спектрограмму.

Рисунок 6.3 - Частотный анализ

На рисунке 6.3 можно видеть, что спектрограмма совпала с ожидаемой. Исходя из этого, можем сделать вывод, что аппаратно-программная система генерации сигналов с заданными параметрами работает корректно.

7. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

 

.1 Назначение программы


Программно-аппаратная система генерации сигналов с заданными параметрами  может быть использована для тестирования работоспособности радиоэлектронных и акустических устройств, управления промышленными системами (например, системой промывки инжекторов в автомобильных мастерских), а также в учебном процессе СевНТУ.

 

.2 Условия выполнения программы


Минимальные системные требования:

операционная система Windows XP;

.NET Framework 4;

видеокарта c поддержкой DirectX;

процессор 1 ГГц;

ОЗУ 512 МБ;

звуковая карта.

 

.3 Выполнение программы

 

Главное окно приложения

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

создать файл со схемой генератора;

открыть файл со схемой генератора;

выход.

Рисунок 7.1 - Главное окно программы

 

Начало работы с приложением

Сразу после старта приложения пользователь может разместить элементы схемы генератора. Элемент можно добавить непосредственным перетаскиванием (Drag&Drop) на видимую зону редактора.

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

Рисунок 7.2 - Окно настроек элемента «Audio Output»

Открытие ранее созданной схемы

После нажатия кнопки «Открыть» в главном меню приложения пользователю отображается окно выбора файла со схемой, где требуется выбрать файл (расширение «.slf»).

Рисунок 7.3 - Простейшая схема генератора

 

Дополнительные функции

Пользователь всегда может отменить своё последнее действие с помощью комбинации клавиш Ctrl+Z, и повторить отменённое действие, пользуясь комбинацией Ctrl+Y. Также эти действия можно выполнить, воспользовавшись соответствующими пунктами меню.

Присутствует возможность менять масштаб схемы с помощью ползунка в нижней части окна приложения.

 

.4 Сообщения оператору


При открытии файла с некорректным файлом схемы пользователь увидит сообщение:

Рисунок 7.4 - Некорректный формат схемы

Если пользователь выходит из программы, но при этом он не сохранил изменения, то увидит следующее сообщение:

 

Рисунок 7.5 - Изменения не были сохранены

8. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ


В настоящее время широкое применение все больше получают средства измерений на базе персональных компьютеров или «виртуальные приборы». Такие средства измерений не могут функционировать без внешнего компьютера, на котором установлено управляющее программное обеспечение и осуществляется отображение всей информации (но возможна автономная работа без ПК уже после загрузки данных). Такая техническая реализация «прибор и компьютер раздельно» позволяет создавать достаточно сложные средства диагностики и измерений при относительно невысокой цене.

 

.1 Маркетинговые исследования

 

Исследование программного продукта

1.1.6.3        Назначение программного продукта

Разрабатываемый продукт - программно-аппаратная система генерации сигналов с заданными параметрами.

1.1.6.4        Основные свойства и характеристики продукта

Программа разработана на языке программирования C# 4 в среде Visual Studio 2010.

Свойства, которыми обладает рассматриваемый программный продукт, следующие:

расширяемость;

модифицируемость (по желанию заказчика программу можно дополнить необходимыми инструментами в короткие сроки);

- надёжность.

1.1.6.5        Основные свойства и характеристики продукта

К потребительским свойствам проектируемого продукта относятся такие особенности, как:

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

проверка корректности введенных исходных данных;

локализация обнаруженных ошибок;

возможность использования файла - справки, содержащего сведения об основных особенностях использования программы.

Требования к функциональным характеристикам программного продукта

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

визуальное программирование схемы генератора;

генерация и цифровая обработка сигнала;

визуализация сигнала.

1.1.6.6        Требования к надежности программного продукта

Надежность выражается в том, что программа должна корректно функционировать (без сбоев) в течение заданного периода времени. Чтобы это обеспечить продукт должен обладать следующими особенностями:

. Информация передается в систему в заданном формате, следовательно, необходимо проверить правильность формата и принятых данных;

. При обнаружении ошибок в переданной информации программа должна сообщить об этом пользователю продукта.

1.1.6.7        Требования к условиям эксплуатации

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

Для эксплуатации данного программного продукта необходим персональный компьютер c звуковым адаптером под управлением операционной системы Windows XP и выше.

1.1.6.8        Конкурентоспособность

Конкуренция - деятельность соперничества нескольких лиц в достижении одной и той же цели. Конкурентоспособность товара - способность товара соперничать с аналогичными товарами других предприятий.

Разрабатываемая программная система требует для нормальной работы минимальные ресурсы памяти и минимальную конфигурацию компьютера (если судить об этом в наше время). Исходные данные и результаты представляются в достаточно простом и понятном пользователю формате.

Перечисленные особенности выделяют рассматриваемый программный продукт среди подобных.

1.1.6.9        Оценка рыночной направленности

Проведем оценку шансов и рисков проектируемого продукта по таблице:

Таблица 8.1 - Оценки шансов и рисков проектируемого продукта

 Показатели

Баллы


Опасность

Нейтрально

Шансы


1

2

3

4

5

6

7

8

9

Объем рынка






×




Рост рынка





×





Финансовый потенциал







×



Число конкурентов





×





Поведение конкурентов





×





Осведомленность потребителей



×







Возможность повышения цен





×





Изменение конъюнктуры рынка





×





Возможность замещения ПП





×





Потенциал сервиса






×





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

,

где

КЭ.ОЦ. - коэффициент экспертной оценки, представляющий собой величину (среднеарифметическую) исследуемых показателей;

Бi - балл по i-ому показателю;- количество показателей.

,

Средняя экспертная оценка - 5,2.

Для повышения шансов ПП можно увеличить осведомлённость потребителей (реклама, участие в конференциях).

1.1.7    Исследование рынка сбыта программного продукта


1.1.7.1        Сегментация рынка

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

Принципы сегментации:

географический (город, округ, плотность населения, климат);

психографический (общественный класс, образ жизни, тип личности);

поведенческий (повод для покупки, статус пользователя, интенсивность потребления, степень готовности покупателя восприятию товара, отношению товару);

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

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

исследовательские организации;

учебные заведения.

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

Также опишем цели приобретения программного продукта.

Учебные заведения - для студентов предполагается использование данного программного продукта в качестве лабораторного практикума для изучения основных особенностей работы трансляторов, а также написанию курсового проекта в рамках дисциплины «Системное программное обеспечение».

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

1.1.7.2        Анализ тенденции рынка

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

Рассматриваемый программный продукт является более узконаправленным, но в то же время позволяет решать множество задач. Таким образом, за счет отсутствия избыточности, система занимает немного памяти. Еще один весомый фактор в пользу покупки именно этого программного продукта - это цена, так как очень малое число предприятий и организаций имеют возможность покупать крупные и многофункциональные системы. Это делает разработанный программный продукт более конкурентоспособным на современном рынке.

1.1.7.3        Предпочтительный потребитель

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

Покупатель - это предприятие либо учреждение любой формы собственности.

1.1.7.4        Возможные причины финансовых неудач

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

изменение тенденции рынка;

потребительская стоимость ПП будет ниже установленной;

низкая осведомленность потребителей;

переход к использованию другой операционной системы или другой платформы, несовместимых с данным программным продуктом.

1.1.8    Итоги маркетинговых исследований

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

удобный, интуитивно понятный пользовательский интерфейс;

гибкость системы;

наличие справочного обеспечения системы;

адекватная реакция системы на ошибки;

корректность получаемых данных;

высокое быстродействие системы.

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

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

Также была проведена сегментация рынка в соответствии с потенциальными потребителями: продукт предназначен для учебных учреждений, а также для исследовательских организаций.

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

 

.2 Определение затрат на проектирование продукта


Затраты на проектирование продукта включают следующие направления:

заработная плата проектировщиков (с отчислением на соц. меры);

стоимость отладки программного обеспечения;

накладные расходы.

1.1.9    Вычисление трудоёмкости

Трудоемкость проекта определяется, исходя из данных об используемых функциях программного продукта. По данным из [13] сформируем функции для рассматриваемой программной системы.

Таблица 8.2 - Функции программной системы

Наименование (содержание) функции

Объем функций, тыс.УМК

Ввод, анализ входной информации, генерация кодов и процессор входного языка


Организация ввода информации

0,670

Наименование (содержание) функции

Объем функций, тыс.УМК

Контроль

2,100

Процессор языка

3,260

Организация ввода/вывода информации в интерактивном режиме

1,550

Управление вводом/выводом

6,450

Формирование и обработка файлов


Формирование последовательного файла

2,600

Обслуживание файлов

2,900

Обработка файлов в диалоговом режиме

5,130

Управление файлами

4,100

Формирование файлов

1,200

Генерация программ и ПС ВТ, а также настройка ПС ВТ


Генерация программ по описаниям пользователей

4,000

Управление ПС ВТ компонентами ПС ВТ, внешними устройствами


Управление внешними устройствами и объектами

6,500

Обработка ошибочных и сбойных ситуаций

5,20

Обеспечение интерфейса между компонентами

6,86


Определим общий объем разрабатываемого ПП (V0) определяется по формуле:

,

где Vi - объем i-ой функции ПП;- общее число функций ПП.

p = 5.

Согласно этой формуле, общий объем разрабатываемого программного продукта:

V0 = 10,50 (тыс. УМК).

Затраты труда (Тр) на разработку программного продукта определяются в зависимости от объема (Vо) и группы сложности программного продукта по нормам времени в человеко-часах.

Определим эту величину для нашего программного продукта, считая, что продукт следует отнести к третьей группе сложности. Таким образом, для V0 = 10,50 тыс. УМК:

Тр = 44,5 (человеко-дней).

Общая трудоемкость (ТО) для программного продукта соответствующей группы сложности с учетом поправочного коэффициента сложности программного продукта (Ксл) рассчитывается по формуле:

,

В свою очередь коэффициент сложности ПС ВТ КСЛ рассчитываем по формуле:

,

где Ki - коэффициент, учитывающий уровень повышения сложности по дополнительным характеристикам программного средства вычислительной техники,- количество доп. характеристик программного средства вычислительной системы.

Таблица 8.4 - Дополнительные характеристики ПС ВТ

Дополнительные характеристики ПС ВТ

Значение коэффициента сложности

Интерактивный доступ

0,06

Обеспечение хранения, ведения и поиска данных в сложных структурах

0,07


Таким образом, получаем:

КСЛ = 1 + 0,12 = 1,12;

ТО = 44,5 × 1,12 = 49,84 (человеко-дней).

Полученную общую трудоемкость (ТО) разработки программного средства вычислительной техники разбиваем на соответствующе стадии разработки. Трудоемкость каждой стадии разработки ПС ВТ (Тi) определяем по формулам:

Т1 = LТЗ × КН × ТО - трудоемкость стадии технического задания;

Т2 = LЭП × КН × ТО - трудоемкость стадии эскизного проектирования;

Т3 = LТП × КН × ТО - трудоемкость стадии технического проектирования;

Т4 = LРП × КН × ТО ∙ КТ - трудоемкость стадии рабочего проектирования;

Т5 = LВН × КН × ТО - трудоемкость стадии внедрения,

где L - удельный вес трудоемкости соответствующей стадии разработки в общей трудоемкости.

КН - поправочный коэффициент, учитывающий степень новизны программного продукта;

КТ - поправочный коэффициент, учитывающий степень использования в разработке типовых (стандартных) программ программного продукта.

Данный продукт является развитием определенного параметрического ряда программных средств вычислительной техники (код В), которой при отсутствии использования новой ЭВМ и новой ОС соответствует значение КН = 0,7.

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

Таблица 8.5 - Коэффициенты удельных весов для каждой стадии в трудоемкости разработки

Код стадии

Значение L

ТЗ

0,09

ЭП

0,07

ТП

0,07

РП

0,61

ВН

0,16


Поскольку при разработке программного продукта использовались стандартная библиотека классов, то поправочный коэффициент, учитывающий степень использования в разработке типовых (стандартных) программ ПС ВТ, принимаем равным КТ = 0,9.

Таким образом, трудоемкость каждой стадии разработки программного продукта (Тi):

1)      трудоемкость стадии технического задания:

Т1 = 0,09 × 0,7 × 49,84 = 3,14;

2)      трудоемкость стадии эскизного проектирования:

Т2 = 0,07 × 0,7 × 49,84 = 2,44;

3)      трудоемкость стадии технического проектирования:

Т3 = 0,07 × 0,7 × 49,84 = 2,44;

4)      трудоемкость стадии рабочего проектирования:

Т4 = 0,61 × 0,7 × 0,9 ×  49,84 = 19,15;

5)      трудоемкость стадии внедрения:

Т5 = 0,16 × 0,7 × 49,84 = 5,58.

Уточненная общая трудоемкость ПС ВТ Тобщ (при восьмичасовом рабочем дне) определяем по формуле:


где Тi - трудоемкость разработки i-той стадии,- число стадий разработки.

ТОБЩ = 3,14 + 2,44 + 2,44 + 19,15 + 5,58= 32,75 (человек-дней).

Исходя из трудоемкости ТОБЩ и численности исполнителей, рассчитываем срок разработки (CР):

,

где Ф - фонд рабочего времени в месяц [дни],

Ч - численность разработчиков [чел].

Фонд рабочего времени в месяц составляет 21,8 д./мес., численность исполнителей - 1 человек:

1.1.10  Вычисление себестоимости часа машинного времени

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

Таблица 8.6 - Эксплуатационные затраты

Основные показатели

Усл. об.

Ед. изм.

Значение показателя

Стоимость основного комплекта оборудования

С

грн.

6500

Потребляемая мощность

W

кВт/ч

0,4

Коэффициент использования по мощности

KИ


0,7

Цена 1 кВт/ч электроэнергии

ЦЭ

грн.

0.38

Номинальный фонд времени работы ЭВМ

FНОМ

час

2001

Потери времени на ремонт и профилактику (% от FНОМ)

ППОТ

%

5

Коэффициент годовых затрат на ремонт (от стоимости оборудования)

КР

%

7

Основные показатели

Усл. об.

Ед. изм.

Значение показателя

Коэффициент сменности

КСМ


1

Норма амортизационных отчислений на оборудование

НОБ

%

40

Норма амортизационных отчислений на здания

НЗД

%

5

Балансовая стоимость 1м2

СБАЛ

грн.

190

Общая производственная площадь

S

м2

4

Коэффициент начислений на фонд оплаты труда

КН

%

37,5

Коэффициент накладных расходов (% от ФОТ)

КНР

%

20

Коэффициент материальных затрат (% от стоимости оборудования)

КМЗ

%

7

Оклад разработчика

ОКР

грн.

5000


Для того, чтобы определить сумму годовых эксплуатационных затрат рассчитаем следующие показатели:

. Расчет материальных затрат (Зм):

 (грн.);

. Расчет затрат на электроэнергию (ЗЭ):

 

ЗЭ = FНОМ × ЦЭ × W × КИ × КСМ =

= 2001 × 0,38 × 0,4 × 0,7 × 1 = 212,9 (грн.);

3. Расчет оплаты труда (ФОТ):

ФОТ = 11,8 × КСМ × ОКР = 11,8 × 1 × 5000 = 59 000 (грн.);

. Расчет отчислений от заработной платы (ОТЧ):

(грн.);

. Расчет затрат на ремонт (ЗР):

 (грн.);

. Расчет накладных расходов (ЗН):

  (грн.);

. Расчет амортизационных отчислений

a)               на здания (АЗД):

 (грн.);

b)               на оборудование (АОБ):

 (грн.).

Используя, полученные данные сформируем таблицу «Смета годовых эксплуатационных затрат».

Таблица 8.7 - Смета годовых эксплуатационных затрат

Наименование затрат

Формула расчета

Значение, грн.

Материальные затраты

455,00


Затраты на электроэнергию

ЗЭ = FНОМ×ЦЭ×W×КИ×КСМ

212,9

Оплата труда

ФОТ = 11,8 × КСМ × ОКР

59 000,00

Наименование затрат

Формула расчета

Значение, грн.

Отчисления от заработной платы

22 125,00


Расчет затрат на ремонт

455,00


Накладные расходы

11 800,00


Амортизационные отчисления на здания

38,00


Амортизационные отчисления на оборудование

2 600,00



Итого 96 685,9



Себестоимость часа машинного времени (СЧМВ) рассчитывается по формуле:

,

где  - сумма годовых эксплуатационных затрат (грн.);ЭФ.ОБ. - годовой эффективный фонд времени для оборудования.

Эффективный фонд времени для оборудования определяется по формуле:



где П - потери рабочего времени.

Допустимые потери рабочего времени для оборудования - П = 5% от FНОМ.

Тогда себестоимость часа машинного времени:

Далее проведем расчет сметы затрат.

Стоимость всех работ, выполняемых при разработке ПП, можно разделить на две части:

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

. стоимость работ, производимых без применения вычислительной техники.

Предварительно определим, сколько времени из общего срока разработки (СР = 1,50 месяца) приходится на работы, выполняемые без применения вычислительной техники (СРР) и с ее применением (СРМ).

Полагаем, что на работы, выполняемые без применения вычислительной техники, приходится 35% общего времени разработки, т.е.

 (мес.).

Соответственно,

 (мес.).

Далее рассчитаем затраты на проектирование программного продукта:

. определение фонда оплаты труда проектировщиков (за работы, выполняемые без применения ВТ):

Прямая заработная плата разработчиков (ЗППРЯМАЯ) определяется по формуле:

,

где Ч - количество исполнителей данного проекта (чел.);

СРР - срок разработки без применения ВТ (мес.).

 (грн.)

Кроме прямой заработной платы, в расчет включаем доплаты в размере 30% от прямой зарплаты. Тогда фонд основной зарплаты составит:

 (грн.).

. Накладные расходы:

Совокупность расходов на содержание помещений, на управление той организацией, в которой выполняется проект, относим к накладным расходам (ЗНАКЛ):

(грн.)

. Затраты на разработку ПП с применением ВТ:

Затраты на разработку ПП с применением ВТ (ЗПО) определяются по формуле:

,

где СРМ - срок разработки ПП с использованием ВТ (месяцев);ЭФ.М. - эффективный фонд рабочего времени за месяц;

СЧМВ - себестоимость часа машинного времени (грн.)

Эффективный фонд рабочего времени в месяц, полагая, что номинальный фонд рабочего времени в месяц составляет:

 (часов);

 (час).

Тогда

(грн.)

Таблица 8.9 - Смета затрат на проектирование

Наименование расходов

Сумма, грн.

Фонд оплаты труда проектировщиков (с отчислениями на социальные мероприятия) за работу, выполненную без применения вычислительной техники

3 412,5

Накладные расходы

682,5


Таблица 8.10 Продолжение

Наименование расходов

Сумма, грн.

Затраты на разработку ПП с применением вычислительной техники

7 610,34

Итого: Затраты на проектирование (ЗПР)

11 705,34


Полученная сумма служит основанием для определения цены предложения программного продукта.

1.1.11  Формирование цены предложения разработчика

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

Издержки представляют собой совокупность постоянных и переменных издержек.

Постоянные издержки (ИП) связаны с арендой помещения, оплаты коммунальных расходов, переменные (ИПЕР) - расходы, которые связаны с продажей каждой копии товара: оплата машинного времени, стоимость носителя, обучение персонала, отчисления в государственные фонды, документация, реклама, административные расходы, гарантийное обслуживание.

В данной работе постоянные издержки были рассчитаны в предыдущем пункте. Таким образом, ИП = ЗПР = 11 705,34 (грн.).

Общая величина переменных издержек (ИПЕР) определяется по формуле:

,

где ИУД.ПЕР - удельные переменные издержки;- количество проданных экземпляров программного продукта.

Величина удельных переменных издержек ИУД.ПЕР. включает в себя затраты на комплект рабочей документации, на операции, связанные с защитой программного продукта от копирования и другое. Полагаем, что величина ИУД.ПЕР. = 200 (грн.).

Полные издержки (ИПОЛ) составят:

,

Выручка от реализации (В) определяется в зависимости от цены продажи одного экземпляра программного продукта (Ц) и объема продаж:

,

Наклон графика изменения выручки зависит от уровня цены. В точке безубыточности достигается равенство:

,

то есть

.

Отсюда минимальный объем продаж составит (при известной цене):


или минимальная цена реализации (при известном N):

.

Пусть цена нашего программного продукта составит Ц = 1000 грн. Величины постоянных и удельных переменных издержек были указаны выше. Тогда минимальный объем продаж составит следующую величину:

 (экземпляров).

 

Рисунок 8.1 - График зависимости издержек и выручки в зависимости от количества произведенных экземпляров разработанного программного продукта

Из графика и расчета следует, что при цене, равной 1000 грн. минимальный объем продаж составит 15 экземпляров.

1.1.12  Расчёт капитальных затрат

Капитальные вложения представляют собой следующее:

. для разработчика - расходы на покупку (ЦTC), доставку (ЗTP) и монтаж (ЗM) технических средств, а также на приобретение программного обеспечения (ЦПО), необходимого для процесса создания программного продукта:

 (грн.).

В данной работе примем следующие значения вышеописанных расходов:

ЦТС = 6 500 (грн.);

ЗТР = 50 (грн.);

ЗМ = 0 (грн.);

ЦПО = 0(грн.).

Таким образом, КР = 6 500 + 50 + 0 + 0 = 6 550 (грн.).

. для пользователя - расходы на приобретение данного программного продукта (ЦПП), его доработку и адаптацию (ЗА), привязку и освоение на конкретном объекте (ЗО), доукомплектование технических средств на объекте управления (ЗД):

КП = ЦПП + ЗА + ЗО + ЗД (грн.).

В данной работе примем следующие значения вышеописанных расходов:

ЦПП = 1 000 (грн.);

ЗА = 0 (грн.);

ЗО = 50 (грн.);

ЗД = 0 (грн.).

         Тогда:

1.1.13  Расчет эксплуатационных расходов пользователя

К эксплуатационным расходам относим те расходы потребителя, которые он несет при однократном обращении к ПП.

Эксплуатационные расходы определяются по формуле:

,

где

ЗОБР.ЭКСПЛ. - эксплуатационные затраты на одно обращение к ПП (грн.);М - время одного обращения к ЭВМ (час);ПОД - время на подготовку исходной информации (час/год);

ЗПОД - часовая зарплата персонала, занятого подготовкой исходной информации (грн.);

КН - процент отчислений на социальные мероприятия;

ЦПП - цена программного продукта;

Т - планируемый срок службы продукта (лет);

ЦН - цена носителя (грн.);Н - количество носителей, используемых за год;ОБР - количество обращений к ПП за год.

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

Вычислим перечисленные показатели для рассматриваемого программного продукта:

. Затраты на машинное время:

ЗМВ = tМ × СЧМВ (ден. ед.)

Полагаем, что tМ = 3 часов, тогда

ЗМВ = 3 × 50.86 = 152.58 (грн).

. Материальные расходы:

 (ден.ед.)

Полагаем, что

ЦН = 1 грн; (стоимость одного «чистого» диска - CD-R);Н = 10 штук;ОБР = 208 (обращение происходить 4 раза в неделю), тогда

 (грн.)

3. Заработная плата обслуживающего персонала:

 (ден.ед.)

Полагаем, что tПОД = 104 час/год, так как необходимо затратить 30 минут на подготовку исходной информации 4 раза в неделю.

Часовую зарплату оператора вычислим, согласно следующей формуле:

 (ден.ед.)

Полагаем, что Оклад = 1100 грн., тогда

 (грн.)

Таким образом, заработная плата обслуживающего персонала составит следующую величину:

 (грн.)

4. Амортизация программного продукта:

 (ден.ед.)

Полагаем, что Т = 4 года, тогда

(грн.)

Полученные расчеты сводим в следующую таблицу:

Таблица 8.11 - Расходы

Направление расходов

Сумма, грн.

Затраты на машинное время

152,58

Материальные расходы

0,04

Заработная плата обслуживающего персонала с отчислениями на социальные мероприятия

4,35

Амортизация ПП

1,20

Итого:

157,36


Таким образом, при однократном обращении к ПП потребитель несет следующие расходы:

ЗОБР.ЭКСПЛ. = 157,36 (грн.)

1.1.14  Оценка эффективности проектирования программного продукта

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

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

Рассчитаем показатели экономической эффективности для разрабатываемого программного продукта с точки зрения организации - разработчика.

Для этого необходимо определить показатели чистого денежного потока (ЧДП) за период реализации проекта по следующей формуле:

ЧДПt = Рt - (Кt + Иt).

где

ЧДПt - чистый денежный поток года t (грн.);

Рt - выручка от реализации работ и услуг в году t (грн.);

Кt - капитальные вложения года t (грн.);

Иt - издержки года t (грн.).

Объем реализации работ (услуг) определяется как

Рt = Ц × Nt ,

где

Ц - цена реализации одного изделия (пакета программ), (грн.);t - годовой объем реализации изделий (пакетов программ), (шт.).

Полагая, что N12 = 10;

Р12 = 7 × 1000 = 7 000 (грн.).

К12 = Кр = 6 550 (грн.).

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

Иt = ЗПРt + ИПЕРt + ИМАРКt,

где

ЗПРt - затраты на проектирование года, t,

ИПЕРt - переменные издержки года, t,

ИМАРКt - затраты на продвижение программного продукта на рынке года, t.

Очевидно, что ЗПР12 = ЗПР = 11 705 (грн.).

Переменные издержки можно вычислить по следующей формуле:

ИПЕРt = СПЕР × Nt,

где

СПЕР - переменные издержки, СПЕР = 200 грн.

Таким образом, получаем ИПЕР11 = 200 × 7 = 2 000 (грн.).

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

ИМАРКt = Рt × 0.2.

Согласно этой формуле:

ИМАРК12 = 7 000 × 0.2 = 1 400 (грн.),

тогда И12 = 11 705 + 1 400 + 1 400 = 14 505 (грн.)

Тогда ЧДП12 = 7 000 - (6 550 + 14 505) = - 14 055 (грн.)

Для 2013 года полагаем, что N13 = 30, тогда

Р13 = 1000 × 20 = 20 000 (грн.);

К13 = 0 (грн.);

ЗПР13 = 0 (грн.);

ИПЕР13 = 200 × 20 = 4 000 (грн.);

ИМАРК13 = 20 000 × 0.2 = 4 000 (грн.);

тогда И13 = 0 + 4 000 + 4 000 = 8 000 (грн.).

Таким образом, получаем ЧДП13 = 20 000 - (0 + 8 000) = 12 000 (грн.).

Для 2014 года полагаем, что N14 = 20, тогда

Р14 = 1000 × 15 = 15 000 (грн.);

К14 = 0 (грн.);

ЗПР14 = 0 (грн.);

ИПЕР14 = 200 × 15 = 3 000 (грн.);

ИМАРК14 = 15 000 × 0.2 = 3 000 (грн.),

тогда И14 = 0 + 3 000 + 3 000 = 6 000 (грн.).

Таким образом, получаем ЧДП14 = 15 000 - (0 + 6 000) = 9 000 (грн.).

Для 2015 года полагаем, что N15 = 10, тогда

Р15 = 1000 × 10 = 10 000 (грн.);

К15 = 0 (грн.);

ЗПР15 = 0 (грн.);

ИПЕР15 = 200 × 10 = 2 000 (грн.);

Имарк15 = 10 000 × 0.2 = 2 000 (грн.),

тогда И15 = 0 + 2 000 + 2 000 = 4 000 (грн.)

Таким образом, получаем ЧДП15 = 10 000 - (0 + 4 000) = 6 000 (грн.).

Далее определим показатели чистой текущей стоимости за период реализации проекта по следующей формуле:

ЧТСt = ЧДПt × αt ,

где

ЧТСt - чистая текущая стоимость в году t (грн.);

ЧДПt - чистый денежный поток года t (грн.);

αt - коэффициент приведения по фактору времени, рассчитываемый по следующей формуле:

,

где

Е - норма доходности отложения денежных средства в конкретном государстве в конкретную экономику или ставка дисконтирования;

tp - расчетный год;

t - текущий год.

Полагаем, что Е = 12% = 0,12:

, тогда ЧТС12 = - 14 055 × 1 = - 14 055 (грн.);

, тогда ЧТС13 = 12 000 × 0,89 = 10 680 (грн.);

, тогда ЧТС14 = 9 000 × 0,81 = 7 290 (грн.);

, тогда ЧТС15 = 6 000 × 0,71 = 4 260 (грн.).

Определим интегральный экономический эффект по формуле:

,

где

Т - жизненный цикл проекта, лет.

Получаем: ЭИ = - 14 055 + 10 680 + 7 290 + 4 260 = 8 175 (грн.).

Результаты расчета сведем в таблицу:

Таблица 8.12 - Расчет интегрального экономического эффекта

Показатели

Годы


2012

2013

2014

2015

Объем реализации (шт.)

7

20

15

10

Капитальные вложения (грн.)

6 550

0

0

0

Годовые издержки (грн.)

14 505

12 000

6 000

4 000

Коэффициент приведения по фактору времени

1

0.89

0.81

0.71

Чистый денежный поток (грн.)

- 14 055

12 000

9 000

6 000

Чистая текущая стоимость (грн.)

- 14 055

10 680

7 290

4 260

Чистая текущая стоимость нарастающим итогом (грн.)

- 14 055

-3 375

3 915

8 175


Используя полученные результаты, построим финансовый профиль проекта с точки зрения организации - разработчика.

Рисунок 8.2 - Финансовый профиль проекта

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

Далее определим внутреннюю норму рентабельности рассматриваемого программного продукта. Метод определения внутренней нормы рентабельности позволяет оценить эффективность капитальных вложений.

Внутренняя норма рентабельности соответствует такой ставке коэффициента дисконтирования (Е), при котором интегральный экономический эффект равен нулю:

ЭИ = 0 или .


При решении этого уравнения относительно Е, получаем Е = 0,479 = 48%.

Рисунок 8.3 - Зависимость интегрального экономического эффекта от ставки дисконтирования Е

Результаты расчета сведем в таблицу:

Таблица 8.13 - Показатели рентабельности проекта

Показатели

Единица измерения

Величина

Интегральный экономический эффект

грн.

8 175

Период окупаемости капитальных вложений

лет

2

Внутренняя норма рентабельности

%

48


8.3 Заключение


В ходе проведения маркетинговых исследований были проведены исследование и оценка экономической эффективности программного продукта «Система обработки, анализа и генерации сигналов с заданными параметрами». Необходимо было провести маркетинговые исследования данного программного продукта, определить затраты на проектирование, сформировать цену для данного программного продукта, рассчитать капитальные и эксплуатационные затрат, а также оценить эффективность данного программного продукта.

Программный продукт изготовлялся одним человеком в течение 1,5 месяцев. Затраты на проектирование составят 11 705 грн. ПП будет реализовываться по цене 1000 грн., предполагаемая чистая прибыль за период с 2012 по 2015 год составляет 8 175 грн. Внутренняя норма рентабельности данного программного продукта составляет 48%. Исходя из этого, можно сделать положительный вывод о возможности внедрения данного программного продукта.

9. ОХРАНА ТРУДА

 

.1 Анализ условий труда разработчика проектируемого продукта


Произведём анализ условий труда программиста в офисе компьютерной фирмы, руководствуясь методическими указаниями [10].

Краткая характеристика помещения и выполняемых работ

Разработчик работает в офисе площадью 60 м2  (длина - 10 м, ширина - 6 м, высота - 3 метра). В помещении предусмотрены места для работы восьми разработчиков. Таким образом, на одного человека, работающего в помещении, приходится рабочее пространство площадью в 7,5 м2 и объемом 22,5 м3, что соответствует требованиям [14].

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

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

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

Планировка и размещение оборудования и рабочих мест

Эскиз помещения с указанием размещения всех рабочих мест, мебели, а также дверных и оконных проемов приведен на рисунке:

Рисунок 9.1 - Эскиз помещения

- дверной проём,  2 - шкаф для документации, 3 - огнетушитель, 4 - рабочее место разработчика, 5 - оконный проём.

Ширина проходов с передней стороны дисплеев и панелей управления ЭВМ по санитарным нормам [3] должна быть не меньше 1м, расстояние от стен также не менее 1м, удаленность рабочих мест друг от друга - не менее 1,2 м. Все ограничения соблюдены, что говорит о соответствии нормам. Рабочее помещение расположено на втором этаже здания. Также в помещении имеется система автоматической пожарной сигнализации и средства пожаротушения, а также обеспечен свободный подход к ним, что удовлетворяет требованиям.

Микроклимат рабочей зоны

Работу программиста можно отнести к категории I - легкие физические работы, подкатегория Iа - физические работы, производимые сидя и сопровождающиеся незначительным физическим напряжением; затраты энергии до 120 ккал/ч (139 Вт) [5]. Для этой категории работ нормативные значения параметров метеоусловий в рабочей зоне производственных помещений таковы:

холодный период года - температура воздуха: оптимальная - 22-24 0С, допустимая - 21-25 0С; относительная влажность воздуха: оптимальная - 40-60%, допустимая - 85%; скорость движения воздуха: оптимальная - 0.1 м/с, допустимая - не более 0.1 м/с;

теплый период года - температура воздуха: оптимальная - 23-25 0С, допустимая - 22-28 0С; относительная  влажность  воздуха:  оптимальная  -  40-60%,  допустимая  -  55%  (при 28 0С); скорость движения воздуха: оптимальная - 0.1 м/с, допустимая - 0.1-0.2 м/с.

В помещении, в котором находится разработчик, источников избыточного тепла не имеется. Система отопления - батареи центрального отопления. Если качество отопления не соответствует норме, то можно использовать дополнительные источники тепла (радиаторные батареи, кондиционеры типа «зима - лето» и т.п.), а для летнего время - системы кондиционирования воздуха или естественной вентиляции.

Источников выделения вредных веществ в помещении не имеется. В помещении регулярно выполняется проветривание и влажная уборка.

Шум и вибрация

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

В таблице приведены значения уровней звукового давления для программиста ПЭВМ в соответствии с [4].

Таблица 9.1 - Значения уровней звукового давления для программиста ЭВМ

В октавных полосах со среднегеометрическими частотами, Гц

31.5

63

125

250

500

1000

2000

4000

8000

Уровни звукового давления, дБ

86

81

61

54

49

45

42

40

38


Уровень звука должен быть ≤ 50 дБА.

Освещение

Работа с клавиатурой и дисплеем ПЭВМ относится к напряжённым зрительным работам, поэтому большое значение придаётся освещению помещения. Помещение, в котором работает администратор, имеет два оконных проема площадью по 9м2, обеспечивающие естественное освещение помещения. Также помещение оборудовано приборами искусственного освещения комбинированного типа. К используемым источникам такового относятся четыре потолочных светильника и лампа локального освещения на столе администратора.

Зрительная работа разработчика соответствует работе средней тяжести, при которой наименьший размер объекта различения равен 0.5 1 мм, разряд зрительной работы - IV, характеристика фона - светлый, средний [15]. Освещенность от светильников общего освещения в системе комбинированного освещения:

при газоразрядных лампах - 200 лк;

при лампах накаливания - 150 лк.

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

Электро- и пожаробезопасность

В помещении, где работает разработчик, для питания аппаратуры используется электрический ток при напряжении питания 220~230 В и частоте 50 Гц.

Используемая аппаратура (указанная в п. 9.1.1) по способу защиты человека от поражения электрическим током относится к классу 0 электротехнических изделий - это изделия, имеющие рабочую изоляцию и не имеющие объектов для заземления [1].

Поражение человека электрическим током может произойти при:

касании с  открытыми токопроводящими частями компьютера;

неисправности аппаратуры как таковой;

неисправности сетевых и встроенных розеток и т.п.

Для предотвращения поражения электрическим током предусмотреть следующие  технические мероприятия:

изоляция всех токопроводящих частей компьютера путем их ограждения с помощью различных защитных средств;

заземление всех металлических конструкций,  которые  могут  оказаться под напряжением;

проведение инструктажа о мерах электробезопасности.  

Выбор изоляции изделия и его частей должен определяться примененным напряжением. Изоляция частей изделия, доступных для прикосновения, должна обеспечивать защиту человека от поражения электрическим током и электрической дугой. В данном случае все доступные для прикосновения участки изделия изолированы. Заземления не требуется, так как изделие (аппаратура разработчика) относится к классу 0.

Помещение имеет степень огнестойкости III, по степени пожароопасности относится к категории П.

Основными причинами возникновения пожара могут являться:

эксплуатация аппаратуры, имеющей дефекты на схемном уровне;

короткое замыкание;

использование большого числа электрических приборов, имеющих высокую мощность;

нарушение противопожарной дисциплины;

неисправность проводки.

Пожарная безопасность объекта должна обеспечиваться системой предотвращения пожара, системой противопожарной защиты (огнетушители типа ОХП-10, ОУ-5) и организационно-техническими мероприятиямиСистемы предотвращения пожара и противопожарной защиты в совокупности должны исключать воздействие на людей опасных факторов пожара. Вероятность  воздействия  опасных  факторов  не  должна  превышать  нормативную, равную  10-6 в год в расчете на каждого человека.

Таким образом, обеспечение  пожарной  безопасности может быть достигнуто путем проведения следующих мероприятий:

пожарная профилактика (составление схемы эвакуации людей, инструктаж и беседы о мерах пожарной безопасности и т.п.);

создание объемной системы пожаротушения;

установка автоматической пожарной сигнализации для извещения о пожаре и месте его возникновения;

использование для обогрева помещения только батарей центрального отопления;

периодическая профилактическая проверка электрооборудования.

Электромагнитное излучение

К электротехническим изделиям предъявляют следующее требование: изделия, которые создают электромагнитные поля, должны иметь защитные элементы (экраны, поглотители и пр.) для ограничения воздействий этих полей в рабочей зоне до допустимых уровней. Допускается для ограничения воздействия электромагнитных полей использовать защитные элементы, не входящие в состав изделия.

Значение напряженности электромагнитных полей на рабочих местах с ЭВМ должны отвечать нормативным значениям, в соответствии с которыми напряженность ЭМП в диапазоне частот 60 кГц-300 МГц на рабочих местах персонала в течение рабочего дня не должна превышать установленных предельно допустимых уровней (ПДУ) [3]:

по электрической составляющей, В/м:

- для частот от 60 кГц до 3 МГц;

-для частот свыше 3 МГц до 30 МГц;

-для частот свыше 30 МГц до 50 МГц;

- для частот свыше 50 МГц до 300 МГц;

по магнитной составляющей, А/м:

- для частот от 60 кГц до 1,5 МГц;

,3 - для частот от 30 МГц до 50 МГц.

1.1.15  Эргономика и техническая эстетика

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

рабочую позу разработчика;

пространство для размещения разработчика;

возможность обзора элементов рабочего места;

возможность обзора пространства за пределами рабочего места;

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

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

Помещение, в котором работает разработчик и которое в настоящий момент подлежит оценке, характеризуется комфортной обстановкой, поскольку:

расположение светильников таково, что обеспечивает общее (верхнее) и локальное (непосредственно по левую руку от разработчика) освещение;

цвет стен в помещении мягкий, однотонный, не раздражающий зрение, цвет потолка - белый (способствует максимальному светоотражению);

рабочий стул оператора имеет спинку, что способствует уменьшению нагрузки на спину при долговременном сидении;

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

Напряженность труда. Режим труда и отдыха работников

По характеру трудовой деятельности в соответствии с классификатором профессий (ДК - 003 - 95 и Изменение № к ДК - 003 - 95) работа программиста относится к группе 1. Разработчики программ (инженеры-программисты) выполняют работу преимущественно с видеотерминалом и документацией при необходимости интенсивного обмена информацией с ЭВМ и высокой частью принятия решений. Работа характеризуется интенсивным умственным творческим трудом с повышенным напряжением зрения, концентрацией внимания на фоне нервно-эмоционального напряжения, вынужденной рабочей позой, общей гиподинамией, периодической нагрузкой на кисти верхних конечностей. Работа выполняется в режиме диалога с ЭВМ в свободном темпе с периодическим поиском ошибок в условиях дефицита времени.

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

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

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

 

.2 Расчет защитного заземления


Защитное заземление - преднамеренное электрическое соединение с землей или ее эквивалентом металлических нетоковедущих частей, которые могут оказаться под напряжением.

Заземляющее устройство - это совокупность заземлителя (металлических проводников, находящихся в непосредственном соприкосновении с грунтом) и заземляющих проводников, соединяющих заземляемые части электроустановки с заземлителем. В зависимости от расположения по отношению к заземляемому оборудованию заземления подразделяются на выносные, сосредоточенные и контурные. Конструктивно заземление выполняется в виде нескольких металлических (обычно стальных) стержневых заземлителей, погруженных в землю на определенную глубину и соединенных между собой параллельно горизонтальным электродом. Соединение выполняется сварным, а в качестве горизонтального электрода используется полосовая или круглая сталь.

На величину сопротивления заземления в значительной мере влияет удельное сопротивление грунта - r, измеряемое в Ом∙м. Удельное сопротивление грунта зависит от характера почвы и времени года. Наибольшую величину оно имеет в теплый период года в южных районах, где почва более сухая, а также в холодный период в северных районах, где грунт промерзает.

Сопротивление заземления подвергается контролю: первоначально перед вводом в эксплуатацию, а затем периодически, ежегодно (при наибольшем высыхании и промерзании грунта). Такой контроль необходим, т.к. коррозия и механические повреждения способны существенно изменить сопротивление заземления и его величина может превысить допустимое значение [1].

Данные для расчета:  наименование грунта - суглинок, климатическая зона - IV (определена по таблице 10.2 в соответствии с данными о средней многолетней низшей температуре в Севастополе), коэффициент сезонности - f = 1.1 (выбран по таблице 10.3), удельное сопротивление грунта - r = 100 Ом∙м (таблица 10.3).

Таблица 9.2 - Признаки климатических зон

Характеристика климатической зоны

Климатическая зона


I

II

III

IV

Средняя многолетняя низшая температура, °С

от -20 до -15

от -14 до -10

от -10 до 0

от 0 до +5

Продолжительность замерзания, дней

170-190

150

100

0

Коэффициент сезонности для вертикального электрода длиной 3м

1,7

1,5

1,3

1,1


Таблица 9.3 - Значения удельных электрических сопротивлений грунтов, Ом∙м

Грунт

Значение r

Глина Суглинок Чернозем

40 100 20


Определим удельное сопротивление грунта по формуле:

,

где f - коэффициент сезонности;

r- табличное значение удельного сопротивления грунта.

 (Ом∙м).

Сопротивление растекания одиночного трубчатого заземлителя рассчитаем по формуле:

,

где L - длина заземлителя, м (L = 3);

d - диаметр трубки или стержня, м (d = 0,05);

H - расстояние от поверхности земли до середины заземлителя, м (рисунок 10.2).

H = h +1/2,

где h = 0.8

Рисунок 9.2 - Трубчатый или стержневой заземлитель в грунте

Рассчитаем количество параллельно соединенных одиночных заземлителей, необходимых для получения допустимых значений сопротивления заземления по приближенной формуле (без учета сопротивления соединительной полосы):


где  - наибольшее допустимое сопротивление заземляющего устройства, Ом (Ом);

- коэффициент использования группового заземлителя - отношение действительной проводимости этого заземлителя 1/ к наибольшей возможной его проводимости при бесконечно больших расстояниях между электродами 1/: (определим по таблице 10.4).

Таблица 9.4 - Коэффициент использования вертикальных заземлителей

n, шт

4

6

20

40

60

100

0,690,610,550,470,410,390,36









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

Рассчитаем длину горизонтальной соединительной полосы по формуле:

,

где n - количество вертикальных заземлителей;

a - расстояние между вертикальными заземлителями, м (принимаем а = 3);

L` - высота этажа (принимаем L`=3);

N - номер этажа, на котором работает разработчик.

(м).

Сопротивление эквивалентной полосы рассчитаем по формуле:

,

где d - эквивалентный диаметр полосы шириной b м, d = 0,95∙b (принимаем b = 0,15м);

h - глубина заложения полосы, м (h = 0,8).

Рассчитаем результирующее сопротивление заземляющего электрода с учетом соединительной полосы:


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

Таблица 9.5 - Коэффициент использования соединительной полосы

n, шт

4

6

10

20

40

60

100

0,450,40,340,270,220,20,19










 

.3 Заключение


Полученное общее  сопротивление заземляющего устройства соответствует допустимым нормам (до 4 Ом).


10. БЕЗОПАСНОСТЬ В ЧРЕЗВЫЧАЙНЫХ СИТУАЦИЯХ


Выявление и оценка радиационной обстановки в компьютерной фирме при загрязнении радиоактивными веществами после аварии на атомной электростанции (АЭС).

 

.1 Вводная часть


Среди потенциально опасных производств особое место занимают радиационно-опасные объекты (РОО). Они представляют собой особую опасность для людей и окружающей среды и требуют постоянного контроля за их работой и защитой. Особенностью является то, что человек может определить наличие загрязнения среды только специальными приборами.

К радиационно-опасным объектам относятся:

атомные электростанции (АЭС);

предприятия по производству и переработке ядерного топлива;

научно-исследовательские и проектные организации, связанные с ядерными реакторами;

ядерные энергетические установки на транспорте.

На территории Украины работают 4 атомных электростанций с 15 энергетическими ядерными реакторами, которые дают около 52% электроэнергии, вырабатываемой в стране. Для проведения исследовательских работ функционируют 2 ядерных реактора. В Украине работают более 8 тысяч предприятий и организаций, которые используют различные радиоактивные вещества, а также хранят и перерабатывают радиоактивные отходы.

Развитие отечественной ядерной энергетики ведется на основе строительства реакторов на тепловых нейтронах, позволяющих использовать в качестве топлива слабообогащённый природный уран (U-238).

К таким реакторам относятся:

реакторы большой мощности, канальные (РБМК-1000, РБМК-1500), замедлителем в нем служит графит, а теплоносителем - кипящая вода, циркулирующая снизу вверх по вертикальным каналам, проходящим через активную зону. Он размещается в наземной шахте и содержит 192 т. слабообогащённой двуокиси урана-238, а под ним находится железобетонный бункер для сбора радиоактивных отходов при работе реактора;

водоводяные энергетические реакторы (ВВЭР-600, ВВЭР-1000), в которых вода служит одновременно теплоносителем и замедлителем.

При аварии на АЭС с выбросом радионуклидов необходимо быстро выявить радиационную обстановку методом прогнозирования, а затем уточнить ее по данным разведки

Оценку радиационной обстановки произведем методом прогнозирования.

При авариях на АЭС выделяются 5 зон радиоактивного загрязнения. Зона радиационной опасности (М) - представляет собой участок загрязненной местности, в пределах которой доза излучения на открытой местности может составлять от 5 до 50 рад. в год. На внешней границе этой зоны уровень радиации через 1 час после аварии составляет 0,014 рад/час.

Рисунок 10.1 - Зоны радиоактивного заражения

В пределах зоны «М» целесообразно ограничить пребывание людей, не привлекаемых непосредственно к работам по ликвидации последствий радиационной аварии.

При ликвидации аварии в зоне «М» и во всех других зонах должны выполняться основные мероприятия: радиационный и дозиметрический контроль, защита органов дыхания, профилактический прием йодсодержащих препаратов, санитарная обработка людей, дезактивация обмундирования и техники.

Зона умеренного загрязнения (А) - представляет собой участок загрязненной местности, в пределах которой доза излучения может составлять от 50 до 500 рад в год. На внешней границе этой зоны уровень радиации через 1 час после аварии составляет 0,14 рад/час. Действия формирований в зоне «А» необходимо осуществлять в защитной технике с обязательной защитой органов дыхания.

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

В зоне опасного загрязнения (В) - доза излучения составляет от 1500 до 5000 рад в год. На внешней границе этой зоны уровень радиации через 1 час после аварии составляет 4,2 рад/час. Действия формирований возможно только в сильно защищенных объектах и технике. Время нахождения в зоне - несколько часов.

В зоне чрезвычайного опасного загрязнения (Г) - доза излучения может составлять больше 5000 рад в год. На внешней границе этой зоны уровень радиации через 1 час после аварии составляет 14 рад/час. В зоне нельзя находиться даже кратковременно.

Оценка радиационной обстановки при аварии на АЭС сводится к определению методом прогноза доз излучения и выработке оптимальных режимов деятельности людей при нахождении их в прогнозируемой зоне загрязнения.

При расчетах необходимо руководствоваться допустимой дозой облучения, установленной для различных категорий населения, оказавшегося в зоне радиоактивного загрязнения при аварии на АЭС.

. население, рабочие и служащие, не привлекаемые в мирное время к работе с радиоактивными веществами - 1 мЗв в год;

. население, рабочие и служащие, персонал, привлекаемые в мирное время к работе с радиоактивными веществами - 2 мЗв в год;

. постоянно работающие с ионизирующим излучением - 20 мЗв в год.

программный аппаратный генерация сигнал

10.2 Расчетная часть


Расчетная часть выполнена по методике, изложенной в методических указаниях [10] для следующих данных:

Таблица 10.1 - Исходные данные для решения задачи по оценке

T аварии

TНАЧ. работы

Начало работы после аварии

Продолжит. TРАБ

Количество авар. реакторов

Доля выброса РВ, %

KОСЛ

Скорость ветра, м/с

Rx, км

ДУСТ, рад.

Облачность

10:00

12:00

2

12

1

30

3

5

33,7

0,3

3


. По таблице 1 определяем категорию устойчивости атмосферы, соответствующую погодным условиям и заданному времени суток. По условию: облачность средняя (3 б.), скорость приземного ветра  V10 = 5 м/с. Согласно таблице 1 категория устойчивости Д (изотермия).

. По таблице 2 определяем среднюю скорость ветра Vср в слое распространения радиоактивного облака. Согласно таблицы для категории устойчивости  Д и скорость приземного ветра V10 = 5 м/с средняя скорость ветра Vср = 5 м/с.

. По таблице 4 для заданного типа ЯЭР (РБМК-1000), доли выброшенных РВ (h = 30%) и Vср= 5 м/с определяем размеры прогнозируемых зон загрязнения местности и наносим их в масштабе в виде правильных эллипсов.

Рисунок 10.2 - Расположение объекта согласно зонам радиоактивного загрязнения

. Исходя из заданного расстояния от объекта (Rх = 33,7 км) до аварийного реактора с учетом образующихся зон загрязнения устанавливаем, что объект оказался на внешней границе зоны «Б».

. По таблице 7 определяем время начала формирования следа радиоактивного загрязнения  после аварии (время начала выпадения радиоактивных осадков на территории объекта). Для Rх = 33,7 км, категории устойчивости Д и средней скорости ветра Vср = 5 м/с, = 1,7 часа. Следовательно, объект через = 1,7 часа после аварии окажется в зоне загрязнения, что потребует дополнительных мер по защите рабочих и служащих.

. По таблице 10 для зоны загрязнения «Б» с учетом времени начала работы после аварии (= 2 часа) и продолжительности работы   (= 12 часов) определяем дозу облучения, которую получат рабочие и служащие объекта при открытом расположении на внешней границе зоны «Б». Согласно таблице, = 17,1 рад. Расчет дозы с учетом  внешней границы производим по формуле:

 



Расчет показывает, что рабочие и служащие офиса за 12 часов работы в зоне «Б» могут получить установленную дозу ( = 0,3 рад).

Используя данные из таблицы 10 определяем допустимое время начала работы рабочих служащих объекта после аварии на АЭС при условии получения дозы не более  = 0,3 рад (по условию) по формуле:



Таблица 10.2 - Результат оценки радиационной обстановки

  № вар.

Категория устойчивости атмосферы

Vср м/с

Зона, место в зоне

 

Дано:1);2) ;   Определено: l)  2)

6

Д

5

Б, внешняя граница

1,7

17,1

3,35

1,53

При  = 1,53: 1) =12 =2 месяца 2) =2 →  ≈ 0,75 часа


10.3 Мероприятия по защите сотрудников лаборатории


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

. При прохождении радиоактивного облака сотрудников лаборатории укрыть в убежище или ПРУ.

. По данным разведки уточнить прогнозируемую радиационную обстановку.

. При уровнях радиации (Р > 5 мР/ч) на открытой местности сотрудники офиса должны находиться в респираторах или противогазах.

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

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

. После выпадения радиоактивных осадков и снижения загрязненности территории произвести дезактивационные работы с последующим контролем степени загрязненности.

. При больших уровнях загрязненности и невозможности работы сотрудников необходимо эвакуировать в незагрязненные районы.

 

.4 Заключение


Офис окажется на внешней границе зоны сильного загрязнения (зона Б). Время начала формирования радиоактивного следа после аварии составит
= 1,7 часа.

. Согласно  = 1,53 рад и  = 12 часов по таблице 10 находим  = 2 месяца, т. е. можно начинать работу только через 2 месяца после аварии на АЭС и работать полную смену ( = 12 часов).

. По исходным данным необходимо начать работу после аварии через 2 часа (= 2 часа). Следовательно, по таблице 10 и времени = 2 часа и рассчитанной дозе =1,53 рад с учетом  = 0,3, находим продолжительность работы = 0,75 ч.

Следовательно, рабочие и служащие объекта, чтобы получить дозу не выше установленной  (0,3 рад), могут начинать работу в зоне «Б» через 2 часа и выполнять ее 0,75 часа или при начале работы через 2 месяца могут работать 12 часов.

 


ЗАКЛЮЧЕНИЕ


В ходе работы над дипломным проектом была разработана программно-аппаратная система генерации сигналов с заданными параметрами.

Был проведён системный анализ, и разрабатываемая программно-аппаратная система была рассмотрена с точки зрения основных принципов системного анализа.

В результате проведения вариантного анализа, предпочтение было отдано использованию встроенной звуковой карты. В качестве библиотеки для создания графического интерфейса была выбрана Windows Presentation Foundation, которая входит в состав Microsoft .NET Framework.

Была разработана обобщённая блок-схема алгоритма программной системы, структурная модель и диаграмма концептуальных классов программно-аппаратного комплекса.

Также была создана универсальная платформа и ядро программной системы со строгим использованием объектно-ориентированного подхода на языке высокого уровня C#. Реализована возможность динамического подключения элементов библиотеки. Производится интерпретация схемы генератора и проверка на ошибки.

Реализован многофункциональный, доступный пользовательский интерфейс с использованием библиотеки WPF, которая позволяет добиться высокой скорости и качества отображения интерфейса. Интерфейс поддерживает возможности составления схемы графически, отката действий пользователя, масштабирования схемы.

При работе над данным проектом было проведено технико-экономическое обоснование проекта. Проведен анализ эффективности проекта на основе интегрального экономического эффекта. Период окупаемости капитальных вложений составил два года.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1. ГОСТ 12.1.004-76. Пожарная безопасность. Общие требования.

. ГОСТ 12.2.032-78. Система стандартов безопасности труда. Рабочее место при выполнении работ сидя. Общие эргономические требования.

. ДНАОП 0.00-1.31-99. Правила охраны труда во время эксплуатации ЭВМ.

. ДСН 3.3.6.037-99. Санитарные нормы производственного шума, ультразвука и инфразвука.

. ДСН 3.3.6.042-99. Санитарные нормы микроклимата производственных помещений.

. Дьяконов В. Генераторы сигналов. / ДМК Пресс СПб.: Питер, 2009 - 381 с.

. Макконнелл С. Совершенный код. / Пер. с англ. В.Г. Вшивцева - М.: Издательство «Русская редакция»; СПб.: Питер, 2008 - 896 с.

. Методические указания для выполнения курсовой работы по дисциплине «Автоматизация проектирования сложных систем» для студентов специальности 7.091501 - «Компьютерные системы и сети» дневной формы обучения / Сост. Е.Н. Мащенко, Ю.П. Нюнькина - Севастополь: Изд-во СевНТУ, 2010. - 48 с.

. Методические указания для выполнения раздела «Гражданская оборона» в дипломных проектах специальностей 7.080401 - «Информационные управляющие системы и технологии», 7.092502 - «Компьютерно-интегрированные технологические процессы и производства», 7.091401 - «Системы управления автоматики», 7.091501 - «Компьютерные системы и сети» Сост. М.С. Журавский. - Севастополь: Изд-во СевНТУ, 2000. - 15 с.

. Методические указания для выполнения раздела «Охрана труда и окружающей среды» в дипломных проектах специальностей 7.080401 - «Информационные управляющие системы и технологии», 7.092502 - «Компьютерно-интегрированные технологические процессы и производства», 7.091401 - «Системы управления автоматики», 7.091501 - «Компьютерные системы и сети» Сост. Е.И. Азаренко. - Севастополь: Изд-во СевНТУ, 2005. - 10с.

. Методические указания к выполнению курсовой работы  «Расчет экономической эффективности создания и использования программного продукта» по дисциплинам «Основы менеджмента и  маркетинга», «Менеджмент» для студентов специальностей 7.091501, 7.091401, 7.080401 всех форм обучения / Сост. Г.А. Раздобреева, Е. В. Коваль, Т.В. Кулешова.- Севастополь: Изд-во СевНТУ, 2009.- 24с.

. Методические указания по организации и проведению преддипломной практики студентов дневной формы обучения специальности 7.091501 - «Компьютерные системы и сети» / Сост. В.В. Кирюхин, А.В. Скатков. - Севастополь: Изд-во СевНТУ, 2011. - 16 с.

. Методические указания практическому занятию на тему «Метод анализа иерархий» по дисциплине «Теория оптимальных решений» для студентов специальности 7.091501 - «Компьютерные системы и сети» / Сост. Ю.Н. Щепин - Севастополь: Изд-во СевНТУ, 2002 - 11с.

. СН 4559-88. Временные санитарные нормы и правила для работников вычислительных центров.

. СНиП II-4-79. Естественное и искусственное освещение.

16. Современные USB-генераторы сигналов произвольной формы с сегментированной [Электронный ресурс]. - Электрон. данные (175 кб.). - Режим доступа   <#"551743.files/image155.gif"> по формуле (A1):

(A1)


Найдем сумму коэффициентов по формуле (A2):

(A2)



Вычислим вектор локальных приоритетов по формуле (A3):

(A3)


Оценим величину погрешности при вычислении вектора локальных приоритетов:


По полученным результатам можно сделать вывод о важности критериев. Представим критерии по убыванию их приоритетов:

.        Цена.

.        Разрядность и максимальная частота.

.        Уровень шума.

Для проверки согласованности матрицы вычислим:

(A4)



Определим наибольшее собственное значение матрицы парных сравнений  по следующей формуле:

(A5)


Найдём индекс согласованности:

(A6)



Найдем отношение согласованности ОС:

(A7)



где СС - случайная согласованность, выбираемая в зависимости от размера матрицы.

СС(3) = 0,58.

 


Приложение А2


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А3


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А4


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А5


Вычислим глобальные приоритеты по формуле (A8):

 (A8)



Проверим погрешность вычислений:

Построим таблицу Q для имеющихся альтернатив. Элемент таблицы вычисляется по формуле (A9):

(A9)



Таблица А1 - Матрица Q влияния критериев на выбор альтернативы


А1

А2

А3

Б1

24,5 %

50,76%

25,74%

Б2

64,85%

20,02%

14,13%

Б3

91,56%

4,73%

3,7%


Проверим согласованность иерархии. Для этого необходимо вычислить индекс согласованности, определяемый как сумма произведений индексов согласованностей критериев на их приоритеты:


Вычислим отношение согласованности по формуле (A10):

(A10)


Найдем отношение согласованности при СС(3) = 0,58:

 


Приложение А6


Для этого рассчитаем коэффициенты критериев  по формуле (A1):

Найдем сумму коэффициентов по формуле (A2):

Вычислим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов:

По полученным результатам можно сделать вывод о важности критериев. Представим критерии по убыванию их приоритетов:

.        Производительность;

.        Эффективность;

.        Кроссплатформенность;

.        Количество компонент.

Для проверки согласованности матрицы вычислим по формуле (A4):

Определим наибольшее собственное значение матрицы парных сравнений  по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности ОС по формуле (A7):

СС(4) = 0,9.

 


Приложение А7


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А8


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А9


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А10


Найдем значения  по формуле (A1):

Найдем значение B по формуле (A2):

Определим вектор локальных приоритетов по формуле (A3):

Оценим величину погрешности при вычислении вектора локальных приоритетов, для этого сложим все приоритеты и сравним сумму с единицей:

Определим значения  по формуле (A4):

Найдем значение наибольшего собственного значения матрицы суждений по формуле (A5):

Найдём индекс согласованности по формуле (A6):

Найдем отношение согласованности по формуле (A7):

 


Приложение А11


Вычислим глобальные приоритеты по формуле (A8):

Проверим погрешность вычислений:

Построим таблицу Q для имеющихся альтернатив. Элемент таблицы вычисляется по формуле (A9):

Таблица А2 - Матрица Q влияния критериев на выбор альтернативы


А1

А2

А3

А4

Б1

69,77%

20,43%

7,19%

2,41%

Б2

67,37%

12,25%

10,02%

10,36%

Б3

30,35%

8,56%

3,24%

57,85%


Проверим согласованность иерархии. Для этого необходимо вычислить индекс согласованности, определяемый как сумма произведений индексов согласованностей критериев на их приоритеты:

Вычислим отношение согласованности по формуле (A10):

Найдем отношение согласованности при СС(3) = 0.58:



ПРИЛОЖЕНИЕ Б


Текст программы

Файл «\Siglab\UndoRedoService.cs»

namespace Siglab

{

   using System.Collections.Generic;

   using System.Linq;

   using Commands;

   using Common;

   using Plugin;

   /// <summary>

   /// TODO: Update summary.

   /// </summary>

   public class UndoRedoService : NotifyableObject

   {

       /// <summary>

       ///

       /// </summary>

       private readonly Stack<IDesignerCommand> undoCommands = new Stack<IDesignerCommand>();

       /// <summary>

       ///

       /// </summary>

       private readonly Stack<IDesignerCommand> redoCommands = new Stack<IDesignerCommand>();

       /// <summary>

       ///

       /// </summary>

       private Stack<IDesignerCommand> originalUndoCommands = new Stack<IDesignerCommand>();

       /// <summary>

       ///

       /// </summary>

       private Stack<IDesignerCommand> originalRedoCommands = new Stack<IDesignerCommand>();

       /// <summary>

       ///

       /// </summary>

       public bool HasChanges

       {

           get

           {

               return !(this.originalUndoCommands.Count == this.undoCommands.Count &&

                   this.originalRedoCommands.Count == this.redoCommands.Count &&

                   this.originalUndoCommands.SequenceEqual(this.undoCommands) &&

                   this.originalRedoCommands.SequenceEqual(this.redoCommands));

           }

       }

       /// <summary>

       ///

       /// </summary>

       public bool CanUndo

       {

           get

           {

               return this.undoCommands.Count > 0;

           }

       }

       /// <summary>

       ///

       /// </summary>

       public bool CanRedo

       {

           get

           {

               return this.redoCommands.Count > 0;

           }

       }

       /// <summary>

       ///

       /// </summary>

       public string UndoTitle

       {

           get

           {

               if (this.CanUndo)

               {

                   return string.Format("Undo {0}", this.undoCommands.Peek().Title);

               }

               return null;

           }

       }

       /// <summary>

       ///

       /// </summary>

       public string RedoTitle

       {

           get

           {

               if (this.CanRedo)

               {

                   return string.Format("Redo {0}", this.redoCommands.Peek().Title);

               }

               return null;

           }

       }

       /// <summary>

       ///

       /// </summary>

       /// <param name="command"></param>

       public void Execute(IDesignerCommand command)

       {

           if (command == null)

           {

               return;

           }

           command.Execute();

           this.undoCommands.Push(command);

           this.redoCommands.Clear();

           this.Update();

       }

       /// <summary>

       ///

       /// </summary>

       public void Undo()

       {

           if (!this.CanUndo)

           {

               return;

           }

           var command = this.undoCommands.Pop();

           command.Undo();

           this.redoCommands.Push(command);

           this.Update();

       }

       /// <summary>

       ///

       /// </summary>

       public void Redo()

       {

           if (!this.CanRedo)

           {

               return;

           }

           var command = this.redoCommands.Pop();

           command.Redo();

           this.undoCommands.Push(command);

           this.Update();

       }

       /// <summary>

       ///

       /// </summary>

       public void AcceptChanges()

       {

           this.originalRedoCommands = new Stack<IDesignerCommand>(this.redoCommands);

           this.originalUndoCommands = new Stack<IDesignerCommand>(this.undoCommands);

       }

       /// <summary>

       ///

       /// </summary>

       private void Update()

       {

           this.Notify("UndoTitle");

           this.Notify("RedoTitle");

       }

   }

}

Файл «/Siglab/PluginService.cs»Siglab

{

   using System;

   using System.Collections.Generic;

   using System.ComponentModel.Composition;

   using System.ComponentModel.Composition.Hosting;

   using System.IO;

   using System.Linq;

   using Plugin;

   /// <summary>

   /// Plugin manager.

   /// </summary>

   public class PluginService

   {

       public PluginService(string pluginDirectory)

       {

           this.PluginDirectory = pluginDirectory;

           this.LoadPlugins();

       }

       [ImportMany]

       public List<ExportFactory<Plugin, IPluginMetadata>> Plugins

       {

           get;

           protected set;

       }

       public string PluginDirectory

       {

           get;

           private set;

       }

       public Plugin GetPlugin(string name)

       {

           var pluginFactory = this.Plugins.FirstOrDefault(n => n.Metadata.Name.Equals(name));

           if (pluginFactory == null)

           {

               return null;

           }

           var plugin = pluginFactory.CreateExport().Value;

           return plugin;

       }

       private void LoadPlugins()

       {

           var catalog = new AggregateCatalog();

           var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, this.PluginDirectory);

           foreach (var directory in Directory.GetDirectories(path))

           {

               catalog.Catalogs.Add(new DirectoryCatalog(directory));

           }

           var container = new CompositionContainer(catalog);

           container.ComposeParts(this);

       }

   }

}

Файл «\Plugin\Plugin.cs\»Plugin

{

   using System;

   using System.Collections.Generic;

   using System.Windows;

   using System.Windows.Controls;

   using System.Xml.Linq;

   /// <summary>

   /// Describes a plugin.

   /// </summary>

   public abstract class Plugin : ISettings

   {

       private readonly List<Port> ports = new List<Port>();

       /// <summary>

       /// Initializes a new instance of the Plugin class.

       /// </summary>

       protected Plugin()

       {

           this.Metadata = (PluginAttribute)Attribute.GetCustomAttribute(this.GetType(), typeof(PluginAttribute));

       }

       public List<Port> Ports

       {

           get

           {

               return this.ports;

           }

       }

       /// <summary>

       /// Gets the metadata.

       /// </summary>

       public PluginAttribute Metadata

       {

           get;

           private set;

       }

       /// <summary>

       /// Gets or sets the view.

       /// </summary>

       public UserControl View

       {

           get;

           protected set;

       }

       /// <summary>

       /// </summary>

       public string Name

       {

           get

           {

               return this.Metadata.Name;

           }

       }

       /// <summary>

       /// Gets the library.

       /// </summary>

       public string Library

       {

           get

           {

               return this.Metadata.Library;

           }

       }

       /// <summary>

       /// Gets the version.

       /// </summary>

       public string Version

       {

           get

           {

               return this.Metadata.Version;

           }

       }

       /// <summary>

       /// Gets the description.

       /// </summary>

       public string Description

       {

           get

           {

               return this.Metadata.Description;

           }

       }

       /// <summary>

       /// Gets or sets the settings.

       /// </summary>

       public XElement Settings

       {

           get

           {

               return this.ViewModel.Settings;

           }

           set

           {

               this.ViewModel.Settings = value;

           }

       }

       /// <summary>

       /// Gets or sets the view model.

       /// </summary>

       protected ISettings ViewModel

       {

           get;

           set;

       }

       public void AddInputPort(string portName)

       {

           this.ports.Add(new InputPort(portName));

       }

       public void AddOutputPort(string portName)

       {

           this.ports.Add(new OutputPort(portName));

       }

       /// <summary>

       /// Shows configure window.

       /// </summary>

       /// <param name="owner">The window owner.</param>

       public abstract void ShowConfigureWindow(Window owner);

       /// <summary>

       /// Plugin emulation.

       /// </summary>

       public abstract void Emulate(IDictionary<Port, Signal> data);

       private Signal GetSignal<TPort>(string portName, IDictionary<Port, Signal> data, Func<string, TPort> factory)

           where TPort : Port

       {

           var port = factory(portName);

           if (!this.ports.Contains(port))

           {

               throw new ArgumentException();

           }

           return data[port];

       }

       public Signal GetOutputSignal(string portName, IDictionary<Port, Signal> data)

       {

           return this.GetSignal(portName, data, n => new OutputPort(n));

       }

       public Signal GetInputSignal(string portName, IDictionary<Port, Signal> data)

       {

           return this.GetSignal(portName, data, n => new InputPort(n));

       }

   }

}

ПРИЛОЖЕНИЕ В

Модуль тестирования «SchemeTest»

namespace Tests

{

   using System;

   using System.IO;

   using System.Xml;

   using System.Xml.Linq;

   using Microsoft.VisualStudio.TestTools.UnitTesting;

   using Siglab;

   [TestClass]

   public class SchemeTest

   {

       private TestContext testContextInstance;

       public TestContext TestContext

       {

           get

           {

               return testContextInstance;

           }

           set

           {

               testContextInstance = value;

           }

       }

       [TestMethod]

       [ExpectedException(typeof(XmlException))]

       public void WithoutRootElement()

       {

           DesignerCanvasOpen(XElement.Load(new StringReader("error")));

       }

       [TestMethod]

       public void EmptyRootElement()

       {

           DesignerCanvasOpen(XElement.Load(new StringReader("<Siglab></Siglab>")));

       }

       [TestMethod]

       [ExpectedException(typeof(NullReferenceException))]

       public void EmptyDesignerItem()

       {

           DesignerCanvasOpen(XElement.Load(new StringReader("<Siglab><Items><DesignerItem></DesignerItem></Items></Siglab>")));

       }

       [TestMethod]

       [ExpectedException(typeof(FormatException))]

       public void DesignerItemWithWrongId()

       {

           DesignerCanvasOpen(XElement.Load(new StringReader("<Siglab><Items><DesignerItem><Id>error</Id></DesignerItem></Items></Siglab>")));

       }

       private void DesignerCanvasOpen(XElement root)

       {

           var canvas = new DesignerCanvas();

           canvas.Open(root);

       }

   }

}

Похожие работы на - Программно-аппаратная система генерации сигналов с заданными параметрами

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!