9.1 Дополнительные аспекты планирования управления устареванием для программных продуктов
9.1.1 Сходство и различия между техническими средствами и программными продуктами
Принципы управления устареванием технических средств и программных продуктов в основном совпадают, но между ними имеются некоторые различия, которые, в частности, сводятся к следующему:
- программные продукты не подвержены износу и физическому старению, хотя могут деградировать в процессе модификации;
- стоимость изготовления копий разработанных однажды программных продуктов пренебрежимо мала.
Устаревание программных продуктов, строго говоря, происходит в результате того, что они перестают отвечать изменившимся требованиям к ним. Однако на практике требования к системам, состоящим из технических и программных средств, почти никогда не остаются неизменными, а поскольку программные продукты относительно проще совершенствовать, то развитие систем в целом часто происходит за счет модернизации их программного обеспечения. Сами программные продукты устаревают, т.е. постепенно перестают отвечать потребностям непрерывного совершенствования систем, в связи:
- с быстрым устареванием аппаратных средств, в которых они используются;
- со сложностями прослеживания модификаций комплексного программного обеспечения;
- с последствиями несовместимости сменяющих друг друга версий программных продуктов;
- с проблемами тех платформ, на базе которых создан программный продукт (операционных систем, файловых систем, форматов хранения данных);
- с отсутствием всей необходимой документации и недостаточной обслуживаемостью самого продукта;
- с проблемами развития платформ, например с совершенствованием языков программирования и стандартов;
- с утратой авторских прав;
- с недостатком опыта, знаний и квалификации исполнителей;
- с непригодностью определенных продуктов или нецелесообразностью дальнейшего использования, возникшими под влиянием внешних обстоятельств.
9.1.2 Причины устаревания программных продуктов
9.1.2.1 Общие положения
Наблюдается тенденция к тому, что быстрее всего происходит устаревание технических устройств со встроенным программным обеспечением, таких как микропроцессоры, средства хранения данных и программируемые устройства. Причиной тому является непрерывное обострение конкуренции на рынках сбыта, требующее постоянного повышения быстродействия, сокращения размеров и энергопотребления, совершенствования пользовательских интерфейсов. Гигантские инвестиции, требующиеся для создания и производства комплектующих изделий общего назначения, усиливают тенденции к монополизации в этом секторе. Огромное число относительно небольших по размерам потребителей программных продуктов поощряет создание новинок в этой области, для которых совместимость с уже существующими программными продуктами не является главным приоритетом. Отсутствие вертикальной совместимости вновь создаваемых программных продуктов с уже существующими ведет к быстрому устареванию последних.
9.1.2.2 Модификации программных продуктов
Необходимость модификации программных продуктов обусловлена:
- наличием недостатков и ошибок, внесенных при разработке, и необходимостью их исправления;
- изменениями условий применения, в результате чего программные продукты для сохранения своей функциональности требуют адаптивных изменений;
- изменениями требований к функциональным характеристикам программных продуктов.
9.1.2.3 Несовершенство программных продуктов
Многие современные программы настолько сложны, что ни один разработчик не в состоянии охватить все их возможные внутренние взаимосвязи. Пространства входов и внутренних состояний программных продуктов настолько обширны, что становится нецелесообразным вкладывать средства в их исчерпывающую проверку. В результате с большой вероятностью возникает аномальное поведение программных продуктов в процессе их использования, требующее внесения исправлений. Для крупных программ устранение всех недостатков практически нереально, и поэтому для имеющего важное операционное значение программного обеспечения требуется создание постоянно действующих средств их поддержки и обслуживания.
9.1.2.4 Адаптивные и совершенствующие модификации
Разработчик сложных программ вряд ли способен точно исполнить все требования всех предполагаемых пользователей за исключением их очевидных потребностей. Даже в случае выполнения всех первоначальных требований последние постоянно меняются в связи с изменениями условий, в которых действуют пользователи программных продуктов. Кроме того, быстрое развитие технологий подталкивает потребителей искать пути к повышению эффективности программных продуктов, что становится постоянной задачей служб поддержки, занимающихся их обслуживанием. Таким образом, процесс модификаций программных продуктов становится непрерывным.
9.1.2.5 Документальное оформление