При оценке стоимости проекта и количества времени, требуемого для его выполнения, предстоит выполнить два основных этапа. Первый этап состоит в оценивании размера - масштаба проекта, на втором этапе представление об этих размерах наряду с информацией о других факторах среды разработки используется для оценивания трудозатрат и, соответственно, стоимости и продолжительности работ.
Классы и характеристики программных средств по стандарту ISO 180 12182 |
Концептуальные требования к рассматриваемым классам программных средств |
Три базовых класса комплексов программ для анализа технико- экономических показателей |
Функциональная пригодность - основа определения технико-экономических показателей программных средств |
Характеристики сложности программных средств при анализе технико-экономических показателей |
Описания единиц размера - масштаба и качества компонентов и комплексов программ |
Единицы измерения трудоемкости разработки компонентов и комплексов программ |
Единицы измерения длительности разработки комплекса программ — начала и окончания проекта |
Технико-экономические показатели на единицу размера программной продукции |
Технико-экономические показатели на этап разработки программного средства |
Числа ошибок в комплексе программ в зависимости от длительности разработки |
Таблица 1
Уточнение размеров создаваемого ПС должно предшествовать этапам проектирования и кодирования программ, выполняемым с целью реализации требований на практике. Путем оценивания ТЭП можно спрогнозировать общий объем ресурсов, который необходим для выполнения данного проекта. При этом должны учитываться затраты времени, количество специалистов, бюджетные и другие ограничения.
Для конкретизации основной области дальнейшего анализа и технико-экономического обоснования проектов целесообразно выделить и классифицировать обобщенные характеристики и атрибуты, рассматриваемых комплексов программ в соответствии со стандартом ISO 180 12182. В стандарте выделены три группы видов характеристик: внутренние виды; виды среды и виды данных. Для каждого вида представлен перечень классов, из которых рекомендуется выбирать подходящие характеристики для отражения особенностей конкретной системы или достаточно широкой сферы анализа и применения ПС. Из общего числа трех видов, 16-ти классов и около ста типов характеристик ПС вследствие упрощения далее будут преимущественно учитываться следующие:
• функции прикладных ПС - системы управления объектами или процессами; САПР, организационные, административные и обучающие системы;
• прикладная область системы - оборудование и аппаратура управления процессами и объектами; САПР, информационные, административные и обучающие системы;
• режим эксплуатации - обработка данных в режиме реального времени;
• масштаб, размер ПС - средний или большой;
• представление данных - предметное, формализованные описания объектов или процессов;
• критичность ПС - высокая, должна быть предотвращена возможность больших экономических потерь, повреждения дорогой собственности или угроза человеческой жизни;
• класс пользователей - технические процессы, средства и объекты, обучающиеся и квалифицированные специалисты;
• стабильность ПС - маловероятное или дискретное внесение изменений в процессе регламентированного сопровождения;
• готовность программного продукта - заказное, для конкретного применения в системе, или для массового распространения на рынке и среди предприятий;
• требуемые рабочие характеристики: время отклика - быстрое (секунды или минуты); производительность - большая или средняя;
• требования безопасности и надежности - высокие и критические;
• вычислительная система и среда — микропроцессорное управление или сложные системы реального времени;
• требования к вычислительным ресурсам - высокие, почти полное использование ресурсов по основному функциональному назначению.
Имеющаяся статистика технико-экономических показателей разработки ПС различных классов позволила выявить основные факторы, от которых они зависят. Изучены тенденции изменения ТЭП от важнейших параметров. Доказано, что трудоемкость разработки ПС почти линейно зависит от масштаба - размера создаваемых программ. Для учета классов ПС с позиции их ТЭП проведено ранжирование экспериментальных данных и выделены три достаточно различающихся базовых класса (см. табл.1) при одном и том же размере, характеризующиеся:
- максимальной трудоемкостью - встроенные ПС сложных систем реального времени (СРВ);
- средней трудоемкостью - полунезависимые ПС административных, обучающих и информационно-поисковых систем (ИПС);
- минимальной трудоемкостью создания - распространенные ПС, практически независимые от реального времени, аппаратуры систем и внешней среды пакеты прикладных программ (ППП).
Все остальные классы ПС могут быть упорядочены между выделенными классами, и для них получены оценки изменения трудоемкости относительно максимальной для ПС реального времени. Экспериментальные оценки трудоемкости имеют значительную дисперсию, которая обусловлена рядом трудно учитываемых факторов. Малые разработки при небольших коллективах специалистов характеризуется большими коэффициентами вариации значений трудоемкости вследствие высокой роли индивидуальной способности специалистов. Трудоемкость разработки сложных ПС размером порядка 100 тыс. строк описывается более стабильными значениями, что обусловлено усреднением творческих возможностей специалистов и условий их труда в больших коллективах, а также возрастанием роли руководящего и вспомогательного персонала. В этой области объемов статистические данные лучше аппроксимируются эмпирическими зависимостями с учетом основных факторов.
Наиболее сильно на ТЭП в жизненном цикле ПС влияют масштаб - размер комплексов программ, а также требования к их качеству. Качество ПС характеризуется многими показателями, состав которых зависит от класса и конкретного назначения комплекса программ. Ниже предполагается, что всегда ПС соответствует заданному функциональному назначению и основным требованиям заказчика к его качеству. По мере повышения требований к качеству затраты на разработку ПС увеличиваются все более высокими темпами. Одновременно расширяется диапазон неопределенности достигаемого качества при некоторых затратах. В зоне высокого качества программ возрастают трудности измерения этих характеристик, что может приводить к необходимости изменения затрат в несколько раз в зависимости от применяемых методов оценки качества ПС. В результате для сложных и сверхсложных ПС всегда есть риск проявления не устраненных ошибок и недостаточной достоверности оценок качества.
Совокупная трудоемкость при создании программ имеет ряд составляющих, при определении которых на практике используются различные единицы (см. табл.1). Трудоемкость характеризуется временем производительного труда определенного числа специалистов, необходимого для создания некоторого ПС, его компонентов или выполнения определенного этапа работ. Такой подход привел к активному использованию единиц трудоемкости: человеко-день, человеко-месяц, человеко-год. При этом человеко-год, предполагается состоящим в среднем из 250 рабочих человеко-дней (с учетом выходных и праздничных дней). Подобные единицы трудоемкости позволяют сопоставлять затраты в разных организациях и даже в разных странах на аналогичные программы и не зависят от особенностей валюты при оценке стоимости. Несмотря на яркую критику «мифического человеко-месяца», пока не предложено разумной альтернативы для экономического анализа проектов ПС, и эти единицы трудоемкости достаточно прочно вошли в практику планирования и оценки процессов разработки ПС.
Специалисты при создании программ различаются квалификацией и степенью участия в непосредственной разработке комплексов программ. Встречаются особо талантливые программисты, способные создавать очень быстро программы высокого качества. Однако при любых способностях есть предел, доступный разработчику - одиночке, и он редко превышает 10 тыс. строк в год. Кроме того, даже в этом случае такому программисту необходима помощь при составлении тестов, оформлении документации, испытаниях и ряде других работ, обеспечивающих превращение программы в программный продукт. При разработке сложных ПС пишут и отлаживают программы только около половины общего числа лиц, затраты на которых необходимо учитывать при технико-экономическом анализе. Остальные специалисты осуществляют руководство проектом, проводят системный анализ, исследуют алгоритмы, оформляют документацию, выполняют вспомогательные технические работы. Их трудозатраты направлены либо полностью на создание определенного ПС, либо распределяются между несколькими проектами. Если специально не оговаривается, то далее учитываются в затратах на комплекс программ все категории специалистов в соответствии с их долей участия в создании конкретных программ определенного проекта.