- •Введение Цели и задачи курса «Технология программирования»
- •Классификация программного обеспечения
- •Тема 1.Понятие программного изделия
- •1.1.Основные требования к программному изделию как к продукции производственно-технического назначения
- •1.2.Жизненный цикл программных изделий
- •1.3.Методическая, технологическая, инструментальная и организационная поддержка процесса проектирования программных изделий
- •1.4.Этапы проектирования сложных программных изделий
- •Тема 2.Внешнее проектирование программных изделий
- •2.1.Разработка требований и внешнее проектирование программных изделий
- •2.2.Обеспечение целей создания программных изделий Цели проекта с точки зрения пользователя
- •Цели проекта с точки зрения разработчика
- •2.3.Разработка внешних спецификаций проекта
- •Тема 3.Внутреннее проектирование программных изделий
- •3.1.Понятие модуля. Характеристики качества модулей
- •3.2.Методы проектирования программ
- •Иерархическая декомпозиция и абстрактные машины (метод нисходящей декомпозиции)
- •Программирование на основе принципа пошагового совершенствования
- •Структурное программирование по нисходящему принципу
- •Программирование с использованием пошаговой реорганизации
- •Способы описания программ. Язык проектирования программ
- •Тема 4.Структурированные программы
- •4.1.Блок-схемы и управляющие структуры
- •4.2.Теорема о структурировании
- •4.3.Рекурсивные структурированные программы
- •Тема 5.Методы Доказательства правильности программ
- •5.1.Математический аппарат доказательства Принцип простой индукции
- •Принцип модифицированной простой индукции
- •Принцип обобщенной индукции
- •5.2.Методы доказательства правильности программ Метод индуктивных утверждений
- •Пример доказательства правильности программы методом индуктивных утверждений
- •Тема 6.Рекурсивные программы. Методы доказательства их правильности
- •6.1.Понятие рекурсивных программ. Способы их описания Язык описания рекурсивных программ
- •Примеры рекурсивных программ
- •6.2.Рекурсивные программы работы со списками Списки и операции над ними
- •Примеры программ работы со списками
- •6.3.Примеры доказательства правильности рекурсивных программ
- •Тема 7.Отладка программ
- •7.1.Типичные ошибки в программных комплексах
- •7.2.Задачи отладки программ
- •7.3.Методы разработки тестов Метод эквивалентных разбиений
- •Методы тестирования программ путем покрытия логики
- •Метод функциональных диаграмм
- •Предположения об ошибках
- •7.4.Задачи комплексной отладки программ
- •Библиографический список
Тема 4.Структурированные программы
4.1.Блок-схемы и управляющие структуры
Б лок-схема – это направленный граф, который указывает порядок выполнения операторов программы. Каждый оператор программы представляют как узел графа, а каждое возможное направления передачи управления – как линию.
Если оператор имеет более одной выходной линии, то этот оператор является оператором управления. Если при этом оператор управления не воздействует на данные, то он является чистым оператором управления, в противном случае его выполнение сопровождается побочными эффектами. Если узел блок-схемы имеет один вход и два выхода и является чистым оператором управления, его называют предикатным узлом.
Е сли узел блок-схемы имеет один вход и один выход, то его называют функциональным узлом.
У зел с двумя входами и одним выходом называется узлом слияния, он не оказывает на данные никакие воздействия
Управляющая структура блок-схемы обеспечивает упорядочение функциональных и предикатных узлов и узлов слияния, не учитывая вопросов тождественности соответствующих функций, предикатов и значения предикатов.
Простая программа – это программа с управляющей структурой, обладающей следующими свойствами:
имеется только один вход и один выход;
через каждый узел существует путь от входа к выходу структуры.
Примеры управляющих структур:
п ростая непростая
Простая программа может быть представлена (абстрагирована) в виде одного функционального узла, который обобщает суммарные действия операций простой программы. Часть программы, которая сама является простой программой, называется простой подпрограммой.
Элементарная программа – это программа, которая не содержит простых подпрограмм, состоящих более чем из одного узла, например:
Имеется только 7 элементарных структур с одним или более функциональными узлами. Они имеют специальные названия и соответствуют следующим управляющим структурам языка PDL.
1. |
Функция f |
|
f |
|
|
||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
2. |
Последовательность |
f, g |
|
f |
|
g |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
f |
|
|
|
||||||||||||||||||
3. |
if then |
if p then f |
|
р |
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
f |
|
|
|
|
|||||||||||||||||
4. |
whilе do |
whilе p do f |
|
|
р |
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
5. |
repeat until
|
repeat f until p |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
6. |
if then else |
if p then f else g |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
7. |
do whilе do |
do f whilе p do g |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
Составная программа – это программа, полученная заменой функционального узла элементарной программы элементарной программой.
Структурированной программой называется составная программа, сформированная на основе фиксированного базисного множества элементарных программ.