Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_programmirovaniyu.docx
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
863 Кб
Скачать
☆
  1. Методы разработки структуры программ

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

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

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

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

Недостатки метода восходящей разработки заключаются в  следующем:

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

спецификаций на верхнем уровне;

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

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

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

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

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

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

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

заменяются их имитаторами (так называемыми «заглушками» [45]). Каждый имитатор модуля является простым  программным фрагментом, реализующим сам факт обращения к  данному модулю с необходимой для правильной работы программы обработкой значений его входных параметров и с выдачей, если это необходимо, подходящего результата. Далее производится

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

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

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

используемых в программе модулей.

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

Конструктивный подход

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

Архитектурный подход

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

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

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

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

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

 

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