Средства автоматизации проектирования ПО. Часть 4.

На этапе эксплуатации и сопровождения ПО отторгается от разработчика и фиксация ошибок в ПО осуществляется в процессе его реального функционирования в организациях заказчика. Однако устранение выявленных погрешностей в работе ПО производится разработчиком. Им вносятся необходимые изменения в эксплуатационную и рабочую документацию, а также производится доработка выпущенных ранее изделий с данным комплектом ПО. В организации и проведении этих работ и заключается сопровождение ПО. Чем больше объем ПО, тем сложнее поиск невыявленных на предыдущих этапах программных ошибок, тем дороже обходится их исправление. Опыт эксплуатации сложных современных программных комплексов показывает, что трудозатраты при сопровождении ПО достигают 60—70% от всего объема трудозатрат жизненного цикла ПО.

Анализ характера работ, проводимых на отдельных этапах жизненного цикла ПО, показывает, что эти работы отличаются сложностью, большой трудоемкостью, носят комплексный характер, требуют больших затрат времени и ресурсов как разрабатываемой СЭВМ, так и ЭВМ общего назначения, а также привлечения квалифицированных специалистов разных профилей, математиков-программистов, системных программистов, системо- и схемотехников. Однако с организационно-технической точки зрения современный уровень разработки ПО на большинстве этапов жизненного цикла не может обеспечить требуемой эффективности.

Отметим основные недостатки существующего подхода в организации проектирования программного обеспечения.

Этап проектирования алгоритмов фактически отделен от этапа проектирования программ. Эти этапы не составляют пока единого целого, так как используемые при анализе и проектировании алгоритмов языки моделирования не являются языками программирования задач для СЭВМ. Внешние спецификации в большинстве случаев составляются вручную и не формализуются, что исключает возможность последующей автоматической проверки правильности функционирования программ и их соответствия спецификациям.

И в самом процессе создания программ также допускается большой объем ручного труда. Он обусловлен главным образом уровнем используемого языка программирования, в качестве которого сейчас наиболее распространен язык типа Ассемблер.

Тестирование программ также связано с большим объемом ручного труда, так как чаще всего оно осуществляется на уровне машинных кодов. Далее на уровне машинных кодов осуществляется и сопровождение ПО. Слабо разработаны программные комплексы, имитирующие работу аппаратных средств различных архитектур и различных интерфейсов, и их взаимодействие с кроссовыми средствами отладки. При отладке программ еще часто используются примитивные непроизводительные резидентные средства типа ручных пультов контроля и наладки, позволяющие проводить только простейшие отладочные действия, такие, как останов по адресу, заносимому с пульта вручную, пошаговый режим исполнения команд, вклинивание и подмена команд, индикация программно-допустимых регистров и другие действия.