- •Введение 5
- •1 Исследовательский раздел
- •1.1 Анализ существующих аналогичных систем
- •1.1.1 Обзор архитектуры устройств usb
- •1.2 Обоснование выбора программно-аппаратных средств
- •1.3 Постановка задачи
- •1.4 Развернутое техническое задание
- •1.4.1 Общие сведения
- •2.1.1 Основные дескрипторы usb драйвера
- •2.1.1.1 Дескриптор устройства
- •2.1.1.2 Дескриптор расширения устройства
- •2.1.1.3 Дескриптор конфигурации
- •2.1.1.4 Дескриптор интерфейса
- •2.1.1.5 Дескриптор конечной точки
- •2.2 Разработка функциональной схемы драйвера
- •2.2.1 Драйвер в иерархии wdm
- •2.2.2 Уровни обмена данными usb устройств
- •2.2.3 Архитектура системного драйвера usb
- •2.2.4 Основные рабочие процедуры драйвера
- •2.2.5 Управление перемещаемостью кода в драйвере
- •2.3 Разработка алгоритмического обеспечения
- •2.3.1 Инициализация драйвера
- •2.3.3 Обработка расширенных запросов ioctl
- •2.3.4 Поддержка запросов Plug and Play
- •2.3.5 Управление питанием
- •2.3.5.1 Обработка запросов irp_mj_power
- •2.3.6 Процедура деинициализации драйвера
- •2.4 Разработка программного обеспечения
- •2.4.1 Процедура DriverEntry
- •2.4.2 Процедура DriverUnload
- •2.4.3 Процедура AddDevice
- •2.4.4 Процедура передачи запроса usbd
- •2.4.5 Обработчики usbCreate и usbClose
- •2.4.6 Обработчик ConfigureDevice
- •2.4.7 Обработчики запросов на чтение и запись
- •3 Технологический раздел
- •3.1 Технология разработки драйверов для операционных систем семейства Windows
- •3.1.1 Архитектура Windows Driver Model
- •3.1.2 Выбор типа разрабатываемого драйвера
- •3.1.3 Разработка usb драйвера
- •3.2 Технология отладки драйверов в операционных системах семейства Windows
- •3.2.1 Основные отладочные тесты
- •3.2.2 Основные «проблемы», возникающие при отладке драйвера
- •3.2.2.1 Аппаратные проблемы
- •3.2.2.2 Программные проблемы
- •3.2.3 Основные отладчики и утилиты для проверки драйвера
- •3.2.3.1 Отладчик WinDbg
- •3.2.3.2 Driver Verifier
- •3.2.4 Общие приемы отладки драйвера
- •3.2.4.1 Установка фиксированных точек прерывания
- •3.2.4.2 Промежуточный вывод на экран
- •3.2.4.3 Сохранение отладочного кода в исходном тексте драйвера
- •3.2.4.4 Перехват некорректных условий
- •3.2.4.5 Обнаружение утечек памяти
- •3.2.5 Замечания по отладке драйверов
- •4 Безопасность жизнедеятельности
- •4.1 Анализ эргономических параметров рабочего места пользователя пэвм
- •4.1.1 Общие эргономические аспекты рабочего места
- •4.2 Организация рабочего места пользователя с учётом эргономических требований
- •4.2.1 Организация рабочего стола
- •4.2.2 Рабочее кресло
- •4.2.3 Работа с клавиатурой и мышью
- •4.2.4 Расположение и эргономические характеристики монитора
- •4.2.5 Внутренний объем
- •4.2.6 Рабочая поза пользователя пэвм
- •4.3 Экологическая оценка и переработка узлов компьютерной техники содержащих платину
- •4.3.1 Извлечение платины из отработанных катализаторов
- •4.3.2 Извлечение платины из радиооборудования и сплавов для электрических контактов
- •5 Экономический раздел
- •5.1 Планирование разработки драйвера с построением графика выполнения работ
- •5.1.1 Определение этапов и работ по созданию программного продукта
- •5.1.2 Расчет трудоемкости и продолжительности работ
- •5.1.3 Построение графика выполнения работ
- •5.2 Расчет затрат на разработку
- •5.3 Оценка экономической эффективности проекта
- •1 К исследовательскому разделу
- •2 К специальному разделу
- •3 К технологическому разделу
- •4 К разделу «Безопасность Жизнедеятельности»
- •5 К экономическому разделу
- •Приложение а Установка драйвера с помощью inf-файла
- •Приложение б Графические материалы
5.3 Оценка экономической эффективности проекта
Драйвер – весьма специфический программный продукт. Подобное программное обеспечения предназначено для обеспечения взаимодействия некоторого устройства (оборудования) с программной системой (например, операционной системой). Как правило, драйверы разрабатывается по заказу производителей оборудования отдельными компаниями, которые предоставляют подобные услуги. В нашем случае, драйвер автоматизированного устройства хранения компакт дисков разрабатывается по заказу компании.
Поскольку драйвер разрабатывается по заказу, то использование пользователем разработанного драйвера позволяет не нанимать в штат прикладного программиста для разработки драйвера и, следовательно, сэкономить на заработной плате и соответствующих отчислениях от нее. Таким образом, экономический эффект будет достигнут засчет экономии на заработной плате персонала, который не придется нанимать.
Срок окупаемости проекта можно рассчитать по следующей формуле:
|
(5.15) |
где – срок окупаемости проекта, лет;
– величина капиталовложений, руб;
– годовая экономия на текущих затратах, руб.
Величина капиталовложений в нашем случае определяется только из розничный цены программного продукта (цены разработки) - :
|
|
Годовая экономия на текущих затратах ( ) определяется следующим образом:
|
(5.16) |
где – годовая экономия на заработной плате, руб;
– годовая экономия на социальных отчислениях, руб;
– затраты на амортизацию ПО, руб.
Годовая экономия на заработной плате ( ) определяется по следующей формуле:
|
(5.17) |
где – заработная плата исполнителя ( ), руб;
– количество исполнителей (в нашем случае ), чел.
Согласно статистическим данным, месячный оклад прикладного программиста составляет 30000 руб/мес, тогда заработная плата исполнителя за 12 месяцев составит:
|
|
С учетом вышеприведенных расчетов, годовая экономия на заработной плате персонала, который не придется содержать в связи с разработкой, внедрением и поддержкой ПО, составит:
|
|
Годовая экономия на социальных отчислениях в этом случае составит:
|
|
Затраты на амортизацию ПО ( ) можно рассчитать по следующей формуле:
|
(5.18) |
где – норма амортизации основного средства (для ПО ), 1/лет;
– розничная цена программного продукта, руб.
С учетом формулы (5.18) рассчитаем затраты на амортизацию ПО:
|
|
Таким образом, с учетом формулы (5.16), мы теперь можем рассчитать годовую экономию на текущих затратах ( ):
|
|
Срок окупаемости нашего программного продукта, с учетом формулы (5.15), составит:
|
|
Эффективность капитальных вложений можно определить по формуле:
|
(5.19) |
где – коэффициент эффективности капитальных вложений (должен быть не меньше нормативного коэффициента эффективности капитальных вложений ( ), соответствующий годовой норме доходности капитала, принятой инвестором в качестве приемлемой для него величины), %;
– срок окупаемости проекта, лет.
Нормативный коэффициент эффективности капитальных вложений ( ) зависит от конкретных экономических условий, средней банковской процентной ставки по стране, нормы доходности в данной отрасли, степени риска и длительности проекта, инфляции, средневзвешенной стоимости капитала фирмы и т.д. Для нашего случая примем .
Эффективность капитальных вложений, с учетом формулы (5.19), составит:
|
|
Таким образом, значение величины эффективности капитальных вложений в нашем случае составляет 0,48, что больше нормативного коэффициента ( ), поэтому проект можно признать экономически успешным.
Основные экономические показатели проекта приведены в итоговой таблице 5.10:
Таблица 5.10 - Основные экономические показатели проекта
Показатель |
Единица измерения |
Значение |
1. Трудоемкость разрабатываемого ПО |
чел-дн. |
99 |
2. Продолжительность разработки |
календ. дн. |
120 |
3. Затраты на разработку |
руб. |
377089,38 |
4. Цена разработки |
руб. |
578455,10 |
5. Капитальные вложения |
руб. |
578455,10 |
6. Годовая экономия на текущих затратах у пользователя |
руб/год |
277829,82 |
7. Срок окупаемости проекта |
лет |
2,08 |
8. Эффективность капитальных вложений |
- |
0,48 |
Как видно из таблицы основных экономических показателей проекта (таблица 5.10), срок окупаемости составил 2,08 лет. Это ниже нормы износа нематериальных активов, а также ниже срока службы вычислительной техники. Кроме того, эффективность капитальных вложений заметно превышает нормативное значение, а годовая экономия на текущих затратах составляет 277829,82 рублей. Таким образом, проект можно считать экономически выгодным.
Заключение
В данном дипломном проекте был разработан драйвер автоматизированного устройства хранения компакт дисков для операционной системы семейства Windows. Данный драйвер обеспечивает соответствующую обработку запросов ввода/вывода, взаимодействует с основными сервисами системы, а также обеспечивает поддержку Plug and Play и управление энергопотреблением.
Несмотря на сложность разрабатываемого ПО, драйвер достаточно просто установить с помощью соответствующего INF-файла.
В исследовательском разделе проведен анализ поставленной задачи. Исследованы аналогичные разработки, в частности, сложность разработки подобных систем. Были проанализированы преимущества и недостатки данных систем. В результате проведенного анализа был отмечен необходимый программный функционал.
В специальном разделе была разработана и проанализирована структурная схема программы, а именно, основные структурные данные (дескрипторы), которыми манипулирует драйвер в процессе работы. Кроме того, были рассмотрены основные алгоритмы обработки запросов ввода/вывода, используемые в разработанном драйвере. Разработано необходимое функциональное и программное обеспечение дайвера.
В технологическом разделе описана технология разработки WDM драйверов Windows, а также рассмотрена методика тестирования, отладки и верификации WDM драйверов.
В разделе безопасность жизнедеятельности был проведён анализ эргономических параметров рабочего места пользователя ПЭВМ, а также проведена соответствующая организация рабочего места с учётом эргономических требований. В ходе анализа было установлено, как правильно организовать рабочее место, а также какие вредные факторы действуют на пользователя при неправильной организации рабочего места. Также была проведена экологическая оценка узлов компьютерной техники, содержащих платину, в ходе которой было предложено несколько способов по их переработке.
Данные, полученные в экономическом разделе, показали эффективность и целесообразность проекта.
Таким образом, расчеты подтвердили, что применение данной разработки является целесообразным.
Список использованных источников