Методы и средства инженерии программного обеспечения

Оценивание проекта


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

К  дополнительным расходам относятся  системы тестирования, кодирования или другие CASE системы. Центральной оценкой в проекте является  оценка затрат  на ведение проекта, выражаемая, например,  в  человеко-днях исполнителей работ в проекте. Эти оценки проводятся на ранней стадии ведения проекта  и составления  плана. Специалисты с опытом могут первоначально оценить стоимость проекта с погрешностью меньше 10%.

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

Когда такой возможности нет, эксперты проводят  пессимистическую (x), оптимистическую,        и реальную. Разные методы приближенного  оценивания  по отношению  к реалистическим рассмотрены в [3]. Эксперт проводит опрос всех членов рабочей группы, и в дальнейшем проводит коррекцию каждой оценки, выводя на их основе наиболее правдоподобную.

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

 

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

Например, стоимость проекта определяется по формуле: E =   (a+bSc) m (X), где S - оценка размера системы, а, в, с – эмпирические константы, Х – вектор факторов стоимости размерностью n, m – регулирующий множитель, основанный на  затратных факторах. В [3] предлагается модель в виде  соотношения, полученного экспериментальным путем: E = 5.25S0.91.

Эта модель  применялась при  оценке проекта, в котором  программные системы  имели размер от 4000 до 467000 строк кода, написанных на 28 различных языках программирования высокого уровня для 66 компьютеров и на которые затрачено от 12 до 11758 человека-месяцев.

В [4] предлагается техника моделирования, использующихся в уравнении затрат  организации-разработчика:

E = 5.5+0.73S1.16.



В большинстве моделей оценка зависит от размера системы в строках кода. Модель  COCOMO Боєма [ ] собрала в себе три техники измерений  по  проекту. В первых  моделях применялись   показатели цены, учитывался персонал и свойства  проекта, продукта и среды. Модель включает оценку трех стадий ведения проекта. На первой стадии строится прототип для задач повышенного риска (интерфейс пользователя, ПО, система взаимодействия, реализации и др.)  и проводится оценка затрат (например, число таблиц в БД,  экраны и отчетные формы др.).

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

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

Базовой моделью оценки служит следующее уравнение: E=bSc m(X), где первичная оценка b Sc корректируется с помощью вектора стоимости m (X). Эта модель развивается с учетом  анализа объектов (число  старых и новых объектов). Параметр с в уравнении  изменяется от 0 до 1.0 для первой  стадии и от 1.01 до 1.26 для остальных.



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

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

2. Формирование временного плана выполнения  работ в точках проекта.

3. Определение структуру рабочей группы, периода,  видов работ   и  ресурсов.

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

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

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

7. Разработка плана управления данными и источниками информации.

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

9. Составления плана обучения пользователей системы.

10. Определения плана безопасности (конфиденциальность,  пароли  и др.)

11. Составление плана управления рисками.

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

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


Содержание раздела