Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1295

.pdf
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
949.61 Кб
Скачать

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

То, что цикл завершается, может быть показано с по-

мощью анализа убывающей последовательности положительных целых чисел, связанных с циклом: n', n", n''', ..., n(k). По-

скольку для некоторого k n(k)=0, обязательно произойдет выход из цикла.

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

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

171

ЗАКЛЮЧЕНИЕ

В курсах программирования вопросам проектирования и стандартизации редко отводится значительное место, несмотря на их очевидную важность для создания эффективных программ.

Качество программного обеспечения играет важную роль, поскольку большинство программ и программных систем, разрабатываемых с целью сбыта, рассчитаны на длительное использование. Как правило, программное обеспечение оказывается более долговечным, чем аппаратное. Поэтому почти на каждой вычислительной установке можно найти программы, написанные ещё для ЭВМ предыдущих поколений.

Таким образом, многие программы должны быть рассчитаны на длительную эксплуатацию, на протяжении которой они могут неоднократно модифицироваться. Учитывая это, понятие «хорошая программа» должно включать такие качества, которые способствовали бы увеличению срока службы программ и их адаптации к изменяющимся условиям применения.

Данное пособие содержит основы проектирования программных систем, необходимые каждому программисту при разработке программного обеспечения.

172

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Благодатских, В.А. Экономика, разработка и использование программного обеспечения ЭВМ [Текст]: учебник / В.А. Благодатских. – М.: Финансы и статистика, 2009. – 382 с.

2.Зиглер, К. Методы проектирования программных систем [Текст]: пер. с англ. / К. Зиглер. – М.: Мир, 1985. – 328 с.

3.Дайитбегов, Д.М. Основы алгоритмизации и алгоритмические языки [Текст]: учебник для вузов / Д. М. Дайитбегов, Е. А. Черноусов . – 2-е изд., перераб. и доп. – М.: Финансы и статистика, 1992 . – 495 с.

4.ГОСТ 19.00177. Единая система программной документации. Общие положения [Текст]. – М.: Стандартинформ, 2010.

5.Орлов, С.А. Технология разработки программного обеспечения. Разработка сложных программных систем [Текст]: учеб. пособие / С.А. Орлов. - СПб: Питер, 2003. - 480 с.

6.Гагарина, Л.Г. Технология разработки программного обеспечения [Текст]: учеб. пособие / Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Виснадул; под ред. Л.Г. Гагариной. – М.: Инфра-М, 2008. – 402 с.

7.Характеристики качества программного обеспечения [Текст]: пер. с англ. / Б. Боэм, Дж. Браун и др. – М.: Мир, 1981.

208 с.

8.Майерс, Г. Надежность программного обеспечения

[Текст] / Г. Майерс. – М.: Мир, 1980. – 360 с.

9.Ван Тассел, Д. Стиль, разработка, эффективность, отладка и испытание программ [Текст]: пер. с англ. / Д. Ван Тас-

сел. – М. : Мир, 1981 . – 320 с.

173

ОГЛАВЛЕНИЕ

Введение……………………………………………………… 3

1.Основные понятия и определения ……………………… 5

1.1.Характеристики видов программного обеспечения 5

1.2.Системное (общесистемное) ПО ………………….. 7

1.3.Прикладное (специальное) ПО ….………………… 11

1.4.Принципы построения и методы создания программных средств……..………………………. 13

1.5.Требования, предъявляемые к ПС………………… 14

2.Жизненный цикл программ. Стадии разработки ……… 16

2.1.Понятие жизненного цикла программы …………. 16

2.2.Внешнее проектирование ………………………... 20

2.3.Внутреннее проектирование ……………………… 23

2.4. Проектирование и программирование модулей… 35

2.5.Стандарты на разработку ПО …………………….. 40

2.5.1.Международные стандарты …..………….. 43

2.5.2.Национальные стандарты на разработку ПО ………………………………………….. 53

3. Алгоритмы и методы проектирования программ …… 60

3.1.Типы алгоритмов ………..……………..………….. 60

3.2.Сложность алгоритмов…....……………………….. 62

3.3.Способы реализации алгоритмов..………..………. 64

3.4.Методы построения алгоритмов…………………... 71

3.4.1.Метод «разделяй и властвуй» ..………….. 71

3.4.2.Метод последовательных приближений… 74

3.4.3.Метод наискорейшего спуска ..…………. 76

3.4.4.Метод обратного прохода ..……………… 78

3.4.5.Метод динамического программирования.. 80

3.4.6.Метод поиска с возвратом ….…………… 81

174

3.4.7.Метод выделения подцелей ……………… 85

3.4.8.Метод моделирования ………………….. 87

3.5.Методы проектирования программ ….…………… 92

3.5.1. Метод нисходящего проектирования …… 92

3.5.2.Метод расширения ядра .………………… 101

3.5.3.Метод восходящего проектирования .…... 108

3.6.Схемы Варнье-Орра ………………….…………… 109

4. Определение ППП. Составные части ППП …………… 111

4.1.Основные сведения о ППП……………..………….. 111

4.2.Управляющие и обслуживающие модули пакета.

Оболочка пакета . ………....……………………….. 117

4.3.Проектирование управляющих модулей ППП ..…. 119

4.4.Проектирование обслуживающих модулей ППП .. 123

5.Определение надёжности. Тестирование и отладка программ ………………………………………………… 127

5.1.Надёжность программы. Модели надёжности ….. 127

5.1.1.Аналитические модели надёжности .…… 137

5.1.1.1.Динамические модели надёжности………. 138

5.1.1.2.Статистические модели надёжности ……. 143

5.1.2. Эмпирические модели надёжности……… 145

5.2.Методы тестирования и отладки программ. …….. 148

5.3.Методы проектирования тестовых наборов данных ………………………………………………. 155

5.4.Сборка программ при тестировании ……………… 158

5.5.Критерии завершённости тестирования …………. 159

5.6.Оценки ошибок …………………………………….. 159

5.6.1.Намеренное внесение ошибок в текст (модель надёжности Миллса)…………….. 160

5.6.2Ошибки объединения модулей …………. 162

175

5.6.3. Другие оценки ошибок ..………………… 162

5.7.Формальные методы доказательства правильности программ …………………............... 164

5.7.1.Утверждения …………………...………….. 165

5.7.2. Завершение выполнения модуля ……..… 170

Заключение…………………………………………………… 172

Библиографический список…………………………………. 173

176

Учебное издание

Воробьёв Эдуард Игоревич

ОСНОВНЫЕ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СИСТЕМ

В авторской редакции

Компьютерный набор Т.М. Фесун, А.В. Грязновой

Подписано к изданию 24.04.2015. Объем данных 927 Кб.

ФГБОУ ВПО «Воронежский государственный технический университет»

394026 Воронеж, Московский просп., 14

177