Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Принципы и методы создания надежного программного обеспечения АСУТП

Покупка
Основная коллекция
Артикул: 676521.03.99
Доступ онлайн
500 ₽
В корзину
Показана актуальность проблемы повышения надежности программного обеспечения. Приведены основные определения, перечислены факторы, влияющие на надежность ПО, рассмотрены принципы и методы проектирования, разработки и реализации надежного ПО, даны практические рекомендации с примерами из области АСУТП АЭС. Подробно раскрыты требования, которым должно отвечать надежное ПО. Для студентов соответствующих специальностей, а также специалистов, занимающихся разработкой ПО для критически важных объектов.
Мякишев, Д. В. Принципы и методы создания надежного программного обеспечения АСУТП : учебное пособие / Д. В. Мякишев. - 3-е изд. - Москва ; Вологда : Инфра-Инженерия, 2025. - 116 с. - ISBN 978-5-9729-2599-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2225698 (дата обращения: 17.04.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Д. В. МЯКИШЕВ
ПРИНЦИПЫ И МЕТОДЫ СОЗДАНИЯ  
НАДЕЖНОГО ПРОГРАММНОГО  
ОБЕСПЕЧЕНИЯ АСУТП
 
Москва    Вологда
«Инфра-Инженерия»
2025
Учебное пособие
3-е издание


УДК 004.052
ББК 32.965
М99 
Мякишев, Д. В.
М99 
		
Принципы и методы создания надежного программного обеспечения АСУТП : учебное пособие / Д. В. Мякишев. – 3-е изд. – Москва ; Вологда : Инфра-Инженерия, 
2025. – 116 с. : ил., табл.
 ISBN 978-5-9729-2599-5
Показана актуальность проблемы повышения надежности программного обеспечения. Приведены основные определения, перечислены факторы, влияющие на надежность ПО, 
рассмотрены принципы и методы проектирования, разработки  
и реализации надежного ПО, даны практические рекомендации 
с примерами из области АСУТП АЭС. Подробно раскрыты требования, которым должно отвечать надежное ПО.
Для студентов соответствующих специальностей, а также 
специалистов, занимающихся разработкой ПО для критически 
важных объектов.	
УДК 004.052 	
ББК 32.965	 
ISBN 978-5-9729-2599-5    © Мякишев Д. В., 2025	
© Издательство «Инфра-Инженерия», 2025	
© Оформление. Издательство «Инфра-Инженерия», 2025


ВВЕДЕНИЕ
3
 ВВЕДЕНИЕ  
(постановка проблемы)
Имейте в виду, если вы сделаете быстро и плохо,  
то люди забудут, что вы сделали быстро,  
и запомнят, что вы сделали плохо.  
Если вы сделаете медленно и хорошо,  
то люди забудут, что вы сделали медленно,  
и запомнят, что вы сделали хорошо!» 
С. П. Королев
Компьютеры прочно вошли в нашу жизнь. Если 
еще в 70-х годах прошлого века искусство (именно искусство) пользоваться компьютером (тогда в ходу был 
термин «Электронная Вычислительная Машина», сокращенно ЭВМ) было уделом немногих профессионалов, то сейчас компьютер стал чем-то вроде авторучки. Правда, как и для того, чтобы писать авторучкой 
грамотные осмысленные тексты нужно учиться, так и 
для того, чтобы эффективно пользоваться компьютером, нужны специальные знания, но это уже иная тема.  
Другая, может быть, более важная тенденция – тотальное внедрение компьютеров в технические устройства 
и системы. Сейчас трудно себе представить более или 
менее сложный технический объект (автомобиль, стиральную машину, телевизор и т. п.) без автоматической 
системы управления на базе микропроцессора или микроконтроллера. Что же касается таких областей как 
атомная и тепловая энергетика, вооружение и военная 
техника, добыча и транспортировка энергоносителей, 


Принципы и методы создания надежного 
программного обеспечения АСУ ТП
Мякишев Д.В. 
4
гражданская и военная авиация, космонавтика, здравоохранение и многие другие отрасли, то в них использование автоматизированных систем управления (АСУ) и 
систем автоматического управления (САУ) на базе десятков, сотен а то и тысяч единиц компьютерной техники – жизненная необходимость, поскольку человек без 
их помощи физически не может справиться с задачами 
управления сложными техническими объектами.
В этой ситуации существенно возрастает роль программного обеспечения (ПО) компьютеров. Во времена молодости автора в ходу было изречение «ЭВМ без 
программы все равно что самолет без бензина» и это и 
сейчас актуально! Несмотря на бурное развитие компьютерной техники и обилие разнообразных архитектурных 
и технических решений, без программ, как и прежде 
обойтись нельзя. Именно ПО привносит в компьютерную или компьютеризированную системы практическую ценность, реализуя те функции, которые нужны 
пользователю и ради реализации, которых эти системы 
и создаются. В области разработки ПО также наблюдается значительный прогресс. Появились новые языки 
программирования, операционные системы, инструментальные средства. К сожалению, старые проблемы остались и эти проблемы связаны с качеством ПО – степенью 
соответствия свойств (характеристик) продукта требованиям (ожиданиям) пользователей. Очевидно, что требования к качеству тем выше, чем ответственней сфера 
применения продукта, в нашем случае ПО.
Среди определенных стандартом [1] восьми характеристик качества (функциональная пригодность, уро
ВВЕДЕНИЕ
5
вень производительности, совместимость, удобство 
использования, надежность, защищенность, сопровождаемость, переносимость) главную роль играет надежность – основной критерий качества программного продукта и его субхарактеристики: завершенность, 
готовность, отказоустойчивость, восстанавливаемость. 
Если ПО прикладной системы не имеет требуемый 
уровень надежности, то все остальные характеристики просто теряют смысл. Кроме того, повышение надежности – самый выгодный путь снижения затрат при 
создании и сопровождении ПО. Высокая стоимость 
ПО – следствие его низкой надежности.
Вышесказанное звучит несколько парадоксально, 
но объясняется очень просто. По данным многочисленных источников, как отечественных, так и зарубежных, 
до 80 % стоимости ПО приходится на сопровождение. 
В свою очередь, львиная доля издержек при сопровождении ПО – это затраты на выявление и исправление 
ошибок. Меньше ошибок – меньше затраты.
За последние годы мощность микропроцессоров 
возросла, они стали дешевыми, и как следствие возросла цена ошибки ПО относительно стоимости аппаратуры. Кроме того, за счет ПО благодаря присущей ему 
гибкости, принято исправлять ошибки других компонентов систем, а также промахи персонала.
В зависимости от сферы применения компьютерной системы требования к уровню (степени) надежности могут быть разными. Если у вас «завис» компьютер, 
на котором вы набирали текст курсовой работы, – это 
одно, а вот если «завис» или выдал неверный результат 


Принципы и методы создания надежного 
программного обеспечения АСУ ТП
Мякишев Д.В. 
6
процессор в составе САУ оружием или АСУТП энергоблоком, – это совсем другое.  Многолетняя история 
применения вычислительной техники, к сожалению, 
полна примеров тяжелых, а иногда и трагических последствий использования ПО ненадлежащего уровня 
надежности. В работах [2], [5], [23], приведены некоторые (далеко не все) «страшилки», которые тем не менее 
дают наглядное представление о проблеме.  Особенно 
важна надежность ПО в сфере управления критически 
важными объектами (КВО), такими как энергоблоки 
АЭС и ТС, военные объекты, медицинское оборудование и т. д. Для таких объектов ПО должно создаваться 
с максимальным использованием методов и средств из 
арсенала разработчика, направленных на повышение 
надежности. Это не означает, что программы, не относящиеся к указанной сфере можно делать, как говорится, «тяп-ляп». Надежность нужна всегда и везде, просто последствия несоблюдения принципов создания 
надежного ПО будут разными.
Дальнейший материал пособия посвящен принципам, методам и средствам разработки надежного ПО. 
При этом упор делается на «programming in the large»1 – 
создание программных систем, но многое будет полезно 
и разработчикам небольших программ.
1  Программирование в большом (англ.)


ГЛАВА 1. Теория
7
ГЛАВА 1. Теория
Знание некоторых принципов легко возмещает  
незнание некоторых фактов. 
Гельвеций
 1.1 Что такое надежность ПО
Впервые дискуссии о надежности программного обеспечения в нашей стране развернулись в начале 
80-х годов прошлого века после появления на прилавках книжных магазинов перевода монографии известного специалиста в области разработки ПО Гленфорда  
Майерса [2]. Нельзя сказать, что до этого момента проблема надежности ПО не осознавалась. Просто в упомянутом труде она была четко сформулирована, показана ее 
суть и намечены основные пути решения. Через некоторое время в свет вышла книга советского ученого Владимира Васильевича Липаева, посвященная той же теме [3],  
а следом за ней – перевод руководства еще одного известного зарубежного специалиста Роберта Гласса [4]. Следует отметить, что несмотря на то, что с времени выхода 
этих изданий прошло более 30 лет, вопросы, поднятые в 
них, а также основные определения, принципы и предлагаемые методы актуальны до сих пор [6]. Несколько 
устарели лишь приводимые в них примеры и технологические приемы. Наряду с упомянутыми изданиями при 
составлении пособия были использованы современные 
издания по тематике и актуальные международные стандарты, принятые в РФ.


Принципы и методы создания надежного 
программного обеспечения АСУ ТП
Мякишев Д.В. 
8
Современный международный стандарт, принятый 
в качестве государственного российского нормативного 
документа в 2015 году [1] дает следующее определение: 
«надежность (reliability): Степень выполнения системой, продуктом или компонентом определенных функций при указанных условиях в течение установленного 
периода времени.
Примечания
1 Это определение было адаптировано из (ИСО/
МЭК/ИИЕЕ 24765).
2 В программном обеспечении износа не происходит. Проблемы с надежностью возникают из-за недостатков в требованиях, при разработке и реализации или 
из-за изменений условий использования.
3 Характеристики функциональной надежности программного обеспечения включают в себя готовность и либо 
присущие ей, либо внешние влияющие факторы, такие как 
надежность и доступность (включая отказоустойчивость и 
восстанавливаемость), безопасность (включая обеспечение конфиденциальности и целостность), пригодность для 
обслуживания, долговечность и техническую поддержку.»
В данном пособии мы будем пользоваться определением из [2], которое по смыслу аналогично вышеприведенному, но больше соответствует нашим целям – получению практических навыков создания надежного ПО: 
«Надежность ПО есть вероятность его работы без 
отказов в течение определенного периода времени, 
рассчитанная с учетом стоимости для пользователя 
каждого отказа.»


ГЛАВА 1. Теория
9
Мы видим, что принимается во внимание серьезность ошибки, степень ее влияния на работу системы. 
Следовательно, надежность не является внутренним 
свойством программы, она во многом связана с тем, как 
программа используется. Термин «вероятность» играет 
в определении значительную роль, указывая на случайный характер проявления ошибки.
Существует большое количество математических 
моделей надежности ПО, которые мы в настоящем пособии рассматривать не будем. Причин две. Во-первых, 
до сих пор нет единой эталонной модели, которая являлась бы признаваемой абсолютно (скажем, как закон 
Ома). Во-вторых, излагаемый в пособии материал основан на качественном анализе причин ненадежности 
ПО и методов борьбы с ней. На наш взгляд, это является важным для практики.
Хотя определение надежности ПО сходно с определением надежности аппаратуры, эти понятия должны рассматриваться раздельно. В первую очередь, это 
определяется различной природой отказов аппаратуры 
и программ.
У аппаратуры возможны три причины отказа:
•	 дефект проектирования;
•	 дефект производства;
•	 физический износ (старение элементов).
Причина отказа ПО – исключительно следствие дефекта (ошибки) проектирования (разработки). Отказ программного обеспечения – это проявление ошибки в нем.
Ошибки в ПО не являются его внутренним свойством. Наличие ошибок ‒ функция как самого ПО, так 


Принципы и методы создания надежного 
программного обеспечения АСУ ТП
Мякишев Д.В. 
10
и ожиданий его пользователей. В ПО имеется ошибка, 
если оно не выполняет того, что пользователю разумно
от него ожидать: предсказуемого поведения. В данном 
случае «разумно» означает действие, выполняемое в 
пределах назначения системы. Можно сказать, что синоним «надежности» ‒ «предсказуемость».
Ошибка ПО проявляется при изменении входных 
данных. Если подавать на вход ПО одни и те же данные, ошибка не проявится.
На рисунке 1 приведен примерный график зависимости частоты отказов аппаратуры и ПО от времени, 
иллюстрирующий их разную природу [2].
Рисунок 1.  График частоты отказов
График частоты отказов аппаратуры можно условно разделить на три области.
Первая область – область «приработки». В процессе 
опытной эксплуатации выявляются как дефекты проектирования, так и дефекты производства, включая примененные при изготовлении некачественные элементы.


Доступ онлайн
500 ₽
В корзину