Лекции по курсу «Метрология и качество программного обеспечения»
108.50K

Надёжное программное средство как продукт технологии программирования. Источники ошибок в программных средствах. (Лекция 1)

1. Лекции по курсу «Метрология и качество программного обеспечения»

Лекция 1. Надёжное программное
средство как продукт технологии
программирования. Источники
ошибок в программных средствах.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

2.

Программа как формализованное
описание процесса обработки данных
Базовые понятия программирования
Данные (data) – представление фактов и идей в формализованном
виде, пригодном для передачи и переработки в некоем процессе;
Информация (information) – смысл, придаваемый данным при их
представлении;
Обработка данных (data processing) – выполнение систематической
последовательности действий с данными;
Носители данных – аппаратные средства, предназначенные для
хранения данных;
Информационная среда (data medium) – совокупность носителей
данных, используемых при какой-либо их (данных) обработке;
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

3.

Программа как формализованное
описание процесса обработки данных
Базовые понятия программирования (продолжение)
Состояние информационной среды – набор данных, содержащийся в
информационной среды в какой-либо момент;
Процесс – последовательность сменяющих друг друга состояний
некоторой информационной среды;
Программа – формализованное описание процесса;
Программное средство – программа, снабжённая документацией.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

4.

Понятие правильной программы
Ошибки в программных средствах
Говорят, что ПС содержит ошибку (software error), если оно не
выполняет того, что разумно ожидать от неё пользователю.
Если программа не соответствует своей функциональной
спецификации, то такая ошибка называется дефектом программы
(defect).
Правильная программа – программа не содержащая ошибок.
Принципиально невозможно доказать правильность программы
формальными методами или тестированием, т.к. можно доказать
лишь наличие ошибок, а не их отсутствие.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

5.

Понятие надёжной программы
Надёжность программного средства
Надёжность (reliability) программного средства – его способность
безотказно выполнять определённые функции при заданных
условиях с достаточно большой вероятностью. Эта вероятность и
есть мера надёжности.
Отказ ПС – проявление в нём ошибки.
Убедиться в надёжности ПС можно путём тестирования. Таким
образом, фактически, можно разрабатывать лишь надёжные а не
правильные программные средства.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

6.

Понятие надёжной программы
Особенности оценки надёжности программного средства
При оценке степени надёжности ПС следует учитывать последствия
каждого отказа (мера таких последствий называется стоимостью).
Надёжность ПС есть одна из важнейших характеристик его качества.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

7.

Технология программирования, как
инструмент создания надёжных ПС
Основные понятия технологии программирования
Технология программирования (programming technology) –
совокупность производственных процессов, приводящую к созданию
требуемого ПС и описание этой совокупности (центральное место –
процесс разработки).
Программная инженерия (software engineering) – систематический
подход к разработке, эксплуатации, сопровождению и изъятию из
обращения ПС (центральное место – методы и средства).
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

8.

Технология программирования, как
инструмент создания надёжных ПС
Основные подходы современной технологии программирования
1. Рассматриваются все процессы разработки ПС, начиная с
момента возникновения замысла ПС;
2. Рассматриваются не только вопросы построения программных
конструкций, но и вопросы описания функций и принимаемых
решений с точки зрения их неформального восприятия;
3. В качестве конечного продукта принимается именно надёжное
(то есть далеко не всегда правильное) программное средство.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

9.

Источники ошибок в ПС
Два основных источника ошибок в ПС
1. Сложность программного средства как системы
2. Неправильный перевод (человеческий фактор)
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

10.

Источники ошибок в ПС
Сложность ПС как системы
Система – совокупность взаимодействующих друг с другом
элементов. Любая программа является системой.
Простая система – та, в которой человек может уверенно перебрать
все пути взаимодействия между элементами;
Сложная система – такая система, в которой перебрать все пути
взаимодействия между элементами человек не в состоянии.
Сложность системы определяется числом потенциальных
взаимодействий между её элементами типа «каждый с каждым», то
есть n!.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

11.

Источники ошибок в ПС
Сложность ПС как системы (продолжение)
Система называется малой, если n < 7 (n!<1000).
Система называется большой, если n >7 (n!>1000).
Малая система всегда простая, а большая может быть как простой,
так и сложной.
Задача технологии программирования с точки зрения построения
качественных ПС – делать большие системы простыми. Достигается
это посредством группировки и обобщения.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

12.

Источники ошибок в ПС
Неправильный перевод (человеческий фактор)
Этапы перевода информации при разработке ПС:
ТРЕБОВАНИЯ К ПС
СПЕЦИФИКАЦИЯ
АППАРАТУРЫ
ВНЕШНЕЕ
ОПИСАНИЕ
ПС
СПЕЦИФИКАЦИЯ
БАЗОВОГО
ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
ТЕКСТЫ
ПРОГРАММ
ПС
СПЕЦИФИКАЦИЯ
ЯЗЫКА
ПРОГРАММИРОВАРИЯ
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
РУКОВОДСТВО
ПО
ПРИМЕНЕНИЮ
ПС

13.

Источники ошибок в ПС
Неправильный перевод (человеческий фактор - продолжение)
На каждом из этапов разработки ПС перевод информации может
быть осуществлён неправильно, например, из-за неправильного
понимания исходного представления информации. Возникнув на
одном из этапов разработки ПС, ошибка в представлении
информации преобразуется в новые ошибки результатов.
Полученных на последующих этапах разработки, и, в конечном
счёте, окажется в ПС.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС

14.

Источники ошибок в ПС
Основные пути борьбы с ошибками
- сужение пространства перебора (упрощение создаваемых систем);
- обеспечение требуемого уровня подготовки разработчиков
(функция менеджеров коллектива разработчиков);
- обеспечение однозначности интерпретации представления
информации, контроль правильности перевода (включая и контроль
однозначности интерпретации – путём верификации рабочих
продуктов).
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
English     Русский Правила