Причины появления оценки надежности программных средств
КОНТРОЛЬНО-КУРСОВАЯ РАБОТА
по дисциплине
" Стандартизация и сертификация информационно-интегрированных систем"
на тему:
________________________________
Выполнил ст. гр.___________
____________ ______________
(подпись) (Ф.И.О. студента)
«_____» _____________20__ г.
Проверил___________
____________ ______________
(подпись) (Ф.И.О. преподавателя)
«_____» _____________20__ г.
Тула 20__
Содержание
Стр.
Введение……………………………………………………………………………..3
Глава 1. Надежность программных средств, причины появления оценки надежности и вероятность подхода к проблеме…………………………………..4
1.1. Причины появления оценки надежности программных средств…..4
1.2. Вероятность подхода к проблеме надежности………………………5
1.3. Исследования программных средств…………………………………6
Глава 2. Критерии оценки надежности программных средств расчет ошибок и их решение…………………………………………………………………………...7
2.1. Надежность и правильность программных средств………………….7
2.2. Критерии тяжести ошибок в программных средствах……………...15
2.3. Формула Бернулли……………………………………………………17
2.4. Модель Джелински-Моранды………………………………………..18
2.5. Статическая модель Миллса………………………………………….19
Глава 3. Заключение……………………………………………………………...22
Глава 4. Список используемой литературы…………………………………….23
Введение
Компьютерные программы состоят из перечней команд, которые заставляют компьютер выполнять нужную работу. Компьютер должен получать исчерпывающие конкретные команды. Часто компьютерные программы имеют вид стенограммы.
Надежность программного обеспечения - способность программного продукта безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью.
Источниками ошибок в программном обеспечении являются специалисты – конкретные люди с их индивидуальными особенностями, квалификацией, талантом и опытом. Вследствие этого плотность потоков ошибок и размеры необходимых корректировок в модулях и компонентах при разработке и сопровождении программного обеспечения могут различаться в десятки раз .Степень надежности характеризуется вероятностью работы программного продукта без отказа в течение определенного периода времени.
Так как со стороны клиента наблюдается устойчивый рост требований к таким характеристикам программных систем, как надежность и производительность, роль фазы системного тестирования приобретает критически важную роль для успеха проекта в целом. Хотя перед поставкой разработанной системы клиенту, она и проходит через несколько этапов тестирования согласно требованиям международной системы управления качеством всё равно недочёты в надёжности программного обеспечения возможны.
Надежность программного обеспечения гораздо важнее других его характеристик, например, времени исполнения, и хотя абсолютная надежность современного программного обеспечения, по-видимому, недостижима, до сих пор не существует общепринятой меры надежности компьютерных программ. В данной курсовой работе анализируются причины создавшегося положения, и предлагается подход к решению проблемы.
Глава 1. Надежность программных средств, причины появления оценки надежности и вероятность подхода к проблеме.
Причины появления оценки надежности программных средств
Проблема надежности программного обеспечения относится, похоже, к категории "вечных". В посвященной ей монографии Г.Майерса , выпущенной в 1980 году (американское издание - в 1976), отмечается, что, хотя этот вопрос рассматривался еще на заре применения вычислительных машин, в 1952 году, он не потерял актуальности до настоящего времени. Отношение к проблеме довольно выразительно сформулировано в книге Р.Гласса: "Надежность программного обеспечения - беспризорное дитя вычислительной техники". Следует далее отметить, что сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература на эту тему, включая упомянутые выше монографии, посвящена первому аспекту, а вопрос оценки надежности компьютерных программ оказывается еще более "беспризорным". Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.
Для обеспечения надежности программ предложено множество подходов, включая организационные методы разработки, различные технологии и технологические программные средства, что требует, очевидно, привлечения значительных ресурсов. Однако отсутствие общепризнанных критериев надежности не позволяет ответить на вопрос, насколько надежнее становится программное обеспечение при соблюдении предлагаемых процедур и технологий и в какой степени оправданы затраты. Таким образом, приоритет задачи оценки надежности должен быть выше приоритета задачи ее обеспечения, чего на самом деле не наблюдается.
Судя по имеющимся публикациям, вопрос обеспечения надежности программ считается более важным, чем вопрос ее оценки. Ситуация выглядит парадоксальной: совершенно очевидно, что прежде, чем улучшать какую-то характеристику, следует научиться ее измерять, и уж, по крайней мере, необходимо иметь единицу измерения. Основная причина такого положения коренится в том, что источником ненадежности программ служат содержащиеся в них ошибки, и если ошибки отсутствуют, то программа абсолютно надежна. По существу, все меры по обеспечению надежности программ направлены на то, чтобы свести к минимуму (если не исключить вообще) ошибки при разработке и как можно раньше их выявить и устранить после изготовления программы. Следует заметить, что безошибочные программы, конечно же, существуют, однако современные программные системы слишком велики и почти неизбежно содержат ошибки. Хотя это обстоятельство отмечается многими авторами и известно любому программисту-практику, существует, по-видимому, некий психологический барьер, не позволяющий признать факт наличия ошибок в программном обеспечении неизбежной реальностью: поскольку не существует точного критерия, позволяющего определить максимальный размер свободной от ошибок программы, всегда остается надежда, что в данной конкретной программной системе их не осталось.
Имеется еще одно обстоятельство психологического характера. Как известно, вопрос надежности для аппаратуры хорошо разработан. Источником ненадежности аппаратуры служат объективные факторы, неподвластные человеку (скачки напряжения питания, альфа-частицы и т.д.), поэтому человечество давно смирилось с мыслью о том, что абсолютно надежной аппаратуры не бывает и можно говорить лишь о степени надежности, выражаемой в каких-то единицах (например, среднее время между двумя последовательными отказами). Источник же ненадежности программ ошибки, которые делают люди, их создающие и использующие, поэтому кажется, что проблема лишь в том, чтобы заставить (или научить) их работать "правильно".
Третья причина состоит в том, что проблему выбора единицы измерения надежности компьютерной программы невозможно решить в рамках промышленного подхода, который в настоящее время занимает в программировании все более доминирующее положение. Наиболее характерный пример - использование, по аналогии с аппаратурой, в качестве меры надежности программы среднего времени между двумя последовательными ошибочными срабатываниями. Рассуждения в обоснование аналогий такого рода В.Турский довольно резко охарактеризовал как наукообразные; сама же характеристика плохо отражает суть дела и не получила широкого признания.
Метод аналогий, конечно, универсален, однако не следует забывать, что любая аналогия имеет границы применимости. В данном случае, поскольку речь идет о фундаментальном понятии (единице измерения), следует не просто переносить характеристики надежности аппаратуры на программы, а воспользоваться более фундаментальными аналогиями.