Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Frozen / пояснительная записка / пояснительная записка.doc
Скачиваний:
45
Добавлен:
16.04.2013
Размер:
4.04 Mб
Скачать

116

Содержание.

Введение 5

Раздел 1. Специальный раздел

1.1. Исследовательская часть 10

1.1.1. Постановка задачи 10

1.1.2. Предварительные НИР 11

1.1.3. Информационные потребности пользователей 13

1.1.4. Требования, предъявляемые к системе 14

1.2. Конструкторская часть 17

1.2.1. Структура входных и выходных данных 17

1.2.2. Общая схема работы модуля 18

1.2.3. Выбор платформы проектирования

и его обоснование 19

1.2.4. Проектирование архитектуры модуля 22

1.2.5. Конфигурация технических средств 29

1.2.6. Алгоритмы работы модуля 29

1.2.7. Методика тестирования 35

1.2.8. Результаты экспериментальной проверки 38

Раздел 2. Технологический раздел

2.1. Проектирование на языке UML 40

2.1.1. Концепция Unified Modeling Language 40

2.1.2. Виды диаграмм UML 41

2.1.3. Связь с объектно-ориентированными языками 48

2.2. Идеология STL в применении к архитектуре модуля 48

2.2.1. Шаблоны в C++ 49

2.2.2. Контейнеры 50

2.2.3. Алгоритмы 54

2.2.4. Потоки 56

2.2.5. Умные указатели 57

2.3. Специализированный инструментарий 59

2.3.1. Средства работы с zip-архивами 59

2.3.2. Шифрация по алгоритму CRC32 60

2.4. Тестирование 60

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

2.4.2. Типы тестов 62

2.4.3. Планирование модульных тестов 63

2.4.4. Примеры тестирования 64

2.4.5. Методы “грубой силы” и их

применение при отладке программы 66

Раздел 3. Организационно-экономический раздел

3.1. Цели определения себестоимости и цены модуля 68

3.2. Методы определения себестоимости 68

3.2.1. Метод калькуляции 68

3.2.2. Расчет на основе нормо-часа 69

3.2.3. Метод удельных показателей 69

3.2.4. Метод коэффициентов 69

3.3. Расчет себестоимости VFS 73

3.4. Методы расчета цены 79

3.4.1. По стоимости изготовления 79

3.4.2. На основе отчислений с продаж («роялти») 79

3.4.3. На тиражируемый продукт 80

3.5. Расчет цены VFS 80

3.6. Выводы 81

Раздел 4. Раздел производственно-экологической безопасности

4.1. Производственная безопасность 83

4.2. Анализ работы за компьютером с точки рения производственной безопасности 83

4.2.1. Психофизиологические факторы 84

4.2.2. Электромагнитные излучения 87

4.2.3. Освещение рабочего места 89

4.2.4. Электробезопасность 91

4.2.5. Микроклимат 93

4.2.6. Зашумленность 94

4.3. Инженерный расчет освещенности машинного зала 95

4.4. Экологическая безопасность 98

4.5. Пожарная безопасность 98

4.6. Выводы 98

Заключение 99

Список литературы 100

Приложения 101

1. Руководство программиста 102

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

Введение.

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

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

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

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

2) Современные быстродействующие СУБД стоят довольно больших денег, и в случае с распространением игры как товара, как правило, требуется отдельное лицензирование.

Чаще всего разработчики реализуют иерархические структуры на диске. В силу внешних причин отдельные части ресурсов могут быть заархивированы и/или зашифрованы. Часть ресурсов может быть оставлена на ключевом носителе (сейчас в этой роли часто выступает оптический диск), который тоже может быть защищен по какой-либо технологии (оптический диск - StarForce, LaserLock и другие). Также ресурсы могут быть размещены на сетевом сервере, что накладывает свои требования к доступу, верификации и иногда к защите. Ситуация в индустрии диктует ещё одно требование: необходима возможность работы с несколькими параллельными версиями ресурсов – это нужно для корректной установки патчей (пакетов исправлений и дополнений) и пользовательских модификаций. В результате разработчики часто оказываются перед распределенным комплексом весьма сложных по структуре хранилищ. Кроме того, необходимость знать о типах хранилищ и особенностях работы с ними, вызывает резкое усложнение кода и затрудняет его повторное использование.

В данной работе рассмотрен известный подход к организации подобных хранилищ, названный «виртуальная файловая система». Основные положения этого подхода:

1) Любые обращения к файловой системе идут по виртуальному «дереву» каталогов, начиная с корня (root).

2) Любое файловое хранилище – носитель, архив, сетевой каталог и т.п. – может быть присоединено (замонтировано) к дереву как «ветка», соответственно, часть полного пути до файла будет располагаться в дереве, а часть – в ветке.

3) Под «файлом» подразумевается любой потоковый источник информации, это могут быть дисковый файл, устройство или программно сформированные данные в памяти.

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

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

1) Увеличение количества типов поддерживаемых файловых подсистем (хранилищ). Предусмотрен специальный интерфейс, реализуя который можно реализовать и подключить новую подсистему.

2) Наращивание механизмов эвристики по выбору вариантов файлов в случае использования параллельных веток. Предусмотрен механизм передачи внешнего функтора для сравнения файлов.

Модуль реализует работу с алгоритмами архивации zip, шифрованием по алгоритму CRC32, с сетью и с ресурсами исполняемых файлов Win32.

Выбор средств разработки определялся удобством интеграции в существующие проекты, а также быстродействием результирующего модуля. В силу того, что программирование в MiSTland ведется на языке С++, модуль также был реализован на C++ и с использованием идеологии STL. Из инструментальных средств, выбор пал на Microsoft Visual Studio 7.1, STLport, BOOST и zlib. Проектирование велось в Rational Rose, для не-UML схем использовался Microsoft Visio.

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

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

В организационно-экономическом разделе рассчитаны себестоимость разработки модуля и его цена.

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

Соседние файлы в папке пояснительная записка
  • #
    16.04.2013190.46 Кб30UML-диаграмма system.vsd
  • #
    16.04.2013207.87 Кб30UML-диаграмма VFS (общая).vsd
  • #
    16.04.201399.33 Кб28UseCase всей VFS.vsd
  • #
    16.04.2013106.5 Кб28Входные и выходные данные.vsd
  • #
    16.04.2013112.13 Кб29Общая схема работы модуля.vsd
  • #
  • #
    16.04.2013109.57 Кб29Схема алгоритма get_descriptor.vsd
  • #
    16.04.2013106.5 Кб29Схема алгоритма get_files.vsd
  • #
    16.04.2013100.35 Кб28Схема алгоритма mount.vsd
  • #
    16.04.201396.26 Кб29технологическая - Activity.vsd
  • #
    16.04.201379.87 Кб29технологическая - Class.vsd