Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_Информатика-344 готовый.doc
Скачиваний:
33
Добавлен:
30.04.2019
Размер:
4.96 Mб
Скачать

§6.7. Структурное программирование

Сущность структурного подхода к разработке ПО заключается в его декомпозиции на автоматизируемые функции: система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, те – на задачи и так далее до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором взаимоувязаны все составляющие компоненты.

Саму концепцию структурного программирования в 1968 г. разработал голландский ученый Эдсгер Дейкстра1.

Структурное программирование основано на двух основных идеях:

  • пошаговая детализация алгоритма (метод «сверху вниз»);

  • модульная структура программы.

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

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

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

  • один вход и один выход;

  • обозримый по размеру и сложности программный элемент;

  • функциональная завершенность;

  • логическая независимость (результат работы программного модуля не зависит от работы других модулей);

  • слабые информационные связи с другими модулями.

Каждый модуль состоит из спецификации и тела. Спецификация определяет правила использования модуля, а тело – способ реализации процесса обработки.

Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами. Например, применительно к СУБД отдельными модулями могут быть экранные формы, отчеты, макросы и др.

Все наиболее распространенные методы структурного подхода базируются на двух базовых принципах:

  • принцип «разделяй и властвуй» (divide et impera) – декомпозиция системы на небольшие подсистемы, каждую из которых можно разрабатывать независимо от других;

  • принцип иерархического упорядочения – организация составных частей системы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.

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

  • принцип абстрагирования – выделение существенных аспектов системы и отвлечение от несущественных;

  • принцип непротиворечивости – обоснованность и согласованность элементов системы;

  • принцип структурирования данных – данные должны быть структурированы и иерархически организованы.

В структурном подходе в основном используется две группы средств, каждой из которых соответствуют определенные виды моделей (диаграмм).

1) В средствах, описывающих функциональную структуру системы, используется два вида моделей:

  • диаграммы потоков данных DFD (Data Flow Diagrams);

  • методика структурного анализа и проектирования SADT (Structured Analysis and Design Technique).

2) В средствах, описывающих отношения между данными, используются диаграммы «сущность-связь» ERD (Entity-Relationship Diagrams).

В CASE-средствах наиболее часто используются диаграммы потоков данных и диаграммы «сущность-связь».

На стадии формирования требований к программному обеспечению DFD и SADT используются для построения моделей «As-Is» (отражают существующую структуру бизнес-процессов организации и взаимодействие между ними) и «To-Be» (отражают предлагаемую структуру). Использование SADT-моделей, как правило, ограничивается только данной стадией, поскольку они изначально не предназначались для проектирования ПО. С помощью ERD выполняется описание используемых данных на концептуальном уровне, не зависящим от средств реализации базы данных и используемой СУБД.

На стадии проектирования DFD используются для описания структуры проектируемого ПО, при этом они могут уточняться, расширяться и дополняться новыми конструкциями. Аналогично ERD уточняются и дополняются новыми конструкциями, описывающими представление данных на логическом уровне, пригодном для последующей генерации схемы базы данных. Данные модели могут дополняться диаграммами, отражающими системную архитектуру ПО, структурные схемы программ, иерархию экранных форм или меню и др.