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

 

В основе операции декомпозиции задачи на подзадачи лежит принцип рас­крытия абстракции.

Абстрактной инструкцией, или просто абстракцией, назовем инструкцию, описывающую действие, выполнить которое процессор не может на данном уров­не проектирования. Другими словами, абстракция есть инструкция обращения к алгоритму, которого еще не существует. Этим абстрактная инструкция отличается от элементарной инструкции вызова процедуры, которая обращается к реаль­ной процедуре.

Абстрактная инструкция не может быть выполнена, так как ссылается на абстрактный алгоритм, который еще не разработан и который, в свою очередь, может тоже содержать абстракции.

Сегмент - это алгоритм, содержащий абстракции. Именно наличием абстракции объясняется свойство сегмента порождать другой сегмент.

Раскрытие абстракции состоит в разделении действия на композицию дру­гих, более простых действий с использованием введенных выше правил декомпо­зиции. Таким образом, нисходящее проектирование - это процесс раскрытия аб­стракций. Этот процесс можно свести к последовательности элементарных шагов, если связать каждый шаг с одной управляющей структурой : следование, выбор или повторение.

На каждом следующем уровне детализации логика работы модуля будет описываться все точнее и ближе к реальному алгоритму. Когда получим алго­ритм, у которого все абстракции раскрыты в элементарные инструкции языка проектирования, можно считать, что процесс разработки алгоритма завершен.

 

Общие принципы, ко­торых следует придерживаться на каждом шаге декомпозиции в процессе разра­ботки.

1. Концентрируйте внимание прежде всего на самом существенном, отвле­каясь от мелочей.

2. Прежде чем раскрыть абстракцию, оцените принятое решение, сравните с другими возможными вариантами декомпозиции.

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

4. Если на каком-либо шаге встретились непредвиденные проблемы, поста­райтесь еще раз пересмотреть решения, принятые на предыдущих шагах, и, если требуется, заменить их на другие варианты.

 

Элементами декомпозиции задачи на подзадачи являются сегменты. Каж­дый сегмент является результатом раскрытия некоторой абстракции, заключенной в сегменте более высокого уровня.

На языке Паскаль будем описывать абстрактное действие в виде комментария, обрамленного рамкой.

При раскрытии абстракции используются две формы сегмента: форму блока (сегмент - блок) и форму процедуры (сегмент - процедура).

Сегмент описывается в виде блока, если он не реализует типовой алгоритм, а выделен с целью облегчения анализа и разработки алгоритма. На языке Паскаль он может быть закодирован либо в виде фрагмента программы, который в даль­нейшем будет подставлен после порождающей его абстракции, либо в виде про­цедуры без параметров.

Сегмент описывается в виде процедуры, если он реализует типовой алго­ритм, который может носить универсальный характер. На языке Паскаль он реа­лизуется в виде процедуры с параметрами.

28. Рабочий проект программы. Top-down граф.

29. Правила получения окончательной программы. Документация проекта.

 

30. Начальные шаги проектирования программы. Связь с внешней спецификацией. Основные варианты абстракций верхних уровней.

Дата: 2019-02-19, просмотров: 191.