Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_otvety_k_ekzamenu.doc
Скачиваний:
55
Добавлен:
13.04.2015
Размер:
786.94 Кб
Скачать

130

Просьба ответы не печатать жирными.

Как заполните ответ, уберите красный цвет.

1. Абстракция и декомпозиция. Основные виды декомпозиции программ.

АБСТРАКЦИЯ- способность в выбранный момент времени игнорировать несущественные в данный момент для понимания общей картины части информации.

ДЕКОМПОЗИЦИЯ- принцип разделения сложных систем и процессов на множество более простых отдельных отдельных частей, согласованно взаимодействующих друг с другом.

Функциональная декомпозиция

Простейшим способом устранения дупликации кода является метод ФУНКЦИОНАЛЬНОЙ ДЕКОМПОЗИЦИИ, предполагающий разбиение программы на более простые подпрограммы с передачей аргументов и возвращением результатов.

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

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

Структурно-функциональная декомпозиция

Взглянув на созданные функции можно сделать вывод, что практически всегда этот набор переменных передается единой группой. Это является явным признаком логической связанности этих данных, что следует подчеркнуть в виде СТРУКТУРЫ.

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

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

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

Модульная декомпозиция

МОДУЛЬНАЯ ДЕКОМПОЗИЦИЯ стимулирует повторное использование фрагментов программ за счет разбиения их на отдельные модули-файлы. Данный вид декомпозиции можно применить совместно как с функциональной декомпозицией, так и со структурно-функциональным подходом.

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

● заголовочный файл модуля

● файл реализации модуля

● клиентская часть, использующая модуль.

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

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