Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоргалка .docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
7.52 Mб
Скачать

48.Технологии разработки программного обеспечения: программирование сверху - вниз

Программирование сверху –вниз –это некоторая многоуровневая дисциплина написания программ. На верхнем уровне, исходный алгоритм представляется в виде иерархической системы, элементы которой описываются на естественном для данной проблемы языке. Каждое такое описание, рассматривается, как последовательность комментариев, заготовок или команд некоторой гипотетической проблемно –ориентированной машины. Каждая команда такой машины моделируется или расписывается командами другой гипотетической машины, более низкого уровня, до команд реальной машины или операторов языка программирования. На рис.18 представлена унифицированная форма организации ПС проектирования ТП. Уровни детализации можно развивать и далее. Проектирование ПС ведется так, что описание системы на верхнем уровне, не зависит от описания блоков на низком уровне. Вся система проектируется и отлаживается по уровням – сверху–вниз. Каждый верхний уровень отлаживается на тестах, полученных и проверенных на предыдущем верхнем уровне. В целом, технология программирования сверху –вниз, позволяет:

  1. Начать программирование почти одновременно и параллельно с разработкой алгоритмов;

  2. Формально, в виде программы некоторой гипотетической машины, фиксировать каждый этап разработки соответствующего алгоритма;

  3. Легко модифицировать программу по уровням, путем замены одной гипотетической машины на другую;

44. Вопросы разработки и внедрения пакетов прикладных программ: изготовление несерийных компонент

Целью проведения работ на этой стадии является создание работоспособного комплекса средств автоматизации проектирования (КСАП).

Выделяют следующие этапы:

  • изготовление компонентов КСАП;

  • автономная отладка и испытание компонентов КСАП;

  • подготовка организации к вводу в действие САПР;

  • строительно-монтажные работы;

  • комплектация САПР поставляемыми комплексами средств, (техническими, программными и др. средствами);

  • пуско-наладочные работы (комплексная отладка КСАП).

При создании САПР изготовлению подлежат компоненты технического, программного и информационного обеспечений САПР.

47. Технологии разработки программного обеспечения: модульное программирование

Модульное программирование получило широкое распространение. Под модули-зацией понимается разделение программы на части по некоторым установленным правилам. Этими частями могут быть программные секции (в КОБОЛЕ), внутренние процедуры (в ПЛ/1 и ПАСКАЛЕ) или внешние процедуры (в ФОРТРАНЕ, КОБОЛЕ и ПЛ/1). В процедурных (алгоритмических) системах программирования есть специальная библиотека программ (модулей) и средства работы с этой библиотекой. По мере усложнения функций, возлагаемых на ЭВМ, росла и сложность программ. Первоначально библиотека программ использовалась для уменьшения дублирования в работе программиста. Затем при создании сложных ПС возможности процедурных систем программирования (имеется в виду возможность организации библиотеки модулей) стали использоваться для обеспечения создания сложных программ одним или коллективом программистов. Это объяснялось тем, что сложность прикладных программ возросла на столько, что трудно было писать её как единое целое или разрабатывать одним программистом. Программы стали слишком велики, чтобы их можно было представить во всех подробностях как единое целое и поместить в памяти ЭВМ целиком. Поэтому сложность программ долгое время вызывала трудности при проектировании ПС.

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

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

Основная черта модульного программирования – это стандартизация и паспортизация интерфейса между отдельными программными единицами. Модуль – это отдельно функционально законченная программная единица, которая структурно идентифицируется (или оформляется) стандартным образом по отношению к компилятору и по отношению к объединению её с другими аналогичными единицами в загрузке. В общем случае любая программа имеет внешние и внутренние потоки данных, области хранения данных. Поэтому, как правило, модуль содержит паспорт, в котором указаны все основные его характеристики: язык программирования, объем, входные и выходные переменные, их формат, точки входа в модуль, параметры настройки и т.д. Объем модуля, обычно не превышает 1000 команд ЭВМ или операторов языка программирования. Наиболее оптимальный по размеру модуль, как правило, уменьшается на одном месте распечатки на АЦПУ. В этом случае, модульная система, будет наиболее технологичной.

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

Модульное программирование, обладает следующими преимуществами:

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

  2. модульная программа, легче сопровождается и модифицируется, т.к. функциональные компоненты могут быть изменены, переписаны или заменены, без изменения, в остальных компонентах;

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

Но, модульное программирование, имеет и недостатки:

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

  2. возрастают затраты времени центрального процессора на выполнение программы и занимается несколько больший объем памяти под программу (на ~5 –10%), т.к. необходимо при входе и выходе из подпрограммы, выполнять команды, обеспечивающие их совместимость с программой более высокого уровня;

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