Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_СИТ_1-55(все).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
656.9 Кб
Скачать

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

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

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

На практике обычно сочетают восходящее и нисходящее проектирование.

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

Унификация проектных решений и процедур проводится с целью улучшения технико-экономических показателей производства и эксплуатации изделий.

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

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

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

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

6. Развитие парадигмы программирования (Операциональное программирование, нисходящая технология конструирования программ. Структурное, модульное, объектное и объектно-ориентированное программирование)

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

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

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

Некоторые представители: Fortran, Pascal, C.

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

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

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

Объектно-ориентированное программирование

Представители объектно-ориентированных языков: С++, Java, Python.

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

ООП призвано решать более сложные и объемные задачи по сравнению с директивным программированием.

В основе ООП лежат такие понятия как наследование, полиморфизм и инкапсуляция.

Инкапсуляция предполагает, что малозначащие детали объекта скрыты. Объект, получая какую-либо команду, сам «знает» как ее обработать исходя из того, к какому классу он принадлежит.

Все объекты являются экземплярами классов, которые по отношению друг к другу могут выступать в роли родитель-потомок. Дочерние классы наследуют свойства родительского. В случае, когда 100% наследование не требуется, выручает так называемый полиморфизм, который предполагает переопределение методов родительского класса в дочерних классах.

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

Пример:ADA.

Операционное программирование. (ЭВМ 1-го поколения с 1945-1959 год).  ЭВМ того времени понимали только цифровые команды, и программы состояли из множества строк, состоящих из цифр, интерпретируемых центральным процессором.

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

Метод нисходящей разработки.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]