1
Часть 9.
Разработка
программного модуля
Методы и средства проектирования
информационных систем и технологий
(©) Владислав Лавров, vlavrov.com
2
9.1. Порядок разработки программного модуля
1. Изучение и проверка спецификации модуля
2. Выбор языка программирования.
3. Выбор алгоритма и структуры данных.
4. Программирование (кодирование) модуля.
5. Шлифовка текста модуля.
6. Проверка модуля.
7. Компиляция модуля.
(©) Владислав Лавров, vlavrov.com
3
9.2. Структурное программирование
Программа должна быть понятной не только компьютеру,
но и человеку:
и разработчик модуля, и лица, проверяющие модуль, и
тестовики, готовящие тесты для отладки модуля, и
сопроводители ПС, осуществляющие требуемые
изменения модуля, вынуждены будут многократно
разбирать логику работы модуля.
(©) Владислав Лавров, vlavrov.com
4
Известность Дейкстре принесли его работы в области
применения математической логики при разработке
компьютерных программ.
Он активно участвовал в разработке языка
программирования Алгол и написал первый
компилятор Алгол-60.
Будучи одним из авторов концепции структурного
программирования, он проповедовал отказ от
использования инструкции GOTO.
Ему принадлежит идея применения «семафоров»
для синхронизации процессов в многозадачных
системах и алгоритм нахождения кратчайшего пути
на ориентированном графе с неотрицательными
весами рёбер, известный как Алгоритм Дейкстры.
В 1972 году Дейкстра стал лауреатом премии
Тьюринга.
Э́ дсгер Ви́ бе Де́йкстра
(нидерл. Edsger Wybe Dijkstra;
11 мая 1930 - 6 августа 2002)
Выдающийся нидерландский
учёный, идеи которого
оказали огромное
влияние на развитие
компьютерной индустрии.
(©) Владислав Лавров, vlavrov.com
5
Э.Дейкстра предложил строить программу как
композицию из нескольких типов управляющих
конструкций (структур), которые позволяют сильно
повысить понимаемость логики работы программы:
• следование,
• разветвление
• повторение
Программирование с использованием только таких
конструкций назвали структурным
(©) Владислав Лавров, vlavrov.com
6
Основные управляющие конструкции структурного программирования
S2
S1
Следование
(©) Владислав Лавров, vlavrov.com
7
Основные управляющие конструкции структурного программирования
Разветвление
S2S1
P
Да Нет
(©) Владислав Лавров, vlavrov.com
8
Основные управляющие конструкции структурного программирования
Повторение
S P
Да Нет
(©) Владислав Лавров, vlavrov.com
9
9.3. Пошаговая детализация. Псевдокод
1. Описание общей схемы работы модуля
2. Уточнение и детализация каждого понятия
3. Получение текста модуля на базовом языке
программирования
Основной метод построения текста модуля –
пошаговая детализация
(©) Владислав Лавров, vlavrov.com
10
Пошаговая детализация связана с использованием
частично формализованного языка для представления
указанных описаний, который получил название
псевдокода
Неформальное обозначение обобщенного оператора на
псевдокоде производится на естественном языке
произвольным предложением, раскрывающим в общих
чертах его содержание.
(©) Владислав Лавров, vlavrov.com
11
Внешнее оформление программного модуля на псевдокоде
•начало модуля на базовом языке, т.е. первое предложение или
заголовок (спецификацию) этого модуля;
•раздел (совокупность) описаний на базовом языке, причём вместо
описаний процедур и функций  только их внешнее оформление;
•неформальное обозначение последовательности операторов тела
модуля как одного обобщенного оператора, а также неформальное
обозначение тела каждого описания процедуры или функции как
одного обобщённого оператора;
•последнее предложение (конец) модуля на базовом языке.
(©) Владислав Лавров, vlavrov.com
12
Основные конструкции структурного программирования
на псевдокоде
Следование:
обобщенный_оператор
обобщенный_оператор
Разветвление:
ЕСЛИ условие ТО
обобщенный_оператор
ИНАЧЕ
обобщенный_оператор
ВСЕ ЕСЛИ
Повторение:
ПОКА условие ДЕЛАТЬ
обобщенный_оператор
ВСЕ ПОКА
(©) Владислав Лавров, vlavrov.com
13
Частные случаи оператора перехода
в качестве обобщенного оператора
Выход из повторения (цикла):
ВЫЙТИ
Выход из процедуры (функции):
ВЕРНУТЬСЯ
Переход на обработку исключительной ситуации:
ВОЗБУДИТЬ имя_исключения
(©) Владислав Лавров, vlavrov.com
14
Пример одного шага детализации на псевдокоде
(©) Владислав Лавров, vlavrov.com
15
9.3. Контроль программного модуля
1. Статическая проверка текста модуля;
2. Сквозное прослеживание;
3. Доказательство свойств программного модуля.
(©) Владислав Лавров, vlavrov.com

МиСПИСиТ (разработка программного модуля)

  • 1.
    1 Часть 9. Разработка программного модуля Методыи средства проектирования информационных систем и технологий (©) Владислав Лавров, vlavrov.com
  • 2.
    2 9.1. Порядок разработкипрограммного модуля 1. Изучение и проверка спецификации модуля 2. Выбор языка программирования. 3. Выбор алгоритма и структуры данных. 4. Программирование (кодирование) модуля. 5. Шлифовка текста модуля. 6. Проверка модуля. 7. Компиляция модуля. (©) Владислав Лавров, vlavrov.com
  • 3.
    3 9.2. Структурное программирование Программадолжна быть понятной не только компьютеру, но и человеку: и разработчик модуля, и лица, проверяющие модуль, и тестовики, готовящие тесты для отладки модуля, и сопроводители ПС, осуществляющие требуемые изменения модуля, вынуждены будут многократно разбирать логику работы модуля. (©) Владислав Лавров, vlavrov.com
  • 4.
    4 Известность Дейкстре принеслиего работы в области применения математической логики при разработке компьютерных программ. Он активно участвовал в разработке языка программирования Алгол и написал первый компилятор Алгол-60. Будучи одним из авторов концепции структурного программирования, он проповедовал отказ от использования инструкции GOTO. Ему принадлежит идея применения «семафоров» для синхронизации процессов в многозадачных системах и алгоритм нахождения кратчайшего пути на ориентированном графе с неотрицательными весами рёбер, известный как Алгоритм Дейкстры. В 1972 году Дейкстра стал лауреатом премии Тьюринга. Э́ дсгер Ви́ бе Де́йкстра (нидерл. Edsger Wybe Dijkstra; 11 мая 1930 - 6 августа 2002) Выдающийся нидерландский учёный, идеи которого оказали огромное влияние на развитие компьютерной индустрии. (©) Владислав Лавров, vlavrov.com
  • 5.
    5 Э.Дейкстра предложил строитьпрограмму как композицию из нескольких типов управляющих конструкций (структур), которые позволяют сильно повысить понимаемость логики работы программы: • следование, • разветвление • повторение Программирование с использованием только таких конструкций назвали структурным (©) Владислав Лавров, vlavrov.com
  • 6.
    6 Основные управляющие конструкцииструктурного программирования S2 S1 Следование (©) Владислав Лавров, vlavrov.com
  • 7.
    7 Основные управляющие конструкцииструктурного программирования Разветвление S2S1 P Да Нет (©) Владислав Лавров, vlavrov.com
  • 8.
    8 Основные управляющие конструкцииструктурного программирования Повторение S P Да Нет (©) Владислав Лавров, vlavrov.com
  • 9.
    9 9.3. Пошаговая детализация.Псевдокод 1. Описание общей схемы работы модуля 2. Уточнение и детализация каждого понятия 3. Получение текста модуля на базовом языке программирования Основной метод построения текста модуля – пошаговая детализация (©) Владислав Лавров, vlavrov.com
  • 10.
    10 Пошаговая детализация связанас использованием частично формализованного языка для представления указанных описаний, который получил название псевдокода Неформальное обозначение обобщенного оператора на псевдокоде производится на естественном языке произвольным предложением, раскрывающим в общих чертах его содержание. (©) Владислав Лавров, vlavrov.com
  • 11.
    11 Внешнее оформление программногомодуля на псевдокоде •начало модуля на базовом языке, т.е. первое предложение или заголовок (спецификацию) этого модуля; •раздел (совокупность) описаний на базовом языке, причём вместо описаний процедур и функций  только их внешнее оформление; •неформальное обозначение последовательности операторов тела модуля как одного обобщенного оператора, а также неформальное обозначение тела каждого описания процедуры или функции как одного обобщённого оператора; •последнее предложение (конец) модуля на базовом языке. (©) Владислав Лавров, vlavrov.com
  • 12.
    12 Основные конструкции структурногопрограммирования на псевдокоде Следование: обобщенный_оператор обобщенный_оператор Разветвление: ЕСЛИ условие ТО обобщенный_оператор ИНАЧЕ обобщенный_оператор ВСЕ ЕСЛИ Повторение: ПОКА условие ДЕЛАТЬ обобщенный_оператор ВСЕ ПОКА (©) Владислав Лавров, vlavrov.com
  • 13.
    13 Частные случаи оператораперехода в качестве обобщенного оператора Выход из повторения (цикла): ВЫЙТИ Выход из процедуры (функции): ВЕРНУТЬСЯ Переход на обработку исключительной ситуации: ВОЗБУДИТЬ имя_исключения (©) Владислав Лавров, vlavrov.com
  • 14.
    14 Пример одного шагадетализации на псевдокоде (©) Владислав Лавров, vlavrov.com
  • 15.
    15 9.3. Контроль программногомодуля 1. Статическая проверка текста модуля; 2. Сквозное прослеживание; 3. Доказательство свойств программного модуля. (©) Владислав Лавров, vlavrov.com