Нисходящее и восходящее проектирование. Привет студент На чем основано нисходящее проектирование

Нисходящее и восходящее проектирование. Привет студент На чем основано нисходящее проектирование

Подпрограммы

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

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

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

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

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

Такой подход удобен тем, что позволяет человеку постоянно мыслить на предметном уровне, не опускаясь до конкретных операторов и переменных. Вместе с тем, появляется возможность некоторые подпрограммы не реализовывать сразу, а временно откладывать, пока не будут закончены другие части. К примеру, если имеется крайне важность вычисления сложной математической функции, то выделяется отдельная подпрограмма такого вычисления, но реализуется она временно одним оператором, который просто присваивает заранее выбранное значение (к примеру, 5). Когда всœе приложение будет написано и отлажено, тогда можно приступить к реализации этой функции.

Немаловажно, что небольшие подпрограммы значительно проще отлаживать, что существенно повышает общую надежность всœей программы.

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

Рассмотрим пример, демонстрирующий методику нисходящего проектирования. Имеется массив Ocenki, состоящий из N (N > 2) судейских оценок (каждая оценка положительна). В некоторых видах спорта принято отбрасывать самую большую и самую маленькую оценки, чтобы избежать влияния необъективного судейства, а в зачет спортсмену идет среднее арифметическое из оставшихся оценок. Решим эту задачу, постепенно детализируя алгоритм (без привязки к конкретному языку программирования).

1. Процесс решения наиболее просто описывается подпрограммами:

Ввести_оценки_в_массив;

Удалить_самую_большую_оценку;

Удалить_самую_маленькую_оценку;

Вывести_результаты;

Теперь можно приступить к детализации каждой их этих подпрограмм.

2. Удалить_самую_большую_оценку;

Как удалить самую большую оценку из статического массива? Вместо нее можно просто записать значение 0, а при подсчете среднего арифметического нулевые значения не учитывать.

I = Номер_самого_большого_элеменша_в_массиве;

3. Удалить_самую_маленькую_оценку;

I = Номер_самого_маленького_элемента_в_массиве;

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

Здесь потребуется оператор цикла, вычисляющий сумму всœех элементов массива Ocenki.

FOR I = 1 ТО N

SUM = SUM + Ocenki(I)

SUM = SUM / (N - 2)

В последнем операторе происходит вычисление среднего арифметического всœех оценок. Сумма элементов массива делится на число элементов, уменьшенное на 2, потому что две оценки, самую большую и самую маленькую, учитывать не нужно.

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

Реализацию подпрограмм Номер_самого_большого_элемента_в_массиве и Номер_ самого_маленького_элемента_в_массиве выполните самостоятельно.


  • - Тема 3.2 Нисходящее проектирование

    Метод нисходящего проектирования предполагает последовательное разло- жение общей функции обработки данных на простые функциональные элементы ("сверху- / вниз"). В результате строится иерархическая схема, отражающая состав и взаимопод-чиненность отдельных... [читать подробенее]


  • - Нисходящее проектирование

    Занятие 12-2 часа Метод нисходящего проектирования предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы ("сверху- / вниз"). В результате строится иерархическая схема, отражающая состав и взаимоподчиненность... [читать подробенее]


  • - Маршруты проектирования могут начинаться с нижних иерархических уровней описаний (восходящее проектирование) либо с верхних (нисходящее проектирование).

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

  • Вопрос 4. Восходящее и нисходящее проектирование.

    Наименование параметра Значение
    Тема статьи: Вопрос 4. Восходящее и нисходящее проектирование.
    Рубрика (тематическая категория) Производство

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

    Кроме процедур детализации на иерархические уровни при блочно-иерархическом подходе к проектированию ЭС применяют расчленение представлений об изделии на ряд аспектов по характеру отображаемых свойств.

    К числу базовых аспектов относятся функциональный, конструкторский и топологический .

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

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

    На системном уровне в качестве систем фигурируют комплексы, а в качестве элементов – блоки аппаратуры.

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

    На схемотехническом уровне эти блоки рассматриваются как системы, состоящие из схематических компонентов.

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

    Конструкторскому аспекту соответствует иерархия конструктивов, включающая уровни описания компонентов изделия, дискретных элементов и микросхем и топологических фрагментов.

    В технологическом аспекте рассматриваются иерархические уровни описания технологических процессов в виде маршрутов проектирования, совокупности операций и переходов.

    Учитывая зависимость оттого в какой последовательности выполняются проектные процедуры различают два способа проектирования:

    Восходящее проектирование - ϶ᴛᴏ проектирование, при котором выполнение процедур низких уровней предшествует выполнению проектных процедур, относящихся к более высоким иерархическим уровням (ᴛ.ᴇ. – снизу вверх).

    Нисходящее проектирование - ϶ᴛᴏ проектирование сверху вниз, и характеризуется противоположной последовательностью выполнения процедур.

    Типичная последовательность процедур нисходящего проектирования ЭС, включает в себя:

    - системно-техническое проектирование - ϶ᴛᴏ анализ тактико-технических требований на проектировании комплекс определœенных основ принципов функционирования, выработка структурных схем.

    - схемотехническое проектирование - ϶ᴛᴏ выработка функциональных и принципиальных схем.

    - конструкторское проектирование - ϶ᴛᴏ выбор формы, компоновки и размещения конструктивов, трассировка межсоединœений и выработка конструкторской документации.

    - технологическое проектирование - ϶ᴛᴏ выработка маршрутов и технологической базы, выбор оснастки.

    Нисходящее проектирование (рис. 3).

    Рис. 3 Последовательность этапов нисходящего проектирования ЭС

    Типичная последовательность процедур восходящего проектирования включает в себя (рис. 4).:

    Приборно-технологическое проектирование - ϶ᴛᴏ выбор базовой технологии, расчёт диффузии профиля, выбор топологии компонентов.

    Схемотехническое проектирование - ϶ᴛᴏ синтез принципиальной электрической схемы, оптимизация параметров элементов.

    Функционально-логическое проектирование - ϶ᴛᴏ синтез логических схем, реализация памяти, синтез контролирующих и проверяющих тестов.

    Конструкторско-технологическое проектирование - ϶ᴛᴏ размещение элементов, трассировка межсоединœений, проверка соответствия топологических и электрических схем, вычерчивание послойной топологии.

    Рис. 4 Последовательность этапов восходящего проектирования, характерная для проектирования интегральных схем (ИС)

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

    Алгоритм получения проектного решения представлен на рисунке 5

    Рис. 5 Алгоритм выполнения проектной процедуры

    Анализ - процедура мысленного или реального расчленения предмета͵ свойства предмета или отношения между предметами (явлениями или процессами) на части и выявление взаимосвязей между этими частями.

    Аналитические процедуры являются одними из главных приёмов получения новых творческих результатов.

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

    Оценка - установление соответствия качества предмета (продукта разработки) предъявляемым требованиям.

    Вопрос 4. Восходящее и нисходящее проектирование. - понятие и виды. Классификация и особенности категории "Вопрос 4. Восходящее и нисходящее проектирование." 2017, 2018.

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

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

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

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

    Принципы системного проектирования

    Системное проектирование должно базироваться на системном подходе. В настоящее время ещё нельзя утверждать, что известны их полные состав и содержание применительно к проектной деятельности, однако можно сформулировать наиболее важные из них:

    · Практическая полезность:

    o деятельность должна быть целенаправленной , устремленной на удовлетворение действительных потребностей реального потребителя или определенной социальной, возрастной или иной групп людей;

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

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

    · Единство составных частей:

    o целесообразно любой объект, сложный ли он или простой, рассматривать как систему , внутри которой можно выделить логически связанные более простые части - подсистемы , единство частных свойств которых и образует качественно новые свойства объекта-системы;

    o разрабатываемые объекты предназначены для людей, ими создаются и эксплуатируются. Поэтому человек также обязан рассматриваться в качестве одной из взаимодействующих систем. При этом должно приниматься во внимание не только физическое взаимодействие, но и духовно-эстетическое воздействие;

    o внешняя, или как её ещё называют - жизненная среда , также должна рассматриваться в качестве системы, взаимосвязанной с проектируемым объектом;

    · Изменяемость во времени:

    o учёт этапов жизненного цикла объекта;

    o учёт истории и перспектив развития и применения разрабатываемого объекта, а также областей науки и техники, на достижениях которых базируются соответствующие разработки.

    Нисходящее и восходящее проектирование

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

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

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

    магистерская работа

    1.1.2 Последовательное проектирование (нисходящее и восходящее)

    Процесс проектирования изделий с использованием САПР, как правило, может быть реализован в виде двух возможных вариантов:

    ѕ нисходящего (сверху вниз);

    ѕ восходящего (снизу вверх) проектирования.

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

    Рисунок 1.3 - Принципиальное отличие восходящего и нисходящего вариантов проектирования изделия

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

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

    При восходящем проектировании разработка идёт снизу вверх. На первом этапе разрабатываются изделия самого низкого уровня (геометрия конкретных деталей и агрегатов). На следующем к ним подключаются изделия более высокого уровня (создание комплексов деталей - узлов) и проверяется их работоспособность. На завершающем этапе проектирования разрабатывается управляющая сборка, отвечающая за логику работы всего изделия.

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

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

    Проектирование твердотопливного ракетного двигателя третьей ступени трехступенчатой баллистической ракеты

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

    Разработка жидкостного ракетного двигателя первой ступени ракетоносителя

    На рисунке 9 изображена пневмогидравлическая схема ДУ ЖРД 1-й ступени, работающего на керосине и кислороде. На схеме линиями изображены трубопроводы, двойными линиями - механические связи. К схеме прилагается перечень агрегатов (таблица 1)...

    Разработка микроспутника связи

    К задачам баллистического проектирования относят: 1) построение трассы, 2) определение характеристик зоны обзора специальной аппаратурой, 3) определение зон видимости КА...

    ракетный космический инженерный автоматизированный Проектирование - процесс создания проекта, прототипа, прообраза предполагаемого или возможного объекта, состояния. В технике - разработка проектной...

    Управление инженерными данными на этапе концептуального проектирования ракеты-носителя

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

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

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

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

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

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

    Нисходящее программирование.

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

    На ранних стадиях проектирования могут быть получены исходные тексты модулей верхних уровней, что во многих случаях является важным, так как точность и полнота представления программы на реальном языке программирования значительно выше, чем при использовании псевдокода или схем алгоритмов;

    В процессе программирования вскрываются противоречия и трудности, которые могут оказаться незамеченными долгое время;

    Нисходящее проектирование может быть совмещено с выполнением отладки программы нисходящим методом.