Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программная инженерия.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.01 Mб
Скачать

5Подходы к проектированию по

5.1Нисходящий и восходящий подходы к разработке программ

Имеется 2 принципиально различных метода структурного проектирования программ: метод нисходящего (сверху вниз) и метод восходящего (снизу вверх) проек­тирования. Более прогрессивный современный метод разработки программ предполагает использование структурного программирования и метода нисхо­дящего проектирования программ.

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

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

5.2Макетирование

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

Модель может принимать одну из трех форм;

  • бумажный макет или макет на основе ПК (изображает или рисует человеко-машинный диалог);

  • работающий макет (выполняет некоторую часть требуемых функций);

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

Макетирование основывается на многократном повторении итераций, в которых участвуют заказчик и разработчик (рис. 1.2):

  • построение или уточнение модели;

  • оценка макета заказчиком;

  • ожидание заказчика.

Рис. 1.2. Итерации макетирования

Достоинство макетирования: обеспечивает определение полных требований к ПО.

Недостатки макетирования:

  • заказчик может принять макет за продукт;

  • разработчик может принять макет за продукт.

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

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

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

Структурное программирование (СП) – это совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки ПО.

В основе СП лежит декомпозиция сложных систем с целью реализации в виде отдельных небольших подпрограмм (до 40 ... 50 операторов).

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

  • определяется общая структура программы в виде одного из трех вариантов:

  • последовательности подзадач (например, ввод данных, преобразование данных, вывод данных),

  • альтернативы подзадач (например, добавление записей к файлу или их поиск),

  • повторения подзадачи (например, циклически повторяемая обработка данных);

  • каждая подзадача, в свою очередь, разбивается на подзадачи с использо­ванием тех же структур;

  • процесс продолжается, пока на очередном уровне не получается подзадача, которая достаточно просто реализуется средствами используемого языка (1 - 2 управляющих оператора языка).

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

Поддержка принципов СП была заложена в основу процедурных языков программирования. Они включали основные «структурные» операторы управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. Наиболее известные – PL/I, ALGOL-68, Pascal, С.