
- •Генетический подход к проблеме оценки трудоемкости и предсказания сроков сдачи программного обеспечения в эксплуатацию Кульдин Сергей Павлович1, студент мгу им. М.В.Ломоносова,
- •1. Введение
- •2. Краткий обзор основных понятий и проблем рассматриваемой области
- •2.1. Выбор модели оценки.
- •2.2. Выбор метрики размера.
- •2.3. Критерии хорошей оценки.
- •3. Сравнение метрик размера по
- •3.1. Число строк кода
- •3.2. Метрики Холстеда
- •3.3. Функциональные точки (Function points)
- •3.4. Точки свойств (Feature points)
- •3.5. Объектные точки (Object points)
- •4. Обзор и классификация методов оценки трудозатрат
- •5. Неалгоритмические методы
- •5.1. Оценка по аналогии
- •5.2. Экспертная оценка
- •5.3. Принцип Паркинсона
- •5.4. Цена победы
- •6. Алгоритмические методы
- •7. Основная идея предлагаемого генетического подхода.
- •8. Формальное описание генетического метода
- •9.Области применения.
- •10. Полученные результаты
2.2. Выбор метрики размера.
Большинство моделей (как эмпирических, так и аналитических) базируются на использовании различных метрик размера разрабатываемой системы (LOC, FP и др.). Точность оценки трудозатрат напрямую зависит от точности оценки размера. Независимо от выбранной метрики размера, определить его заранее точно не представляется возможным, поэтому приходится его уточнять (и, соответственно, производить общую переоценку трудозатрат) уже непосредственно в процессе разработки. Влияние этого фактора заметно уменьшается при использовании достаточно строгой методологии разработки и при детальной проработке требований к системе. В силу особой важности данного вопроса для решения исходной задачи, мы поговорим о нем более подробно в следующем разделе.
2.3. Критерии хорошей оценки.
По Ройсу (Royce [2]), у хорошей оценки издержек производства программного обеспечения должны быть следующие признаки:
понята и поддержана менеджером проекта и командой разработчиков
одобрена всеми заинтересованными лицами как реально осуществимая
основана на четкой модели с заслуживающими доверия основаниями
основана на базе данных подобного проекта (с подобными бизнес-процессами, подобными технологиями, подобной внешней средой, подобными людьми и подобными требованиями).
определена настолько детально, что ключевые области риска поняты и вероятность успеха объективно оценена
Оценка трудоемкости и стоимости, исторически была одной из наиболее сложных проблем при разработке программного обеспечения. Несколько причин этих трудностей:
Нехватка исторически сложившейся базы данных оценок трудоемкости
Разработка программного обеспечения основана на множестве взаимосвязанных факторов, которые непосредственно влияют на продуктивность и отношения которых полностью не выявлены
Нехватка оценщиков с опытом
3. Сравнение метрик размера по
Размер программного обеспечения - самый важный фактор, определяющий трудоемкость реализации ПО. В этом разделе описывается пять метрик размера программного обеспечения, используемых на практике. Число строк исходного кода и функциональные точки - самые популярные метрики из этих пяти.
3.1. Число строк кода
LOC (Lines Of Code) - число непустых строк исходного текста, исключая комментарии [4]. Несмотря на то, что эта метрика существенно зависит от выбранного языка программирования, она до сих пор остается самой используемой метрикой размера ПО. Конечно, точное число LOC может только быть получено только после того, как проект уже закончен. Поэтому, оценка размера кода программы до его создания, не намного проще оценки реальных трудозатрат например в человеко-месяцах.
Типичный метод осуществления такой оценки использует комбинацию экспертных оценок с техникой под названием PERT [6], заключающейся в следующем: пусть имеется n экспертов, каждый i-ый эксперт высказывает три предположения относительно конечного размера: Li - нижняя оценка размера, Hi - верхняя оценка размера и Mi - наиболее вероятный размер. Тогда размер S может быть вычислен как:
(1)
Точность оценки может быть существенно улучшена, если применить PERT не к проекту в целом, а к его отдельным компонентам. Тогда общая оценка размера может быть получена как сумма таких "локальных" оценок.