
- •Генетический подход к проблеме оценки трудоемкости и предсказания сроков сдачи программного обеспечения в эксплуатацию Кульдин Сергей Павлович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. Полученные результаты
7. Основная идея предлагаемого генетического подхода.
Основной проблемой современных методов оценки трудозатрат является сложность их адаптации к каждому конкретному проекту (калибровки коэффициетов модели). Каждый проект – это своя комманда, свои условия труда, своя специфика разработки. Обобщенные модели, такие как COCOMO, разработанные с учетом данных о большом количестве проектов не могут полностью учесть этой специфики.
В данной работе предлагается принципиально новый, неклассический генетический подход к проблеме, основными принципами которого являются обеспечение простоты применимости метода на практике и учет информации, специфической для каждого конкретного проекта. В его основе лежит идея разделения общей задачи (предсказания необходимых ресурсов) на фиксированную и динамическую составляющие. При решении фиксированной части можно абстрагироваться от многих факторов, определяющих проектную специфику и применить какой-либо современный метод оценки трудозатрат, так словно он применяется к какому-нибудь типичному “среднестатистическому” проекту (например COCOMO). Это позволяет не учитывать при этом множество дополнительных факторов и существенно упростить реализацию метода. Главная же инновационная составляющая предлагаемого подхода заключается в способе решения динамической части задачи. Динамическая часть – оценка ресурсов, необходимых для устранения дефектов и других проблем, возникающих в процессе разработки системы, не укладывающихся в имеющиеся модели. Было замечено, что множество этих дефектов живет и развивается подобно биологической популяции, подверженной определённым воздействиям окружающей среды – множества сотрудников со своими показателями производительности. Эта среда как порождает эти дефекты, так и стремится их устранить впоследствии. Дефекты претерпевают мутации (проявляют заранее непредвиденные свойства), скрещиваются между собой, порождая новые, подвергаются отбору в соответствии со сложностью их устранения и т.п. Проведенные параллели с классическими понятиями теории эволюции биологических систем позволяют создать очень точную модель эволюции проекта в целом и рассчитывать необходимое дополнительное время, эмулируя жизнь этой популяции. Более того, ни один современный программный проект не обходится без системы багтрекинга, позволяющей учитывать и контролировать ошибки, найденные в программе, а также следить за процессом их устранения. Главный компонент такой системы — база данных, содержащая сведения об обнаруженных ошибках. Одна строка БД = одна ошибка = одна хромосома генетической популяции. Использование этой БД создает идеальные условия для применения разрабатываемой модели. Если же БД пуста (реализация проекта еще не началась), возможно использование БД предыдущего проекта, в котором работали те же сотрудники.
Итак, три принципиально новых идеи, предлагаемые в подходе:
Разделение исходной задачи на фиксированную и динамическую составляющие.
Интерпретация множества дефектов как хромосомной популяции.
Использование имеющейся в багтрекере (системе контроля дефектов) информации для уточнения оценки полученной с помощью какого-либо метода оценки трудозатрат на ранних стадиях жизненного цикла.
Кроме того, данный подход позволяет провести все необходимые расчеты любому менеджеру, даже не являющемуся экспертом в области предсказания сроков, т.к. база данных может быть проанализирована автоматически.
Стоимость конечной реализации предлагаемого подхода во много раз меньше имеющихся систем.