Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты МП.docx
Скачиваний:
54
Добавлен:
27.03.2015
Размер:
145.11 Кб
Скачать

24. Модульно - блочная структура программы и правила локализации объектов.

Понятие модуля:

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

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

Назначение – определяется неформально как правило на псевдо языке.

Интерфейс – складывается из спецификаций объектов двух типов

1.Тип – Экспорт модуля – те объекты (константы, переменные, функции) которые реализуются данным модулем и могут быть использованы вне этих модулей.

2.Тип – Импорт модуля – те объекты которые используются в данном модуле.

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

Кроме импортированных и экспортированных объектов могут быть и внутренние объекты. Они скрыты от других модулей.

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

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

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

Нет жестких правил для определения модуля.

Принято различать следующие модули:

1.Головной – модуль управляющий запуском программного продукта.

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

3.Рабочий – модуль выполняющий функции обработки. Таких модулей может быть множество.

4.Сервисный – модуль обеспечивает обслуживание функции.

Взаимодействие объектов в программе :

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

Местом или областью локализации может быть:

1.Блок

2.Функция (то есть ее определение)

3.Модуль (файл)

4.Протатип функции

Каждый объект существует и доступен только в той области в которой он локализован то есть определен. Объект, определенный в блоке, называется локальным в функции - формальный объект (локальный) в модуле (функция, определение функции, определение констант) называется глобальным объектом. Этот объект характеризуется совокупностью атрибутов обьекта:

1.Одласть действия – часть программы в которой существует связь между некоторым именем объекта. По средствам имени обеспечивается обращение к объекту. Область действия имени начинается с точки где определен объект и заканчивается концом той области в которой он локализован (конец блока, модуля, файла).

2.Пространство имен – расширяет область действия имени – область в пределах которой имя должно быть уникальным. Имена переменных, имена функций, имена типов введенных пользователем должны быть уникальными в пределах их области действия. Если переменная определена в блоке, то ее имя уникально в блоке и т.д. (смотри структуры).

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

Кроме атрибутов определены следующие качества:

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

1.Локальной – локальную продолжительность имеют локальные объекты. Такие объекты создаются при входе в блок и не доступны при выходе из него.

2.Статической – статическая продолжительность определяет период существования объекта начиная с его определения и заканчивая концом программы то есть перестает существовать когда программа завершает работу (все функции имеют статическую продолжительность). Локальному объекту может быть приписана статическая продолжительность существования только явно. Память статическим объектам выделяется в начале выполнения программы когда эти объекты определяются и до конца существования программы.

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

Таки запросы могут быть созданы спец. объектом:

new, mallocна создание объекта.

delete, free - для удаления объекта.