Вы находитесь на странице: 1из 23

Тема 11.

Обеспечение функциональности и
надежности программного средства
В соответствии с изученным материалом в теме 4:
Внешнее описание ПС = определение требований + спецификация
качества ПС + функциональная спецификация ПС.

Реализуя функциональную спецификацию ПС основным атрибутом


критерия функциональности выбрана надежность ПС (тема 1).
В качестве основного подхода для обеспечения надежности ПС
выбрано предупреждение ошибок (тема 3).

Т.о. очевидно, что основными критериями качества являются


функциональность и надежность.
Рассмотрим обеспечение примитивов качества ПС,
выражающих критерии функциональности и надежности ПС.
1. Обеспечение завершенности ПС является общим примитивом
качества ПС для выражения и функциональности, и надежности ПС
(причем для функциональности она является единственным
примитивом – тема 4).
Функциональность ПС определяется его функциональной
спецификацией. Завершенность ПС как примитив качества ПС является
мерой того, в какой степени эта спецификация реализована в ПС.

В спецификации качества ПС определены уровни реализации


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

2. Обеспечение точности программного средства


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

3. Обеспечение автономности программного средства


осуществляется путем принятия решения о возможности
использования в разрабатываемом ПС какого-либо базового
программного обеспечения.

Если имеющееся в распоряжении разработчиков ПО не отвечает


требованиям к надежности разрабатываемого ПС (или имеются жесткие
ограничения на ресурсы), от такого ПО отказываются, а его функции
реализуются в рамках разрабатываемого ПС.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

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

Применение защитного программирования модулей приводит к


снижению эффективности ПС по времени и по памяти, поэтому степень
применения защитного программирования нужно регулировать в
зависимости от требований к надежности и эффективности ПС.

Входные данные разрабатываемого модуля могут поступать:


1 тип – от пользователя <- защитное программирование применяется
чаще.
2 тип – от других модулей <- защитное программирование применяется
редко, только если требования к надежности очень высокие.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

5. Обеспечение защищенности ПС
Виды защиты ПС:
5.1. защита от сбоев аппаратуры;
5.2. защита от влияния «чужой» программы;
5.3. защита от отказов «своей» программы;
5.4. защита от ошибок оператора (пользователя);
5.5. защита от несанкционированного доступа;
5.6. защита от защиты.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

5.1. защита от сбоев аппаратуры


Полезно знать решение подобных задач. Защита от сбоев аппаратуры обеспечивается
организацией т.н. “двойных или тройных просчетов”. 
Весь процесс обработки данных разбивается по времени на интервалы, длина
которых не должна превосходить половины среднего времени безотказной работы
компьютера.
В начале каждого такого интервала во вторичную память записывается с некоторой
контрольной суммой копия состояния изменяемой в этом процессе памяти.
Для того, чтобы убедиться, что обработка данных от одной опорной точки до
следующей (т.е. один «просчет») произведена правильно (без сбоев компьютера),
производится два таких «просчета».
После первого «просчета» вычисляется и запоминается контрольная сумма, затем
восстанавливается состояние памяти по «опорной точке» и делается второй «просчет».
Вторая контрольная сумма сравнивается с контрольной суммой первого «просчета».
1 и 2 контрольные суммы должны совпадать. Если 1КС не равна 2КС делают третий
просчет. Если 1КС не равна 3КС или 2КС не равна 3КС требуется инженерная проверка
компьютера.

Можно почитать про контрольную сумму:


https://habr.com/ru/post/278171/
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

5.2. защита от влияния «чужой» программы


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

Различают две разновидности защиты от влияния «чужой» программы


1. защита от отказов “чужой” программы,
2. защита от злонамеренного влияния “чужой” программы.

1. Защита от отказов «чужой» программы означает, что на


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

• защита памяти – означает возможность программным путем задавать


для каждой программы недоступные для нее участки памяти;
• два режима функционирования компьютера: привилегированный и
рабочий (пользовательский) - в привилегированном режиме могут
выполняться любые операции (и ординарные, и привилегированные),
а в рабочем режиме только ординарные;
• два вида операций: привилегированные и ординарные – попытка
выполнить привилегированную операцию* (*операции изменения
защиты памяти и режима функционирования), а также обратиться к
защищенной памяти в рабочем режиме вызывает прерывание;
• корректная реализация прерываний и начального включения
компьютера – означает обязательную установку привилегированного
режима и отмену защиты памяти;
• наличие временного прерывания – позволяет управляющей
программе защититься от зацикливания в других программах.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

Для этого достаточно, чтобы


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

2. Защита от злонамеренного влияния «чужих» программ


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

К этому виду защиты относят защиту от компьютерных вирусов.


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

5.3. защита от отказов «своей» программы


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

5.4. защита от ошибок оператора (пользователя)


Здесь идет речь не об ошибочных данных, поступающих от пользователя
ПС, - защита от них связана с обеспечением устойчивости ПС.

Бывают случаи, при которых несмотря на корректность используемых


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

5.5. защита от несанкционированного доступа


У всех пользователей свои права доступа к ПС.
ПС в своей внешней информационной среде хранит информацию о
своих пользователях и предоставленным им правах использования
ресурсов.
Защита от несанкционированного доступа к ресурсам ПС осуществляется
с помощью паролей.

Различают две разновидности такой защиты:


А) простая защита – отказ в использовании ресурсов ПС при
неправильном пароле
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

Б) защита от взлома защиты – относится к дополнительным мерам защиты и


подразумевает следующее:
1. необходимо обеспечить, чтобы защиту нельзя было обойти (т.е. должна
действовать защита от влияния «чужих» программ)
2. Необходимо усилить простую защиту от несанкционированного доступа
использованием специальных приемов программирования
3. Обезопасить пароль от подбора перебором.

Пароль (секретное слова или число) Х должен быть известен только владельцу.
Во внешней информационной среде ПС хранится не пароль, а число Y=F(X),
однозначно вычисляемое ПС по паролю Х.
При этом функция F может быть хорошо известной всем пользователям ПС,
однако она должна обладать таким свойством, что восстановление слова X по Y
практически невозможно: при достаточно большой длине слова X (например, в
несколько сотен знаков) для этого может потребоваться астрономическое время.
Такое число Y будем
называть электронной (компьютерной) подписью владельца пароля X
(а значит, и защищаемых прав доступа).
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

Другой способ защиты от взлома защиты связан с защитой сообщений,


пересылаемых по компьютерным сетям (например, при осуществлении
банковских операций с использованием компьютерной сети). 
Использование компьютерной подписи в такой ситуации недостаточно,
так как защищаемое сообщение может быть перехвачено “взломщиком”
и подменено другим сообщением с сохранением компьютерной подписи
(или пароля).
Решение: наряду с функцией F в ПС определены еще дополнительные
функции Stamp и Notary.
Помимо компьютерной подписи Y=F(X) пользователь должен вычислить
число S=Stamp (X,R),
где X – пароль
R – текст передаваемого сообщения.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

Предполагается, что функция Stamp хорошо известна всем пользователям ПС и


обладает таким свойством, что по S практически невозможно
ни восстановить число X, ни подобрать другой текст сообщения R с заданной
компьютерной подписью Y.
При этом передаваемое сообщение (вместе со своей защитой) должно иметь
вид:
(R Y S),
причем Y (компьютерная подпись) позволяет получателю сообщения установить
истинность клиента, а S как бы скрепляет защищаемый текст сообщения R с
компьютерной подписью Y.
В связи с этим будем называть число S электронной (компьютерной) печатью.
Функция Notary(R,Y,S) проверяет истинность защищаемого сообщения:
(R,Y,S).
Эта позволяет получателю сообщения однозначно установить, что текст
сообщения R принадлежит владельцу пароля X.
Примитивы качества ПС, выражающих критерии функциональности и надежности ПС

5.6. защита от защиты


Необходима, если пользователь забывает / теряет
пароль / «ключ»

Решение: в ПС должна быть привилегированная операция для


администратора, позволяющая временно снимать защиту от
несанкционированного доступа для пользователя с целью фиксации
пароля.
Почитать
https://habr.com/ru/company/skillbox/blog/440836/

Вам также может понравиться