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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 13.06.2017
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

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

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

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

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

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

- обзор и анализ порядка автоматизации расчетов себестоимости и длительности ПО в РУП «Белоруснефть»

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

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

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

- создать программное средство по расчету себестоимости и длительности ПО;

- произвести экономическое обоснование проекта.

1. АНАЛИТИЧЕСКИЙ ОБЗОР СИСТЕМЫ РАСЧЕТА СЕБЕСТОИМОСТИ И ДЛИТЕЛЬНОСТИ РАЗРАБОТКИ ПО

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

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

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

Под разработкой программного обеспечения понимают:

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

б) создание СУБД -- многопользовательских баз: клиентов, товаров, услуг;

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

г) создание систем управления и контроля;

д) разработку аналитических, прогнозирующих программ;

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

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

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

а) операционная среда разработки;

б) наличие или отсутствие бизнес-процесса программы;

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

г) наличие систем автоматизации и контроля;

д) разработка специального (уникального) программного интерфейса;

е) наличие документации и других необходимых документов.

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

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

а) наличие технического задания и бизнес-процесса программного обеспечения;

б) описание ключевых принципов работы системы;

в) наличие требований к внешнему виду (дизайну) системы;

г) просчитать возможность расширения программного комплекса и желаемую реализацию программного продукта.

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

В расчетах сроков разработки участвуют такие факторы как:

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

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

в) Объем необходимой документации -- большое количество документации может отрицательно повлиять на проект.

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

д) Неустойчивость платформы -- если платформа нестабильна, разработка требует больше времени.

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

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

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

и) Использование программных инструментариев -- использование современного инструментария снижает объем работ.

Длительность разработки может применяться для оценки рисков срыва сроков проекта. Модель разработки позволяет автоматизировать оценку рисков на ранних стадиях проекта и уменьшить зависимость от человеческих экспертных знаний и опыта [1].

1.2 Обзор существующего программного обеспечения расчета себестоимости и длительности

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

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

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

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

Программой контроля и управления могут пользоваться:

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

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

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

в) Доступ к программе может осуществляться как локально, так и посредством соединения интернет.

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

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

е) В системе можно формировать любые отчеты и оценивать финансовую ситуацию в компании, определять самые рентабельные и

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

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

з) Может быть сформирована отчетность по средней цене заказа.

и) Если у компании имеется несколько филиалов, все они смогут беспрепятственно работать в единой базе, подключаясь к главному компьютеру, на котором установлена программа «Универсальная Система Учета».

к) При необходимости специалисты могут настроить интеграцию с веб-сайтом предприятия [2].

Окно калькуляции программы УСУ представлено на рисунке 1.1.

Рисунок 1.1 -- Окно калькуляции программы УСУ

Данная программа является хорошим решением для автоматизации расчета себестоимости продукции. Они позволяют пользователю упростить процесс расчета программного продукта. На данный момент данные программы не используются на предприятии в связи с трудоёмкостью внедрения и малым количеством заказов.

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

MS Excel -- программа для работы с электронными таблицами, которая предоставляет возможности экономико-статистических расчетов.

Для вычисления себестоимости программного продукта необходимо вручную занести все формулы на рабочий лист Еxcel один раз. Однако, для расчетов различных ПО необходимо искать справочную информацию в различных документах, что затрудняет процесс и увеличивает вероятность возникновения ошибок при переносе данных в поля таблиц Excel [3].

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

1.3 Обоснование выбора среды разработки, языка программирования и СУБД для реализации программного обеспечения

В качестве языка программирования для разработки автоматизации был выбран язык C#. Главной причиной к этому стало то, что разработка ПО -- это сфера, в которой C# последнее время является одним из популярных языков программирования.

«Visual Studio C#» -- представляет собой полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования:

а) инкапсуляцию;

б) наследование;

в) полиморфизм.

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

Основными достоинствами данного языка:

а) высокая скорость создания приложений с графическим интерфейсом для «MS Windows»;

б) простой синтаксис, который позволяет очень быстро освоить язык [4].

В качестве СУБД использовалась реляционная система баз данных Microsoft Acces.

Microsoft Access -- реляционная система управления базами данных (СУБД) корпорации Microsoft. Входит в состав пакета Microsoft Office. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных.

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

Приложение Access можно использовать для управления всеми данными в одном файле. В файле базы данных Access можно использовать:

а) таблицы для сохранения данных;

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

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

г) отчеты для анализа и печати данных в определенном формате.

Использование Access позволяет:

а) добавлять новую информацию в базу данных;

б) изменять информацию, уже находящуюся в базе;

в) удалять информацию;

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

д) обмениваться данными с другими людьми с помощью отчетов, сообщений электронной почты, внутренней сети или Интернета [5].

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

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

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

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

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

Вывод: Изучены основные понятия расчета себестоимости и длительности разработки ПО, обоснован выбор среды разработки «Visual Studio» и языка программирования C#, были изучены аналоги.

2. РАЗРАБОТКА АЛГОРИТМОВ И ТЕХНОЛОГИЙ РАСЧЕТА СЕБЕСТОИМОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

2.1 Функциональное моделирование

Модель IDEF0 -- это блок, который отображает некоторую бизнес-функцию. Четыре стороны блока имеют разную роль: левая сторона имеет значение «входа», правая - «выхода», верхняя - «управления», нижняя - «механизма».

IDEF0 модель «Автоматизированная система расчета себестоимости и длительности разработки ПО» представлена на рисунке 2.1.

Рисунок 2.1 -- IDEF0 модель «Автоматизация расчета себестоимости и длительности разработки ПО»

Входными параметрами данной модели являются справочники:

а) каталог функций;

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

в) категория новизны;

г) использования case технологий;

д) коэффициент сложности;

е) коэффициент использования стандартных модулей;

ж) коэффициент средств разработки ПО;

з) экономические показатели;

и) ставка 1-ого разряда.

Процесс разработки осуществляется на основе методик расчета программного обеспечения и постановлении Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91. Механизмом управления расчетами является программист. В результате произведенных расчетов выходными параметрами являются:

а) общая трудоемкость ПО;

б) себестоимость ПО;

в) отчет о расчетах себестоимости и длительности ПО;

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

а) расчет длительности;

б) расчет затрат на разработку ПО;

в) расчет себестоимости ПО.

В приложении А представлена диаграмма декомпозиции IDEF0.

Первоначально осуществляется расчет длительности разработки ПО на основании постановления Министерства труда и социальной защиты от 27.06.2007 №91. Расчет производится исходя из данных поступивших на расчет.

Затем производиться расчет затрат на разработку ПО на основании методики расчета себестоимости ПО для РУП «Белоруснефть». Расчет производиться исходя из данных полученных из справочника и трудоемкости полученной в результате расчета длительности. После чего данные о трудоемкости и затраты на разработку поступают на расчет себестоимости ПО.

На DFD диаграмме выделено 3 блока основных функций:

а) расчет длительности разработки ПО;

б) расчет себестоимости ПО;

в) Учет расчетов.

В блок «Расчет длительности разработки ПО» передаются следующие параметры:

а) данные о функциях ПО;

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

в) значения коэффициентов новизны;

г) значения использования case технологий;

д) значения коэффициентов сложности;

е) значения коэффициентов использования стандартных модулей;

ж) значения коэффициентов средств разработки ПО.

Выходным параметром является трудоемкость и общая трудоемкость ПО.

Входными параметрами для блока «Расчет себестоимости ПО» является трудоемкость, экономические показатели, ставка 1-ого разряда. В результате чего формируется себестоимость ПО. На выходе получается рассчитанная себестоимость ПО.

Блок «Учет расчетов» формируется исходя из трудоемкости и себестоимости ПО. В результате учета расчетов формируется отчет о расчетах себестоимости и длительности ПО.

DFD диаграмма «Автоматизация расчете себестоимости и длительности разработки ПО» представлена в приложении Б.

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

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

2.2 Алгоритм расчета себестоимости и длительности ПО

Расчет себестоимости и длительности разработки начинается с расчета трудоемкости ПО. Для этого необходимо определить функции, которые выполняет программа. Общий объем ПО определяется исходя из количества и объема функций, реализуемых программой, по каталогу функций ПО который содержится в «Постановлении Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91» [7].

Пример перечня и объема функций ПО представлена в таблице 2.1.

Таблица 2.1 -- Перечень и объем функций ПО

Код функции

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

Объем функции строк исходного кода(LOC)

по каталогу Vi

уточненный Vуi

1

2

3

4

101

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

150

15

107

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

320

32

109

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

2400

240

301

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

780

78

303

Обработка файлов

1100

110

305

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

2460

246

403

Формирование служебных таблиц

1070

107

506

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

1720

172

507

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

1820

182

707

Графический вывод результатов

590

59

Итого

12410

1241

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

(2.1)

где Vyi -- уточненный объем отдельной функции ПО в строках исходного.

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

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

Так же для расчета трудоемкости учитываются следующие коэффициенты:

а) коэффициент повышения сложности ПО (далее -- Кс);

б) коэффициент, учитывающий новизну ПО (далее -- Кн);

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

г) коэффициент, учитывающий средства разработки ПО (далее -- Кур);

Трудоемкость на стадиях:

д) техническое задание (далее -- ТЗ) определяется по формуле (2.2);

е) эскизный проект (далее -- ЭП) определяется по формуле (2.3);

ж) технический проект (далее -- ТП) определяется по формуле 2.4;

з) рабочий проект (далее -- РП) определяется по формуле 2.5;

и) ввод в действие (далее -- ВН) определяется по формуле 2.6.

Тутз = Тн * Kтз * Kс * Kн * Kур; (2.2)

Туэп = Тн * Kэп * Kс * Kн * Kур; (2.3)

Тутп = Тн * Kтп * Kс * Kн * Kур; (2.4)

Турп = Тн * Kрп * Kс * Kн * Kт * Kур; (2.5)

Тувн = Тн * Kвн * Kс * Kн * Kур, (2.6)

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

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

С учетом расчетов общей трудоемкости необходимо рассчитать затраты на разработку программного продукта.

В состав затрат на разработку программного продукта входят следующие статьи расходов:

к) затраты труда на создание программного продукта;

л) затраты на машинное время;

м) затраты на материалы;

н) затраты на энергию, на использование каналов связи.

Стоимость потребляемой энергии выражается в рублях. Её можно определить в соответствии с данными из таблицы 2.3 по формуле (2.7):

, (2.7)

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

Кс -- коэффициент, учитывающий потери в сети.

Сумма амортизационных отчислений рассчитывается по данным таблицы 2.3. По формуле (2.8) линейным способом, принятым на предприятии.

САОГ = БК*Нао/100+(Sрм*Сплаоп/100). (2.8)

где БК -- балансовая стоимость компьютера;

Нао -- норма амортизации для оборудования;

Sрм -- площадь на 1 рабочее место;

Спл -- стоимость 1м2 производственной площади;

Напл -- норма амортизации для зданий.

Сумма амортизационных отчислений за период разработки ПО рассчитывается по данным формулы вычислений САОГ по формуле (2.9):

САО = САОГ/FK*Общая трудоемкость, (2.9)

где САОГ -- сумма амортизационных отчислений;

FK -- полезный фонд времени работы компьютера за год.

Расчеты годовых отчислений в резервный денежный фонд производятся на основе балансовой стоимости оборудования по формуле (2.10):

Зрг = БК * РО / 100, (2.10)

где БК -- балансовая стоимость компьютера;

РО -- отчисления на текущий ремонт оборудования (в % от балансовой стоимости).

Тогда отчисления за период разработки вычисляются по формуле (2.11).

Зр = Зрг / 304 * Кфод, (2.11)

где Зрг -- расчеты годовых отчислений в резервный денежный фонд;

Кфод -- количество фактически отработанных дней.

Таким образом, затраты на машинное время при создании программного обеспечения рассчитываются по формуле (2.12).

ЗМВ =Сэл + Сао + Зр, (2.12)

где Сэл -- стоимость потребляемой электроэнергии;

Сао -- Сумма амортизационных отчислений за период разработки ПО;

Зр -- отчисления в фонд за период разработки.

Далее необходимо рассчитать расходы на оплату труда с отчислениями (далее -- ЗТР). ЗТР рассчитывается по формуле (2.13).

(2.13)

где ЗПОСН -- основная заработная плата разработчиков, руб.;

ЗПДОП -- дополнительная заработная плата разработчиков, руб.;

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

Расходы на оплату труда рассчитываются согласно единой тарифной сетке (ЕТС) согласно тарифному разряду разработчика по формуле (2.14) [8]:

(2.14)

где ТС1 -- тарифная ставка работника первого квалификационного разряда;

Kn -- тарифный коэффициент, соответствующий n-му квалификационному разряду ЕТС.

Оклад за месяц рассчитывается по формуле (2.15).

(2.15)

где Ст -- ставка n-ого разряда.

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

(2.16)

где Кфод -- количество фактически отработанных дней;

Окл -- оклад за месяц.

Дополнительная заработная плата разработчиков (далее -- ЗПДОП) включает выплаты, предусмотренные законодательством о труде и определяется по нормативу в процентах к основной заработной плате. Для расчета необходимо ввести размер повышения заработной платы в процентах. Дополнительная заработная плата рассчитывается по формуле (2.17).

(2.17)

где ЗПосн -- основная заработная плата;

разм% -- процент повышения заработной платы;

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

а) обязательные страховые взносы в бюджет фонда социальной защиты населения Республики Беларусь -- 34%;

б) обязательное страхование от несчастных случаев на производстве и профессиональных заболеваний - 1%.

Отчисления от заработной платы рассчитываются по формуле (2.18):

(2.18)

где ЗПОСН -- основная заработная плата;

ЗПдоп -- дополнительная заработная плата.

В результате расходы на оплату труда разработчика при создании программного продукта вычисляются по формуле (2.19):

(2.19)

где ЗПосн -- основная заработная плата;

ЗПдоп -- дополнительная заработная плата;

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

Статья затрат «Накладные расходы» водятся в размере процентов от основной заработной платы. И вычисляются по формуле (2.20).

Накладные расходы = ЗПосн * разм%, (2.20)

где ЗПосн -- основная заработная плата;

разм% -- рамер введенных процентов на накладные расходы.

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

С/С = Змв + Расходы на оплату труда + Накладные раходы, (2.21)

где Змв -- стоимость машинного времени.

2.3 Системные требования

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

Для некоторого ПО различают минимальные и рекомендуемые системные требования:

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

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

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

а) процессор с тактовой частотой 1ГГц или более;

б) ОЗУ объемом 1 или более ГБ;

в) не менее 100 мб на жестком диске;

г) операционная система Windows XP или более новая версия;

д) пакет .NET Framework 4.0 и выше;

е) монитор;

ж) клавиатура, мышь.

Выводы: в данном разделе были разработаны IDEF0 и DFD диаграммы, функциональная модель ПО, описан алгоритм расчета себестоимости и длительности разработки ПО.

3. ОПИСАНИЕ ТЕХНОЛОГИИ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ РАСЧЕТА СЕБЕСТОИМОСТИ И ДЛИТЕЛЬНОСТИ РАЗРАБОТКИ ПО

3.1 Состав и организация информационного обеспечения автоматизированной системы

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

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

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

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

Таблица «Значения коэффициентов с CASE» -- предназначена для хранения коэффициентов для различных категорий новизны для ПО разработанного с применением case-технологиями. Состав таблицы и описание полей представлены в таблице 3.1.

Таблица 3.1 -- Атрибуты таблицы «Значения коэффициентов с CASE»

Название поля

Тип поля

Описание

Код_значения_case

Счетчик

Номер коэфициента

Категория_новизны

Короткий текст

Категория новизны ПО

Ктз_Кэп_Ктп

Короткий текст

Сумма коэффициентов на стадии ТЗ, ЭП, ТП

Крп

Короткий текст

Коэффициент на стадии РП

Квн

Короткий текст

Коэффициент на стадии РП

Таблица «Значения коэффициентов без CASE» -- предназначена для хранения коэффициентов для различных категорий новизны для ПО разработанного без применения case-технологиями. Состав таблицы и описание полей представлены в таблице 3.2.

Таблица 3.2 -- Атрибуты таблицы

«Значения коэффициентов без CASE»

Название поля

Тип поля

Описание

Код_значения

Счетчик

Номер коэфициента

Категория_новизны

Короткий текст

Категория новизны ПО

Ктз

Короткий текст

Коэффициент на стадии ТЗ

Кэп

Короткий текст

Коэффициент на стадии ЭП

Ктп

Короткий текст

Коэффициент на стадии ТП

Крп

Короткий текст

Коэффициент на стадии РП

Квн

Короткий текст

Коэффициент на стадии ВН

Таблица «Каталог функций» -- предназначена для хранения функций и их объема для различных языков программирования. Состав таблицы и описание полей представлены в таблице 3.3.

Таблица 3.3 -- Атрибуты таблицы «Каталог функций»

Название поля

Тип поля

Описание

Код_функции

Счетчик

Номер функции

Наименование_функции

Длинный текст

Категория новизны ПО

Delphi

Числовой

Объем строк для языка программирования «Delphi»

Builder

Числовой

Объем строк для языка программирования «С++ Builder»

Visual_C

Числовой

Объем строк для языка программирования «Visual C++»

Java

Числовой

Объем строк для языка программирования «Java»

Таблица «Коэффициент использования стандартных модулей» --предназначена для хранения коэффициентов для степеней использования стандартных модулей. Состав таблицы и описание полей представлены в таблице 3.4.

Таблица 3.4 -- Атрибуты таблицы «Коэффициент использования стандартных модулей»

Название поля

Тип поля

Описание

Код_использования

Счетчик

Номер коэфициента

Степень_охвата_реализауемых_функций_ПО_стандартными_модулями

Короткий текст

Процентное соотношение охвата ПО стандартными модулями

Значение_Кт

Короткий текст

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

Таблица «Коэффициент новизны» -- предназначена для хранения коэффициентов новизны для различных категорий новизны ПО. Состав таблицы и описание полей представлены в таблице 3.5.

Таблица 3.5 -- Атрибуты таблицы «Коэффициент новизны»

Название поля

Тип поля

Описание

Код_новизны

Счетчик

Номер коэфициента

Категория_новизны

Короткий текст

Категория новизны ПО (А,Б,В)

Использование_на_ основании_нового типа_ПК

Короткий текст

Разрабатываемое ПО предназначено для нового типа ПК (+/-)

Использование_в_среде_новой_ОС

Короткий текст

Разрабатываемое ПО предназначено для среды новой ОС (+/-)

Значение_Кн

Короткий текст

Коэффициент новизны

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

Таблица 3.6 -- Атрибуты таблицы «Коэффициен сложности»

Название поля

Тип поля

Описание

1

2

3

Код_кфсложности

Счетчик

Номер коэффициента сложности

Характеристика_

повышения_сложности_ПО

Длинный текст

Характеристика на основе которой повышается коэффициент

Значение_Кс

Короткий текст

Значения коэффициентов сложности для той или иной характеристики

Таблица «Коэффициент средства разработки» -- предназначена для хранения коэффициентов средств разработки ПО для различных операционных систем и сред использования. Состав таблицы и описание полей представлены в таблице 3.7.

Таблица 3.7 -- Атрибуты таблицы «Коэффициент средства разработки»

Название поля

Тип поля

Описание

Код_средства

Счетчик

Номер коэффициента средств разработки

Средства_разработки_ПО

Длинный текст

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

Значения_Кур_IBMPC_Windows

Короткий текст

Значение коэффициентов для программ разрабатываемых на основе Windows и IBMPC

Значение_Кур_для_

локальных_сетей

Короткий текст

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

Значение_Кур_для_глобальных_сетей

Короткий текст

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

Таблица «Нормативная трудоемкость» -- предназначена для хранения объема ПО в строках и для каждой категории сложности в отдельности. Состав таблицы и описание полей представлены в таблице 3.8.

Таблица 3.8 -- Атрибуты таблицы «Нормативная трудоемкость»

Название поля

Тип поля

Описание

1

2

3

Код_трнормы

Счетчик

Номер трудовой нормы

Объем_ПО

Числовой

Содержит уточненное количество строк для расчета нормативной трудоемкости

Первая

Числовой

Нормативная трудоемкость для первой категории сложности

Вторая

Числовой

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

Третья

Числовой

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

Таблица «Показатели» -- предназначена для хранения основных экономических показателей в РУП «Белоруснефть». Состав таблицы и описание полей представлены в таблице 3.9.

Таблица 3.9 -- Атрибуты таблицы «Показатели»

Название поля

Тип поля

Описание

Код_показателя

Счетчик

Номер показателя

Показатель

Короткий текст

Название показателя

Значение

Короткий текст

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

Таблица «Ставка» -- предназначена для хранения тарифной ставки первого разряда программиста в РУП «Белоруснефть». Состав таблицы и описание полей представлены в таблице 3.10.

Таблица 3.10 -- Атрибуты таблицы «Ставка»

Название поля

Тип поля

Описание

1

2

3

Ставка1разряда

Короткий текст

Ставка 1-ого разряда программиста

Таблица «Расчеты» -- предназначена для хранения данных о рассчитанных программных продуктах в РУП «Белоруснефть». Состав таблицы и описание полей представлены в таблице 3.11.

Таблица 3.11 -- Атрибуты таблицы «Расчеты»

Название поля

Тип поля

Описание

Код_расчета

Счетчик

Номер расчета

Код_функции

Числовой

Номер функции

Код_значения_case

Числовой

Номер коэффициента

Код_значения

Числовой

Номер коэффициента

Код_использования

Числовой

Номер коэффициента

Код_новизны

Числовой

Категория новизны ПО (А,Б,В)

Код_кфсложности

Числовой

Номер коэффициента сложности

Код_средства

Числовой

Номер коэффициента средств разработки

Код_ставки

Числовой

Номер ставки

Код_показателя

Числовой

Номер показателя

Код_трнормы

Числовой

Номер трудовой нормы

Название

Длинный текст

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

Стоимость

Короткий текст

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

Длительность

Короткий текст

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

Автор

Длинный текст

Автор расчетов

Дата_расчета

Дата и время

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

3.2 Разработка графического интерфейса

Графический интерфейс пользователя -- разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений [9].

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

Графический интерфейс пользователя является частью пользовательского интерфейса и определяет взаимодействие с пользователем на уровне визуализированной информации.

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

простой;

истинно-графический, двухмерный;

трёхмерный.

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

Рисунок 3.2 -- Макет главного окна программы: 1-- вкладка расчета длительности; 2-- вкладка расчета себестоимости; 3 -- вкладка предыдущих расчетов; 4 -- поле выбора количества строк; 5 -- поле выбора категории сложности; 6 -- поле вывода уточненного объема строк; 7 -- поле вывода нормативной трудоемкости ПО; 8 -- поле ввода названия программы; 9 -- поле ввода руководителя проекта; 10 -- поле выбора категории новизны; 11 -- элемент расчета программы с применением case-технологий; 12 -- элемент расчета программы без применения case-технологий; 13 -- поле выбора коэффициента сложности; 14 -- поле выбора коэффициента использования стандартных модулей; 15 -- Поле выбора коэффициента средств разработки ПО; 16 --Кнопка расчета трудоемкости ПО.

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

Рисунок 3.3 -- Макет окна выбора языка программирования: 1 -- флаг выбора языка написания «Delphi»; 2 -- флаг выбора языка написания «С++ Builder»; 3 -- флаг выбора языка программирования «Visual C++»; 4 -- флаг выбора языка программирования «Java»; 5 -- кнопка для выбора языка программирования;

На рисунке 3.4 представлен графический макет окна выбора функций ПО и расчета количества строк.

Рисунок 3.4 -- Макет окна выбора функций ПО и расчета количества строк:

1 -- область выбора функций ПО; 2 -- кнопка переноса функций из одной области в другую; 3 -- кнопка удаления функций по из рабочей области; 4 -- кнопка расчета количества строк по выбранным функциям; 5 -- область отобранных функций ПО.

3.3 Описание используемых компонентов и иерархии классов

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

Список использованных компонентов управления и визуализации и их назначение приведён в таблице 3.12.

Таблица 3.12 -- Используемые компоненты и их назначение

Компонент

Назначение

Label

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

GroupBox

Отображает рамку вокруг группы элементов

TextBox

Ввод текста и выбор полей

Button

Выполнение заданного события при щелчке

DataGridView

Отображает данные в настраиваемой сетке.

TabControl

Управляет связанным набором страниц вкладок.

RadioButton

Выбор определённого параметра из группы

Chart

Служит для вывода графиков

Combobox

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

В классе «Form1» происходит выбор параметров для заполнения полей. Основные элементы класса описаны в таблице 3.13.

Таблица 3.13 -- Основные элементы класса «Form1»

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

Описание

private void textBox1_TextChanged(object sender, EventArgs e)

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

private void button4_Click(object sender, EventArgs e)

Расчет полей в зависимости от языка программирования

private void textBox5_Click

Выбор категории новизны

В классе «Form3» происходит выбор основных функций и подсчета количества строк ПО для заполнения полей. Основные элементы класса описаны в таблице 3.15.

Таблица 3.15 -- Основные элементы класса «Form3»

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

Описание

private void button1_Click(object sender, EventArgs e)

Передача параметров из одной области в другую

private void button2_Click(object sender, EventArgs e)

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

private void button3_Click(object sender, EventArgs e)

Подсчет суммы строк

public string Summ()

Передача суммы на «Form1»

В классе «Form5» происходит выбор категории новизны ПО. Основные элементы класса описаны в таблице 3.17.

Таблица 3.17 -- Основные элементы класса «Form5»

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

Описание

private void button1_Click(object sender, EventArgs e)

Выбор категории новизны

public string zn()

Передача значения коэффициента категории новизны на «Form1»

В классе «Form6» происходит выбор коэффициентов повышения сложности ПО. Путем выбора функции и переноса ее в другую область Основные элементы класса описаны в таблице 3.18.

Таблица 3.18 -- Основные элементы класса «Form6»

Наименование метода

Описание

private void button1_Click(object sender, EventArgs e)

Передача параметров из одной области в другую

private void button2_Click(object sender, EventArgs e)

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

private void button3_Click(object sender, EventArgs e)

Подсчет суммы коэффициентов

3.4 Описание работы с программой «Автоматизированный расчет себестоимости и длительности разработки ПО»

Разработанное приложение позволяет рассчитывать себестоимость и длительность разработки ПО в РУП «Белоруснефть» в случае возникновения вопроса приобретения или собственной разработки программного продукта.

Для начала работы с программой необходимо запустить ярлык «Расчет себестоимости.exe». После чего откроется главное окно программы, представленное на рисунке 3.5.

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

В главном окне, имеется три вкладки:

а) расчет длительности;

б) расчет себестоимости;

в) предыдущие расчеты.

На вкладке «Расчет длительности» необходимо выбрать значения и коэффициенты для разрабатываемого ПО.

При нажатии на поле «Количество строк» откроется окно, представленное на рисунке 3.6, где предстоит выбрать один и четырех предложенных языков программирования и нажать на кнопку «Выбрать».

Рисунок 3.6 -- окно выбора языка программирования

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

Рисунок 3.7 -- Окно выбора функций

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

Поля «Уточненный объем» и «Нормативная трудоемкость» заполняются автоматически исходя из данных полей «Количество строк» и «Категория сложности».

После расчета нормативной трудоемкости необходимо ввести ФИО руководителя проекта и название проекта в полях «Руководитель проекта» и «Название проекта».

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

В поле «Категория новизны» отобразиться категория новизны ПО (А, Б, В). Окно выбора категории новизны представлено на рисунке 3.9.

Рисунок 3.8 -- Окно выбора категории сложности

Рисунок 3.9 -- Окно выбора категории новизны

Так же при расчете пользователю потребуется выбрать применения case-средств в разрабатываемом ПО.

Нажав на поле «Коэффициент сложности» откроется окно, в котором необходимо выбрать характеристику повышения сложности нажав на нее 1 раз. Окно «Коэффициент повышения сложности» представлено на рисунке 3.10. С полем «Стандартные модули» необходимо проделать те же действия.

Рисунок 3.10 -- Окно выбора коэффициента повышения сложности

себестоимость автоматизация программное обеспечение

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

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

Рисунок 3.11 -- Окно выбора средств разработки ПО

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

Рисунок 3.12 -- Расчет длительности разработки ПО.

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

В первой таблице будут отображены основные экономические показатели РУП «Белоруснефть», а также рассчитана площадь на одно рабочее место и стоимость 1-го метра производственной площади.

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

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

Рисунок 3.13 -- Вкладка «Расчет себестоимости»

На вкладке «Предыдущие расчеты» находится таблица с данными о предыдущих расчетах себестоимости и длительности разработки ПО. Пользователь при необходимости может найти нужную программу. Вкладка предыдущие расчеты представлена на рисунке 3.14.

Рисунок 3.14 -- Предыдущие расчеты

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

4. ТЕСТИРОВАНИЕ И ВЕРИФИКАЦИЯ РАЗРАБОТАННОГО ПРОГРАММНОГО СРЕДСТВА

Для проверки правильности выполнения расчетов себестоимости и длительности разработки ПО следует нажать на поле «Количество строк», после чего выбрать язык программирования. Откроется окно с функциями и объемом строк (рисунок 4.1).

Рисунок 4.1 -- Выбор функций разрабатываемого ПО

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

Рисунок 4.2 -- Проверка передачи параметров между окнами

В зависимости от выбранной категории сложности и уточненного объема строк, рассчитывается нормативная трудоемкость разрабатываемой программы согласно постановлению Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91.

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

Рисунок 4.3 -- Методика расчета нормативной трудоемкости

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

На рисунке 4.4 видно, что значения программы считают данные в соответствии с Постановлению Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91.

Рисунок 4.4 -- Проверка выбранной категории новизны

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

Рисунок 4.5 -- Проверка целостности данных

Для расчета общей трудоемкости и трудоемкости по стадиям необходимо знать коэффициенты удельных весов программы. Для их вычисления необходимо выбрать разработку с применением case-технологий или без применения case-технологий. Как видно на рисунке 4.6 коэффициенты удельных весов берутся в соответствии с Постановлением Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91.

Рисунок 4.6 -- Проверка коэффициентов удельных весов

При вычислении коэффициента, учитывающего стандартные модули необходимо определить степень их использования в программе. Из рисунка 4.7 видно, что данный коэффициент согласно Постановления Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 №91 соответствует значению, выбранному в программе.

Рисунок 4.7 -- Проверка коэффициентов использования стандартных модулей

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

Рисунок 4.8 -- Проверка коэффициента средств разработки

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

В случае, когда общая трудоемкость не рассчитана, на вкладке «Расчет себестоимости» появляется сообщение о необходимости расчета первой вкладки. На рисунке 4.9 Представлена проверка расчета себестоимости без расчета трудоемкости.

Рисунок 4.9 -- Проверка расчета себестоимости без учета трудоемкости

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

5. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА

5.1 Расчет общей трудоемкости разработки программного обеспечения

В соответствии с Постановлением Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 № 91 «Об утверждении укрупненных норм затрат труда на разработку программного обеспечения» основой для определения общей трудоемкости разработки ПО, объемов финансирования на стадии его технико-экономического обоснования используются укрупненные нормы затрат труда. На основе общей трудоемкости разработки ПО составляется смета затрат и трудоемкость выполняемых работ по этапам разработки ПО.

Единицей измерения объема ПО является строка исходного кода программы. Общий объем ПО (V0) определяется исходя из количества и объема функций, реализуемых программой, по каталогу функций ПО [приложение Ж, таблица Ж.1], и рассчитывается по формуле:

, (5.1)

где Vi -- объем отдельной функции программы;

n -- общее число функций.

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.