/>/>/>/>/>Введение
Ведение народного хозяйства страны невозможно бездетального изучения ее территории. Современная техника геодезических исъемочных работ обеспечивает получение точной топографической карты,характеризующей географический ландшафт по его основным элементам. Эта карта,кроме непосредственного обслуживания народнохозяйственных нужд, дает еще основудля изучения страны в геологическом, гидрогеологическом, почвенном,ботаническом и других отношениях. На основе этой карты составляются различныеобщегеографические и специальные карты.
В науках о Земле информационные технологии породилигеоинформатику и географические информационные системы (ГИС). Любая ГИСпредставляет из себя систему для сбора, хранения, анализа и представлениякартографической информации. Геоинформационные системы могут включатьприродную, биологическую, культурную, демографическую или экономическуюинформацию.
Для использования в ГИС данные должны быть преобразованы вподходящий цифровой формат. Процесс преобразования данных с бумажных карт вкомпьютерные файлы называется оцифровкой. В современных ГИС этот процесс можетбыть автоматизирован применением сканерной технологии, что особенно важно привыполнении крупных проектов. Если объем работ небольшой, можно вводить данные спомощью дигитайзера. Многие данные уже переведены в форматы, напрямуювоспринимаемые ГИС-пакетами.
ГИС хранит информацию о реальном мире в виде наборатематических слоев, которые объединены на основе географического положения.
ГИС может работать с двумя существенно различающимисятипами данных – векторными и растровыми. В векторной модели информация оточках, линиях и полигонах кодируется и хранится в виде набора координат X и Y.
Растровая модель оптимальна для работы с непрерывнымисвойствами. Растровое изображение представляет собой набор значений дляотдельных элементарных составляющих (ячеек). Оно подобно отсканированной картеили картинке. Вся изучаемая территория разбивается на элементы регулярной сеткиили ячейки. Каждая ячейка содержит только одно значение. Она являетсяпространственно заполненной, поскольку любое местоположение на изучаемойтерритории соответствует ячейке растра, иными словами, растровая модельоперирует элементарными местоположениями. В большинстве растровых моделейданных наименьшей единицей является квадрат или прямоугольник. Такие единицыизвестны как сетка, матрица или пиксел. Множество ячеек образует решетку,растр, матрицу.
Бурное развитие геоинформатики порождает немало приложений,в которых используется та или иная цифровая модель рельефа (ЦМР) земнойповерхности. Подавляющее число таких приложений, например, прогноз наводнений,обеспечение безопасности полетов, объемное представление карты на экранекомпьютера и т.п., требуют по возможности наиболее точных моделей. Зачастуютребования по точности ЦМР можно удовлетворить, создавая модели на основецифровых топографических карт соответствующего масштаба, содержащих информациюо рельефе в виде изолиний, отметок высот, отметок урезов воды и т.п. Процесссоздания модели рельефа (в триангуляционном или матричном виде) по цифровымданным такого типа в настоящее время хорошо изучен и реализован во многихГИС-пакетах.
Цифровая модель рельефа, ЦМР – это средство цифровогопредставления 3-мерных пространственных объектов (поверхностей, рельефов) ввиде трехмерных данных как совокупности высотных отметок или отметок глубин ииных значений аппликат (координаты Z) в узлах регулярной сети с образованиемматрицы высот, нерегулярной треугольной сети или как совокупность записейгоризонталей (изогипс, изобат) или иных изолиний.
Целью дипломного проекта является разработка программногомодуля обработки и отображения картографической информации на цифровой картеместности.
В процессе дипломного проектирования решаются следующиезадачи:
- обзор технологий и систем ГИС;
- системное и функциональноепроектирование программного модуля;
- разработка программного модуля сиспользованием сред программирования Visual C++ 6.0, Qt 3.3.3;
- проведение тестирования программногомодуля;
- разработка руководства пользователяпрограммного модуля;
- технико-экономическое обоснование;
- разработка раздела по охране труда.
геоинформационныйпрограммирование модуль система
/>/>/>/>1. Обзор геоинформационных систем 1.1 Понятие о геоинформационных системах и технологиях
Создание карт и географический анализ не являются чем-тоабсолютно новым. Технологии ГИС предоставляют новый, более соответствующийсовременности, более эффективный, удобный и быстрый подход к анализу проблем ирешению задач, стоящих перед человечеством в целом, и конкретной организациейили группой людей, в частности. Они автоматизируют процедуру анализа ипрогноза. До начала применения ГИС лишь немногие системы обладали искусствомобобщения и полноценного анализа географической информации с цельюобоснованного принятия оптимальных решений, основанных на современных подходахи средствах.
Основное отличие ГИС от просто информационной системы в томчто, ГИС – информационная система, обеспечивающая сбор, хранение, обработку,доступ, отображение и распространение пространственно координированных(пространственных) и атрибутивных данных. ГИС содержит данные опространственных объектах в форме их цифровых представлений (векторных,растровых), включает соответствующий задачам набор функциональных возможностейГИС, в которых реализуются операции геоинформационных технологий,поддерживается программным, аппаратным, информационным, нормативно-правовым,кадровым и организационным обеспечением. ГИС различаются предметной областьюинформационного моделирования, к примеру, городские ГИС, или муниципальные ГИС,природоохранные ГИС, среди них особое наименование, как особо широкораспространенные, получили земельные информационные системы. Проблемнаяориентация ГИС определяется решаемыми в ней задачами (научными и прикладными),среди них инвентаризация ресурсов (в том числе кадастр), анализ, оценка,мониторинг, управление и планирование, поддержка принятия решений.Интегрированные ГИС совмещают функциональные возможности ГИС и систем цифровойобработки изображений (данных дистанционного зондирования) в единойинтегрированной среде. Пространственно-временные ГИС оперируютпространственно-временными данными. Реализация геоинформационных проектов,создание ГИС в широком смысле слова, включает этапы: исследования, технико-экономическоеобоснование, оценку соотношения «затраты / прибыль», системноепроектирование ГИС, тестирование на небольшом территориальном фрагменте,создание опытного образца, внедрение ГИС в эксплуатацию и использование.Научные, технические, технологические и прикладные аспекты проектирования,создания и использования ГИС изучаются наукой геоинформатикой.
Хотя большинство ГИС преимущественно используютсяуправления объектами на сравнительно больших территориях, однако, они могутбыть применены и предприятиями, имеющих на своем балансе здания, сооружения,инженерные коммуникации. Для таких систем хорошо подходят корпоративные ГИС.Задача любой корпоративной системы – снизить издержки работы за счет наведенияпорядка в том, с чем до этого работали на бумаге, ускорить доступ к информации,автоматизировать проведение расчетов, которые на компьютере производятся,естественно, быстрее и с меньшей вероятностью возникновения ошибки, чем набумаге. Для получения лучших результатов такие системы должны обладатьинтеллектуальными свойствами.
Работающая ГИС включает в себя пять ключевых составляющих:аппаратные средства, программное обеспечение, данные, исполнители и методы [1].
Аппаратные средства, которые используются в ГИС – этокомпьютер, на котором запущена ГИС и средства ввода-вывода пространственнойинформации (дигитайзеры, плоттеры и др.). В настоящее время ГИС работают наразличных типах компьютерных платформ, от централизованных серверов доотдельных или связанных сетью настольных компьютеров.
Программное обеспечение ГИС содержит функции и инструменты,необходимые для хранения, анализа и визуализации географической(пространственной) информации. Ключевыми компонентами программных продуктовявляются: инструменты для ввода и оперирования географической информацией;СУБД; инструменты поддержки пространственных запросов, анализа и визуализации(отображения); ГИП для легкого доступа к инструментам.
Данные – это вероятно наиболее важный компонент ГИС. Данныео пространственном положении объектов (географические данные) и связанные сними табличные данные могут собираться и подготавливаться самим пользователем,либо приобретаться у поставщиков на коммерческой или другой основе. В процессеуправления пространственными данными ГИС интегрирует пространственные данные сдругими типами и источниками данных, а также может использовать СУБД,применяемые многими организациями для упорядочивания и поддержки имеющихся в ихраспоряжении данных.
Широкое применение технологии ГИС невозможно без людей(исполнителей.), которые работают с программными продуктами и разрабатываютпланы их использования при решении реальных задач. Пользователями ГИС могутбыть как технические специалисты, разрабатывающие и поддерживающие систему, таки обычные сотрудники (конечные пользователи), которым ГИС помогает решатьтекущие каждодневные дела и проблемы.
Успешность и эффективность (в том числе экономическая)применения ГИС во многом зависит от правильно составленного плана и правилработы, которые составляются в соответствии со спецификой задач и работы каждойорганизации.
В настоящее время российские и зарубежные производителипредлагают широкий спектр геоинформационных систем. Можно привести наиболеепопулярные из них.
GIS MapInfo – содержит всюинформацию (графическую, текстовую и др.) в таблицах. Пользователь управляетпроцессами создания картографической информации и тематических слоев черезграфический интерфейс, который выражается в виде меню и системы контекстныхподсказок. MapInfo имеет встроенную реляционную СУБД, работающую по SQL-запросамс файлами в различных форматах.
BusinessMAP – пакетначального уровня для решения бизнес задач, таких как поддержка продаж имаркетинг, на основе включенных в него (в основном по США) или уже имеющихся вготовом виде данных.
Atlas GIS – удобный пакетдля конечного пользователя со всеми стандартными функциями, имеющимися впростых настольных ГИС системах. Включает разнообразные готовые данные, в томчисле по России. Основное назначение – бизнес приложения.
ArcView GIS – настольнаяГИС с развитыми функциями пространственного анализа, многие из которыхдобавляются к базовому набору в виде дополнительных модулей. Работает на разныхплатформах.
ARC/INFO –профессиональная ГИС для решения задач структурирования и управления данными,ведения базы данных. Работает на разных платформах. ГИС для рабочей группы(уровня отдела или небольшой фирмы, в которых постоянно ведется разработка ГИСпроектов). По мере расширения сферы деятельности и усложнения выполняемых задачцелесообразно распределить их решение между несколькими продуктами. Такая ГИСобычно базируется на разделяемой базе пространственных данных, поддерживаемой иобновляемой с помощью разных продуктов и обеспечивающей работу «конечных» пользователейна персональных компьютерах в пределах данной рабочей группы или отдела.Конкретное предлагаемое решение зависит от типов используемых данных, выбраннойпрограммной среды, аппаратного обеспечения и ряда других факторов. ГИС уровняпредприятия (корпоративная ГИС). Обеспечивает всю организацию пространственнойинформационной поддержкой. В такую ГИС можно встроить сотни специализированныхприложений с дополнительными средствами пространственных запросов, расширенногоанализа, отображения и представления данных. В качестве компонентов системытакого уровня могут использоваться серверы пространственных данных:
Spatial Database Engine(SDE) – открытая среда управления пространственными данными, ядро корпоративнойраспределенной ГИС, как правило, вместе с внешней реляционной СУБД;
ГИС широко используется в интернете. Глобальноекартографическое решение. ESRI предоставляет два стандартных решения задачипубликации карт в сети Интернет. MapObjects Internet Map Server обеспечиваеттехнологические средства для доступа к базе данных ГИС через Интернет,разработки собственных приложений для создания карт по имеющимся в вашейорганизации данным, поддержки пространственных запросов к Web серверу с любогоместа в сети. ArcView Internet Map Server предоставляет в ваше распоряжениеготовые средства для распространения картографических материалов через Интернетбез необходимости дополнительного программирования.
Как видно из вышеизложенного материала в настоящее времяГИС – средства в полной мере не решают интеллектуальных задач, таким образомкак их решает человек. Основная проблема сводится к манипулированию ииспользованию знаний. Современные ГИС позволяют работать только с данными(пространственными и атрибутивными) но в полной мере не позволяют представитьзнания о предметной области, знания как управлять предприятием. Одним из путей решенияданной проблемы является реализация системы «гибрида» существующих разработокреализация подсистемы осуществляющей работу с пространственными данными плюсуже более новыми и предметно ориентированными (представление знаний) средствамидля представления и работы с атрибутивными данными и знаниями об исследуемыхобъектах – подсистемой поддержки и принятия решений.
Целью данного дипломного проекта является разработкапрограммного модуля, который должен выполнять следующие функции (задачи):
- загрузка, отображение цифровой картыместности (ЦКМ), прокрутка и зуммирование изображения загруженной цифровойкарты местности (с использованием функций существующей библиотекикартографического обеспечения);
- создание, редактирование и сохранениесписка стандартных высот для объектов цифровой карты местности (по видамобъектов, согласно классификатора условных знаков);
- расчет матрицы превышений на фонецифровой карты местности (с учетом списка стандартных высот, соответствующихданному участку местности);
- создание и редактирование матрицыкорректировок.
Задача расчета матрицы превышений может решаться как однократнодля вполне определенных заданных значений высот рельефа местности,растительности, гидрографии, промышленных объектов, населенных пунктов т. п.,так и многократно, а также по мере необходимости при изменении:
- данных о рельефе, гидрографии,растительности;
- положения и состояния промышленныхобъектов, автомобильных и железных дорог или населенных пунктов.
Исходными данными для программного модуля являются:
- несколько файлов цифровой картыместности с расширением UTP;
- файл – классификатор условных знаковобъектов местности с расширением KLS;
- файл стандартных высот объектовместности (по видам объектов, согласно классификатора условных знаков);
- файл матрицы высот с расширением BMH;
- файл матрицы превышения с расширениемBMH2.
Форматы файлов UTP, KLS, BMH, BMH2 являются внутренними длясуществующей библиотеки картографического обеспечения. Библиотека содержит всенеобходимые функции для работы с файлами указанных форматов.
Файлы цифровой карты местности содержат пространственные,количественные, качественные и описательные характеристики объектов. Один изпредоставляемых файлов является базовым, т.е. покрывает весь интересующийрегион и содержит минимальный набор объектов. Остальные файлы ЦКМ соответствуютлистам карт масштаба 1:200000 или 1:500000.
Объекты карты распределены по слоям (гидрография, границы и т.д.).Отображение карты производится последовательно слой за слоем в соответствии склассификатором.
Файл классификатора объектов карты содержит данные об ихпредставлении на экране при отображении ЦКМ в зависимости от масштабаотображения.
Файл матрицы высот содержит данные о возвышении земной (водной)поверхности относительно уровня Балтийского моря в каждой точке местности.Данные содержатся в матричном виде, в файле также хранится информация о размереячейки (шага матрицы), регионе охвата.
Файл превышения высот содержит данные о возвышении верхнейповерхности сооружений, растительного покрова относительно земной поверхности вкаждой точке местности. Формат файла матрицы превышений такой же, как у файламатрицы высот.
Файл стандартных высот объектов местности представляет из себясписок возможных видов объектов (согласно используемого классификатора условныхзнаков) и соответствующих им значений стандартных высот, хранимый в видеобычного текстового файла.
Для улучшения зрительного восприятия слоев и ускорения процесса ихотображения можно применять функции упрощенной отрисовки объектов изсуществующей библиотеки картографического обеспечения.
Степень детализации отображаемой карты может изменяться установкойминимального размера отображаемого объекта (предусмотреть соответствующиеэлементы интерфейса). Размер задается в единицах измерения экранной системыкоординат, т.е. в пикселях.
Для реализации функций загрузки, отображения, прокрутки изуммирования ЦКМ предусмотреть соответствующие элементы интерфейса (например,меню главного окна или кнопки).
Разрабатываемый программный модуль должен функционировать в средеоперационной системы Microsoft Windows 2000/XP, желательно также предусмотреть при разработке интерфейсавозможность функционирования программы в операционной системе RedHat Linux 7.3/8. Поэтому предлагаетсяинтерфейс приложения разрабатывать с использованием библиотеки QT (версии 3.1.2/3.3.3).
/>/>/>2. Системное проектирование/> 2.1 Разработка структуры программного модуля
Исходя из требований постановки задачи, разрабатываемыйпрограммный модуль обработки и отображения картографической информации можноструктурно разбить на несколько блоков:
- блок, реализующий функции загрузки иотображения цифровой карты местности с использованием библиотеки картографии,разработанной специалистами УП НИИСА. Входными данными используемых функцийбиблиотеки картографии являются:
· один или несколько файлов цифровойкарты местности с расширением UTP;
· файл – классификатор условных знаковобъектов местности с расширением KLS;
· файл матрицы высот с расширением BMH.
- блок, отвечающий за создание,редактирование и сохранение списка стандартных высот для объектов цифровой картыместности. Внутри блока реализуются также визуальные средства (окно) дляредактирования списка высот. Результатом работы данного блока являетсятекстовый файл с расширением ТХТ.
- блок, необходимый для расчета исохранения матрицы превышений на фоне цифровой карты местности. Сохранениерезультатов расчета происходит в двоичный файл с расширением BMH2.
- блок для создания и редактированияматрицы корректировки. Результатом работы данного блока является файл срасширением BMH3.
Обобщенная структурная схема программного модуляпредставлена на черт. РТДП 5.000.002.
Разработка пользовательского интерфейса программы будетосуществляться с помощью средств библиотеки Qt.
GUIинструментарий, именуемый Qt, предоставляет норвежская компания TrollTech. GUIозначает «Графический Пользовательский Интерфейс» («Graphical User Interface»),поэтому базирующиеся на Qt приложения представляются кнопками, окнами и т.п.Такие приложения осуществляют взаимодействие с пользователем, представляя ввизуальной форме выполняемые функции. Этот инструментарий необходим дляразработки графических приложений, которые используют X-Window интерфейс в Unixсистемах, потому что X не содержит предопределенного пользовательскогоинтерфейса. И хотя другие наборы инструментов также позволяют создаватьпользовательский интерфейс, Qt предоставляет некоторые технические возможности,которые делают разработку приложений очень простой. Кроме того, Qtинструментарий также доступен для Microsoft Windows систем, что позволяетразработчикам выпускать приложения для обеих платформ.
В настоящеевремя Qt – это библиотека классов C++ и набор инструментального программногообеспечения, предназначенных для построения многоплатформенных приложений сграфическим интерфейсом и исповедующих принцип «написав однажды – компилируй влюбом месте». Qt представляет собой единую платформу для приложений, которыемогут работать под управлением Windows 95/98/Me/2000/XP, Mac OS X, Linux,Solaris, HP-UX и других версий Unix.
Qtпредоставляет:
- широкий набор классов и методов, пригодныхдля использования даже для программ без графического интерфейса;
- хорошее решение для реализациивзаимодействия с пользователем посредством виртуальных методов и механизмасигнал / слот;
- набор предопределенных GUI-элементов,называемых «widgets», которые могут быть легко использованы для созданиявидимых элементов;
- дополнительные полностьюпредопределенные диалоговые окна, которые часто используются в приложениях,такие как окно прогресса или окно выбора файлов.
В качестве языка программирования выбран C++ как язык,наилучшим образом сочетающий в себе поддержку объектно-ориентированнойтехнологии программирования и возможности написания кода на достаточно низкомуровне, что позволяет достичь оптимального быстродействия разрабатываемогопрограммного обеспечения. Одним из современных инструментальных средств дляразработки Windows-приложений является пакет Microsoft VisualC++6.0. Visual C++ предоставляет удобную среду визуальногообъектно-ориентированного программирования, что и обусловило выбор именно этогопакета в качестве среды разработки./>2.2 Логическаяструктура библиотеки картографии
Библиотека картографии предназначена для работы с цифровойкартой местности (ЦКМ) и представляет собой набор классов и функций,обеспечивающих визуализацию и работу с картой, а также обеспечение решениярасчетных задач на фоне карты.
Программное обеспечение состоит из следующих элементов:
- набор классов и функций, составляющихядро библиотеки;
- класс MKartaInterface, предоставляющийфункции управления картой.
Для хранения карты на диске используются файлы в формате UTP. Формат UTPпредполагает наличие utp-файла, а также kls-файл, содержащий классификатор. Также возможноиспользование bmh-файла с матрицей высот.
Логически карта состоит из паспорта, ссылки наклассификатор (в виде термина) и одного или нескольких слоёв, каждый изкоторых, в свою очередь, состоит из объектов.
Термин классификатора указывает классификатор, которыйсодержит знаковую систему, необходимую для формирования корректного изображениякарты. Карты не являются самостоятельными, независимыми от классификаторовединицами. Карта может быть загружена даже в случае отсутствия файлаклассификатора, но при этом вид карты на экране будет схематичным.
Слой – самая крупная структурная единица в структуре карты,представляющая собой хранилище объектов. Структурно состоит из паспорта слоя исписка объектов.
В картографии понятие «объект» обозначает наиболееэлементарную часть в структуре карты, соответствующую единичномугеографическому явлению на местности.
Как информационная структура, объект представляет собойхранилище сведений об изображаемом явлении, включающее:
- указание на способ изображения данногоявления, т.е. его условный знак;
- данные о расположении явления(пространственные данные, контур);
- дополнительные сведения о нем(атрибуты).
3.Функциональноепроектирование 3.1 Проектирование структуры классов
Исходя извыделенных на этапе структурного проектирования блоков разрабатываемогопрограммного модуля, для реализации заданных функции были разработаны описанныениже классы.
Класс MainWindow –описывает главное окно программного модуля.
Класс MapView –реализует отображения карты в главном окне программного модуля.
Класс Tasks –обрабатывает нажатие функциональных клавиш в главном окне программного модуля.
Класс Heights –реализует работу со списком стандартных высот.
Класс EditDialog –описывает работу диалога редактирования стандартных высот.
Класс Matrix –реализует работу с матрицей превышений и матрицей корректировок.
Класс ComputeDialog –описывает работу диалога расчета матрицы превышений для нескольких листов картместности.
Класс ComputeThread –реализует процедуру расчета матрицы превышений для нескольких листов картместности.
Взаимодействиевсех классов осуществляется с помощью следующих глобальных переменныхобъявленных в main.cpp как указатели на объекты соответствующих классов:
- MKartaInterface *karta – объект,реализующий функции взаимодействия с картой;
- Matrix *matrix – текущая обрабатываемаяматрица превышений;
- Matrix *correctionMatrix – текущаяобрабатываемая матрица корректировок;
- MainWindow *window – главное окноприложения;
- Tasks *tasks – объект для обработкинажатия клавиш в главном окне.Классы, реализующие диалоги программногомодуля
КлассMainWindow – с помощью этого класса происходит описание главного окна программного модуля. Основные функцииданного класса:
- MainWindow() – конструктор, которыйвызывается при создании окна;
- bool eventFilter (QObject *o, QEvent*e) – функция обработки движения мыши;
- void onExit() – функция выполняетпоследовательность операций при закрытии главного окна программы.
КлассEditDialog – с помощью этого класса происходит описание диалога редактирования стандартных высот. Основные функции этогокласса:
- EditDialog() – конструктор, которыйвызывается при создании диалога;
- void addButtonClick() – функцияобработки добавления элементов в список;
- void remButtonClick() – функцияобработки удаления элементов из списка;
- void listViewClick (QListViewItem *item)– функция обработки выбора раздела классификатора;
- void updateTables (QString zs, QStringrazd) – функция обновления списка высот для знаков выбранного разделаклассификатора;
- void valueChanged (int row, int col) –функция обработки изменения значения высоты в списке.
КлассComputeDialog – с помощью этого классапроисходит описание диалога расчета матрицы превышений для нескольких листовкарт местности. Основные функции данного класса:
- ComputeDialog (QWidget* parent = 0,const char* name = «ComputeDialog», bool modal = FALSE, WFlags fl = 0) –конструктор, который вызывается при создании диалога;
- void start() – функция обработкизапуска процедуры расчета;
- void stop() – функция обработкиостановки процедуры расчета;
Приреализации пользовательского интерфейса использованы стандартные элементыуправления Windows, каждому из которых в Qt соответствует собственный класс:
- панель управления – используется дляускоренного доступа к часто используемым функциям – класс QToolBar;
- главное меню – используется дляорганизации меню – класс QMenuBar;
- панель состояния – используется длявывода сервисной информации – класс QStatusBar;
- список – представление данных в видесписка – класс QListView;
- надпись – используется для подписыванияэлементов интерфейса – класс QLabel;
- поле ввода – используется для вводаданных пользователем – класс QLineEdit;
- кнопка – используется для выполненияпользователем определенных действий – класс QPushButton;
- индикатор прогресса – классQProgressBar.
Кроме того,использованы некоторые специальные классы Qt:
- QMainWindow – для создания главногоокна приложения (класс MainWindow);
- QTable – для организации таблиц сданными;
- QDialog – для организации оконмодальных диалогов (классы EditDialog, ComputerDialog).
С помощьюпрограммы Qt Designer, входящей в комплект поставки системы разработки Qt, был разработан видглавного окна программного модуля и диалогового окна для редактированиястандартных высот.
Программа Qt Designer предназначена дляразработки и реализации графического пользовательского интерфейса приложения. Сее помощью также можно сгенерировать программный код, обеспечивающий реализациюфункций разработанного интерфейса. В отличие от Microsoft Visual Studio, помещающего описаниересурсов диалогового окна в текстовый файл с расширением.rc, среда разработки Qt создает файл срасширением.ui и помещает в него описание диалогового окна в формате,совместимом с XML. Этот файл включается в makefile данного проекта, создающий на его основесоответствующие файлы заготовок и реализации класса диалогового окна.
Вид главного окна приложения с описанием элементовпредставлен на рисунке 3.1.
/>
Рисунок 3.1. Главное окно программы
Вид диалогового окна для редактирования списка стандартныхвысот с /> />
описанием элементов представлен на рисунке 3.2.
Рисунок3.2. Диалоговое окно для редактирования списка стандартных высотКлассы, реализующие функции программногомодуля
Класс ComputeThread – с помощью этого классапроисходит расчет матрицы превышений для нескольких листов карт местности.Основные функции этого класса:
- ComputeThread (QObject *obj) –конструктор, который вызывается при создании объекта;
- void start() – функция запуска процедуры расчета;
- void stop() – функция остановки процедуры расчета;
- void run() – функция выполнения процедуры расчета.
Класс Heights – с помощью этого класса происходитработа со списком стандартных высот. Основные функции этого класса:
- void save (MString name) – функция сохранения в файл;
- bool load (MString name) – функция загрузки из файла;
- void clear() – функция обеспечивающая удаление всех объектов, очисткусписка;
- iterator find (const HObj &o) – функция обеспечивающая поиск объекта в списке;
- void insert (const HObj &o) – функция обеспечивающая вставку объекта в список;
- void erase (const HObj &o) – функция обеспечивающая удаление объекта;
Структура HObj реализует объекты составляющие список стандартных высот.Для каждого объекта хранятся код, название и высота (превышение). Конструкторобеспечивает первоначальную инициализацию данных.
Класс MapView – с помощью этого класса реализуетсяотображение карты в главном окне программного модуля. Основные функции этогокласса:
- mousePressEvent() – функция обработки нажатие мыши при построении матрицыкорректировки;
- void zoom (int left, inttop, int right, int bottom) – функция обработки процедуры зуммирования;
- void prevView() – функция обработки процедуры возврата к предыдущемувиду;
- void defaultView() – функция обработки процедуры отображения всей карты;
- void updateHeights() – функция осуществляющая перерисовку (отображение)матриц превышений и корректировки на текущем отображаемом фрагменте карты;
- void drawMap() – функция обработки процедуры отрисовки карты
Класс Tasks – спомощью этого класса происходит обработка нажатия функциональных кнопок вглавном окне программного модуля. Основные функции этого класса:
- void loadMap() – функция, обрабатывающая нажатие кнопки открыть карту;
- void openFolder() – функция, обрабатывающая нажатие кнопки открыть папку;
- void loadKls() – функция, обрабатывающая нажатие кнопки открытьклассификатор;
- void loadHeights() – функция, обрабатывающая нажатие кнопки открыть списокстандартных высот;
- void loadMatrix() – функция, обрабатывающая нажатие кнопки открыть матрицупревышений;
- void loadCorrectionMatrix() – функция, обрабатывающая нажатие кнопки открыть матрицукорректировок;
- void newHeights() – функция, обрабатывающая нажатие кнопки создать списокстандартных высот;
- void newCorrectionMatrix() – функция, обрабатывающая нажатие кнопки создать матрицукорректировок;
- void editHeights() – функция, обрабатывающая нажатие кнопки редактированиесписка стандартных высот;
- void saveHeights() – функция, обрабатывающая нажатие кнопки сохранитьсписок стандартных высот;
- void saveMatrix() – функция, обрабатывающая нажатие кнопки сохранитьматрицу превышений;
- void calculateMatrix() – функция, обрабатывающая нажатие кнопки расчет матрицыпревышений;
Класс Matrix – спомощью этого класса происходит реализация расчета матрицы превышений исоздание матрицы корректировок.
- void CreateFile (MRect rect,MString filename, double st = STEP, int y = 0, int x = 0) – функция созданияматрицы на жестком диске;
- void Create (MRect rect,double st = STEP, int y = 0, int x = 0) – функция создания матрицы в памяти;
- void Destroy() – функция обработки процедуры удаления матрицы;
- void Calculate() – функция расчёта матрицы превышений;
- void Save (MString filename) – функция сохранения в файл;
- bool Load (MString filename) – функция загрузки матрицы в память;
- bool Open (MString filename) – функция открытия матрицы из файла на жестком диске;
- void Clear() – функция заполняющая матрицу нулями;
- MPoint GetPoint (int i, int j) – функция, которая возвращает точку, соответствующую i-ой строке и j-ому столбцуматрицы;
- void GetPos (MPoint point, int &i, int &j) – функция, определяющая позицию клетки матрицы, котораясоответствует точке на карте;
- int GetX() – функция, определяющая количество столбцов матрицы;
- int GetY() – функция, определяющая количество строк матрицы;
- double GetStep() – функция, определяющая шаг матрицы;
- short GetHeight (MPoint point) – функция, которая возвращает высоту в точке;
- short GetHeight (int i, int j) – функция, которая возвращает высоту в клетке;
- void SetHeight (MPoint point, short height) – функция, устанавливающая высоту в клетке,соответствующей точке;
- void SetHeight (int i, int j, short height) – функция устанавливающая высоту в клетке;
- void ReadBmhHeader (FILE *file) –функция, которая читает заголовок из файла BMH;
- void WriteBmhHeader (FILE *file) –функция, которая записывает заголовок в файл BMH;
- void Fill (MPtArray *ar) – функция,которая заполняет локальную матрицу обрабатываемого топографического объекта;
- int GetNumFilledPoints() – функция, определяющая количество заполненных клеток;
- void AddHeight (MTopobject *tpo, shortheight) – функция, добавляющая высоты топографического объекта вматрицу;
- void AddLineObject (MTopobject *tpo, shortheight) – функция, добавляющая высоты линейного объекта вматрицу;
- void AddPloObject (MTopobject *tpo, shortheight) – функция добавляющая высоты площадного объекта вматрицу;
- void Expand (int i, int j, int state) – функция распространяющая заливку из клетки до границобъекта.
Последовательностьвызова классов во времени представлена на диаграмме последовательностей (см.черт. РТДП 5.000.005).Описание используемых функции библиотекикартографии
Класс MKartaInterface предоставляет набор функций необходимых для работы с ядромбиблиотеки картографии.
Основные функции класса MKartaInterface:
- bool LoadMap (MString map_name);
загружает карту (upt-файл) указанную в параметре map_name.
- bool SetKlassifikator(MString kls_name);
загружает классификатор (kls-файл) указанный в параметреkls_name.
- void SetWidget (QWidget*widget);
устанавливает widget на который должна отрисовыватьсякарта.
- void DrawMap (bool toScreen= true);
отрисовывает карту, параметр toScreen определяет, будет ликарта отрисовываться на экран (true), либо в pixmap (false).
- MPoint LogicToGeo(QPoint& lPoint, bool bInMapCoo = false);
- QPoint GeoToLogic(MPoint& gPoint);
пересчитывают точку из логических (экранных) координат вгеографические и обратно.
- MRect LogicToGeo (QRect&lrect, bool bInMapCoo = false);
- QRect GeoToLogic (MRect&lrect);
пересчитывают прямоугольник из логических (экранных)координат в географические и обратно.
- MPoint GeoToGauss(MPoint& pt, double meredian = 1000);
- MPoint GaussToGeo(MPoint& pt, double meredian = 1000);
пересчитывают точку из географических координат в зоннуюсистему координат Гаусса-Крюгера и обратно.
- MPoint GeoToGaussStandart(MPoint& pt, double meredian = 1000);
- MPoint GaussToGeoStandart(MPoint& pt, double meredian = 1000);
пересчитывают точку из географических координат встандартную систему координат Гаусса-Крюгера и обратно.
- MPoint GeoToGaussLocal(MPoint& pt);
- MPoint GaussLocalToGeo(MPoint& pt);
пересчитывают точку из географических координат в местнуюсистему координат Гаусса-Крюгера и обратно.
- void ZoomTo (MRect&rect);
зуммирует карту до заданного в параметре rectпрямоугольника охвата.
- void ScrollByGeo (double x,double y);
скроллирует карту на смещение заданное в координатах карты.
- void ScrollByLogic (int x,int y);
скроллирует карту на смещение заданное в координатах окнаотрисовки.
- bool SetMatrixFile (MString path);
устанавливает путь к файлу матрицы высот.
- int GetHight (MPoint&pt);
возвращает высоту рельефа в точке, заданной параметром pt.
- int GetHightObjects(MPoint& pt);
возвращает высоту объекта местности относительно рельефа вточке, заданной параметром pt.
Иерархияосновных классов библиотеки картографии представлена на плакате (см. плакатРТДП 5.000.004).
/>/>/>4. Разработка программных модулей
Средииспользуемых классов программы можно выделить Matrix, как основной дляфункций внутренней обработки и MapView – основной для функций отображения. Далее опишем алгоритмыключевых процедур и функций этих классов.Алгоритмы ключевых процедур и функций классаMapView
void MapView:drawMap()
отрисовкакарты производится, если открыты карта и классификатор (для определениявыполнения этих условий в классе есть логические переменные mapOpen &&klsOpen). Если на момент отрисовки карты открыта матрица превышений, нужно ееотобразить (функция updateHeights())
void MapView:updateHeights()
перерисовка(отображение) матриц превышений и корректировки на текущем отображаемомфрагменте карты производится, только если открыта карта или матрицы превышенийи корректировки (используем логические переменные mapOpen и matrixOpen). Спомощью класса библиотеки картографии MRect получаем границы карты, которыесоответствуют видимой области (MRect bounds = karta->GetZoombounds()), далее вычисляем индексы ячеек матрицы, соответствующиеуглам карты (matrix->GetPos (MPoint(bounds.left, bounds.bottom), i1, j1); matrix->GetPos (MPoint(bounds.right, bounds.top), i2, j2);).Рассчитываем шаг матрицы double step. В logx и logy – содержится количество пикселей,которым соответствует шаг матрицы (double logx = width() /karta->GetZoombounds().Width() * step; double logy = height() / karta->GetZoombounds().Height() * step;). Матрицупревышений и матрицу корректировок отрисовываем таким образом: если масштабкрупный (шаг матрицы больше 5 пикселей), то рисуем прямоугольник, в противномслучае ставим точку.
voidMapView:mousePressEvent (QMouseEvent *e)
корректировкав точке матрицы осуществляется только, если была нажата правая клавиша мыши(e->button() == Qt: RightButton) и открыты карта и матрица корректировки(используем логические переменные mapOpen && correctionMatrixOpen). С помощью функций класса MKartaInterface LogicToGeoи GeoToGauss производим преобразование логических координат мыши вгеографические координаты (MPoint point = karta->LogicToGeo(pos); point =karta->GeoToGauss(point);). Далее проверяем, если точка щелчка мышинаходится в области матрицы корректировок, то вызывается диалог, в поле вводакоторого вводим значение корректировки высоты. Значение высоты записываем вматрицу корректировок (correctionMatrix->SetHeight (point, height)) ивызываем перерисовку (отображение) матрицы корректировки (updateHeights()).
voidMapView:zoom (int left, int top, int right, int bottom)
точкипротивоположных углов прямоугольника переводим из логических координат мыши вкоординаты карты
(QPointfirst = QPoint (left, top);
QPointsecond = QPoint (right, bottom);
MPointp1 = karta->LogicToGeo(first);
MPointp2 = karta->LogicToGeo(second);)
Формируемпрямоугольник с помощью класса библиотеки картографии MRect (MRect rect = MRect(p1, p2)) и вызываем функцию ZoomTo (в качестве параметра передаем в нее сформированныйпрямоугольник rect). Для перерисовки карты вызываем функцию drawMap().Алгоритмы ключевых процедур и функций класса Matrix
voidMatrix: CreateFile (MRect rect, MString filename, double st, int y, int x)
созданиематрицы на жестком диске осуществляется, если была удалена предыдущая матрица(Destroy()), далее увеличиваем границы матрицы так, чтобы они были кратны шагу(NormalizeRect(rect)), записываем заголовок в файл ВМН (WriteBmhHeader(mem)) изаписываем 0 в конец файла, создавая таким образом файл нужного размера,заполненный нулями.
fseek(mem, 48 + cx * cy * sizeof(short) – 1, SEEK_SET);
charc = 0;
fwrite(&c, 1, 1, mem);
shortMatrix: GetHeight (MTopobject *tpo)
высотатопографического объекта добавляется в матрицу из UTP-файла (MString str =tpo->GetDataPole(1)), если в данных объекта отсутствует значение высоты, оноберется из списка стандартных высот (heights [tpo->m_kkod])
voidMatrix: Save (MString filename)
сохранениев файл матрицы осуществляется в случае, если файл успешно создан на диске: FILE*file = fopen (filename, «wb»). Для сохранения матрицы сначала записываемзаголовок файла ВМН (WriteBmhHeader(mem)) и сохраняем матрицу или в оперативнуюпамять (если memMode == INMEMORY) или в файл на жесткий диск (если memMode ==INFILE).
voidMatrix: Calculate()
прирасчете матрицы первоначально создаем матрицу с размерами равными размерамкарты (Create (pKarta->m_geobounds)), далее подсчитываем количество точек увсех топографических объектов, участвующих в расчете (это нужно, чтобы выводитьполосу прогресса). Для формирования матрицы превышений, перебирая каждый объекткаждого слоя карты, получаем высоту объекта. Если значение высоты не равнонулю, добавляем значение в формируемую матрицу превышений (с помощью функцииAddHeight). При этом в матрице заполняются все клетки, покрываемые площадьюрассматриваемого объекта.
voidMatrix: AddHeight (MTopobject *tpo, short height)
длядобавления высоты топографического объекта в матрицу первоначально необходимопроверить тип топографического объекта(tpo->m_pZnak->GetYaz()->GetType()). Если объект площадной, товыполняется добавление высоты площадного объекта в матрицу (AddPloObject (tpo,height)), если объект линейный, то выполняется добавление высоты линейногообъекта в матрицу (AddLineObject (tpo, height)), если объект точечный, тосравниваем текущую высоту с высотой в ячейке, если текущая высота больше(height > GetHeight(point), то устанавливаем в ячейке текущую высоту(SetHeight (point, height))
voidMatrix: AddLineObject (MTopobject *tpo, short height)
добавлениевысоты линейного топографического объекта в матрицу осуществляется следующимобразом: в цикле по сегментам линейного объекта проверяем покрывает ли ячейкаматрицы сегмент, если покрывает, то устанавливаем в ячейке текущую высоту(SetHeight (point, height)), если не покрывает, то рассчитываем количествоячеек покрывающих данный сегмент, и в цикле для каждой ячейки устанавливаемтекущую высоту топографического объекта.
voidMatrix: AddPloObject (MTopobject *tpo, short height)
добавлениевысоты площадного топографического объекта в матрицу осуществляется следующимобразом: сначала создается локальная матрица топографического объекта (поразмеру охватывающего прямоугольника объекта). Затем в локальной матрицеплощадного объекта заполняются ячейки, покрывающие контур объекта –используется функция AddLineObject (tpo, BORDER). Затем заполняются остальные ячейки локальной матрицы сиспользованием функции Fill (MPtArray *ar). На последнем этапе в цикле по всем ячейкамсформированной локальной матрицы все «внутренние» (не-OUTSIDE) ячейкизаполняются значениями высоты площадного объекта, но только в том случаи еслитекущее значение высоты больше значения высоты в ячейке
if(height > GetHeight(point))
SetHeight(point, height);
void Fill(MPtArray *ar)
заполнениелокальной матрицы обрабатываемого топографического объекта продолжается до техпор, пока не будут заполнены все точки (GetNumFilledPoints()
if(PointInRegion (pt, ar)) Expand (i, j, INSIDE);
else Expand (i, j, OUTSIDE);
voidExpand (int i, int j, int state)
распространениезаливки из клетки до границ объекта происходит следующим образом: сначалаустанавливаем значение в клетке (SetHeight (i, j, state)), затем в циклезаполняем соседние клетки, обход осуществляется по кругу, вначале по часовойстрелке, потом – против, после каждой итерации увеличиваем радиус круга. Еслипосле обхода не заполнено ни одной точки, значит распространяться «заливке» уженекуда, выходим из цикла.
5.Программа и методикаиспытаний
Разработанная программа должнафункционировать с определенными характеристиками для заданных областей данных.Процесс, позволяющий получить программу, функционирующую с требуемымихарактеристиками в заданной области входных данных, называется отладкой. Врезультате отладки программа должна соответствовать определенной фиксированнойсовокупности правил и показателей качества.
Основным методом отладки и обнаруженияошибок является тестирование – важнейший фактор, определяющий стоимость идлительность разработки комплекса программ. Затраты на тестирование составляютдо 40% от общего времени на разработку программы.
Программы, как объекты тестирования,имеют ряд особенностей, которые отличают процесс тестирования техническогосредства от программного. Для сложных комплексов программ отсутствует полный иточный эталон для тестовых наборов. Для сложных программ тестированиепроводится в объемах минимально необходимых для проверки программ вограниченных пределах изменения параметров и условий функционирования.
Для проверки правильности работыпрограммы используется проведение функционального и полного тестирования.
При функциональном тестировании должна обеспечиватьсяпроверка каждого пункта меню, каждой операции, которую выполняет система. Такаяпроверка должна гарантировать работу всех элементов программы в автономнойрежиме.
При полном тестировании моделируются все возможные действия пользователя при работе спрограммой.
Сначала тестирование было проведеноразработчиком программы, затем программный продукт был дан на тестированиепользователям. При этом на первом этапе выявлялись логические ошибки в основномсвязанные с последовательностью и временем появления диалогов на экране,которые затем были устранены.
Тестирование проводилось также последующему алгоритму: тестировщик проходит по всем этапам программы, начиная отглавного окна. При этом он бессистемно нажимает все клавиши на клавиатуре имыши. Тест показал, программа реагирует на нажатие только тех клавиш, которыеимеют смысловое значение в программном модуле.
Для проверки функциональности программыбыл разработан представленный ниже тест, включающий в себя последовательноописанные действия оператора, направленные на проверку определенных функцийпрограммного модуля./>/>Подготовка к тестированию
Тестирование программного модуляобработки и отображения картографической информации выполняется в средефункционирования программного модуля.
/>Подготовка средств
Необходимо обеспечитьсоответствие среды функционирования программного модуля обработки и отображениякартографической информации требованиям п. 6.1 настоящего документа.
В среде функционирования программногомодуля требуется:
- установить программное обеспечениемодуля, следуя инструкциям п. 6.2 настоящего документа;
- записать в отдельный каталог файлытестового примера (файл карты m3404.utp, файл классификатора 500–200-HOT_heights.kls,файл стандартных высот heights.txt и файл матрицы высот matrix.bmh).
Файлы тестового примера предоставляетисполнитель.Ожидаемые результаты
В результате проведения тестированияожидаются следующие результаты:
- после открытия карты и классификатора,в главном окне программного модуля ожидается отображение цифровой картыместности (ЦКМ);
- после использования инструментазуммирования ожидается отображение в картографическом окне выделенногофрагмента ЦКМ, увеличенного до максимально возможного размера, которыйпозволяет отобразить картографическое окно. Если размеры картографического окнаи увеличиваемого фрагмента ЦКМ не симметричны, то отображаемый фрагментдополняется участками ЦКМ, прилегающими к выделенному фрагменту, для полногозаполнения картографического окна в вертикальном или горизонтальном направлении;
- после использования инструментаскроллирования ожидается отображение в картографическом окне необходимогофрагмента ЦКМ;
- после использования инструмента «предыдущийвид карты» ожидается отображение в картографическом окне предыдущего фрагментаЦКМ;
- после использования инструмента «отобразитьвсю карту» ожидается отображение в картографическом окне всей ЦКМ;
- после завершения работы программногомодуля Matrix, в директории указанной тестировщиком, должны находиться следующиесохраненные файлы: файл матрицы превышений matrix_m3404.bmh2 и файл матрицыкорректировок correction.bmh2./>/>Порядок выполнения теста
Для выполнения тестирования программногомодуля обработки и отображения картографической информации на цифровой картеместности следует последовательно выполнить следующие действия:
- запустить программный модуль Matrix (см.п. 6.3. настоящего документа);
- открыть карту m3404.utp и классификатор500–200-HOT_heights.kls (см. п. 6.5. настоящего документа);
- создать файл стандартных высот heights.txt(см. п. 6.5. настоящего документа);
- если необходимо, внести изменения всписок стандартных высот в диалоге «Редактирование высот» (см. п. 6.5.настоящего документа);
- сохранить файл стандартных высотheights.txt (см. п. 6.5. настоящего документа);
- произвести расчет матрицы превышений(см. п. 6.5. настоящего документа);
- сохранить матрицу превышенийmatrix_m3404.bmh2 (см. п. 6.5. настоящего документа);
- создать матрицу корректировок correction.bmh2(см. п. 6.5. настоящего документа);
- если необходимо, внести изменения вматрицу корректировок
(см. п. 6.5. настоящего документа);
- проверить функции инструментов зуммирования,скроллирования, «предыдущий вид» и «отображение всей карты» (см. п. 6.5.настоящего документа);
- завершить работу программного модуля Matrix(см. п. 6.5 настоящего документа).
Чтобы убедиться в правильности расчета матрицыпревышений необходимо закрыть программный модуль Matrix и затем открыть егоснова. При этом выполнить все действия повторно, но уже не рассчитывать матрицупревышений, а открыть сохраненную ранее. При движении мыши в картографическомокне, если матрица рассчитана правильно, в строке состояния должны отображатьсязначения матрицы превышения и матрицы корректировки.
/>/>/>6. Руководство пользователя/>/>/>/>/>/>/>/>
Для оптимальной работы с программным модулем обработки иотображения картографической информации на цифровой карте местностиперсональный компьютер пользователя должен обладать следующимихарактеристиками:
- оперативная память – 128 Мб и более;
- жесткий диск общим объемом не менее 20Гб со свободными 500 Мб – 1 Гб;
- монитор должен поддерживать разрешение1024*768 пикселей и цветопередачу True Color;
- дисковод для CD-дисков;
- оснащение мышью;
- установленная операционная системаWindows 2000;Инсталляция
Все файлы необходимые для работы программного модуля организованыв корневом каталоге MATRIX:
- matrix.exe – исполняемый файл;
- gt-mt333.dll – библиотечный файл;
- MSVCRTD.DLL – библиотечный файл;
- MFC42D.DLL – библиотечный файл;
- MFCO42D.DLL – библиотечный файл;
- MSVCIRTD.DLL – библиотечный файл;
- MSVCP60D.DLL – библиотечный файл.
Для установки модуля на персональный компьютер пользователядостаточно скопировать на жесткий диск каталог MATRIX с любого машинногоносителя.
Для начала работы следует запустить программу matrix.exe.Запуск программы
Для запуска программы Matrix необходимо щелкнуть пиктограмму, соответствующую программе. Послезапуска на экране монитора появляется главное окно программы.
В левой части окна расположены кнопки вызова функций. Функциивызываются щелчком мыши по выбранной кнопке:
— открыть карту;
— открыть папку;
— открыть классификатор;
— создать перечень стандартных высот;
— открыть перечень стандартных высот;
– сохранение созданного перечня стандартных высот;
– редактирование перечня стандартных высот;
— открыть матрицу превышений;
– сохранение матрицы превышений;
— расчет матрицы превышений;
— создать матрицу корректировок;
— открыть матрицу корректировок.
В верхней части окна расположены кнопки вызова функций управлениякартой. Функции вызываются щелчком мыши по выбранной кнопке.
– отображение всей карты;
— возвращение к предыдущему экрану отображения;
– зуммирование (изменение отображения фрагмента карты);
– прокрутка./>/>/>/>/>/>/>/>/>/>/>/>Управление картографическимокном
Цифровая карта местности хранится на жестком диске АРМ вфайлах четырех типов:
- файлы объектов местности с расширениемUTP;
- файл-классификатор объектов срасширением KLS;
- файл матрицы высот с расширением BMH;
- файл превышения высот с расширениемBMH2.
Файлы объектов местности содержат пространственные,количественные, качественные и описательные характеристики объектов. Один файлявляется базовым, т.к. покрывает весь интересующий регион и содержитминимальный набор объектов. Остальные файлы объектов соответствуют листам картмасштаба 1:200000 или 1:500000.
Файл классификатора объектов карты содержит данные об ихпредставлении на экране монитора в зависимости от масштаба отображения. Вклассификатор дополнительно включено описание представления объектов оперативнойинформации на фоне объектов карты.
Файл матрицы высот содержит данные о возвышении земной (водной)поверхности относительно уровня Балтийского моря в каждой точке местности.
Файл превышения высот содержит данные о возвышении верхнейповерхности сооружений, растительного покрова относительно земной поверхности вкаждой точке местности.
Объекты карты распределены по слоям (гидрография, границы и т.д.).Отображение карты производится последовательно слой за слоем в соответствии склассификатором.
Для улучшения зрительного восприятия слоя и ускорения процесса егоотображения применяется упрощенная отрисовка.
Степень детализации отображаемой карты изменяется установкой минимальногоразмера отображаемого объекта. Размер задается в единицах измерения экраннойсистемы координат, т.е. в пикселях./>/>/>/>/>/>/>/>Начало работы
Перед началом работы необходимо назначить рабочую папку. Для этоготребуется нажать кнопку (открыть папку), после чего на экране отобразитсядиалоговое окно «Выберите папку».
В строке Directory задать название рабочей папки и нажать клавишу (ОК).
Первоначально для загрузки карты необходимо нажать кнопку (открытькарту). Отобразится диалоговое окно «Открыть карту».
Выбрать базовый файл карты и нажать кнопку (Open).
Далее необходимо нажать кнопку (открыть классификатор). Отобразитсядиалоговое окно «Открыть классификатор».
Выбрать файл классификатора и нажать кнопку (Open).
Далее для расчета матрицы высот необходимо создать стандартныйперечень высот. Для этого необходимо нажать на кнопку (создать переченьстандартных высот), по умолчанию создаваемому файлу со списком высот задаетсяимя heights.txt, а после нажать кнопку (редактирование перечня стандартныхвысот).
В нем из классификатора в список высот с помощью кнопки выбираютсянеобходимые типы объекты. Для каждого типа объекта (пункта из списка) задаетсяс клавиатуры своя высота.
После того, как были заданы высоты для всех выбранных типовобъектов, необходимо нажать кнопку (выход). Далее необходимо сохранить файл состандартными высотами, для этого нажать кнопку (сохранить) (см. рис. 6.1).На экране появится диалоговое окно «Сохранить список высот».
В строке «Имя файла» задать название файла и нажать кнопку(сохранить).
Если требуется открыть уже сохраненный файл со стандартнымивысотами, необходимо нажать кнопку (открыть) и в диалоговом окне «Открытьсписок высот» выбрать ранее сохраненный файл и нажать кнопку (открыть).
Для вызова функции расчета матрицы превышений необходимо нажатькнопку (расчет матрицы превышений). После чего в нижнем правом углу главногоокна появится полоса прогресса, по достижении 100% на экране должноотобразиться окно.
Далее необходимо сохранить файл матрицы превышений высот, дляэтого необходимо нажать кнопку (сохранить). На экране появится диалоговое окно«Сохранить матрицу превышений».
В строке «Имя файла» задать название файла и нажать кнопку(сохранить).
Расчет матрицы превышений происходит с некоторыми погрешностями,которые связаны с шагом расчета в матрице. И для того, что бы скорректировать вотдельных точках значения высот можно создать матрицу корректировок. Для этогонеобходимо нажать кнопку (создать матрицу корректировок). На экране отобразитсядиалоговое окно.
По нажатию клавиши (да) матрица корректировок будет создана, понажатию на клавишу (нет) – не будет.
Для загрузки ранее сохраненного файла матрицы корректировокнеобходимо нажать на кнопку (открыть). Откроется диалоговое окно «Открытьматрицу корректировок».
В процессе работы может появиться необходимость рассчитать матрицупревышений для нескольких листов карты одновременно. Для этого необходимонажать кнопку (открыть папку). Выбрать папку, в которой уже лежат несколькокарт одного масштаба в формате UTP. Затем нажать кнопку (открыть классификатор) и выбратьклассификатор нужного масштаба. Для продолжения работы необходимо нажать кнопку(редактирование перечня стандартных высот), откроется диалоговое окно«Стандартные высоты».
В нем из классификатора в список высот с помощью кнопки выбираютсянеобходимые типы объектов. Для каждого типа объекта (пункта из списка) задаетсяс клавиатуры своя высота.
После того, как были заданы высоты для всех выбранных типовобъектов, необходимо нажать кнопку (выход). Далее необходимо сохранить файл состандартными высотами, для этого нажать кнопку (сохранить) (см. рис. 6.1).На экране появится диалоговое окно «Сохранить список высот». В строке «Имяфайла» задать название файла и нажать кнопку (сохранить). Для вызова функциирасчета матрицы превышений необходимо нажать кнопку (расчет матрицы превышений).
Для завершения работы диалога необходимо нажать кнопку (OК).
После создания матрицы превышений можно осуществить корректировкуматрицы превышений. Далее следует работа с картой, для этого предусмотренонесколько инструментов.
Для отображения в картографическом окне всей карты необходимонажать кнопку (исходный размер карты) (см. рис. 6.1).
Для выполнения операции прокрутки карты необходимо нажать кнопку(прокрутка) и, нажав и удерживая в картографическом окне левую кнопку мыши,можно переместить изображение карты в нужную область.
Для выполнения операции зуммирования необходимо нажать кнопку(увеличить). Далее, нажав и удерживая левую кнопку мыши, необходимо выделитьчасть карты, которую необходимо увеличить. После отпускания кнопки мыши вкартографическом окне отобразится выделенный участок карты.
Для возвращение назад необходимо нажать кнопку (предыдущий вид).
Последовательность действий при обработке и отображениикартографической информации представлена на плакате.
/>/>/>7. Технико-экономическое обоснование/>/>/>
Целью диплома является написание программного модуляобработки и отображения картографической информации на цифровой картеместности. Заказчиком данного программного модуля является УП «НИИСА». Этопрограммное средство должно выполнять следующие функции (задачи):
- загрузка, отображение цифровой картыместности (ЦКМ), прокрутка и зуммирование изображения загруженной цифровойкарты местности (с использованием функций существующей библиотекикартографического обеспечения);
- создание, редактирование и сохранениесписка стандартных высот для объектов цифровой карты местности (по видамобъектов, согласно классификатора условных знаков);
- расчет матрицы превышений на фонецифровой карты местности (с учетом списка стандартных высот, соответствующихданному участку местности);
- создание и редактирование матрицыкорректировок.
Программные средства (ПС) вычислительной техники (ВТ)являются материальными объектами специфической интеллектуальной деятельностиспециалистов, состоящими из программных документально оформленных проектов,реализующих свои потребительские свойства и качества в составе функционирующихвычислительных систем или систем обработки данных. По стоимости и срокам службыПС относятся к основным производственным фондам предприятия.
Широкое применение ВТ требует постоянного обновления исовершенствования ПС. Выбор эффективных проектов ПС связан с их экономическойоценкой и расчетом экономического эффекта.
Новый программный продукт должен быть не только техническисовершенным, но и экономически выгодным. На основе экономической оценки новогопрограммного продукта принимается решение об инвестициях в данный проект.Отсутствие экономического обоснования и расчетов приводит к экономическимошибкам в проектировании, созданию неэффективных проектов.
В результате разработки и применения программного модуляобработки и отображения картографической информации на цифровой карте местностиэкономический эффект достигается за счет экономии трудовых, материальных ифинансовых ресурсов по сравнению с базовым вариантом, программного модуля. Еслипрограммное средство – товар, то возможен расчет экономического эффекта, которыйвыполнен на 29.05.06./>/>/>Смета затрат и ценапрограммного обеспечения
/>/>Определение объема и трудоемкости программного обеспечения(ПО)
Объем ПО. Базой для расчета плановой сметы затрат наразработку ПО является объем ПО.
Общий объем (V0) программного продукта определяется исходя из количества иобъема функций, реализуемых программой
/>, (7.1)
где: Vi– объем отдельной функции ПО;
n – общее число функций.
Расчетобщего объема функций по каталогу представлен в таблице 7.1.
Единицы измерения объема ПО. Оценивание объема программногопродукта связано с выбором наиболее подходящие единицы измерения размерапродукта. В данном дипломном проекте, в качестве единицы измерения объема ПО,используется количество строк исходного кода (Lines Of Code, LOC).
Строка исходного кода (LOC) являетсяуниверсальной метрикой, так как может применяться при создании любыхпрограммных продуктов.
Расчет объема программного продукта (количества строкисходного кода) предполагает определение типа программного обеспечения,всестороннее техническое обоснование функций ПО и определение объема каждойфункции. На стадии технико-экономического обоснования проекта невозможнорассчитать точный объем функций. Могут быть получены только ориентировочные(прогнозные) оценки на основе имеющихся фактических данных по аналогичнымпроектам, выполненным ранее, или путем применения действующих нормативов. Наосновании информации о функциях разрабатываемого ПО по каталогу функцийопределяется объем функций и общий объем ПО, который уточняется(корректируется). Рассчитывается уточненный объем ПО (Vy)
/>, (7.2)
где: Vyi– уточненный объем отдельной функции ПО;
Расчетуточненного объема ПО представлен в таблице 7.1.
Таблица7.1. Перечень и объем функций программного модуля№ функции Наименование (содержание) Объем функции (LOC)
по каталогу Vi
уточненный Vyi 1 2 3 4 101 Организация ввода информации 150 75 109 Организация ввода / вывода информации в интерактивном режиме 320 250 301 Формирование последовательного файла 290 120 305 Обработка файлов 720 622 309 Формирование файла 1020 571 703 Расчет показателей 460 295 707 Графический вывод результатов 480 325 Итого: 3440 2258
В связи сиспользованием более совершенных средств автоматизации общие объемы функцийбыли уменьшены. Уточненный объем ПО (/>)составил 2258 LOC, общий объем функций по каталогу (V0) 3440 LOC.
За общийобъем (V0) программного продукта принимаем значение уточненногообъема функций который равен 2258 LOC.
Трудоемкостьразработки ПО. По уточненному объему ПО и нормативам затрат труда в расчете наединицу объема определяется нормативная и общая трудоемкость разработки ПО.
Нормативнаятрудоемкость разработки ПО. На основании принятого к расчету объема (/>) и категории сложностиопределяется нормативная трудоемкость ПО (/>),которая уточняется с учетом сложности, новизны проекта и степени использованиястандартных модулей при разработке. В данном дипломном проекте />=2258, следовательно />=61.
Общаятрудоемкость разработки ПО. Нормативная трудоемкость (/>) служит основой дляопределения общей трудоемкости (To), расчет которой осуществляется в зависимости от размерапроекта.
Общаятрудоемкость в данном проекте рассчитывается по формуле:
/>, (7.3)
где: /> – коэффициент, учитывающийсложность ПО;
/> –поправочный коэффициент, учитывающий степень использования при разработкестандартных модулей;
/> –коэффициент, учитывающий степень новизны ПО.
Категориясложности ПО. Все ПО принято подразделять на три категории сложности, взависимости от наличия (отсутствия) следующих характеристик:
- высокий уровень языкового интерфейса спользователем;
- режим работы в реальном времени;
- управление удаленными объектами;
- машинная графика;
- существенное распараллеливаниевычислений;
- переносимость ПО;
- и другие.
Влияниефактора сложности на трудоемкость учитывается умножением нормативнойтрудоемкости на соответствующий коэффициент сложности. Данный программныймодуль обладает 2 категорией сложности.
Коэффициентсложности (/>). Посредством коэффициентасложности учитываются дополнительные затраты труда, связанные со сложностьюразрабатываемого программного продукта. Коэффициент сложности рассчитывается поформуле:
/>, (7.4)
где: /> – коэффициент,соответствующий степени повышения сложности ПО.
Вразрабатываемом дипломном проекте />, засчет наличия у программного модуля одновременно двух характеристик:
- машинная графика;
- обеспечение переносимости ПО.
принимаем />=0,12.
/>
Коэффициент,учитывающий степень использования при разработке ПО стандартных модулей (/>). Степень использования вразрабатываемом ПО стандартных модулей определяется их удельным весом в общемобъеме проектируемого продукта. В данном дипломном проекте степень охватареализуемых функций разрабатываемого ПО стандартными модулями, типовымипрограммами и ПО до 20%, следовательно />=0,9.
Коэффициентновизны разрабатываемого ПО (/>).Сравнение характеристик разрабатываемого ПО с имеющимися аналогами позволяетопределить экспертным путем степень его новизны. Разрабатываемый программныймодуль является принципиально новым ПО, не имеющим доступных аналогов, всоответствии с вышеизложенным />=1,0.
/>61*1,12*0,9*1=62(чел./дн.)
/>/>Численностьисполнителей и срок разработки ПО
На основеобщей трудоемкости определяется плановое число разработчиков />и плановые сроки,необходимые для реализации проекта в целом />.При этом решаются следующие задачи:
- расчет числа исполнителей при заданныхсроках разработки проекта;
- определение сроков разработки проектапри заданной численности исполнителей.
Численностьисполнителей проекта /> рассчитываетсяпо формуле:
/> (7.5)
где: /> — эффективный фонд времениработы одного работника в течение года (дн.);
/> — общая трудоемкость разработки проекта (чел./дн.);
/>-срок разработки проекта (лет).
Срокразработки проекта (/>) определяется поформуле:
/> (7.6)
В данномдипломном проекте срок разработки проекта установлен 3 месяца, что составляет0,25 года, следовательно />=0,25года.
Эффективныйфонд времени работы одного работника (/>)рассчитывается по формуле:
/>, (7.7)
где: /> — количество дней в году;
/>-количество праздничных дней в году;
/>-количество выходных дней в году;
/>-количество дней отпуска.
Вразрабатываемом дипломном проекте будем принимать значения:
/>=32 дня.
Эффективныйфонд времени работы одного работника (/>)рассчитывается по формуле 7
/>(дн.).
Численностьисполнителей проекта /> рассчитываетсяпо формуле 5
/>=1(чел.).
Исходныеданные для последующих расчетов, а также результаты расчетов объема итрудоемкости разработки программного обеспечения, численность исполнителей исрок разработки сведены в таблицу 7.2.
Таблица7.2. Исходные данные и результаты расчетовНаименование показателей Буквенное обозначение Единицы измерения Кол-во 1 2 3 4 Коэффициент новизны
Кн 1,0 Категория сложности 2 Дополнительный коэффициент сложности
Кi 0,12 Поправочный коэффициент, учитывающий использование типовых программ
Кт 0,9 Установленная плановая продолжительность разработки
Тр год 0,25 Годовой эффективный фонд времени
Фэф дней 221 Продолжительность рабочего дня
Тч ч 8,0 Месячная тарифная ставка 1-го разряда
Тм1 руб. 100000 Коэффициент премирования К 1,5 Норматив дополнительной заработной платы
Нд % 20,0 Ставка отчислений в фонд социальной защиты населения
Нсз % 35,0 Ставка чрезвычайного налога
Нне % 4,0 Ставка отчислений в фонд занятости
Ннз % 1,0 Норматив прочих затрат
Нпз % 20,0 Норматив накладных расходов
Нрн % 80,0 Уровень рентабельности ПО
Урп % 20,0 Норматив отчислений в местный и республиканский бюджеты
Нмр % 3,0 НДС
Ндс % 18,0 Норматив расходов на освоение
Но % 10,0 Норматив расходов на сопровождение
Нс % 20,0 Норматив налога на прибыль
Ннп % 24,0
Основнойстатьей расходов на создание ПО является заработная плата разработчиков(исполнителей) проекта, в число которых принято включатьинженеров-программистов, участвующих в написании кода, руководителей проекта,системных архитекторов и других. Заработная плата руководителей организации иработников вспомогательных служб (инфраструктуры) учитывается в накладныхрасходах.
Расчетосновной заработной платы исполнителей.
Вразработке данного программного модуля задействован следующий исполнитель:
- инженер (тарифный разряд – 12; тарифныйкоэффициент – 2,84; продолжительность участия в разработке – 0,25 года (3 мес.)).
Общаятрудоемкость, плановая численность работников и плановые сроки разработки ПОявляются базой для расчета основной заработной платы разработчиков проекта.
Месячнаятарифная ставка исполнителя (Тм) определяется путем умножениядействующей месячной тарифной ставки 1-го разряда (Тм1) на тарифныйкоэффициент (Тк), соответствующий установленному тарифному разряду:
/>, (7.8)
Месячнаятарифная ставка 1-го разряда (Тм1) в УП НИИСА на 01.03.2006 годасоставляет 100 000 рублей.
Тарифныйкоэффициент (Тк) – 2,84.
/>=284000 рублей
Часоваятарифная ставка (Тч) рассчитывается путем деления месячной тарифнойставки />на установленную при 40-часовойнедельной норме рабочего времени расчетную среднемесячную норму рабочеговремени в часах (Фр):
/>, (7.9)
где: /> — по УП НИИСА в 2006 годусоставляет 168,3 часа;
/>=284000 рублей
/>=284000 / 168,3 = 1 688 (руб.).
Основная заработная плата исполнителя на конкретное ПОрассчитывается по формуле:
/> (7.10)
где: n – количество исполнителей, занятых разработкой конкретногоПО;
Tчi – часовая тарифная ставка исполнителя (руб.);
Фп – эффективный фондрабочего времени исполнителя (дней);
ТЧ – количествочасов работы в день (ч);
К – коэффициентпремирования.
/>=1*1688*62*8*1,5=1 255 872 (руб.)
Дополнительная заработная плата на конкретное ПО (Зд)включает выплаты, предусмотренные законодательством о труде (оплата отпусков,льготных часов, времени выполнения государственных обязанностей и другихвыплат, не связанных с основной деятельностью исполнителей), и определяется понормативу в процентах к основной заработной плате:
/> (7.11)
где: Зд – дополнительная заработная платаисполнителя на конкретное ПО (руб.);
Нд – нормативдополнительной заработной платы.
/>=(1255 872 * 20%) / 100% = 251 174 (руб.)
Отчисления в фонд социальной защиты населения (Зсз)определяются в соответствии с действующими законодательными актами по нормативув процентном отношении к фонду основной и дополнительной зарплаты исполнителей,определенной по нормативу, установленному в целом по организации:
/> (7.12)
где НСЗ – норматив отчислений в фонд социальнойзащиты населения (35%).
/>=((1255 872 + 251 174) * 35%) / 100% = 527 466 (руб.)
Налоги, рассчитываемые от фонда оплаты труда определяются всоответствии с действующими законодательными актами по нормативам в процентномотношении к сумме всей заработной платы, относимой на ПО (налог, уплачиваемыйединым платежом, включая налог на ликвидацию последствий чернобыльскойкатастрофы и отчисления в фонд занятости (Не)):
/> (7.13)
где Нне – норматив налога, уплачиваемого единымплатежом (4%).
/>=((1255 872 + 251 174) * 4%) / 100% = 60 282 (руб.)
Расходы по статье «Материалы» (М) определяются на основаниисметы затрат, разрабатываемой на ПО с учетом действующих нормативов. По статье«Материалы» отражаются расходы на магнитную носители, перфокарты, бумагу,красящие ленты и другие материалы, необходимые для разработки ПО. Нормы расходаматериалов в суммарном выражении (Нм) определяются в расчете на 100 строкисходного кода или по нормативу в процентах к фонду основной заработной платыразработчиков (Нмз), который устанавливается организацией (в УП НИИСАсоставляет 3%). Сумма затрат материалов рассчитывается по формуле:
/> (7.14)
/> = (1 255 872 * 3%)/100% = 37 676 (руб.)
Расходы по статье «Машинное время» (Рм) включают оплатумашинного времени, необходимого для разработки и отладки ПО, котороеопределяется по нормативам (в машино-часах) на 100 строк исходного кода (Нмв)машинного времени в зависимости от характера решаемых задач и типа ПЭВМ:
/> (7.15)
где: Цм – цена одного машино-часа (2 000руб.);
Vо – общийобъем ПО (строк исходного кода);
Нмв – нормативрасхода машинного времени на отладку 100 строк исходного кода (10машино-часов).
/> =2000 * (2258/100) * 10 = 440 000 (руб.)
Расходы по статье «Прочие затраты» (Пз) на конкретное ПОвключают затраты на приобретение и подготовку специальной научно-техническойинформации и специальной литературы. Определяются по нормативу,разрабатываемому в целом по научной организации, в процентах к основнойзаработной плате:
/> (7.16)
где: Нпз – норматив прочих затрат в целом понаучной организации (20%).
/> =(1 255 872 * 20%) / 100% = 251 174 (руб.)
Затраты по статье «Накладные расходы» (Рн),связанные с необходимостью содержания аппарата управления, вспомогательныххозяйств и опытных (экспериментальных) производств, а также с расходами наобщехозяйственные нужды (Рн), относятся на конкретное ПО понормативу (Нрн) в процентном отношении к основной заработной платеисполнителей. Норматив устанавливается в целом по научной организации:
/> (7.17)
где: Рн – накладные расходы на конкретную ПО(тыс. руб.);
Нрн – нормативнакладных расходов в целом по научной организации (100%).
/>=1 255 872 рубля
Общая сумма расходов по всем статьям сметы (себестоимость)(Сп) на ПО рассчитывается по формуле:
/> (7.18)
/> =4 079 516 рублей
Рентабельность и прибыль по создаваемому ПО определяютсяисходя из результатов анализа рыночных условий, переговоров с заказчиком(потребителем) и согласования с ним отпускной цены, включающей дополнительноналог на добавленную стоимость и отчисления в местный и республиканскийбюджеты. В случае разработки ПО для использования внутри организации оценкапрограммного продукта производится по действующим правилам и показателямвнутреннего хозрасчета (по ценам, устанавливаемым для расчета за услуги междуподразделениями). Прибыль рассчитывается по формуле:
/> (7.19)
где: Пс – прибыль от реализации ПО заказчику (тыс.руб.);
Урп – уровеньрентабельности ПО (%);
Сп – себестоимость ПО(тыс. руб.).
/> =(4 079 516 * 20%)/100% = 815 903 (руб.)
Прогнозируемая цена ПО без налогов (Цп):
/> (7.20)
/>=4895 419 рублей
Отчисления и налоги в местный и республиканский бюджетыединым платежом (Омр):
/> (7.21)
где Нмр – норматив отчислений в местный иреспубликанский бюджеты (3%).
/> = (4 895 419 * 3%) / (100% – 3%) = 151 405 (руб.)
Налог на добавленную стоимость (НДС)
/> (7.22)
где Ндс – норматив НДС (18%).
/>=((4895 419 + 151 405) * 18%) / 100% = 908 428 (руб.)
Прогнозируемая отпускная цена (Цо):
/> (7.23)
/> =4 895 419 + 151 405 + 908 428 = 5 955 252 (руб.)
Затраты на освоение ПО (Ро). Организация –разработчик участвует в освоении ПО и несет соответствующие затраты, на которыесоставляется смета, оплачиваемая заказчиком по договору. Сметойпредусматриваются не только затраты (основная и дополнительная зарплата,начисления на зарплату и т.д.), но и налоги, предусмотренные законодательством,и прибыль организации – разработчика. Для упрощения расчетов, до составлениясметы, затраты на освоение определяются по нормативу (Но = 10%) отсебестоимости ПО в расчете на 3 месяца и рассчитываются по формуле:
/> (7.24)
где Но – норматив расходов на освоение (10%).
/> = (4 079 516*10%) / 100% = 407 952 (руб.)
Затраты на сопровождение ПО (Рс). Организация –разработчик осуществляет сопровождение ПО и несет соответствующие расходы,которые оплачиваются заказчиком в соответствии со сметой на освоение ПО. Дляупрощения расчетов для составления сметы затраты на сопровождение определяютсяпо установленному нормативу (Нс = 20%) от себестоимости ПО (врасчете на год) и рассчитываются по формуле:
/> (7.25)
где Нс – норматив расходов на сопровождение (20%).
/> =(4 079 516*20%) / 100% = 815 903 (руб.)
Экономический эффект организации – разработчика. Заказчикоплачивает организации – разработчику всю сумму расходов по проекту, включаяприбыль. После уплаты налогов из прибыли в распоряжении заказчика остаетсячистая прибыль от проекта.
Расчет прибыли, остающиеся в распоряжении предприятия,осуществляется по формуле:
/> (7.26)
где Ннп – норматив налога на прибыль (24%).
/>=815 903 – (815 903 * 24%) /100% = 620 086 (руб.)
Чистая прибыль от реализации ПО (/>= 620 086 руб.)остается организации-разработчику и представляет собой экономический эффект отсоздания нового программного средства./>/>/>Оценка экономическойэффективности применения ПО у пользователя
Для определения экономического эффекта от использованиянового ПС у потребителя необходимо сравнить расходы по всем основным статьямисметы затрат на эксплуатацию нового ПС (расходы на заработную плату с начислениями,затраты на расходные материалы, расходы на машинное время) с расходами посоответствующим статьям базового варианта. При этом за базовый вариант следуетпринимать аналогичное программное средство, используемое в действующейавтоматизированной системе, или ручной вариант, если автоматизация отсутствует.При сравнении базового и нового вариантов ПО в качестве экономического эффектабудет выступать общая экономия всех видов ресурсов относительно базовоговарианта. Создание нового ПО окажется экономически целесообразным лишь в томслучае, если все капитальные затраты окупятся за счет получаемой экономии вближайшее время (2 лет).
Исходные данные для расчета приведены в таблице 7.3
Таблица 7.3. Исходные данные для расчета экономии ресурсовв связи с применением нового ПОНаименование показателей Обозначения Единицы измерения Значение показателя Наименование источника информации в базовом варианте в новом варианте 1 2 3 4 5 6 1. Капитальные вложения, включая затраты пользователя на приобретение ПО
Кпр руб. - 5 955 252 Прогнозируемая отпускная цена 2. Затраты на освоение ПО
Кос руб. - 407 952 10% от себестоимости 3. Затраты на сопровождение ПО
Кс руб. - 815 903 20% от себестоимости 4. Затраты на укомплектование ВТ техническими средствами в связи с внедрением нового ПО
Ктс руб. - - Сметы затрат на внедрение 5. Затраты на пополнение оборотных средств в связи с эксплуатацией нового ПО
Коб руб. - - Сметы затрат на внедрение 6. Среднемесячная ЗП одного программиста
Зсм руб. 400 000 400 000 Расчетные данные пользователя 7. Коэффициент начислений на зарплату
Кнз 0,4 0,4 Рассчитывается по данным пользователя 8. Среднемесячное количество рабочих дней
Др день 21 21 Принято для расчета 9. Количество типовых задач, решаемых за год
Зт2 задача - 100 План пользователя 10. Объем работ, выполняемых при решении одной задачи
А0 100 команд - 22 План пользователя 11. Средняя трудоемкость работ в расчете на 1 задачу
Тс1, Тс2 человеко-часов на 1 задачу - 2 Рассчитывается по данным пользователя 12. Количество часов работы в день
Тч ч. 8 8 принято для расчета 13. Ставка налога на прибыль
Нп % 24 24
Капитальные затраты на приобретение и использование ПО.Особое значение имеет оценка капитальных затрат на приобретение и использованиеПО.
Общие капитальные вложения (Ко) заказчика(потребителя), связанные с приобретением, внедрением и использованием ПО,рассчитываются по формуле:
Ко = Кпр + Кос + Кс +Ктс + Коб, (7.27)
где: Кпр – затраты пользователя на приобретениеПО по отпускной цене разработчика с учетом стоимости услуг по эксплуатации(руб.);
Кос – затратыпользователя на освоение ПО (руб.);
Кс – затратыпользователя на оплату услуг по сопровождению ПО (руб.);
Ктс – затратына доукомплектацию ВТ техническими средствами в связи с внедрением нового ПО(руб.);
Коб – затратына пополнение оборотных средств в связи с использованием нового ПО (руб.).
Ко = 5 955 252 + 407 952 + 815 903 = 7 179 107(руб.)
/>/>Расчет экономии основных видов ресурсов в связи сиспользованием нового ПО
При расчете затрат на заработную плату важно правильновыбрать показатели сравниваемых проектов в зависимости от особенности сервиса.В качестве показателей для сравнения базового и проектируемого ПО можноиспользовать:
- трудоемкость решаемых задач (на основехронометражных наблюдений и накопленной статистической информации);
- затраты труда на 100 строк исходногокода;
- количество выполнения транзакций вминуту.
Экономия затрат на заработную плату (Сз) прииспользовании нового ПО в расчете на объем выполненных работ (см. табл. 7.3«Исходные данные»):
Сз=Сзе*А2, (7.28)
где: Сзе – экономия затрат на заработнуюплату при решении задач с использованием нового ПО в расчете на 1 задачу(руб.);
А2 – объемвыполненных работ с использованием нового ПО (задач).
Экономия затрат на заработную плату в расчете на 1 задачу (Сзе):
/> (7.29)
где: Зсм – среднемесячная заработная платаодного программиста (руб.);
Тс1, Тс2 – снижение трудоемкости работ в расчете на 1 задачу(человеко-часов);
Тч – количествочасов работы в день (ч);
Др –среднемесячное количество рабочих дней.
/> =((400 000 * 2)/8)/21 = 4 762 (руб.)
Объем выполняемых работ с использованием нового ПО (100команд):
А2 = А0* Зт2, (7.30)
А2 = 22 * 100 = 2 200 (100 команд)
Экономия заработной платы при использовании нового ПО(руб.):
Сз=Сзе*А2, (7.31)
где: Сзе – экономия заработной платы (руб.);
А2 – объемвыполняемых работ с использованием нового ПО (100 команд).
Сз = 4 762 * 2200 = 10 476 400 (руб.)
Экономия с учетом начисления на зарплату (Сн):
Сн=Сз* Кнз, (7.32)
где: Сз – экономия заработной платы прииспользовании нового ПО (руб.);
Кнз –коэффициент начислений на зарплату.
Сн=10 476 400 *1,5 = 15 714 600 (руб.)
Общая годовая экономия текущих затрат, связанных сиспользованием нового ПО (Со) равна экономии с учетом начисления назарплату (Сн):
Со= 15 714 600(руб.)
Расчет экономического эффекта. Внедрение нового ПО позволитпользователю сэкономить на текущих затратах, т.е. практически получить на этусумму дополнительную прибыль. Для пользователя в качестве экономическогоэффекта выступает лишь чистая прибыль – дополнительная прибыль, остающаяся вего распоряжении (/>), котораяопределяется по формуле:
/> (7.33)
где Нп – ставка налога на прибыль (24%).
/> = 15 714 600 – ((15 714 600 * 24%) / 100%) = 11 943 096(руб.)
В процессе использования нового ПО чистая прибыль вконечном итоге возмещает капитальные затраты. Однако полученные при этом суммырезультатов (прибыли) и затрат (капитальных вложений) по годам приводят к единомувремени – расчетному году (за расчетный год принят 2006 год) путем умножениярезультатов и затрат за каждый год на коэффициент приведения />который рассчитывается поформуле:
/> (7.34)
где: Ен – норматив приведения разновременныхзатрат и результатов;
tр – расчетныйгод, tр=1;
t – номер года, результатыи затраты которого приводятся к расчетному году.
Норматив приведения разновременных затрат и результатов (Eн)для программных средств ВТ в существующей практике принимается равным 0,15, таккак Eн по своей сущности очень близок к ставке рефинансирования НБРБ. Следовательно, при решении данной задачи коэффициентам приведения (ALFAt)по годам будут соответствовать следующие значения:
- расчетный год
ALFA1 = (1+0,15)1-1=1;
- 2007-й год
ALFA2 =(1+0,15)1-2=0,87;
- 2008-й год
ALFA3 =(1+0,15)1-3=0,66;
- 2009-й год
ALFA4 =(1+0,15)1-4=0,57;
Сведем данные расчета экономического эффекта в таблицу 7.4.
Таблица 7.4. Расчетэкономического эффекта от использования нового ПС.Показатели Ед. изм. 2006 2007 2008 2009 Результаты:
— прирост прибыли за счет экономии затрат (Пч) руб. 11 943 096 11 943 096 11 943 096 11 943 096 -то же с учетом фактора времени руб. 11 943 096 10 390 494 7 882 443 6 807 565 Затраты:
— приобретение, адаптация (Кпр) руб. 5 955 252 - - -
— освоение ПС (Кос) руб. 407 952 - - -
— сопровождение ПО (Кс) руб. 815 903 - - - Всего затрат: руб. 7 179 107 - - - — то же с учетом фактора времени: руб. 7 179 107 6 245 823 4 738 211 4 092 091 Экономический эффект: — превышение рез-та над затратами руб. 4 763 989 4 144 671 3144232 2 715 474 — то же нарастающим итогом руб. 4 763 989 5 383 307 6 383 746 6 812 504 Коэффициент приведения ед. 1,0 0,87 0,66 0,57 />/>/>
Выводы
Затратына разработку программы у разработчика составили 7 179 107 руб. РазработанноеПО ВТ позволяет получить значительную экономию трудовых, материальных ифинансовых расходов в процессе эксплуатации пользователем по сравнению сбазовым вариантом программного модуля обработки и отображения картографическойинформации на цифровой карте местности. Экономия трудовых ресурсов связана ссокращением трудоемкости выполняемых работ, материальных ресурсов – соснижением расходов на материалы (бумагу, магнитные диски), финансовых – суменьшением денежных расходов (статьи «прочие затраты», «накладные расходы»).Реализация проекта ПО позволит заказчику снизить трудоемкость решения задач исократить простой сервиса. Все затраты заказчика окупятся в первом годуэксплуатации ПО. Проект представляется эффективным и полезным для заказчика.
/>/>/>Литература
1. Абломейко С.В. Географическиеинформационные системы. Создание цифровых карт: справочное пособие / С.В. Абломейко,Г.П. Апарин, А.Н. Крючков. – Мн.: ИТК НАН РБ, 2000. – 440 с.
2. Шилдт Г. С++. Базовый курс: справочноепособие / Г. Шилдт. – СПб.: Вильямс, 2005. – 788 с.
3. Лаптик Д.В. Библиотекакартографического обеспечения: руководство программиста / Д.В. Лаптик. – Мн.:НИИСА, 2003. – 25 с.
4. Палицын В.А. Технико-экономическоеобоснование дипломных проектов: методическое пособие в 4-х частях. Часть 4. Проектыпрограммного обеспечения / В.А. Палицын. – Мн.: БГУИР, 2006. – 76 с.
5. Асаёнок И.С. Охрана труда иэкологическая безопасность: Методические указания по дипломному проектированиюдля студентов всех специальностей / И.С. Асаёнок, Т.Ф. Михнюк, Г.М. Дунаева.– Мн.: БГУИР, 1998. – 40 с.
6. Денисенко Г.Ф. Охрана труда:учебное пособие для инж.–экон. спец. вузов. – М.: Высш. шк., 1985. – 319 с.
7. Дядечкин В.П. Психофизиологическиерезервы повышения работоспособности. – Мн.: Высш. шк., 1990. – 119 с.
8. Среда обитания человека, здоровье,работоспособность: методы оценки и анализа: учебное пособие / И.С. Асаёнок[и др.] – Мн.: БГУИР, 1997. – 86 с.
9. Семич В.П. Охрана труда приработе на персональных электронно-вычислительных машинах и другой офиснойтехнике / В.П. Семич, А.В. Семич. – Мн.: ЦОТЖ, 2001. – 75 с.
10. Голуб В.С. Сборникофициальных документов по медицине труда и производственной санитарии. ЧастьVIII. / В.С. Голуб., С.М. Соколов – Мн.: РЦГЭ МЗ РБ, 2001. – 210 с.
11. Межотраслевая типовая инструкция поохране труда при работе с персональными компьютерами. /Национальный реестр правовых актов Республики Беларусь 14декабря 2004 г. №8/11835
12. СанПиН 2.2.2. 542 РБ 96. Гигиеническиетребования к видеодисплейным терминалам, персональным электронно-вычислительныммашинам и организации работы.