Основы разработки программного обеспечения вычислительных систем. Милованов И.В - 30 стр.

UptoLike

30
МОДУЛЬНОСТЬ
В языках C++, Object Pascal абстракции классов и объектов форми-
руют логическую структуру системы. При производстве физической
структуры эти абстракции помещаются в модули. В больших системах,
где классов сотни, модули помогают управлять сложностью. Модули
служат физическими контейнерами, в которых объявляются классы и
объекты логической разработки.
Модульность определяет способность системы подвергаться деком-
позиции на ряд сильно связанных и слабо сцепленных модулей.
Общая цель декомпозиции на модули: уменьшение сроков разработ-
ки и стоимости ПС за счёт выделения модулей, которые проектируются и
изменяются независимо. Каждая модульная структура должна быть дос-
таточно простой, чтобы быть полностью понятой. Изменение реализации
модулей должно проводиться без знания реализации других модулей и без
влияния на их поведение.
Определение классов и объектов выполняется в ходе логической раз-
работки, а определение модулей в ходе физической разработки системы.
Эти действия сильно взаимосвязаны, осуществляются итеративно.
ИЕРАРХИЧЕСКАЯ ОРГАНИЗАЦИЯ
Мы рассмотрели три механизма для борьбы со сложностью:
абстракцию (она упрощает представление физического объекта);
инкапсуляцию (закрывает детали внутреннего представления аб-
стракций);
модульность (даёт путь группировки логически связанных абст-
ракций).
Прекрасным дополнением к этим механизмам является иерархиче-
ская организация формирование из абстракций иерархической структу-
ры. Определением иерархии в проекте упрощаются понимание проблем
заказчика и их реализация сложная система становится обозримой чело-
веком.
Иерархическая организация задаёт размещение абстракций на раз-
личных уровнях описания системы.
Двумя важными инструментами иерархической организации в объ-
ектно-ориентированных системах являются:
структура из классов («is a»-иерархия);
структура из объектов («part of»-иерархия).
Чаще всего «is а»-иерархическая структура строится с помощью на-
следования. Наследование определяет отношение между классами, где
класс разделяет структуру или поведение, определённые в одном другом
(единичное наследование) или в нескольких других (множественное на-
следование) классах.