Математика | ||||
Надежность программного обеспечения-Тейер Т | ||||
Тейер Т., Липов М., Нельсон Э.
Г 30 Надежность программного обеспечения: Пер. с англ. — М: Мир, 1981. —323 с., ил. В книге американских специалистов фирмы TRW рассмотрены возможные ошибки при разработке систем программного обеспечения ЭВМ и изложены методы выявления причин их возникновения. Основное внимание уделено построению математических моделей программного обеспечения, позволяющих оценивать его надежность. Для разработчиков программного обеспечения, инженеров-математиков, обслуживающих ЭВМ, а также студентов и аспирантов, изучающих системное и прикладное программное обеспечение. Предисловие редактора перевода Программное обеспечение современных информа-ционных и управляющих систем представляет собой чрезвычайно сложное изделие, в создании которого принимают участие десятки, а то и сотни различных специалистов. Процесс создания программного обеспечения немыслим без четкой координации и тщательного планирования, в связи с чем особенно актуальной становится проблема выделения необходимых ресурсов для своевременного предотвращения потенциальных дефектов. Успешное решение этой проблемы позволяет избежать нежелательных последствий и доро-гостящих переделок на стадии эксплуатации системы. Именно этим обстоятельством объясняется большая жесткость требований, которые пользователи и заказчики предъявляют к качеству программных средств, что в свою очередь заставляет поставщиков программного обеспечения уделять при его проектировании все больше внимания гарантиям качества, даже если это связано со значительным увеличением затрат. Проблема обеспечения необходимой надежности больших программных комплексов пока, к сожалению, мало изучена, однако в настоящее время наблюдается устойчивая тенденция к расширению масштабов исследований в этой области. И все же число действительно полезных публикаций по этому вопросу невелико. Монография Майерса1), изданная у нас в стране в 1980 г., фактически стала библиографической редкостью. Предлагаемая читателю новая книга призвана в какой-то степени восполнить этот пробел, тем более что, несмотря на идентичность названия, она ни в коей мере не дублирует монографию Майерса. Напротив, эти две книги очень удачно дополняют одна другую: если Майерс уделил основное внимание вопросам методологии разработки надежных программных средств, то Тейер и др. концентрируют свое внимание на новых интересных вопросах теории надежности программного обеспечения и на полезных эмпирических данных, связанных с отдельными аспектами оценки надежности создаваемых или функционирующих программных изделий. Это вторая книга из серии TRW1), посвященной проблемам технологии программного обеспечения. В ней представлены результаты анализа данных об ошибках, допущенных в четырех крупных проектах. На основе этих результатов авторы проводят классификацию ошибок с целью выявления наиболее характерных недоработок в системах программного обеспечения. Кроме того, в книге содержится целый ряд полезных практических рекомендаций, касающихся наиболее эффективных стратегий предупреждения ошибок в ходе создания программных комплексов и способов их наиболее полного обнаружения на стадии испытаний. Особый интерес представляют разделы, посвященные математической теории надежности программного обеспечения. В этих разделах привлекают простота математического аппарата, четкий смысл переменных, входящих в уравнения, и пригодность приводимых формул для непосредственного практического использования. Книга написана авторами на основе научно-технического отчета без какой-либо его существенной пере-работки. Естественно, что недостатки, присущие этому виду научных публикаций, не могли не отразиться на качестве изложения материала: в оригинале оно не всегда последовательно, страдает многочисленными повторами, перегружено второстепенными деталя- ми и т. п. При переводе мы старались по возможности устранить отмеченные недостатки за счет более логичной компоновки материала и исключения малоинтересных, малоинформативных и общеизвестных сведений. Книга представляет значительный интерес для прикладных программистов, системных аналитиков и руководителей проектов программного обеспечения. Она окажется также полезной для инженеров-математиков, обслуживающих ЭВМ, студентов и аспирантов, специализирующихся в области системного и прикладного программного обеспечения. Перевод книги выполнен В. М. Храпкиным. Е. К. Масловский Оглавление * Предисловие редактора перевода........... 5 Предисловие................... 8 Глава 1. ЦЕЛИ ИССЛЕДОВАНИЯ И ОПИСАНИЕ ИСХОДНЫХ ДАННЫХ............ 11 1.1. Основные понятия и определения...... 11 1.2. Цели исследования............ 14 1.3. Методика исследования.......... 15 1.4. Данные по проектам........... 15 1.5. Сведения о затруднениях при проектировании 23 1.6. Информация Уведомлений о проблемах (ошибках) .................. 23 1.7. Характеристики программного обеспечения . . 25 1.8. Характеристики процесса испытаний для Проектов 2, 3, 4 и 5 .............. 32 1.9. Данные о персонале........... 36 1.10. Характеристики использования ЭВМ..... 38 Глава 2. КЛАССИФИКАЦИЯ ОШИБОК........ 39 2.1. Формирование перечня категорий ошибок для Проектов 2, 3 и 4............. 39 2.2. Рекомендации по выбору способа классификации ошибок................. 64 2.3. Рекомендации по формированию перечня категорий .................. 65 2.4. Идентификация категории ошибки...... 66 2.5. Формирование перечня категорий ошибок по Проекту 5................. 68 2.6. Эволюция перечней категорий ошибок..... 74 Глава 3. ЭМПИРИЧЕСКИЕ ДАННЫЕ О НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ...... 77 3.1. Принципы анализа и основополагающая информация .................. 78 3.2. Анализ эмпирических данных........81 3.3. Феноменологический подход к проблеме надежности программного обеспечения........ По Глава 4. РЕГРЕССИОННЫЙ АНАЛИЗ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ............ 126 4.1. Обобщенная регрессионная модель...... 126 4.2. Особенности обобщенной регрессионной модели . 130 4.3. Результаты регрессионного анализа (фаза Г) . . 133 4.4. Анализ причин ошибок и признаков их проявления 148 4.5. Вспомогательные исследования........15Э 4.6. Сравнение данных, полученных для разных проектов ...................171 4.7. Средства и методы создания систем программного обеспечения...............174 Глава 5. МОДЕЛИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ..............207 5.1. Введение................207 5.2. Анализ моделей..............210 Глава 6. ПРИЛОЖЕНИЯ И РАЗВИТИЕ МАТЕМАТИЧЕСКОЙ ТЕОРИИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ . •..........228 6.1. Анализ данных о надежности программного обеспечения Проекта 5............228 6.2. Разбиение совокупности входных данных на подмножества ................233 6.3. Оценка неопределенности данных о надежности 238 6.4. Анализ эффекта устранения ошибок в программном обеспечении.............258 6.5. Использование зависимости надежности от структурных характеристик программ.......261 6.6. Оценка надежности программного обеспечения по данным испытаний.............264 6.7. Обеспечение защиты программ........266 6.8. Разработка прогрессивных методов написания надежных программ.............267 6.9. Разработка усовершенствованных методов испытаний программного обеспечения........270 Глава 7. ОРГАНИЗАЦИЯ СБОРА ДАННЫХ О НАДЕЖНОСТИ .................274 7.1. Установленные факты...........274 7.2. Рекомендации по совершенствованию процесса сбора данных...............286 7 3. Выгоды сбора и анализа данных о надежности программного обеспечения..........290 7.4. Выводы и рекомендации......... . 293 Приложение А. Терминологический словарь.......299 Список сокращений..........302 Приложение В. Образцы форм для сбора данных .... 303 Литература....................317 Предметный указатель...............320 Цена: 100руб. |
||||