
- •Генетический подход к проблеме оценки трудоемкости и предсказания сроков сдачи программного обеспечения в эксплуатацию Кульдин Сергей Павлович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. Полученные результаты
8. Формальное описание генетического метода
Необходимо определить с приемлемой точностью функцию времени до релиза проекта R(t), зависящую от текущего момента времени t, отсчитываемого от начала работы над проектом. Причем R(0) = R0 – общее первоначальное плановое время работы над проектом. Искомую функцию предлагается искать в виде R(t) = Rplan(t) + Rbugs(B(t)), где
Rplan(t) – идеальное плановое время до релиза (фиксированная составляющая), рассчитанное на текущий момент времени t, без учета возможных дефектов на всех этапах разработки. Rplan(t) в общем случае нелинейно зависит от t, рассчитывается с помощью какой-либо упрощенной модели оценки трудозатрат (любой (!), например COCOMO II [1]).
Rbugs(B(t)) – время, необходимое для устранения имеющихся дефектов и для достижения необходимого показателя качества ПО (динамическая составляющая). B(t) – имеющаяся на момент времени t база данных дефектов.
Т.е. по сути, смысл подхода в разделении исходной задачи на “четкую” и “нечеткую” составляющие.
Первая часть работы посвящена исследованию применимости имеющихся методов расчета планового времени в идеальном случае, т.к. для этого разработано большое количество методик, основанных на различных метриках разрабатываемого ПО.
Вторая часть – непосредственно рассмотрение генетического подхода применительно к расчету Rbugs(B(t)). Как уже отмечалось ранее, генетический подход предполагает рассмотрение базы данных ошибок в качестве хромосомной популяции. Одной ошибке ставится в соответствие одна хромосома. На множестве хромосом популяции Ω задается оценочная функция Durability(ω), которая рассчитывается динамически на основании макроскопических характеристик популяции. В данной интерпретации оценочная функция характеризует время жизни “хромосомы-дефекта” на основании ее характеристик (например: дата и время, когда была обнаружена проблема, серьёзность (критичность) проблемы и приоритет её решения, какие-либо характеристики сложности ее решения и т. п.). К популяции применяются генетические операторы скрещивания C(Ω), мутации M(Ω) и отбора S(Ω), использующие оценочную функцию, эмулируя эволюцию популяции (процесс возникновения новых дефектов и устранения старых) через некоторые фиксированные (в простейшем случае) промежутки времени. Алгоритм использует макропоказатели базы данных B(t) (N(t) – количество ошибок, N'(t) – скорость их появления и др.) таким образом, чтобы правильно рассчитать параметры генетических операторов, обеспечив правильную скорость сходимости размера популяции к 0. Как только |Ω| < ε, считаем, что система достигла заданного качества и процесс можно дальше не продолжать. Гипотетическое время этого процесса эволюции популяции и есть Rbugs(B(t)). Общая схема работы метода приведена на рис. 1.
Рис 1. Общая схема работы динамической части генетического алгоритма.
9.Области применения.
Подход можно применять в любом программном проекте, использующем систему контроля ошибок (багтрекер), на современном этапе это означает, что применять его можно практически везде (за исключением, возможно, лишь проектов реализуемых 1-2 разработчиками). На сегодняшний день, рассмотрена применимость только к программным проектам, но в перспективе, описанные идеи можно будет применить и в любых других разработках, использующих системы протоколирования возникающих дефектов. Кроме того, предполагается возможность использования идей метода для калибровки существующих моделей оценки трудозатрат и сроков.