Тема17 Технология структурного программирования

advertisement
Технология структурного
программирования
Технология программирования – это система методов,
Какиписать
программу?
способов и приемов обработки
выдачи информации.
(1972г. Э. Дейкстр)
Формирует у школьников культуру
программирования.
Упрощает переход к более сложным и
совершенным технологиям: объектноориентированное, событийно-управляемое
(визуальное) программирование, разработка
приложений в графической среде Windows, с
использованием различных языков
Технология нисходящего
структурного программирования
представляет собой технологию, которая позволяет
проектировать и кодировать программный комплекс таким
образом, чтобы предотвратить большинство ошибок и
обнаружить те, которые допущены.
Данная технология включает три составляющие:
- нисходящую разработку,
- структурное кодирование (программирование),
- сквозной контроль.
Нисходящая разработка
Программный комплекс разбивается на программные
модули (программы), образующие многоуровневую
структуру.
Каждый программный модуль – короткая программа,
решающая отдельную задачу (подзадачу).
В процессе разработки программные модули нижележащих
уровней заменяются “заглушками”.
Таким образом, в любой момент разработки программного
комплекса имеется его действующий вариант.
Тестирование и отладка отдельных программных модулей и
программного комплекса в целом ведется по ходу его
проектирования.
Одно из средств реализации модульной структуры –
процедуры и функции.
Преимущества:
 с модулями удобнее работать, т. к. они позволяют
разрабатывать программные комплексы, которые легче
модифицировать;
 небольшие модули легче и эффективнее тестируются.
При нисходящей разработке проектирование программного
комплекса и кодирование программных модулей, входящих
в программный комплекс, ведется сверху вниз.
Проектирование сверху вниз
Пример:
Разработать программный комплекс, который рисует на
экране дисплея дачный участок, состоящий из дома, дороги,
забора, елки и сияющего на небе солнца.
Структурные диаграммы
Наглядные схемы, указывающие порядок соединения объектов.
Участок
Дом
Дорога
Забор
Солнце
Ёлка
Дом
Стена
Крыша
Дверь
Окно
Труба
Ёлка
Крона
Ствол
Если объединить все приведенные структурные диаграммы, то получим
первый вариант изображения структурной диаграммы программного
комплекса
Уровни
программных
модулей
Стена
Крыша
Участок
Управляющий
(главный)
программный
модуль
Дом
Дверь
Дорога
Окно
Забор
Труба
Солнце
Ёлка
Крона
Ствол
Подчиненные программные модули
Структурные диаграммы
Второй вариант представления структурной диаграммы
Уровни
программных
модулей
Участок
дом
дорога
забор
– Управляющий (главный)
программный модуль
солнце
ёлка
крона
стена
крыша
дверь
окно
труба
ствол
П
о
д
ч
и
н
е
н
н
ы
е
п
р
о
г
р
а
м
м
н
ы
е
м
о
д
у
л
и
Разбиение программы на модули представляет одну
из достаточно ответственных и сложных задач, так
как влияет:
 на дальнейший ход разработки программного
комплекса,
 его надежность, эффективность,
 продолжительность тестирования и отладки,
 сопровождение и возможность использования
стандартных программных процедур.
Свойства программных модулей
1)
2)
3)
4)
5)
6)
7)
Программный модуль должен иметь один вход и один
выход;
Программный модуль должен решать самостоятельную
задачу;
Работа программного модуля не должна зависеть:
- от входных данных;
- от того, какому программному модулю предназначены
его выходные данные;
- от предыстории вызовов программного модуля.
Программный модуль должен возвращать управление
тому программному модулю, который его вызвал;
Программный модуль может вызывать другой
программный модуль;
Размер программного модуля желательно ограничить
одной - двумя страницами исходного текста (листинга).
Программный модуль должен иметь спецификацию.
Кодирование и тестирование сверху вниз
Для ознакомления с методикой кодирования и тестирования сверху вниз,
рассмотрим структурную диаграмму некоторого программного комплекса.
М1
М2
Уровни
программных
модулей
– Управляющий (главный)
программный модуль
М3
М4
М5
М6
Структурная диаграмма является трехуровневой и состоит из 6
программных модулей. Модуль первого уровня - М1 (управляющий)
вызывает три программных модуля второго уровня М2, М3, М4.
Модуль
второго уровня М4 вызывает модули третьего уровня М5 и М6.
Кодирование и тестирование сверху вниз
М1
заглушка М2 заглушка М3 заглушка М4
М1
М2
заглушка М3 заглушка М4
М3
Затем кодируется и тестируется
программный модуль М2.
Программные модули М3 и М4
по-прежнему остаются
заглушками
Аналогично подключают
программный модуль М3.
М1
М2
Кодирование и тестирование
начинается с управляющего
программного модуля М1.
Вместо программных модулей
второго уровня используются
заглушки.
заглушка М4
Кодирование и тестирование сверху вниз
М1
М2
М3
М4
заглушка М5
Для того, чтобы подключить к
программному комплексу модуль М4,
необходимо вызываемые модули М5
и М6 заменить заглушками.
заглушка М6
М1
М2
М3
Сначала кодируется и
тестируется модуль М5.
Затем – модуль М6.
М4
М5
Завершив тестирование и
отладку программных модулей
второго уровня, приступают к
кодированию и тестированию
программных модулей третьего
уровня М5 и М6.
заглушка
М6 М6
Как следует из приведенных диаграмм, помимо тестирования и отладки каждого
программного модуля одновременно ведется тестирование и отладка
программного комплекса в целом. В результате, после каждого вновь
подключаемого программного модуля имеется работающий вариант программного
комплекса
Структурное кодирование
Структурное кодирование (программирование) - это метод
кодирования (программирования), предусматривающий
создание понятных, простых и удобочитаемых программных
модулей и программных комплексов на требуемом языке
программирования.
Для кодирования программных модулей используются
унифицированные (базовые) структуры.
(См. «Структурированная методика»)
Программные комплексы и программные модули,
закодированные в соответствии с перечисленными
правилами структурированного программирования,
называются структурированными.
Сквозной контроль
- это проверка программного комплекса, выполняемая на
основе изучения его группой специалистов.
На протяжении всего времени существования
программного комплекса может осуществляться несколько
проверок, охватывающих все этапы его разработки.
Помните – «цена» ошибок возрастает при их
обнаружении на более поздних этапах разработки
программного обеспечения.
Download