67
Федеральное государственное образовательное учреждение Дополнительного профессионального образования МОСКОВСКИЙ ЭЛЕКТРОННО-ТЕХНОЛОГИЧЕСКИЙ ТЕХНИКУМ Государственной академии инноваций Допустить к защите « » ____________________ ДИПЛОМНЫЙ ПРОЕКТ НА ТЕМУ: «Программа удаленного контроля за компьютерным парком организации на языке программирования Ruby» Дипломант: Карпов Евгений Геннадьевич Руководитель дипломного проекта: Шипиев Роман Николаевич Консультанты: По технологической части: Шипиев Роман Николаевич По экономической части: Баранов Виталий Петрович Рецензент ____________________________________________________________________ ( Ф. И. О. ) 2007 г.

Диплом МЭТТ

Embed Size (px)

DESCRIPTION

Программа удаленного доступа к компьютерному парку организации

Citation preview

Page 1: Диплом МЭТТ

Федеральное государственное образовательное учреждение

Дополнительного профессионального образования

МОСКОВСКИЙ ЭЛЕКТРОННО-ТЕХНОЛОГИЧЕСКИЙ ТЕХНИКУМ

Государственной академии инноваций

Допустить к защите

« » ____________________

ДИПЛОМНЫЙ ПРОЕКТ

НА ТЕМУ: «Программа удаленного контроля за компьютерным парком организации на языке программирования Ruby»

Дипломант: Карпов Евгений Геннадьевич

Руководитель дипломного проекта: Шипиев Роман Николаевич

Консультанты:

По технологической части: Шипиев Роман Николаевич

По экономической части: Баранов Виталий Петрович

Рецензент ____________________________________________________________________

( Ф. И. О. )

2007 г.

Page 2: Диплом МЭТТ

Федеральное государственное образовательное учреждение

Дополнительного профессионального образования

МОСКОВСКИЙ ЭЛЕКТРОННО-ТЕХНОЛОГИЧЕСКИЙ ТЕХНИКУМ

Государственной академии инноваций

«УТВЕРЖДАЮ»Зам. директора по учебной работе.______________________________«______» _______________ 200__г.

ЗАДАНИЕ

НА ДИПЛОМНЫЙ ПРОЕКТ

Студенту Карпову Евгению Геннадьевичу группы П-404 специальности 230105.

Тема дипломного проекта: «Программа удаленного контроля за компьютерным парком организации на языке программирования Ruby»

Техническое задание на проектирование

Постановка задачи, входная и выходная информация

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

1) Должна иметь удобный графический интерфейс пользователя;2) Выявлять сотрудников или учащихся отвлекающихся от заданной задачи;3) Упростить работу администратора сети4) Уменьшить нагрузку на сетевое оборудование;

Входными данными программы являются:– ip адрес удаленного компьютера;– программы входящие в «черный список»;– программы входящие в «белый список».

Выходными данными программы являются:– список запущенных процессов удаленного компьютера;– список установленных программ удаленного компьютера;– cписок не разрешенного программного обеспечения установленного на

удаленном компьютере.

Page 3: Диплом МЭТТ

Оглавление1.ОБЩАЯ ЧАСТЬ........................................................................................................6

1.1.Постановка задачи.............................................................................................6

1.1.1.Название задачи..........................................................................................6

1.1.2.Технико-математическое обоснование задачи........................................6

1.1.3.Требование к программе..........................................................................10

1.1.4.Требование к параметрам и составу технических средств..................10

1.2.Описание языка программирования..............................................................11

1.2.1.Выбор языка программирования............................................................11

1.2.2.Элементы языка программирования......................................................21

2. СПЕЦИАЛЬНАЯ ЧАСТЬ.....................................................................................26

2.1.Описание алгоритма........................................................................................26

2.1.1.Схема алгоритма.......................................................................................26

2.1.2.Описание работы программы.................................................................30

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

2.2.1.Текст программы Server.rbw....................................................................32

2.2.2.Текст программы Zadachi.rbw.................................................................33

2.2.3.Текст программы Admin1.rbw.................................................................33

2.2.4.Текст программы Admin2.rbw.................................................................34

2.2.5.Текст шаблона font.erb.............................................................................34

2.2.6.Текст программы Admin3.rbw.................................................................36

2.2.7.Текст шаблона admin3.erb........................................................................36

2.3.Инструкция на выполнение программы.......................................................37

2.3.1.Общие сведения........................................................................................37

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

2.3.3.Входные данные.......................................................................................38

2.3.4.Выходные данные....................................................................................38

2.3.5.Сообщения программы............................................................................38

Изм Лист № докум. ДатаПодп. Разраб. Пров.

Утв.

Карпов Шипиев Щербаков

ДП.230105.П-404.16.06.07.ПЗ

Разработка программы удаленного контроля за компьютерным парком организации на языке

программирования Ruby

Лит. Лист Листов3 67

ФГОУ ДПО МЭТТ ГАИ

Page 4: Диплом МЭТТ

2.3.6.Техника безопасности..............................................................................38

2.4.Описание процесса отладки программы.......................................................45

2.4.1. Методы отладки.......................................................................................45

2.4.2.Тестирование............................................................................................46

2.4.3.Контрольный пример...............................................................................49

3.ЭКОНОМИЧЕСКАЯ ЧАСТЬ................................................................................56

3.1.Расчет программного продукта......................................................................56

3.1.1.Материальные затраты.............................................................................56

3.1.2.Заработная плата......................................................................................56

3.1.3.Расчет часовой тарифной ставки............................................................56

3.1.4.Расчет стоимости основных фондов......................................................57

3.1.5.Калькуляция расходов на разработку программного продукта...........58

3.2.Расчет затрат на тиражирование программного продукта..........................58

3.2.1.Расчет производственной мощности выпуска продукции на месяц...58

3.2.2.Расчет материальных затрат....................................................................59

3.2.3.Расчет заработной платы специалистов и сотрудников.......................59

3.2.4.Расчет стоимости основных фондов......................................................60

3.2.5.Расчет сметы цеховых расчетов на месяц..............................................61

3.2.6.Расчет себестоимости выпускаемой продукции...................................61

3.2.7.Диаграмма удельного веса затрат на производство (тиражирование)

программного продукта....................................................................................63

3.2.8.Сводная таблица технико-экономических показателей........................63

3.3.Вывод................................................................................................................65

Лист

4ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 5: Диплом МЭТТ

ВВЕДЕНИЕРазработка программы удаленного контроля за компьютерным парком

организации на языке программирования Ruby на основании приказа ФГОУ

ДПО МЭТТ ГАИ № 41-С от 02.04.07

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

компьютерным парком организации на языке программирования Ruby

Краткое название программы: программа удаленного контроля, Rubyl’nik.

Лист

5ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 6: Диплом МЭТТ

1.ОБЩАЯ ЧАСТЬ1.1.Постановка задачи

1.1.1.Название задачи

Разработка программы удаленного контроля за компьютерным парком

организации на языке программирования Ruby

1.1.2.Технико-математическое обоснование задачи

Программа удаленного контроля должна использовать следующие

технологии:

— протокол HTTPS;

— язык разметки гипертекста HTML;

— реестр Windows.

1.1.2.1.Протокол HTTPSHTTPS (гипертекстовый защищенный протокол передачи данных) - это

защищенная версия http (гипертекстового протокола передачи данных).

Защищенность означает невозможность перехвата и расшифровки

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

https шифрует сессию передачи данных с помощью ssl сертификата. Таким

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

электронной коммерции и других чувствительных к утечке информации

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

протоколом SSL программа, например почтовый клиент. Если адрес сайта

начинается с символов https:// - это означает, что данный сайт "безопасный".

Почти 99% браузеров могут подключаться к интернет используя оба

протокола: http и https. Адресная строка браузера будет содержать адрес,

начинающийся с https, если вебсайт, к которому обратился браузер - безопасен.

Большинство браузеров, например Internet Explorer или Firefox показывают

значок "замок" или "ключ", чтобы пользователь знал, что сайт, к которому он

обратился - безопасен. Адрес сайта также будет начинаться с симвоолов "https".

Лист

6ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 7: Диплом МЭТТ

Значок "замок" будет показан пользователю только в том случае, если на

сервере установлен ssl сертификат. Если данные по обычному, незащищенному

http соединению передаются через 80-й порт, то https соединение организуется

обычно на 443 порту TCP/IP.

1.1.2.2.Язык разметки гипертекста HTMLHTML (HyperText Markup Language, язык разметки гипертекста)

используется для создания Web-страниц. Для создания html-документа

достаточно обычного текстового редактора, хотя существуют html-редакторы,

такие как HomeSite, FrontPage и др. В нашем случае формированием html-

документа будет заниматься программа, написанная на языке Ruby.

Язык разметки документов - это набор специальных инструкций,

называемых тэгами, предназначенных для формирования в документах какой-

либо структуры и определения отношений между различными элементами этой

структуры. Теги (управляющие дескрипторы) языка разметки выделяются

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

Программы-просмотрщики (браузеры) определяют по тэгам, как нужно

отобразить очередной фрагмент документа.

Тегом называется единица разметки - особый набор символов, имеющий

в HTML особое значение. Теги начинаются со знака <, за которым следует

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

так:

<Strong>

<img>

<TITLE>

</B>

<html>

Каждый тег в HTML имеет определенный смысл, в котором обычно нет

ничего сложного. Например, тег <B> означает переключение на полужирный

шрифт, а тег <HR> вставляет в документ горизонтальную линию. Теги делятся

на две категории. Начальный тег открывает действие некоторого эффекта, а

Лист

7ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 8: Диплом МЭТТ

конечный тег - отменяет его. Конечный тег всегда выглядит как ключевое

слово, перед которым стоит символ / ("косая черта", или "слэш").

Например, текст, отображаемый полужирным шрифтом, заключается

между начальным тегом <B> и конечным тегом </B>: Я люблю по ночам

<B>выть</B> на луну.

В результате слово "выть" выделяется полужирным шрифтом.

Аналогично тег <TITLE> обозначает начало заголовка документа, а тег

</TITLE> - его конец:

<TITLE>Странная любовь: Как перестать волноваться и полюбить

кинозвезду</TITLE>

Теги можно вкладывать внутрь других тегов. Например, теги <B> (для

полужирного шрифта) и <I> (для курсива) можно скомбинировать:

Быть или не быть, <B><I>вот</I></B> в чем вопрос.

Слово "вот" выводится одновременно и полужирным, и курсивным

шрифтом. Обратите внимание, что начальный и конечный тег курсивного

начертания полностью содержатся внутри пары тегов для полужирного

начертания.

Многие начальные теги обладают атрибутами, влияющими на поведение

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

угловых скобках и отделенные от имени тега пробелом - например, <HR

NOSHADE> (данный тег рисует горизонтальную линию без теневого

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

которым стоит знак = (например, тег <HR WIDTH=''200''> рисует

горизонтальную линию шириной в 200 пикселов). В браузере отображаются не

сами теги, а их эффект. Неизвестные теги и атрибуты игнорируются.

1.1.2.3.Реестр WindowsРеестр Windows — база данных параметров и настроек операционной

системы Microsoft Windows, включая 32-разрядные и 64-разрядные версии

Windows, а также Windows Mobile. Реестр содержит информацию и настройки

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

Лист

8ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 9: Диплом МЭТТ

предустановки. При любых изменениях в Панели управления, ассоциациях

файлов, системных политиках, инсталлированном ПО, все эти изменения

фиксируются в реестре.

Реестр Windows был введён для упорядочения информации, хранившейся

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

настроек до того как появился реестр.

1.1.2.3.1.HKEY_CURRENT_USERДанный раздел содержит настройки пользователя вошедшого в систему.

Краткая запись раздела HKCU. Этот ключ является ссылкой HKU\SID.

1.1.2.3.2.HKEY_USERSВ этом разделе находятся все активные загруженые профили

пользователей.

1.1.2.3.3.HKEY_LOCAL_MACHINEЗдесь содержатся параметры конфигурации компьютера для всех

пользователей.

1.1.2.3.4.HKEY_CLASSES_ROOTЯвляется подразделом HKEY_LOCAL_MACHINE\Software\Classes. В

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

обьектах COM и ActiveX.

1.1.2.3.5.HKEY_CURRENT_CONFIGСодержит сведения о профиле оборудования.

1.1.2.3.6.HKEY_DYN_DATAДанный раздел имеется только в реестре ОС семейства Windows 9x/ME.

Содержит динамически изменяемые данные о компьютере (загрузка

процессора, размер файла подкачки и т.п.).

Лист

9ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 10: Диплом МЭТТ

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

Этот программный продукт позволит:

— выявить сотрудников или учащихся отвлекающихся от заданной задачи;

— уменьшить нагрузку на сеть и сетевое оборудование;

— отслеживать запущенное программное обеспечение;

— упростить работу администратора сети;

— расширять функционал программы.

1.1.4.Требование к параметрам и составу технических средств

Так как программа состоит из двух частей: клиентской и серверной.

Следовательно для каждой из них нужны отдельное описание технических

характеристик.

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

части :

— процессор для ПК по производительности не ниже Intel Pentium II;

— оперативная память не меньше 128 Мб;

— свободного места на жестком диске не меньше 32 Мб;

— видео карта с объемом памяти не меньше 32 Мб;

— сетевая карта со скоростью передачи не меньше 10 Мб/с подключенная в

сеть;

— монитор;

— клавиатура;

— мышь;

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

— интернет браузер;

— наличие дистрибутива Ruby не ниже версии 1.8.4.

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

части :

— процессор для ПК по производительности не ниже Intel Pentium II;

— оперативная память не меньше 128 Мб;

— свободного места на жестком диске не меньше 16 Мб;

Лист

10ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 11: Диплом МЭТТ

— сетевая карта со скоростью передачи не меньше 10 Мб/с подключенная в

сеть;

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

— наличие дистрибутива Ruby не ниже версии 1.8.4.

1.2.Описание языка программирования

1.2.1.Выбор языка программирования

Для реализации программы контроля выбор лежал между языками Perl,

Python, Ruby. Это было связанно с тем что на них часто реализуются

программы использующие протоколы HTTP, HTTPS и другие. Так же эти языки

являются скриптовыми, мульти-платформенными, динамическими и имеет

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

Языки как Си, С++, С#, Паскаль, JAVA были отброшены так как они

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

HTTP.

1.2.1.1.Язык программирования PythonPython (пито́н, па́йтон) — интерпретируемый объектно-ориентированный

язык программирования высокого уровня с динамической типизацией,

автоматическим управлением памятью и удобными высокоуровневыми

структурами данных, такими как словари (хэш-таблицы), списки, кортежи.

Поддерживает классы, модули (которые могут быть объединены в пакеты),

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

простым и выразительным синтаксисом. Язык поддерживает несколько

парадигм программирования: структурное, объектно-ориентированное,

функциональное и аспектно-ориентированное.

Интерпретатор Питона существует для большинства распространённых

платформ. Он распространяется свободно под очень либеральной лицензией,

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

Текущая версия 2.5.1 вышла 18 апреля 2007 года.

Лист

11ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 12: Диплом МЭТТ

1.2.1.1.1.ИсторияПитон создал в начале 1990-х сотрудник голландского института CWI

Гвидо ван Россум (Guido van Rossum). Для распределенной ОС Amoeba

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

досуге, заимствовав некоторые наработки для языка АВС (Гвидо участвовал в

разработке этого языка, ориентированного на обучение программированию).

Затем язык начал свободно распространяться через Интернет и понравился

другим программистам. С самого начала Питон проектировался как объектно-

ориентированный язык. Питон также позаимствовал многие черты таких

языков, как Си, Си++, Modula-3 и Icon, и отдельные черты функционального

программирования из Лиспа.

Название языка произошло вовсе не от вида пресмыкающихся. Автор

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

«Воздушный цирк Монти Пайтона». Впрочем, всё равно название языка чаще

ассоциируют именно со змеёй, нежели с фильмом — пиктограммы файлов в

KDE или в Windows и даже эмблема на сайте python.org изображают змеиные

головы.

Наличие дружелюбного, отзывчивого сообщества пользователей

считается наряду с дизайнерской интуицией Гвидо одним из фактором успеха

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

процессу создания, обсуждения, отбора и реализации документов PEP (Python

Enhancement Proposal) — предложений по развитию

Начата работа над Python 3000 — версией языка, в которой будут

устранены многие недостатки в дизайне с максимально возможным

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

1.2.1.1.2.ПортируемостьПитон портируем и работает почти на всех известных платформах — от

КПК до мейнфреймов. Существуют порты под Windows, все варианты UNIX

(включая Linux), Plan 9 , Mac OS и Mac OS X, Palm OS, OS/2, Amiga, AS/400 и

даже OS/390 и Symbian.

Лист

12ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 13: Диплом МЭТТ

При этом, в отличие от многих портируемых систем, на каждой

платформе Питон поддерживает все характерные для данной платформы

технологии (например, Microsoft COM/DCOM). Более того, существует

специальная версия Питона для виртуальной машины Java — Jython, что

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

Java, при этом классы Java могут непосредственно использоваться из Питона и

даже быть написанными на Питоне. Не так давно началась разработка системы,

предназначенной для более полной интеграции с платформой .NET — Iron

Python.

1.2.1.1.3.Типы и структуры данныхPython поддерживает динамическую типизацию, то есть, тип переменной

определяется только во время исполнения. Поэтому вместо «присваивания

значения переменной» лучше говорить о «связывании значения с некоторым

именем». В Питоне имеются встроенные типы: булевский, строки, Unicode-

строки, целые числа произвольной точности, числа с плавающей запятой,

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

кортежи (tuples), списки, словари (ассоциативные массивы) и, начиная с версии

2.4, множества. Все значения в Питоне являются объектами, в том числе

функции, методы, модули, классы.

Добавить новый тип можно либо написав класс (class), либо определив

новый тип в модуле расширения (например, написанном на языке C). Система

классов поддерживает наследование (одиночное и множественное) и

метапрограммирование. Любой тип входит в иерархию классов, и при

необходимости возможно наследование даже от большинства встроенных

типов.

Все объекты делятся на изменяемые и неизменяемые. Например, строки

являются неизменяемыми, поэтому для них не предусмотрено операций,

изменяющих строку. Списки являются изменяемыми, например, метод .sort()

сортирует список «на месте». Кортеж в Питоне является, по сути,

неизменяемым списком.

Лист

13ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 14: Диплом МЭТТ

1.2.1.1.4.Синтаксис и семантикаЯзык обладает чётким и последовательным синтаксисом, продуманной

модульностью и масштабируемостью, благодаря чему исходный код

написанных на Питоне программ легко читаем.

1.2.1.2.Язык программирования PerlPerl (Перл) — язык программирования. Создатель Ларри Уолл (Larry

Wall). Само слово Perl — аббревиатура, которая расшифровывается как Practical

Extraction and Report Language (практический язык извлечений и отчётов,

отчего сначала язык назывался PEARL, но затем буква «A» «потерялась»).

Существует также ряд других вариантов. Согласно самому красивому из них,

название perl произошло от слова pearl (жемчужина). Талисманом языка Perl

является верблюд — не слишком красивое, но очень выносливое животное,

способное выполнять тяжёлую работу.

Основной особенностью языка считаются его богатые возможности для

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

Интересен текст на Perl, печатающий простые числа:

perl -wle '(1 x $_) !~ /^(11+)\1+$/ && print while ++ $_'

Еще один также впечатляющий своей краткостью пример, имеющий к

тому же практическую пользу. Печатаются только уникальные строки файла

file.

perl -ne '$s{$_}++ || print' file

Перл унаследовал много свойств от языков Си, shell script, awk.

Сегодня основной для разработчиков является пятая версия языка Perl

однако (на некоторых веб-серверах) продолжают использоваться программы

(скрипты), написанные на предыдущей — четвёртой — версии (из-за

частичной обратной несовместимости). Фактически стандарт языка

определяется реализацией интерпретатора.

С 2000 года идет разработка новой (шестой) версии языка. В отличие от

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

стандарт языка. В настоящее время существуют экспериментальные

Лист

14ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 15: Диплом МЭТТ

компиляторы Perl 6, но продолжается дальнейшая дискуссия о новых правилах.

Perl — далеко не единственный язык, дающий богатые возможности в

обработке текста. Языки программирования Icon и Snobol предоставляют

возможность использовать более полно метод программирования

«сопоставления с образцом», частным случаем которого и являются регулярные

выражения.

Существует также полноценный shell, использующий в качестве основы

язык Perl. Называется он psh и даёт возможность смешивать команды обычного

шелла и самого Perl’а.

1.2.1.2.1.Синтаксис языка PerlСинтаксис Perl имеет много общего с синтаксом языка Си, Awk, sed и

shell.

1.2.1.2.2.Типы данныхТри типа данных: скаляр, список и хеш-таблица. Переменные разных

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

$foo # a scalar

@foo # a list

%foo # a hash

Скалярные переменные используются для хранения одиночных значений.

Они могут содержать числа, строки и ссылки на другие объекты. Перед именем

скалярной переменной необходимо ставить знак доллара '$'. Тип скалярной

переменной не фиксирован (в отличие от, например, языка Си) и определяется

динамически в зависимости от контекста. Например,

$x = 10; # число

$y = $x + 1; # используем $x как число...

$z = $x . 'string'; # а теперь - как строку

Список является аналогом массива в других языках программирования.

Список может содержать некоторое количество скаляров. Каждый элемент

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

Лист

15ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 16: Диплом МЭТТ

Нумерация элементов начинается с нуля, то есть первый элемент списка имеет

индекс 0. Перед именем переменной-списка необходимо ставить знак '@'.

Многомерные массивы можно смоделировать, помещая в список ссылки на

другие списки.

@array = (1,2,3,4); # записали в список @array четыре элемента

print $array[2]; # напечатать третий элемент

Хеш-таблица позволяет ассоциировать строку-ключ со скаляром-

значением. Перед именем переменной-списка необходимо ставить знак

процента '%'.

%hash = (

'cat' => 'kitten',

'dog' => 'puppy',

'cow' => 'calf'

);

print $hash{'cat'};

1.2.1.3.Язык программирования RubyРуби (англ. Ruby) — интерпретируемый язык высокого уровня для

быстрого и удобного объектно-ориентированного программирования. Язык

обладает независимой от операционной системы реализацией

многопоточности, строгой динамической типизацией, «сборщиком мусора» и

многими другими возможностями. Ruby близок по особенностям синтаксиса к

языкам Перл и Эйфель, по объектно-ориентированному подходу к Smalltalk.

Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU.

Кроссплатформенная реализация интерпретатора языка является

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

возможностью копирования и модификации.

1.2.1.3.1.История создания и развитияСоздатель Ruby Юкихиро Мацумото (Matz) интересовался языками

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

Лист

16ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 17: Диплом МЭТТ

появилась позже. Ruby начал разрабатываться 24 февраля 1993 года и вышел в

свет в 1995 году. Название связано с языком Перл, многие особенности

синтаксиса и семантики из которого заимствовано в Ruby: англ. pearl —

жемчужина, англ. ruby — рубин.

Целью разработки было создание «настоящего объектно-

ориентированного», лёгкого в разработке, интерпретируемого языка

программирования. Из письма автора:

Я знал Перл, но он мне не нравился — был в нём некий привкус

игрушечного языка… В то время я знал Python. Но он мне не нравился, так как

я не считал его настоящим объектно-ориентированным языком. Его OO

свойства казались надстройкой над языком… Я пытался найти такой язык, но

его не было. Тогда я решил его создать.

В Японии Ruby стал популярным с момента появления первой

общедоступной версии в 1995 году, однако наличие документации только на

японском языке сдерживало его дальнейшее распространение. Лишь в 1997

году появилось описание Ruby на английском языке, а в 1998 году открылся

форум «ruby-talk». Это положило начало росту известности языка в остальном

мире. Издано несколько книг на английском и немецком языках, хотя на

русский язык ни одна из них пока не переведена. Сейчас Ruby входит в

большинство дистрибутивов ОС Linux, доступен пользователям других

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

1.2.1.3.2.ФилософияМацумото, фанат объектно-ориентированного программирования, мечтал

о языке, более мощном, чем Перл, и более объектно-ориентированным, чем

Python. Основное назначение Ruby — создание простых и в то же время

понятных программ, где важна не скорость, а понятность и простота

написания.

Язык следует принципу «наименьшей неожиданности» — программа

должна вести себя так, как ожидает программист. Однако, в контексте Ruby это

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

Лист

17ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 18: Диплом МЭТТ

основательном изучении. Сам Мацумото утверждает, что целью разработки

была минимизация неожиданностей при программировании для него, но после

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

похоже, и для многих их принцип «наименьшей неожиданности» совпал с его

принципом.

Ruby также унаследовал идеологию языка программирования Перл в

частипредоставления программисту возможностей достижения одного и того

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

свободы необходима возможность выбирать. «Я предпочитаю обеспечить

много путей, если это возможно, но поощрять или вести пользователей, чтобы

выбрать лучший путь, если это возможно».

Одной из основных целей разработки было освобождение программистов

от рутинной работы, которую компьютер может выполнять быстрее и

качественнее. Особое внимание, в частности, уделялось будничным рутинным

занятиям (обработка текстов, администрирование), и для них язык настроен

особенно хорошо.

В противовес машинно-ориентированным языкам, работающим быстрее,

целью этой разработки был язык наиболее близкий к человеку. Любая работа с

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

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

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

потребует дополнительного времени работы компьютера.

1.2.1.3.3.СемантикаRuby — полностью объектно-ориентированный язык. В нём все данные

являются объектами, в отличие от многих других языков, где существуют

примитивные типы. Каждая функция — метод. Переменные — не сами

объекты, а ссылки на них. Ruby не поддерживает множественное наследование,

но вместо него есть мощный механизм примесей. Все классы (напрямую или

через другие классы) выведены из класса Object, следовательно, любой объект

может использовать определенные в нем методы (например, class, to_s, nil?).

Лист

18ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 19: Диплом МЭТТ

Процедурный стиль также поддерживается, но все глобальные процедуры

неявно являются закрытыми методами класса Object.

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

процедурный стиль (определение функций и переменных вне классов),

объектно-ориентированный (всё — объект), функциональный (анонимные

функции, замыкания, возврат значения всеми инструкциями, возврат функцией

последнего вычисленного значения). Он поддерживает отражение,

метапрограммирование, информацию о типах переменных на стадии

выполнения.

1.2.1.3.4.Возможности Ruby— имеет простой и понятный синтаксис, частично разработанный под

влиянием Ада и Эйфель;

— позволяет обрабатывать исключения в стиле Java и Python;

— позволяет легко переопределять операторы, которые на самом деле являются

методами;

— полностью объектно-ориентированный язык программирования. Все данные

в Ruby являются объектами в понимании SmallTalk. Например, число «1» —

это экземпляр класса Fixnum. Также поддерживается добавление методов в

класс и даже в конкретный экземпляр во время выполнения программы;

— не поддерживает множественное наследование, но вместо него существует

концепция модулей (известны в других языках как «примеси»);

— содержит автоматический сборщик мусора. Он работает для всех объектов

Ruby, в том числе для внешних библиотек;

— создавать расширения для Ruby на Си очень просто частично из-за

сборщика мусора, частично из-за несложного и удобного API;

— поддерживает замыкания с полной привязкой к переменным;

— поддерживает блоки кода (код заключается в { … } или do … end). Блоки

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

— целые переменные в Ruby автоматически конвертируются между типами

Fixnum (32-разрядные) и Bignum (больше 32 разрядов) в зависимости от их

Лист

19ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 20: Диплом МЭТТ

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

расчёты с бесконечной точностью;

— не требует объявления переменных. Язык использует простые соглашения

для обозначения области видимости. Пример: просто var — локальная

переменная, @var — переменная экземпляра (член или поле объекта класса),

@@var — переменная класса, $var — глобальная переменная. Таким

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

синтаксис (например, self.имя_переменной для Python) для доступа к

переменным экземпляра;

— в Ruby непосредственно в языке реализованы многие шаблоны

проектирования, так, например «одиночка» (singleton) может быть (хотя, и

не обязан) реализован добавлением необходимых методов к одному

конкретному объекту (см. ниже);

— может динамически загружать расширения, если это позволяет

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

— имеет независимую от ОС поддержку многопоточности;

— перенесён на множество платформ. Он разрабатывался на Linux, но работает

на многих версиях Unix, DOS, Windows 95/98/Me/NT/2000/XP, Mac OS,

BeOS, OS/2, и т. д.

1.2.1.3.5.Недостатки языка и интерпретатораК недостаткам интерпретатора Ruby сегодня можно отнести следующие:

— невысокая скорость работы (естественная расплата за быстрое написание

сложных программ);

— отсутствие поддержки потоков операционной системы (утверждение

действительно только для операционных систем семейства MS Windows, так

как для Unix-подобных операционных систем есть Kernel.fork);

— отсутствие поддержки юникода (возможна работа с использованием

дополнительных библиотек, планируется добавить в версии 1.9);

— отсутствие компиляции в байт-код.

Лист

20ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 21: Диплом МЭТТ

1.2.2.Элементы языка программирования

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

высокоуровневый язык программирования Ruby. Этот выбор был связан с тем

что язык Ruby включил в себя черты языков Perl и Python.

1.2.2.1.КонтейнерыРабота с массивами — одна из сильных сторон Ruby. Они автоматически

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

мощные средства для их обработки.

# создаём массив

a = [1, 'hi', 3.14, 1, 2, [4, 5] * 3]

# => [1, "hi", 3.14, 1, 2, [4, 5, 4, 5, 4, 5]]

# обращение по индексу

a[2] # => 3.14

# «разворачиваем» все внутренние массивы, удаляем

одинаковые элементы

a.flatten.uniq

# => [1, 'hi', 3.14, 2, 4, 5]

# пытаемся найти индекс элемента со значением 4

a.index(6)

# => nil

# предыдущая попытка найти элемент неудачна - все

предыдущие функции

# возвращают копии, но Ruby почти для всех функций

предоставляется аналог

# с тем же названием, но заканчивающийся на «!»,

# который модифицирует контейнер

a.flatten!

# => [1, "hi", 3.14, 1, 2, 4, 5, 4, 5, 4, 5]

a.index(6)

# => 5

Лист

21ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 22: Диплом МЭТТ

1.2.2.2.Процедурные объекты и итераторыВ языке есть 2 эквивалентных способа записи блоков кода:

{ puts "Hello, World!" }

do puts "Hello, World!" end

Сопрограммы применяются с большинством встроенных методов:

File.open('file.txt', 'w') { |file| # открытие файла «file.txt» для записи («w» -

write)file.puts 'Wrote some text.'} # Конструкция устраняет неопределённость с

закрытием файла: закрывается здесь при любом исходе

Пример показывает использование сопрограмм и итераторов для работы с

массивами, который показывает краткость записи на Ruby многих достаточно

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

от «0» до «10» и распечатываем вместе с индексами):

(0..10).collect{|v| v ** 2 }.select{ rand(2) == 1 }.each_with_index{|v,i| printf

"%2d\t%2d\n", i, v }

1.2.2.3.Классы, примеси, методы, перегрузка операторовСледующий пример определяет класс с именем Person, предназначенный

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

class Person

# объявление класс начинается с ключевого слова класс, за

которым

# следует имя Comparable подмешивается к классу и добавляет

# методы <, <=, ==, >=,

# > и between? с использованием нижеопределённого

# в классе <=>

include Comparable

@@count_obj = 0

# переменная класса для подсчёта числа созданных объектов

# конструктор для создания объектов с помощью new

def initialize(name, age) # name, age - параметры метода

# название переменных объекта начинается с @

Лист

22ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 23: Диплом МЭТТ

@name, @age = name, age # создаем объекты и увеличиваем счётчик на 1

@@count_obj += 1

end

def <=>(person)

# переопределение оператора <=>

# (это даёт возможность использовать метод sort

@age <=> person.age

# из метода возвращается последнее вычисленное выражение,

end

def to_s

# для форматированного вывода информации puts

"#{@name} (#{@age})"

# конструкция #{x} в 2-х кавычках замещается в Ruby значением x

end

def inspect

# похож на to_s, но используется для диагностического вывода

"<#{@@count_obj}:#{to_s}>"

end

# пример метапрограммирования: добавляет методы для доступа к

# переменным объекта

attr_reader :name, :age

end

# создаём массив объектов

group = [ Person.new("John", 20),

Person.new("Markus", 63),

Person.new("Ash", 16) ]

# => [<3:John (20)>, <3:Markus (63)>, <3:Ash (16)>]

# здесь при работе с irb автоматически вызывается метод inspect

# вызываем методы массива сортировка и разворачивание его в

обратном порядке

puts group.sort.reverse # Выводит:

Лист

23ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 24: Диплом МЭТТ

# Markus (63)

# John (20)

# Ash (16)

# обращаемся к функции которая была добавлена

# автоматически(используя «<=>») при включении Comparable

group[0].between?(group[2], group[1]) # => true

1.2.2.4.Интерактивный RubyС официальной версией интерпретатора Ruby поставляется

интерактивный интерпретатор языка. Запускаемый командой irb в консоли, он

позволяет тестировать текст программы очень быстро (построчно):

$ irb

irb(main):001:0> "Hello, World"

=> "Hello, World"

irb(main):002:0> 2 ** 256

# ** - оператор возведения в степень

=> 115792089237316195423570985008687

Программа irb выводит результат каждой строки после символов =>. В

приведённых выше примерах для наглядности применяется аннотирование —

результаты строк программы записываются в комментариях после =>.

Имитацию irb можно запустить непосредственно в браузере.

В поставке дистрибутива One-Click Installer для Windows, начиная с версии

1.8.2-15 поставляется утилита fxri, которая включает в себя справочную

систему (ri) и интерактивный интерпретатор (irb).

1.2.2.5.Регулярные выраженияРегулярные выражения (англ. regular expressions, жарг. регэ́кспы и ли

ре́гексы)— современная система поиска текстовых фрагментов в электронных

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

Образец (англ. pattern), задающий правило поиска, по-русски также

иногда называют «шаблоном», «маской», или на английский манер

Лист

24ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 25: Диплом МЭТТ

«па́ттерном». Регулярные вы ражения п роизвели прорыв в электронной

обработке текста в конце XX века.

Сейчас регулярные выражения используются многими текстовыми

редакторами и утилитами для поиска и изменения текста на основе выбранных

правил. Многие я зыки п рограммирования уже́ поддерживают р егулярные

выражения для работы со строками. Например, Perl и Tcl имеют встроенный в

их синтаксис механизм обработки регулярных выражений. Набор утилит

(включая редактор sed и фильтр grep), поставляемых в дистрибутивах Unix,

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

выражений.

Лист

25ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 26: Диплом МЭТТ

2. СПЕЦИАЛЬНАЯ ЧАСТЬ2.1.Описание алгоритма

2.1.1.Схема алгоритма

2.1.1.1.Схема работы программы Server.rbw

Лист

26ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

НАЧАЛО

Инициализация сервера

Подключение сервлетов

Запуск сервера

ОСТАНОВ

1

2

3

Обработка запроса и отправка ответа

4

Page 27: Диплом МЭТТ

2.1.1.2.Схема работы программы Admin1.rbw

Лист

27ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

НАЧАЛО

Перебор адресов

Просмотр черного списка

В «черном»?

Перезагрузка удаленного компьютера

ОСТАНОВ

ДА

НЕТ

1

2

3

4

Page 28: Диплом МЭТТ

2.1.1.3.Схема работы программы Admin2.rbw

Лист

28ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

НАЧАЛО

Считывание шаблона

Обработка шаблона

Запись в файл

Запуск файла при помощи

браузера

ОСТАНОВ

1

2

3

4

5

Выбор запроса

Вывод на экран ответ

сервера

6

Page 29: Диплом МЭТТ

2.1.1.4.Схема работы программы Admin3.rbw

Лист

29ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

НАЧАЛО

Перебор адресов

Просмотр белого списка

программ

В «Белом»?

Выводит IPадреса и названия программ

Вывод IPадреса и

надпись не найдено

ОСТАНОВ

ДА НЕТ

1

2

3

4 5

Page 30: Диплом МЭТТ

2.1.2.Описание работы программы

2.1.2.1.Описание работы программы Server.rbw1) Создается сервер на технологии HTTPS на прослушивание сетевого

порта 31337 и подключает протокол защищенных сокетов SSL.

2) При помощи методов server.mount_proc('/..') серверу указываются запросы

которые он должен выполнить, но для выполнения их он должен

запустить подпрограммы (сервлеты). А после отослать ответы на

запросы..

3) Сервер включается и начинает прослушивать порт 31337 на предмет

наличия HTTPS запроса.

4) Как только сервер получает запрос он выполняет его, и посылает

обратно ответ на поставленный запрос.

2.1.2.2.Описание работы программы Admin1.rbw1) Программа начинает перебирать адреса удаленных компьютеров

(задаются в файле adresa.txt), и подсоединятся к ним.

2) После программа посылает запрос сравнивания списка запущенных

процессов удаленного компьютера (к которому подсоединился

программа)

3) Идет сравнение полученного списка запущенных процессов уделенного

компьютера с черным списком программ. Если один пункт из списка

совпадает то см. 4. Если нет программа дальше продолжает проверять IP

адреса.

4) При нахождении программы из черного списка посылается запрос на

перезагрузку удаленного компьютера. И программа снова продолжает

проверять.

2.1.2.3.Описание работы программы Admin2.rbw1) Программа обращается к ERB шаблону. ERB-шаблон- эта файл который

содержит в себе HTML код и программный код на языке Ruby, который

Лист

30ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 31: Диплом МЭТТ

заключается между тегами <%...%>. Программа начинает считывать его

при помощи метода IO.read ().

2) .Как только программа считала ERB-шаблон она создает экземпляр

класса ERB и начинает обрабатывать его.

3) После этого программа создает файл с расширением .html в котором

будет отображаться текст и результаты выполнения вставок

программного кода.

4) Созданный файл открывается при помощи браузера. Запустится тот

браузер который используется , по умолчанию, для просмотра html

документов на данном компьютере.

5) Пользователь выбирает один из предложенных вариантов действий.,

после чего программа отправляет запрос серверу.

6) Обработав запрос сервер отправляет ответ клиенту. И и выводит его на

экране клиента.

2.1.2.4.Описание работы программы Admin2.rbw1) Программа начинает перебирать адреса удаленных компьютеров

(задаются в файле adresa.txt), и подсоединятся к ним.

2) Посылает запрос серверу на список установленных программ и

обрабатывает его.

3) Идет сравнение полученного с сервера ответа на запрос с белым списком

(находя в файле BlekList..txt).В белом списке администратором сети

указаны разрешенные программы для для установки на удаленный

компьютер.

4) Если на удаленной машине была найдена программа не входящая в белый

список то программа выведет на экран IP удаленной машины и имя

программы которая была найдена.

5) Если на удаленном компьютере не было найдено запрещенных в белом

списке программ то выводится надпись «Программы не найдены».

Лист

31ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 32: Диплом МЭТТ

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

2.2.1.Текст программы Server.rbw

require 'webrick/ssl'

require 'openssl'

require "webrick"

require "webrick/https"

server = WEBrick::HTTPServer.new(

:DocumentRoot => File::dirname(__FILE__),

:Port => 31337,

:SSLEnable => true,

:SSLCertName => [["O", ""], ["OU", "sample"], ["CN",

WEBrick::Utils::getservername]],

:SSLComment => "Comment for self-signed certificate"

)

server.mount_proc('/ps'){ |recv,resp|

resp['Content-Type'] = 'text/plain'

resp.body = IO.popen('ruby Zadachi.rbw')

#~ IO.popen("pslist").read если есть утилита windows

}

server.mount('/white',WEBrick::HTTPServlet::ERBHandler,'index.txt')

server.mount_proc('/off'){ |recv,resp|

resp.body = system("shutdown.exe -s")

resp.body ="BbIKJIu4uTb_KOMnbuTEP"

}

server.mount_proc('/re'){ |recv,resp|

resp.body = system("shutdown.exe -r")

resp.body ="nepe3arpy3ka"

}

Лист

32ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 33: Диплом МЭТТ

server.mount_proc('/loff'){ |recv,resp|

resp.body =system("shutdown.exe -f")

resp.body ="3ABEPLLIuTb_CeaHC"

}

server.mount_proc('/exit'){|req,resp|

resp['content/type']="html/text"

resp.body="Сервер отключен"

server.stop}

trap(:INT){ servaer.shutdown }

server.start

2.2.2.Текст программы Zadachi.rbw

require 'sys/proctable'

include Sys

ProcTable.ps{ |p|

puts p.pid.to_s + ': ' + p.comm

}

2.2.3.Текст программы Admin1.rbw

require 'open-uri'

require 'net/https'

games = /#{IO.read('blacklist.txt').split("\n").join('|')}/i

adressa = IO.read('adresa.txt').split("\n")

loop{

sleep 15

adressa.each{ |host|

open("http://#{host}/ps") {|f|

open("http://#{host}/off") if !f.read.scan(games).empty?

}

}}

Лист

33ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 34: Диплом МЭТТ

2.2.4.Текст программы Admin2.rbw

require 'erb'

File.open('admin2.html','w'){|file|

ERB.new( IO.read('font.erb') ).result.display( file )

}

system('start /b admin2.html')

2.2.5.Текст шаблона font.erb

<html>

<head>

</head>

<body bgcolor="#F3EDDA" link="#EF8709" alink="#FF0000" vlink="#993404">

<% IO.read("adresa.txt").split("\n").each{ |host| %>

<h1 align=center>Адрес- <%= host %></h1>

<hr align="center" color="#CC0000" size="1" width="100%">

<table align="center" border="0" cols="1" datapagesize="1" width="100%"

height="100%">

<td valign="middle" width="100%" height="100%" align="center">

<div>

<table border="0" cols="1" datapagesize="1">

<tr>

<td>

<hr align="center" color="#CC0000" size="1" width="100%">

<a href=https://<%= host %>/ps><h1 align=center>Список процессов</h1></a>

<a href=https://<%= host %>/white><h1 align=center>Установленные

программы</h1></a>

<a href=https://<%= host %>/off><h1 align=center>Выключить</h1></a>

<a href=https://<%= host %>/loff><h1 align=center>Завершить сеанс</h1></a>

Лист

34ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 35: Диплом МЭТТ

<a href=https://<%= host %>/re><h1 align=center>Перезагрузка</h1></a>

<a href=https://<%= host %>/exit><h1 align=center>Выход</h1></a>

<hr align="center" color="#CC0000" size="1" width="100%">

</td>

</tr>

</table>

</div>

</td>

</table>

<hr align="center" color="#CC0000" size="1" width="100%">

<% } %>

</body>

</html>

Лист

35ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 36: Диплом МЭТТ

2.2.6.Текст программы Admin3.rbw

require 'erb'

File.open('result.html','w'){ |file|

file.write ERB.new(IO.read('admin3.erb')).result

}

system('start /b result.html')

2.2.7.Текст шаблона admin3.erb

<html><body bgcolor=gray>

<h1 color=red>Verification of illegal software</h1>

<% require 'open-uri'

whitelist = IO.read('whitelist.txt').split("\n")

IO.read('adresa.txt').split("\n").each{ |host| %>

<h2>Server: http://<%= host %>/</h2>

<font size=+2><%=

begin

(open('http://' + host + '/white').read.split("\n").find_all{ |str| str !~ /^\s*$/ } -

whitelist ).join("<br />")

rescue

"Does not answer!"

end

%></font>

<%}%>

</body></html>

Лист

36ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 37: Диплом МЭТТ

2.3.Инструкция на выполнение программы

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

Программа удаленного контроля за компьютерным парком организаций состоит

из двух основных частей:

1) Серверная часть реализованная в виде файла server.rbw на HTTPS

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

программы.

2) Клиентская часть состоит из нескольких модулей:

а) Модуль проверки «черного списка». Реализован в файле Admin1.rbw.

Использует подпрограмму Zadachi.rbw для просмотра запушенных

процессов на удаленных компьютерах

б) Модуль удаленного контроля. Реализован в файле Admin2.rbw. Является

ERB-шаблоном, который обрабатывается сервером. Использует реестр и

стандартные утилиты Windows.

в) Модуль проверки разрешенного программного обеспечения. Реализован в

файле Admin2.rbw. Является ERB-шаблоном, который обрабатывается

сервером. Использует реестр Windows.

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

Для того чтобы программа удаленного контроля начала работать

необходимо выполнить следующие действия:

1) Запустить серверную часть которая находится на удаленных компьютерах

.В связи с тем что Server.rbw будет находится в автозагрузке ОС при

каждом включении компьютера она будет включатся автоматически и

незаметно от пользователя.

2) Запускает клиентскую часть Admin1.rbw на компьютере администратора.

И компьютер сам начинает проверять удаленные компьютеры на работу

программ входящих в черный список.

3) Запускает клиентскую часть Admin2.rbw на компьютере администратора.

Программа выведет IP компьютеров и список команд с помощью которых

администратор может совершать определенные действия над удаленными Лист

37ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 38: Диплом МЭТТ

компьютерами.

4) Запускает клиентскую часть Admin3.rbw на компьютере администратора.

И компьютер сам начинает сравнивать установленные программы

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

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

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

1) IP адреса удаленных компьютеров.

2) Черный список программ то есть. программы не желательные в

использовании.

3) Белый список программ то есть список программ которые должны быть

установлены на компьютере.

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

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

1) Список запущенных процессов.

2) Список установленных программ.

3) Вывод программ которые установлены на компьютере но не вошли в

белый список.

2.3.5.Сообщения программы.

Из трех клиентов сообщения выводит только один Admin2. Сообщения

следующие:

1) «Компьютер выключается».

2) «Компьютер перезагружается».

3) «Компьютер входит в смену пользователей».

4) «Сервер выключен».

2.3.6.Техника безопасности

Одной из основных особенностей труда инженера-программиста или

просто пользователя ПК является получение, анализ, переработка и управление

большим потоком информации. По некоторым данным, работа с Лист

38ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 39: Диплом МЭТТ

видеодисплейными терминалами (ВДТ) и ПЭВМ по утомляемости стоит на

втором месте после работы водителя транспорта.

Негативными факторами при работе с ВДТ и ПЭВМ являются шум,

вибрация, электромагнитное излучение. Работа с мелкими объектами (на

экране монитора) вызывает утомлённость зрения и предъявляет определённые

требования к освещению, то есть обязательно должно быть естественное и

искусственное освещение.

Конструкция ВДТ или ПЭВМ, его дизайн и совокупность

эргономических параметров должны обеспечивать надёжное и комфортное

считывание отображаемой на мониторе информации в условиях эксплуатации

ПЭВМ. Также не должны превышать нормы параметры вредных факторов.

Помещения для ВДТ и ПЭВМ должны, как уже было сказано ранее,

иметь естественное и искусственное освещение. Площадь на одно рабочее

место для взрослых пользователей должна составлять не менее 6м2 , а объём не

менее 20м3 (в учебных и дошкольных учреждениях не менее 6м2 и 24м3).

Чтобы создать необходимые параметры микроклимата в помещении

должны быть системы отопления, кондиционирования или приточно-вытяжной

вентиляцией.

Оптимальное расстояние от глаз пользователя до экрана видеомонитора

должно составлять 600−700 мм (не менее 500 мм).

Продолжительность непрерывной работы с ВДТ и ПЭВМ без

регламентированных перерывов не должна превышать 2 часа.

Для предупреждения развития переутомления рекомендуется проводить

физкультурные перерывы.

К работе с ВДТ и ПЭВМ не должны допускаться лица, не имеющие

медицинских противопоказаний. Женщины со времени установления

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

работ с ВДТ и ПЭВМ

категорически не допускаются.

Лист

39ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 40: Диплом МЭТТ

2.3.6.1.Требования охраны труда к операторам, пользователям при

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

терминалами (ВДТ) и персональными электронно-вычислительными

машинами (ПЭВМ), т.е. операторов, пользователей и работающих с внешними

устройствами ПЭВМ.

Ответственность за общее состояние охраны труда возлагается на

руководителя подразделения (отдела, цеха и т.п.), в ведении которого находятся

ВДТ. ПЭВМ и другая электронно-вычислительная техника. Ответственность за

соблюдение требований безопасности при выполнении работ на ВДТ и ЭВМ,

выполнение положений инструкции возлагается на непосредственных

руководителей работ. Для предотвращения непроизвольного рассеивания

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

перегородками высотой 1,5-2,0 м, имеющими матовую поверхность серого или

темно-зеленого цвета.

При выполнении основной работы на ВДТ и ПЭВМ уровень шума на

рабочем месте не должен превышать 50 дБ.

В помещениях, где работают инженерно-технические работники,

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

уровень шума не должен превышать 60 дБ.

На рабочих местах в помещениях для размещения шумных агрегатов для

вычислительных машин (АЦПУ, принтеры) уровень шума не должен

превышать 75 дБА. Не допускается расположение ПЭВМ экранами друг к

другу.

Высота рабочей поверхности стола должна регулироваться в пределах

680-800 мм, при отсутствии такой возможности высота должна составлять 725

мм. Модульные размеры рабочей поверхности стола: ширина 80, 1000, 1200 и

1400, глубина 800 и 1000 мм при нерегулируемой высоте, равной 725 мм.

Рабочий стол должен иметь пространство для ног высотой не менее 600 мм,

шириной - не менее 500 мм, глубиной - не менее 650 мм.

Рабочий стул (кресло) должен быть подъемно-поворотным и

Лист

40ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 41: Диплом МЭТТ

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

Размер экрана должен быть не менее 31 см по диагонали, высота

символов на экране - не менее 3.8 мм, при этом расстояние от глаз оператора до

экрана должно быть в пределах 40-80 см.

При работе с ЭВМ возможны следующие основные опасности:

1) поражение электротоком при снятых или открытых предохранительных

крышках, при нарушении изоляции, при нарушении защитного

заземления;

2) получение травм от движущихся частей внешних устройств ЭВМ при

снятых иди открытых предохранительных крышках; в зависимости от

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

генерируют несколько типов излучения, в том числе:

— рентгеновское;

— радиочастотное;

— ультрафиолетовое.

Устройства производят ионизацию воздуха и создают дополнительный

шум. Если не выполнять профилактические мероприятия и не соблюдать

режим работы, указанные в данной инструкции, работа с ПЭВМ, как правило,

сопровождается значительным зрительным и общим переутомлением.

Эксплуатация ЭВМ операторами и пользователями разрешается только

после проверки их исправности обслуживающим техническим персоналом с

обязательным оформлением этого разрешения в листке учета машинного

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

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

помещениях со следующими условиями :

— температура воздуха 25 С(10%);

— атмосферное давление от 84 до 107 Кпа;

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

стола не должна быть токопроводящей.

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

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

Лист

41ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 42: Диплом МЭТТ

машинного времени.

Знать правила пожарной безопасности и уметь пользоваться имеющимися

средствами пожаротушения.

При выявлении замечаний к работе на оборудовании немедленно

сообщить о них дежурному инженеру.

При работе с устройствами печати запрещается:

— открывать защитные крышки блоков управления и питания;

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

Требования безопасности перед началом работы.

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

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

Затем производит осмотр этих устройств, обращая особое внимание на

условия:

— на внешних устройствах ПЭВМ не должно быть предупреждающих

плакатов и надписей, запрещающих работу;

— все внешние устройства должны быть закрыты предохранительными

криками, защищающими от токоведущих и вращающихся частей;

— на внешних устройствах ПЭВМ не должно быть посторонних предметов.

Обо всех замеченных недостатках необходимо сообщать дежурному

инженеру.

После визуального осмотра внешних устройств ЭВМ оператор или

пользователь делает запись в журнале учета машинного времени о приеме их в

эксплуатацию с обязательной росписью.

2.3.6.2.Требования к рабочим местам1) Температура в рабочих помещениях должна быть в пределах 21 - 25°С

при относительной влажности 40 - 50% , а уровень шума не должен

превышать 65 дБ. Освещенность в помещении должна быть не менее 300

люкс;

2) Высота рабочего стола должна быть, по возможности, регулируема в

пределах 680-800 мм, если она не регулируется, то постоянная высота

Лист

42ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 43: Диплом МЭТТ

желательна равной 725 мм;

3) Модульные размеры рабочей поверхности стола должны быть: по

ширине - 800, 1000, 1200 и 1400 мм, по глубине - 800-1000 мм;

пространство для ног: высота не менее 600 мм, ширина не менее 500 мм,

глубина не менее 650 мм;

4) Рабочий стул (кресло), желательно, должны быть подъемно-поворотным

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

5) Если рабочее место предназначено для оператора, то необходимо

следующее:

— ПЭВМ и ВДТ при однорядным размещении на рабочих местах должны

располагаться на расстоянии не менее 1 м от стен. Расстояния между

боковыми поверхностями видеомониторов - не менее 1,2 м; желательно,

изолировать рабочие места друг от друга перегородками высотой 1,5-2 м,

имеющими матовую поверхность серого или темно-зеленого цвета;

— Не допускается расположение ВДТ и ПЭВМ экранами друг к другу. Размер

экрана должен быть не менее 31 см по диагонали, высота символов не менее

3,8 мм, при этом расстояние от глаз оператора до экрана должно быть в

пределах 40-80 см.

Итак, вредными для человека являются следующие факторы:

Электростатические поля. На электронно-лучевой трубке кинескопа

имеется потенциал около 20 000 вольт (в 100 раз выше напряжения в сети). Сам

по себе потенциал не представляет опасности, но этот потенциал создается

между экраном дисплея и лицом оператора, и разгоняет осевшие на экран

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

пользователя ПЭВМ.

Имеются следующие способы борьбы с этим явлением: снижение

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

крайне нежелательно применение мела, поскольку мел постепенно переходит

со стен и потолка на лица пользователей ПЭВМ путем разгона статическими

полями. Помещение должно быть оборудовано кондиционером и

пылеуловителем, при возможности - "Люстрой Чижевского". Эти устройства

Лист

43ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 44: Диплом МЭТТ

снижают количество пыли в помещении, а "Люстра Чижевского" подавляет

статические поля. Также рекомендуется после занятий на компьютере умыться

холодной водой.

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

радиацией, но, они очень быстро уменьшаются с расстоянием, элементарно

экранируются и управляются. Основной их источник - отклоняющая

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

отводится вверх и частично назад. Вперед не излучается практически ничего.

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

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

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

Низкочастотные электромагнитные поля. Низкочастотные

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

уровень от компьютера сравнительно низкий. Однако по последним данным

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

электромагнитных полей может вызывать интерференцию, из-за которой

изображение на экране начинает мерцать, вызывая ухудшение зрения и

головную боль. Способом борьбы с этим явлением может быть проведение

перерывов в работе пользователей ЭВМ и выполнения ними упражнений, как

было сказано ранее.

Следует отметить, что дисплеи на жидких кристаллах (LCD) лишены

большинства этих недостатков - напряжение на них значительно ниже, а

электромагнитного излучения почти нет. Поэтому в тех случаях, когда на

предприятии предполагается проведение продолжительной работы с

использование ЭВМ, рекомендуется использовать мониторы данного класса.

Предложенные в данном разделе мероприятия, позволяют существенно

снизить вредные факторы при работе пользователей с ПЭВМ, а именно –

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

утомляемость персонала, работающего на компьютерах, положительно

скажется на состоянии здоровья пользователей ПЭВМ, и, как следствие,

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

Лист

44ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 45: Диплом МЭТТ

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

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

аварийных ситуаций на производстве, связанных с так называемым

«человеческим фактором», и помогут сэкономить материальные средства

предприятия, выделяющиеся на устранение аварий, происходящих из-за

ошибочных действий пользователей ПЭВМ.2.4. Описание процесса отладки

программы

2.4.Описание процесса отладки программы

2.4.1. Методы отладки

В процессе создания новой программы программисту приходится

сталкиваться с несколькими видами ошибок.

Во-первых, это синтаксические ошибки, связанные с неправильным

употреблением различных элементов и конструкций языка. Причиной

возникновения таких ошибок обычно являются недостаточно хорошее знание

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

ошибки определяются уже на этапе компиляции и серьезной опасности не

представляют (если не считать потерянного на их исправление времени).

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

неприятностей. Это ошибки при выполнении программы. Ну и, наконец,

наиболее тяжелые ошибки бывают связаны с неправильным выбором модели,

алгоритма решения задачи или с неправильной постановкой задачи.

Процесс поиска и исправления ошибок в программе, когда факт их

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

называется отладкой.

Отладка производится в два этапа:

1) Определение природы и местонахождения возможной ошибки в

программе;

2) Исправление найденной ошибки. Схема выполнения программы-

отладчика обычно следующая:

— запуск в режиме отладки всех виртуальных машин, предназначенных для

Лист

45ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 46: Диплом МЭТТ

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

параллельной программы;

— управление выполнением параллельной программы с помощью обработки

сообщений, поступающих от машин, на которых выполняется параллельная

программа.

2.4.1.1.Расстановка отладочной печати по всей программе Для удобства работы отладочные операторы должны быть оформлены

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

процедурах и функциях, операторы вставляются в начале входа в процедуру и

функцию, и перед выходом. При этом должны выводиться входные и выходные

данные. При проверке работы оператора цикла следует выводить только

начальное и конечное значение тела цикла.

2.4.1.2.Отладка с использованием встроенных средств языка

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

прерывания или пошаговому исполнению программы.

2.4.1.3.Методы индукцииСчитается, что большинство ошибок может быть обнаружено по

средствам тщательного анализа, даже при наличии исходного текста

программы без использования компьютера.

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

Процесс выполнения программы с целью обнаружения ошибок

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

Тестирование осуществляется по средствам выполнения текстовых

примеров. В систему поступают входные данные, называемые текстами, а

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

входных данных в программу вводятся критические точки, это максимально и

Лист

46ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 47: Диплом МЭТТ

минимально возможные значения различных параметров.

Процесс тестирования включает в себя:

— тестирование отдельных модулей;

— тестирование связей между модулями;

— тестирование системы в целом.

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

— тестирование в нормальных условиях предполагает, что в программу

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

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

— тестирование в экстремальных условиях предполагает проверку граничных

ситуаций: для цифровых данных (min и max), для символьных (строк)

проверка работы с пустой строкой и строкой max длины; — тестирование в

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

вводе неправильных данных. Также проводят тестирование по методу

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

Сначала используют трансляцию – специальную программу, которая

переводит данную программу из текстового вида в промежуточный машинный

код. Затем проводится компоновка - на этом этапе происходит сбор всех

необходимых программ, единый загрузочный модуль.

И в конечном итоге выполнение - если в результате выполнения

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

обнаружены ошибки, то весь процесс разработки повторяется с этапа

редактирования.

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

ошибки (если они существуют), затем осуществляем системные испытания

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

отдельными модулями программного обеспечения.

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

которые ранее решались пользователем и у нас имеется опыт их реализации.

Существуют следующие методики тестирования:

— тестирование методом «Черного ящика»;

Лист

47ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 48: Диплом МЭТТ

— тестирование методом «Белого ящика»;

— тестирование эргономичности;

— тестирование нарастающей интеграции.

2.4.2.1.Тестирование методом "Черного ящика"Тестирование методом "Черного ящика" предполагает обработку системы

как "непрозрачного объекта", таким образом, знание внутренней структуры в

явном виде не используется. Тестирование этим методом обычно подразумевает

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

"Черного ящика" являются: поведенческое тестирование, функциональное

тестирование, метод непрозрачного ящика, метод закрытого ящика. При

тестировании программного обеспечения методом "Черного

ящика"тестировщик знает только набор вводимых параметров и ожидаемые на

выходе результаты, каким образом программа достигает этих результатов ему

неизвестно. Тестировщик никогда не проверяет программный код и не

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

описании.

2.4.2.2.Тестирование методом "Белого ящика"Тестирование методом "белого ящика" предполагает обработку системы

как "прозрачного объекта" и позволяет заглянуть внутрь, фокусируя внимание

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

правильного подбора тестовых данных. Синонимами понятия метода "Белого

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

стеклянного ящика.

В отличие от метода "Черного ящика" данный метод основан на

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

контроля корректности данных на выходе. Тест является правильным только в

том случае, когда тестировщик знает, что конкретно должна делать программа.

Таким образом, тестировщик может контролировать ожидаемый результат.

Тестирование методом "Белого ящика" не обрабатывает случайные ошибки, но

Лист

48ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 49: Диплом МЭТТ

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

2.4.2.3.Тестирование эргономичностиТестирование эргономичности является частью процесса создания

необходимых условий для "удобства пользователя". Этот тип тестирования

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

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

пользователи выполняют с прототипом (или другой системой) ряд операций, в

то время как наблюдатели документируют все, что они делают и говорят. Такое

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

пользователями работающими вместе. Тестирование может включать сбор

информации о последовательности действий, совершаемых пользователем в

процессе выполнения задачи; ошибок, которые они делают; когда и чем они

недовольны; насколько быстро они выполняют операции; преуспевают ли они в

выполнении этих операций, а так же насколько они удовлетворены.

Цель большинства тестов на эргономичность состоит в том, чтобы

обнаружить любые проблемы, с которыми может столкнуться пользователь и

устранить их.

2.4.2.4.Тестирование нарастающей интеграцииЭто непрерывное испытание "применимости" новых функциональных

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

компоненты функционала были достаточно независимы и работоспособны до

того как все необходимые части будут готовы к интеграции в систему;

осуществляется программистами или тестировщиками.

2.4.3.Контрольный пример

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

сообщения. В качестве примера сервер будет запущен на этом же компьютере.

Лист

49ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 50: Диплом МЭТТ

Для того чтобы программа обращалась к удаленным компьютера

необходимо ввести IP адреса удаленных машин в файл adresa.txt (см. рисунок

2.1).

Запускаем программу Admin2. Программа выводит в браузере html

страницу c IP адресами компьютеров заданных на рисунке выше и список

действий над удаленными компьютерами (см. рисунок 2.2).

Лист

50ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Рисунок 2.1: Ввод IP адресов

Рисунок 2.2: Список действий

Page 51: Диплом МЭТТ

При нажатии на любую ссылку выведет окно «Предупреждение системы

безопасности» (см. рисунок 2.3).В этом окне можно посмотреть сведения о

сертификате (см. рисунок 2.4).

Лист

51ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Рисунок 2.3: Предупреждение системы безопасности

Рисунок 2.4: Сведения о сертификате

Рисунок 2.5: Список процессов

Page 52: Диплом МЭТТ

При нажатии ссылки «Список процессов» (см. рисунок 2.5). Выводить ID

и названия процессов запущенных на удаленном компьютере.

При выборе ссылки «Установленные программы». Программа выводит на

экран список установленных программ на на удаленном компьютере (см.

рисунок 2.6).

При нажатии ссылки «Выключить»и выводится сообщение(см рисунок

2.7).А у удаленного компьютера появляется окно с надписью «Завершение

работы компьютера» (см. рисунок 2.8) и компьютер выключается.

Лист

52ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Рисунок 2.6: Список установленных программ

Рисунок 2.7: Сообщение о выключении компьютера

Page 53: Диплом МЭТТ

Тоже самое происходит при перезагрузке и завершения сеанса только за

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

При выборе ссылки «Выход». Сервер к которому была подключена

программа будет отключен. А администратор увидит сообщение «Сервер

отключен» (см. рисунок 2.9).

Лист

53ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Рисунок 2.8: Завершение работы компьютера

Рисунок 2.9: Выключение сервера

Page 54: Диплом МЭТТ

Для правильной работы программы Admin3 нужно указать список

разрешенных для установки программ. Они задаются в файле WhiteList.txt.(см.

рисунок 2.10).

Как только программа будет запущенна она выведет на экран html

страничку где будут указаны IP компьютеров и какие программы были

установлены без ведома администратора (см. рисунок 2.11). Если таких Лист

54ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Рисунок 2.10: Белый список

Рисунок 2.11: Программы которые не должны находится на компьютере

Page 55: Диплом МЭТТ

программ не найдено или же компьютер не найден он выведет такую же

страницу но с некоторыми изменениями (см. рисунок 2.12).

Рисунок 2.12: Сообщение если компьютер не найдет.

Лист

55ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 56: Диплом МЭТТ

3.ЭКОНОМИЧЕСКАЯ ЧАСТЬ3.1.Расчет программного продукта

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

Таблица 3.1: Расчет материальных затрат

Показатели Цена, руб. Количество Сумма, руб.

Эл. энергия 1,28 500 кВт 640

Ruby 0 1 шт. 0

ОС Windows ХР Professional 5500 1 шт. 5500

Бумага 100 7 700

Ручки 5 20 100

Итого: 6940

3.1.2.Заработная плата

Таблица 3.2: Расчет заработной платы

Должность Часовая ставка, руб.

Количество часов

Сумма зарплаты, руб.

Руководитель проекта 400 84 38500

Программист 250 168 42000

Итого: 80500

3.1.3.Расчет часовой тарифной ставки

Месячный эффективный фонд рабочего времени

Количество дней разработки программы – 1 месяц

Календарное время – 31 день

Праздники – 0 дней

Отпуск – 0 дней

Выходные дни – 10 дней

Итого эффективный фонд

рабочего времени в месяц – 21 день Лист

56ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 57: Диплом МЭТТ

Рабочих часов в день – 8 часов

1 смена

Месячный эффективный фонд рабочего времени в часах

ТЭ = 21*8=168 час / месяц

ФОТМЕС = 80500 руб.

СтЧАС = ФОТМЕС / ТЭ = 80500/ 168 = 479 руб.

СтР.П =38500 /84 = 400 руб.

СтП. = 42000 / 168 = 250 руб.

3.1.4.Расчет стоимости основных фондов

Таблица 3.3: Расчет стоимости основных фондов

Основные фонды Первичная стоимость,руб.

Количество единиц

Nа– годовая, %

Сумма, руб

Аренда 240000 20000Компьютер 36000 2 25 1500Принтер 4000 1 25 83,3Сканер 5000 1 25 104,2Офисная мебель 20000 общ 25 416,7

Итого: 22104,2Арендуемая площадь– 40 м2

Стоимость за 1 м2 за год – 200 $

1 $ = 30 руб.

Стоимость аренды в год = 200 * 30 * 40 = 240000 руб.

Арендамес = 240000 / 12 =20000 руб / мес.

Расчет амортизации на программу

Аком = 36000*2*25 / 100*12= 1500 руб

Априн.= 4000*25 / 100*12 = 83,3 руб

Аскан = 5000*25 / 100*12 = 104,2 руб

Ао.м. = 20000*25 / 100*12 = 416,7 руб

Основной фонд

ОФ = 101000 руб.

Амортизация программы

Лист

57ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 58: Диплом МЭТТ

Апрог = 22104,2 руб. на месяц

3.1.5.Калькуляция расходов на разработку программного продукта

Таблица 3.4: Расчет расходов на разработку

Статья расходов Ед. измерения Количество Сумма, руб.

Материалы - - 6940

Зарплата руб - 80500

Отчисления в ЕСН (26%) руб 26% 20930

Итого переменные расходы 108370

Аренда здания м2 40 20000Амортизация оборудования - - 2104,2

Налог на имущество (2,2%) руб 2,2% 168,4

Освещение кВт 80 102,4

Отопление м2 40 132

Итого постоянные расходы 22507

Всего полная себестоимость 130877

Отчисления в ЕСН = 80500*0,26 = 20930 руб.

Переменные расходы = 6940+80500+20930 = 108370 руб.

Налог на имущество = ОФ*0,022 = 101000*0,022 / 12 = 185,2 руб.

Освещение = 1,28*80 = 102,40 руб.

Отопление = 3,3*40 = 132 руб.

Постоянные расходы = 20000+2104,2+168,4+102,4+132 = 22507 руб.

с/с =108370 + 22507 = 130877 руб.

3.2.Расчет затрат на тиражирование программного продукта

3.2.1.Расчет производственной мощности выпуска продукции на месяц

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

Количество дней разработки программы – 1 месяц

Лист

58ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 59: Диплом МЭТТ

Календарное время – 31 день

Праздники – 0 дней

Отпуск – 0 дней

Выходные дни – 10 дней

Итого эффективный фонд

рабочего времени в месяц – 21 день

Рабочих часов в день – 8 часов

Предприятие работает в 1 смену

tЭ = 21*1*8 = 168

Мощность=145 дисков в час на основании использования паспортных

данных оборудования

В день = 145*8 = 1160 дисков

ПМ = 145*168 =21*1160 = 24360 дисков в месяц

3.2.2.Расчет материальных затрат

Таблица 3.5: Расчет материальных затрат

Статьи затрат Ед. измерения

Оптовая цена, руб. Количество Сумма,

руб.Диски шт. 3 25000 75000Коробки шт. 2 25000 50000Эл.энергия кВт 0,7 3000 2100Картридж цветной шт. 2700 10 27000Картридж черно-белый шт. 2300 10 23000Итого: 177100

3.2.3.Расчет заработной платы специалистов и сотрудников

Таблица 3.6: Расчет заработной платы

Должность Количество человек Оклад в месяц, руб.

Начальник цеха 1 35000Дизайнер по графике 1 25000Оператор 1 15000Итого: 75000

Лист

59ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 60: Диплом МЭТТ

3.2.4.Расчет стоимости основных фондов

Таблица 3.7: Расчет стоимости основных фондов

Основные фонды Первичная стоимость, руб.

Количество единиц

Nа – годовая, %

Сумма, руб.

Аренда 2400000 200000

Дубликатор 65000 1 25 1354,2

Принтер 80000 1 25 1666,7

Компьютер 40000 2 25 1666,7

Мебель 90000 общ. 25 1875

Итого: 206562,6

Арендуемая площадь – 400 м2

Стоимость за 1 м2 за год – 200 $

1 $ = 30 руб.

Стоимость аренды в год = 400 * 200 * 30 = 2400000руб.

Арендамес = 2400000 / 12 = 200000руб / мес.

Расчет амортизации на программу

Адубл =65000*25 / 100/12 =1354,2 руб.

Априн. = 80000*25 / 100/12 = 1666,7 руб.

Аком = 40000*2*25 / 100/12 = 1666,7 руб.

Амеб. = 90000*25 / 100/12 = 1875 руб.

Основной фонд

ОФ = 315000 руб.

Амортизация программы

Апрог = 206562,6 руб на месяц

Лист

60ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 61: Диплом МЭТТ

3.2.5.Расчет сметы цеховых расчетов на месяц

Таблица 3.8: Расчет сметы цеховых расчетов на месяц

Статьи затрат Ед. измерения Сумма, руб

Аренда помещения руб. 200000

Эл.энергия кВт 2100

Горюче-смазочные материалы л. 4200

Командировочные расходы руб. -Отчисления на содержание аппарата управления руб. 150000

Налог на имущество (2,2%) руб. 577,5

Итого по смете: 356877,5

Расчеты к смете

Арендуемая площадь – 500 м2

Стоимость за 1 м2 за год – 200 $

1 $ = 30 руб.

Стоимость аренды в год = 400 * 200 * 30 = 2400000руб.

Арендамес = 2400000 / 12 = 200000 руб / мес.

Эл.энергия = 0,7*3000 = 2100 руб / мес.

Горюче смазочные=12*350 = 4200 л. / мес.

Налог на имущ. = 0,022*ОФ = 0,022*315000 / 12 =511 руб

3.2.6.Расчет себестоимости выпускаемой продукции

Таблица 3.9: Расчет себестоимости выпускаемой продукции

Статьи расходов Ед. измерения Сумма, руб. Удельный

вес, %Материалы - 177100 23,25Эл.энергия кВт 2100 0,3Фонд оплаты труда руб. 75000 9,85ЕСН (26%) руб. 19500 2,56Итого переменные затраты 273700

Лист

61ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 62: Диплом МЭТТ

Продолжение таблицы 3.9

Статьи расходов

Амортизация офиса

Ед. измерения

руб.

Сумма, руб.

6562,6

Удельный вес, %

0,86Аренда помещения руб. 200000 26,26Командировочные расходы руб. -Отчисления на содержания аппарата управления фирмой руб. 150000 19,69

Налог на имущество руб. 577,5 0,08Расходы на разработку программного продукта руб. 130877 17,18

Итого условно постоянные расходы 488017,1

Всего полная себестоимость 761717,1 100

Прибыль предприятия руб. 3817962,9Товарная продукция руб. 4579680НДС (18%) руб. 824342,4Свободная отпускная цена за весь выпуск 9221985,3

Удельный вес = с/сполная / 100 % = 761717,1/ 100 = 7617,17

У.в.матер = 177100 / 7617,17 = 23,25 …

П =ТП - с/с =4579680 - 761717,1 = 3817962,9

ТП = V*Ц =24360*188= 4579680

НДС = ТП* 0,18 =4579680 * 0,18 = 824342,4

Отп.цена = ТП + НДС = 4579680+824342,4 = 5404022,4

Лист

62ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 63: Диплом МЭТТ

3.2.7.Диаграмма удельного веса затрат на производство (тиражирование)

программного продукта

Рисунок 3.1: Диаграмма удельного веса затрат на производство(тиражирование) программного продукта

3.2.8.Сводная таблица технико-экономических показателей

Таблица 3.10: Технико-экономические показатели

Наименование показателей Ед. измерения Величина показателя

Объем производства шт. 24360

Товарная продукция без НДС руб. 4579680

НДС 18% руб. 824342,4

Товарная продукция с НДС руб. 5404022,4

23,25

0,3

9,85

2,56

0,8626,26

19,69

0,08

17,18

МатериалыЭл.энергияФонд оплаты трудаЕСН (26%)Амортизация офисаАренда помещенияОтчисления на содержания аппарата управления фирмойНалог на имуществоРасходы на разработку программного продукта

Лист

63ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 64: Диплом МЭТТ

Наименование показателей

Месячный фонд оплаты труда

Ед. измерения

руб.

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

75000

Численность персонала чел. 3

Производительность труда шт./чел. 8120

Производительность труда руб./чел. 1801674,1

Среднемесячная заработная плата одного сотрудника руб. 25000

Полная себестоимость ТП руб. 761717,1

Затраты на 1 рубль товарной продукции коп. 17

Прибыль производства руб. 3808585,5

Рентабельность производства % 501

Критический объем производства шт. 2761

Критический объем товарной продукции руб. 519036,8

Отпускная цена предприятия руб./ед. 188

Свободная отпускная цена с НДС руб./ед. 222

Производительность труда = 24360 / 3 =8120 шт./чел.

Производительность труда = 5404022,4/ 3 =1801674,1 руб./чел.

Среднемесячная зарплата 1-ого сотрудника =75000 / 3 = 25000 руб./мес.

З = С/СПОЛ / ТП(без НДС) * 100 (коп) = 761717,1 / 4579680 * 100 =17 коп.

R = П / С/СПОЛ * 100 % = 3817962,9 / 761717,1 * 100 = 501 %

Отпускная цена предприятия =4579680 / 24360 = 188 руб. / ед.

Свободная отпускная цена с НДС = 5404022,4/ 24360 = 222 руб./ед.

Лист

64ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 65: Диплом МЭТТ

3.3.Вывод

1) Для нормального функционирования каждого предприятия необходимы

оборотные средства, представляющие собой денежные средства,

используемые предприятием для приобретения оборотных фондов и

фондов обращения.

2) Оборотные фонды, т.е. материальные ресурсы в отличие от основных

фондов используются в одном производственном цикле, и стоимость их

переносится на продукт сразу и полностью.

3) Рациональное и экономное использование оборотных фондов —

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

составляют 3/4 себестоимости промышленной продукции. Снижение

материалоемкости изделия (расход материальных ресурсов в натуральном

и стоимостном выражении на единицу продукции) достигается

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

техники, технологии, совершенствование организации производства и

труда.

4) Основная черта современного переходного периода — нехватка у

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

средств, которое измеряется коэффициентом оборачиваемости и

длительностью одного оборота в днях, достигается различными

мероприятиями на стадиях создания производственных запасов,

незавершенного производства и на стадии обращения.

Лист

65ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 66: Диплом МЭТТ

ЗАКЛЮЧЕНИЕВ результате дипломного проектирования были выполнены все

требования задания на дипломное проектирование. Более того, программа

удаленного контроля, разработанная в рамках данного дипломного проекта

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

предполагается, что в дальнейшем будут добавлены следующие модули:

1) Модуль удаленного управления компьютерами.

2) Модуль занесения программ в «серый список».

Возможно, что эти модули будут реализованы следующими поколениями

выпускников ФГОУ ДПО МЭТТ ГАИ.

Лист

66ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.

Page 67: Диплом МЭТТ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ1: Сообщество Wikipedia, Язык программирования Perl, 2007,

http://ru.wikipedia.org/wiki/Perl

2: Сообщество Wikipedia, Язык программирования Python, 2007,

http://ru.wikipedia.org/wiki/Python

3: Сообщество Wikipedia, Язык программирования Ruby, 2007,

http://ru.wikipedia.org/wiki/Ruby

4: Сообщество Wikipedia, Реестр Windows, 2007,

http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B5%D1%81%D1%82%D1%

80_Windows

Лист

67ДП.230105.П-404.16.06.07.ПЗ

Изм Лист № докум. ДатаПодп.