Lecture05 (1133562), страница 5
Текст из файла (страница 5)
Привыходе этой величины за границы, допустимые для Ариан-4, создавалась исключительнаяситуация переполнения.Надо отметить, что обработка нескольких достаточно однородных величин производиласьпо-разному — семь переменных могли вызвать исключительную ситуацию данного вида,обработка четырех из них была защищена от этого, а три оставшихся, включаягоризонтальную скорость, оставлены без защиты.
Аргументом для этого послужиловыдвинутое при разработке требование поддерживать загрузку процессора не выше 80%.«Нагружающие» процессор защитные действия для этих переменных не былииспользованы, поскольку предполагалось, что эти величины будут находиться в нужныхпределах в силу физических ограничений на параметры движения ракеты. Обоснованийдля поддержки именно такой загрузки процессора и того, что отсутствие обработкипереполнения выбранных величин будет способствовать этому, найдено не было.• Когда такая ситуация действительно случилась, т.е.
горизонтальная скорость ракетыпревысила определенное значение, она не была обработана соответствующим образом, и врезультате ею вынужден был заняться модуль, обеспечивающим отказоустойчивостьпрограммной системы в целом.• Этот модуль, в силу отсутствия у него какой-либо возможности обрабатывать такиеошибки специальным образом, применил обычный прием — остановил процесс, в которомвозникла ошибка, и запустил другой процесс с теми же исходными данными.
Как легкодогадаться, эта же ошибка повторилась и во втором процессе.•Не в силах получить какие-либо осмысленные данные о текущем состоянии полета,система управления использовала ранее полученные, которые уже не соответствовалидействительности. При этом были ошибочно включены боковые двигатели «длякорректировки траектории», ракета начала болтаться, угол между нею и траекториейдвижения стал увеличиваться и достиг 20 градусов. В результате она стала испытыватьчрезмерные аэродинамические нагрузки и была автоматически уничтожена.Литература к Лекции 5[1] ISO/IEC 9126-1:2001. Software engineering — Software product quality — Part 1: Qualitymodel.[2] ISO/IEC TR 9126-2:2003 Software engineering — Product quality — Part 2: External metrics.[3] ISO/IEC TR 9126-3:2003 Software engineering — Product quality — Part 3: Internal metrics.[4] ISO/IEC TR 9126-4:2004 Software engineering — Product quality — Part 4: Quality in usemetrics.[5] ISO 9000:2000 Quality management systems — Fundamentals and vocabulary.[6] ISO 9001:2000 Quality management systems — Requirements.[7] ISO 9004:2000 Quality management systems — Guidelines for performance improvements.[8] ISO/IEC 90003:2004 Software engineering — Guidelines for the application of ISO 9001:2000 tocomputer software.[9] В.
В. Липаев. Методы обеспечения качества крупномасштабных программных средств. М.:Синтег, 2003.[10] Э. М. Кларк, О. Грамберг, Д. Пелед. Верификация моделей программ: Model Checking. М.:МЦНМО, 2002.[11] http://www5.in.tum.de/~huckle/bugse.html[12] http://infotech.fanshawec.on.ca/gsantor/Computing/FamousBugs.htm[13] http://www.ima.umn.edu/~arnold/disasters/ariane5rep.html[14] http://www.elcon.org/Documents/EconomicImpactsOfAugust2003Blackout.pdf[15] И. Соммервилл.
Инженерия программного обеспечения. М.: Вильямс, 2002.[16] Э. Дж. Брауде. Технология разработки программного обеспечения. СПб.: Питер, 2004.[17] Б. Боэм, Дж. Браун, Х. Каспар и др. Характеристики качества программного обеспечения.М.: Мир, 1991..