
- •Генетический подход к проблеме оценки трудоемкости и предсказания сроков сдачи программного обеспечения в эксплуатацию Кульдин Сергей Павлович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. Полученные результаты
3.4. Точки свойств (Feature points)
В условиях, когда сформулированные требования не отражают истинной сложности реализации (что особенно характерно для системного ПО, критически важных программных комплексов и пр.), метод функциональных точек себя не оправдывает. В этом случае на помощь приходит его модифицированный вариант, предложенный в 1988 г. Кейперсом Джонсом (Capers Jones [9]), который учитывает не только требования к системе, но и внутренние особенности ее реализации – метод точек свойств (feature points). Он очень близок к методу функциональных точек, с тем лишь отличием, что предусматривает корректирование получаемой оценки с учетом алгоритмической сложности. К перечисленным выше 5-ти элементарным классам функциональных объектов, добавляется класс алгоритмов. Алгоритм определяется как свод правил, который решает какую-либо существенную вычислительную задачу. Например, вычисление квадратного корня можно рассмотреть как алгоритм. Каждому используемому алгоритму сопоставляют вес в пределах от 1 (элементарный) до 10 (очень сложные алгоритмы) и количество точек свойств рассчитывается как взвешенная сумма алгоритмов плюс число функциональных точек. Эта метрика особенно полезна для систем с незначительным вводом/выводом, но с высокой алгоритмическая сложностью, таких как математическое программное обеспечение, системы дискретного моделирования, военные приложения и т.п.
3.5. Объектные точки (Object points)
Поскольку классическая интерпретация метода функциональных точек не предусматривает применения объектно-ориентированного подхода, в современных проектах используется его адаптированный вариант, оперирующий именно терминами ОО-технологии. Принципиальным его отличием от других методов, производных от классического FP, является то, что он не расширяет базовый набор элементарных классов FP, а вводит совершенно иные: окна (screens), отчеты (reports) и 3GL компоненты. Каждому из этих объектов назначается вес в пределах от 1 (простое окно) до 10 (3GL компонент) и количество объектных точек рассчитывается по формуле, аналогичной (4). Это - относительно новая метрика и она пока не настолько популярна как FP. Но в силу своего удобства в применении на самых ранних этапах жизненного цикла ОО-проектов, (причем с неплохими показателями), она нашла успешное применение в некоторых разновидностях COCOMO [1].
4. Обзор и классификация методов оценки трудозатрат
В самом общем смысле, все методы оценки проектов разделяются на две группы:
Методы микрооценки, основаны на точном знании всех составляющих жизненного цикла. Например, Oracle AIM (Oracle Application Implementation Method – методика внедрения готовых приложений, разработана компанией Oracle для внедрения пакета готовых приложений Oracle E-Business Suite) и оценки трудоемкости для него. В этом методе для построения оценки необходимо построение разбивки работ и оценка каждой индивидуальной работы.
Методы макрооценки, основаны на функциональных требованиях и/или других определениях конечного продукта. Таковы, например, методы функциональных точек и СОСОМО.
С другой стороны, все методы оценки можно разделить также на алгоритмические и неалгоритмические. Сначала будет приведен общий обзор неалгоритмических методов, будут указаны их недостатки, которые делают резонным выбор именно алгоритмических методов, к числу которых и относится описываемый в данной работе генетический подход.