Lui Sha. Using Simplicity to Control Complexity

Вложение:2.pdf[123.85 КБ]
Скачиваний: 432


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

Во второй части статьи рассматриваются следствия для повышения надёжности бортового ПО. Указывается на неудовлетворительность подхода с несколькими параллельно работающими вариантами ПО - сложность разработки растёт, а надёжность - нет.
Финальное предложение автора - строить разработку встроенной системы из
двух подсистем. Первая - простая, не очень производительная, но
написанная так, чтобы быть максимально верифицированной. Вторая -
расширенная, реализующая управляющую логику в усложнённом варианте "с
фичами". Т.е. в случае сбоя в расширенной системе примет управление и
гарантирует базовую функциональность простая система.
Боинг-777 так использует два контроллера: один для него разработанный,
производительный и с "фичами" и старый, от 747, проверенный 25-летней
эксплуатацией.

Возможно, я упустил какие-то интересные нюансы, прочёл быстро.