Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы_2007.doc
Скачиваний:
56
Добавлен:
26.09.2019
Размер:
4.91 Mб
Скачать
  1. Модульно – иерархическое построение программы. Основные принципы структурной методологии.

Проектирование комплекса программ должно подчиняться определенным правилам.

Принцип абстракции

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

На принципе абстракции основываются многие структурные методы, например, восходящая и нисходящая стратегии программирования.

Принцип формальности

Формальность предполагает строгий методический подход.

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

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

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

  1. Типовая структура модуля.

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

Типовую структуру модуля можно построить с учетом структурных принципов проектирования.

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

Типовую структуру модуля можно представить на рисунке 10.1

Заголовок модуля включает его имя, комментарий и совокупность формальных параметров.

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

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