Надежность
В том числе:
◆ Тестирование программы при всех допустимых спецификациях входных данных;
◆ Защита от неправильных действий пользователя;
◆ Защита от взлома — пользователи должны иметь возможность взаимодействия с ПО только через легальные интерфейсы.
Появление ошибок любого уровня не должно приводить к краху системы. Ошибки должны вылавливаться диагностироваться и (если их невозможно исправить) превращаться в корректные отказы.
Системные структуры данных должны сохраняться безусловно.
Сохранение целостности пользовательских данных желательно.
Возможность сопровождения
Возможные цели сопровождения — адаптация ПО к конкретным условиям применения, устранение ошибок, модификация.
Во всех случаях требуется тщательное структурирование ПО и носителем информации о структуре ПО должна быть программная документация.
Адаптация во многих случаях может быть передоверена пользователю — при тщательной отработке и описании сценариев инсталляции и настройки.
Исправление ошибок требует развитой сервисной службы, собирающей информацию об ошибках и формирующей исправляющие пакеты.
Модификация предполагает изменение спецификаций на ПО.
При этом, как правило, должны поддерживаться и старые спецификации.
Эволюционное развитие ПО экономит вложения пользователей.