Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО учебное пособие.doc
Скачиваний:
24
Добавлен:
22.08.2019
Размер:
3.13 Mб
Скачать

3.1.1 Выполнение проекта

Программное обеспечение обычно разбивают на три категории:

  • управляющие программы (например, операционные системы — ОС);

  • системные программы (например, компиляторы);

  • прикладные программы (обработка данных, счетная программа и др.).

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

Естественно, что к этим цифрам нужно относиться очень осторожно, т.к. неясно, что понимать под строкой кода. Включаются ли сюда комментарии и объявления данных? Или это генерируемая транслятором машинная команда? Как учесть программы, хранящиеся в библиотеке? Следует ли исходить из строк или операторов начального текста? В зависимости от ответов на эти вопросы количество строк кода может меняться в 2–4 раза.

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

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

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

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

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

3.1.2 Методика оценки затрат

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

3.1.2.1 Методика инженерно-технической оценки затрат

Базовая методика оценки затрат заключается в следующем:

Шаг 1. Формируются общие требования к системе исходя из существующего технического задания. Потенциальных разработчиков информируют о том, что ожидают от системы. Этот документ именуют «списком пожеланий». Для более точного определения требуемых ресурсов проводится анализ требований.

Шаг 2. Собирается аналогичная информация, например данные о подобных системах.

Шаг 3. Отбираются основные релевантные данные.

Шаг 4. Проводится предварительная оценка.

Шаг 5. Проводится окончательная оценка системы.

Основной этап этой работы — шаг 4. При его выполнении проводятся следующие действия.

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

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

Шаг . Планирование работ и оценка затрат на каждый месяц.

Шаг . Разработка соглашений, которые могут быть использованы при работе.

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

Метод экспертных оценок. Оценка производится исходя из личного опыта квалифицированного проектировщика (эксперта). Для многих приложений проектировщики могут прогнозировать сложность системы и оценку ресурсных затрат, даже если алгоритмы еще в явном виде не определены. Подобная оценка основывается на опыте работы проектировщика над схожей системой. Однако при этом очень велико влияние субъективных факторов, так что метод в целом не лучше, чем искусство отдельного проектировщика. Тем не менее при отсутствии строгой теории и недостатке эмпирических знаний этот метод принимается за основу стратегии оценки затрат.

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

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

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

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

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

В общем случае точную оценку затрат можно дать лишь на основе опыта.