Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев
Шрифт:
Интервал:
Закладка:
• создание методов экономического обоснования и прогнозирования разработки комплексной системы качества, планов и Программы испытаний, методологии и инструментальных средств, обеспечивающих требуемые качество, надежность и безопасность функционирования программного продукта;
• обеспечение экономических характеристик производства, предсказуемого и управляемого уровня достигаемого качества программного продукта, непосредственно зависящего от инструментария производства, систем качества и эффективности технологий, используемых на этапах жизненного цикла;
• обеспечение и удостоверение требуемых функций и качества готового программного продукта в процессе тестирования и испытаний с полным комплектом адекватной эксплуатационной и технологической документации.
Подготовка и обучение специалистов для экономически эффективного проектирования и производства программных продуктов составляли:
• обучение и подготовка руководителей и специалистов по экономике производства сложных программных продуктов, освоение современных методов экономического анализа, оценивания и прогнозирования процессов и необходимых ресурсов при производстве комплексов программ;
• обеспечения экономически эффективного производства программных продуктов, подготовка и обучение «команд» системных аналитиков, архитекторов и менеджеров проектов, специалистов по комплексированию, верификации, тестированию и сертификации сложных программных продуктов, по испытаниям и обеспечению их качества;
• выделение и обучение специалистов, ответственных за анализ, оценивание и прогнозирование экономических характеристик производства, за соблюдение экономически эффективной промышленной технологии создания и совершенствования программных продуктов;
• освоение руководителями и специалистами современных экономически эффективных технологических задач, методов и стандартов промышленного создания и развития сложных, тиражируемых программных комплексов требуемого высокого качества;
• руководители и специалисты для обеспечения высоких экономических характеристик при производстве сложных комплексов программ должны были освоить типовые, стандартные решения и использование апробированных заготовок программных компонентов, не требующих при их применении высококвалифицированного творческого труда.
Для развития экономики производства программных продуктов требовалось обобщение и освоение накопленного опыта и опубликованных данных в этой новой области экономики. Для квалифицированного прогнозирования и отслеживания экономики на различных этапах производства сложных комплексов программ, необходимо обучение специалистов новой экономической профессии по специальной программе в составе общей квалификации «программная инженерия». Такие специалисты – экономисты должны были входить в состав проектных коллективов или предприятий, создающих сложные программные продукты.
Для ряда систем управления производство комплекса программ требовало 2–3 года (и более), что близко к длительности создания аппаратной части систем.
Такая продолжительность проектирования была приемлемой при создании широкого класса комплексов программ, пока не удавалось заметно сократить продолжительность создания аппаратной части систем. Специфика программного продукта, существенно отличающая его от вычислительной техники, состояла в низкой относительной стоимости массового выпуска копий программ при серийном производстве. Если для большинства случаев стоимость серийных изделий аппаратуры снижалась по сравнению с опытным образцом в 3 – 10 раз, то стоимость разработки сложных комплексов управляющих программ могла превышать в 100 – 1000 раз затраты на их копирование, установку и проверку в каждой серийной системе. Поэтому необходимо было такое структурное построение комплекса программ, которое позволяло бы легко проводить частичную замену программ, настройку на различные характеристики внешней среды, а также переносить некоторые отработанные программы в системы другого типа и назначения.
Этап отечественной истории программной инженерии в 80-е годы значительно отличался от остальных этапов высокой интенсивностью разработок и активным внедрением крупных комплексов программ в народное хозяйство и оборонные системы. Рост доверия к программным продуктам и к их возможностям выполнять различные логические и вычислительные функции не только увеличил размеры разработок, но и значительно повысил важность и ответственность выполняемых ими функций. Возрастание требований к результатам функционирования сложных комплексов программ управления и обработки информации вызвало интерес заказчиков, пользователей и разработчиков к анализу факторов, определяющих стоимость и качество создаваемых и эксплуатируемых программ. Поэтому одной из основных задач исследований по проекту ПРОМЕТЕЙ в 1970-е – 80-е годы стали технико-экономический анализ и обоснование необходимых ресурсов для создания программных продуктов в соответствии с требованиями контрактов [12, 20].
При начале проектирования крупных программных продуктов, требующих заведомо больших экономических, трудовых и временных затрат, необходима была хотя бы приближенная, формализованная их оценка по определенной методике. Для этого должен был подготовлен согласованный между заказчиком и разработчиком первичный документ, в котором определены цели и задачи проекта, предполагаемые характеристики продукта и необходимые ресурсы для его реализации. Эти данные должны были предварительно сбалансированы, и обеспечивать реализацию целей проекта при выделенных ресурсах с минимальным допустимым риском. Однако масштабы целей и функций сложных проектов имеют устойчивую тенденцию изменяться и увеличиваться по мере развития, а первоначально выделяемые ресурсы не удовлетворять их реализацию. Технико-экономическое обоснование проектов на начальном этапе их развития должно было содержать оценки рисков реализации поставленных целей, обеспечивать возможность планирования и выполнения жизненного цикла программного продукта или указывать на недопустимо высокий риск его реализации и целесообразность прекращения разработки.
Большую часть рисков и негативных последствий проектирования в 1970-е – 80-е годы можно было бы избежать, используя существовавшие, достаточно точные методы оценивания и прогнозирования затрат, а также управления проектами программных продуктов, для их успешного завершения. Эти последствия объяснялись многими причинами, из которых наиболее важными, являлись следующие:
• исходные тексты программных компонентов различны и по отдельности не полностью определяют сложность и размер конечного продукта;
• разработка сложных комплексов программ требует творчества и сотрудничества разных специалистов, индивидуальное и групповое поведение которых, как правило, трудно предсказать;
• в области экономики жизненного цикла программ накоплен относительно небольшой опыт количественных оценок, и его трудно было увеличивать, не обобщая разрозненные экономические эксперименты.
В 80-е годы в [15] было установлено, что в жизненном цикле сложных комплексов программ для обеспечения их высокого качества, целесообразно выделять специалистов, ответственных за анализ и прогнозирование экономических характеристик проектов. Необходимо было научить специалистов анализу и оцениванию конкретных факторов, влияющих на характеристики функционирования программных продуктов со стороны реально существующих и потенциально возможных негативных воздействий, и ограничений ресурсов проектов. Это должно привести в дальнейшем к созданию новой области экономической науки – экономики жизненного цикла программных продуктов.
5.5. Сбор и обобщение экономических характеристик о жизненном цикле программных комплексов реального времени в 1980-е годы
Имевшиеся модели были не всегда столь точны, как хотелось бы, но могли весьма существенно помочь при технико-экономическом анализе и обосновании принципиальных решений создания сложных комплексов программ. Необходимы были дальнейшие, активные исследования на разных уровнях детализации, начиная от экономики и планирования создания программных продуктов в масштабах страны или предприятия и кончая экономикой выполнения частных операций отдельными специалистами при разработке или производстве конкретных компонентов и комплексов программ. Для этого программные продукты, и все процессы взаимодействия должны были связаны системой экономических и технических характеристик, в той или иной степени, использующих основные экономические показатели – реальные затраты ресурсов: финансов, труда и времени специалистов на конечный продукт.