Характеристика программного продукта

Введение

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Характеристика программного  продукта

 

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

  • размер таблицы (количество строк/поставщиков и столбцов/потребителей);
  • таблица данных транспортной задачи;

Выходные данные:

  • модель задачи;
  • начальный опорный план (метод северо-западного угла);
  • решение транспортной задачи по шагам;

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

 

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

 

Основные функции, выполняемые этой программой:

  • 5 примеров исходных данных для задачи;
  • ввод исходных данных;
  • определение модели задачи;
  • определение начального опорного плана методом северо-западного угла;
  • вывод результата работы программы по шагам.

Выделяют следующие  стадии разработки программного продукта: техническое задание (ТЗ), эскизный проект (ЭП), технический проект (ТП), рабочий проект (РП), внедрение (ВН).

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

 

 

Таблица 1 – Перечень этапов и работ, выполняемых  при разработке программного продукта

Этап

Типовые работы этапа

1

2

Техническое задание (ТЗ)

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

1.2 Сбор исходных материалов

1.3 Выбор и обоснование критериев эффективности и качества разрабатываемой программы

1.4 Обоснование необходимости  проведения разработки

1.5 Предварительный выбор  методов решения задач

1.6 Определение требований  к техническим средствам

1.7 Определение этапов, работ  сроков разработки программного  продукта и документации на  него

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

1.9 Согласование и утверждение  ТЗ

Эскизный проект (ЭП)

2.1 Внешнее проектирование  программного продукта

2.2 Уточнение методов решения  задачи

2.3 Предварительное проектирование  внутренних структур данных

2.4 Разработка общего алгоритма  решения задачи

2.5 Разработка укрупненной  структурной схемы программы

2.6 Определение структуры  входных и выходных данных

Технический проект (ТП)

Подэтап «Проектирование архитектуры программного продукта»

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

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

3.3 Проектирование структур данных: определение способов представления, хранения и преобразования входных, выходных и внутренних данных

Подэтап «Проектирование модульной структуры»

3.4 Разбиение компонент программного продукта на модули (процедуры)

3.5 Определение их функций и способов взаимодействия

 

Продолжение таблицы 1.

1

2

 

Подэтап «Проектирование  модулей»

3.6 Описание модулей программного продукта (имя модуля, функции, входные и выходные параметры, их форматы и др.)

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

Рабочий проект (РП)

4.1 Кодирование, тестирование  и отладка программы

4.2 Разработка программных  документов 

4.3 Проведение приемо-сдаточных  испытаний

4.4 Корректировка программного  продукта и документации по  результатам испытаний

Внедрение (ВН)

5.1 Подготовка и передача  программного продукта и документации  для сопровождения, изготовления

5.2 Опытная эксплуатация, устранение ошибок, корректировка  документации

 

 

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

 

Номинальная трудоемкость разработки определяется по формуле 1:

,             (1)

где – действительный месячный фонд времени одного исполнителя, ч;

 – директивный срок  выполнения темы, примем равный  4 мес.;

 – количество исполнителей, закрепленных за темой, установим значение, равное 2 человек.

,              (2)

где – номинальный годовой фонд времени одного работника, ч;

b –  процент целодневных и внутрисменных  потерь рабочего времени примем равным 10 %.

В 2010 году номинальный годовой фонд времени одного работника составляет

.

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

 

рассчитаем  трудоемкость всей работы за назначенный  директивный срок:

 

Таким образом,

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

Номинальную трудоемкость необходимо распределить по этапам разработки

         (3)

где – трудоемкость каждого этапа разработки программного изделия, чел.-ч;

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

Определим удельные веса для каждой разработки, воспользовавшись вариантом № 1 из приложения Г методического указания. Рассчитаем по формуле (3) трудоёмкость этапов:

(чел-ч);

(чел-ч);

  (чел-ч);

(чел-ч);

(чел-ч);

Полученные расчеты представим в виде таблицы 2.

 

Таблица 2 – Расчет номинальной трудоемкости по этапам

Этап НИР

Удельный вес, %

Номинальная трудоёмкость этапа, чел.-ч

ТЗ

11

132,26

Эскизный проект

9

108,22

Технический проект

11

132,26

Рабочий проект

55

661,32

Внедрение

14

168,34

 

Чтобы перейти  к уточненной трудоемкости этапов разработки , необходимо

             (4)

Уточненная  трудоемкость этапа рабочего проектирования определяется

                                                      (5)

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

 – интегральный коэффициент влияния факторов уровня программной разработки на ее трудоемкость. Интегральный коэффициент рассчитывается по формуле:

(6)

где – коэффициент влияния каждого фактора; n – перечень факторов.

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

 

Таблица 3 – Коэффициенты, определяющие уровень программной разработки и корректирующие коэффициенты трудоемкости разработки

Группа факторов

Содержание факторов

Коэффициент влияния фактора  на трудоемкость разработки

1. Факторы, определяемые требованиями к программному изделию

1.1 Требуемая надежность

1,0

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

1,2

1.3 Объем данных

1,2

1.4 Рациональность (быстродействие)

1,0

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

2.1 Объем оперативной памяти

1,0

2.2 Тактовая частота процессора

1,2

3. Факторы, определяемые  исполнителями разработки

3.1 Квалификация аналитика

1,3

3.2 Опыт работы аналитика  в данной области

1,2

3.3 Квалификация программиста

1,1

3.4 Опыт работы программиста  в данной области

1,0

3.5 Опыт работы программиста  с языком программирования

1,1

 

 

Расчёт уточненной трудоёмкости приведён в таблице  4.

 

Таблица 4 – Расчет уточненной трудоемкости по этапам

Этап НИР

Уточнённая трудоёмкость, чел.-ч

ТЗ

121,68

Эскизный проект

99,56

Технический проект

121,68

Рабочий проект

608,41

Внедрение

154,87

Итого

1106,2

 

;

;

;

;

.

Из таблицы  видно, что трудоемкость разработки программного продукта составляет 1106,2 чел.-ч, при этом трудоемкость этапа рабочего проекта составляет более чем половину от общей трудоемкости разработки. Следует отметить, что уточнение трудоемкости привело к уменьшению приблизительно на 8%.

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

 

Таблица 5 – Состав исполнителей темы

Наименование должности

Количество, чел.

Ст. научный сотрудник

1

Инженер

1

 

 

3 Разработка  календарного план-графика выполнения  темы

 

Сетевое планирование и управление (СПУ) является одним  из наиболее эффективных методов  планирования и управления, основанных на использовании теории графов. Основным документом системы является сетевой  график.

Сетевой график – графическое изображение состава работ и промежуточных результатов проекта.

Организация проведения ОКР связана с выбором необходимого перечня её работ.

Календарный план выполнения работ составим с применением  сетевого метода планирования и управления. Разработке предшествует составление исходных данных – таблица 6.

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

         ,                 (7)

где Т  – трудоемкость выполнения работы, чел.-ч;

 – продолжительность рабочего  дня (полезное время, потери  рабочего времени составляют 10%), ч; 

 – количество исполнителей  работы, чел.;

 – коэффициент выполнения  работниками плановых заданий  (при отсутствии информации 1,0);

 – коэффициент перевода рабочих дней в календарные.

.

Для примера  рассчитаем продолжительность двух работ:

 

 

 

Таблица 6 – Расчет исходных данных для построения сетевого план-графика

Наименование работы

Код работы

Трудоем-кость работы, чел.-ч

Количество исполнителей чел.

Продолжи- тельность работы, календ. дн.

1

2

3

4

5

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

1-2

12

2

0,88

1.2 Сбор исходных материалов

2-3

42

2

3,09

1.3 Обоснование необходимости  проведения разработки

2-4

11

1

1,62

1.4 Предварительный выбор  методов решения задач

3-5

18

1

2,65

1.5 Определение требований  к техническим средствам

4-6

23

2

1,69

1.6 Определение этапов, работ  и сроков разработки программного  продукта и документации на  него

5-6

19

2

1,4

1.7 Согласование и утверждение  ТЗ

6-7

7

2

0,51

2.1 Внешнее проектирование  программного продукта

7-8

7

1

1,03

2.2 Уточнение методов решения  задачи

8-9

9

2

0,66

2.3 Предварительное проектирование  внутренних структур данных

8-10

17

1

2,5

2.4 Разработка общего алгоритма  решения задачи

9-11

23

2

1,69

 

 

Продолжение таблицы 6.

1

2

3

4

5

2.5 Разработка укрупненной  структурной схемы программы

10-11

27

2

1,98

2.6 Определение структуры  входных и выходных данных

11-12

25

1

3,67

Подэтап “Проектирование  архитектуры программного продукта”

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

12-13

17

2

1,25

3.2 Проектирование структур  данных: определение способов представления,  хранения и преобразования входных,  выходных и внутренних данных

12-14

25

2

1,84

Подэтап “Проектирование  модульной структуры”

3.3 Разбиение компонент  программного продукта на модули (процедуры)

13-15

19

1

2,79

3.4 Определение их функций  и способов взаимодействия

14-16

26

1

3,82

Подэтап “Проектирование  модулей”

3.5 Описание модулей программного  продукта (имя модуля, функции, входные  и выходные параметры, их форматы  и др.)

15-17

21

1

3,09

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

16-17

24

1

3,53

4.1 Кодирование, тестирование  и отладка программы

17-18

264

1

38,81

4.2 Разработка программных  документов 

18-19

183

2

13,45

4.3 Проведение приемо-сдаточных  испытаний

19-20

127

2

9,33