16
Модульность позволяет хранить абстракции отдельно. Таким
образом, разделение ИС на модули позволяет уменьшить ее сложность.
Необходимо разделить объекты в соответствии с логического
структурой Вашего проекта. Структура модуля должна быть достаточно
простой для восприятия; реализация каждого модуля не должна зависеть
от реализации других модулей.
При распределении объектов по модулям необходимо учитывать
тот факт, что поскольку модули служат в качестве элементарных и
неделимых блоков ИС, они могут быть использованы в системе
повторно.
Правильное разделение ИС на модули является почти такой же
сложной задачей, как выбор правильного набора абстракций. Деление
ИС на модули бессистемным образом может привести к гораздо худшим
результатам, чем отсутствие модульности вообще.
6.5. Иерархия
Абстракция – вещь полезная, но всегда, кроме самых простых
ситуаций, число абстракций в системе намного превышает наши
умственные возможности. Инкапсуляция позволяет в какой-то степени
устранить это препятствие, убрав из поля зрения внутренне содержание
абстракций. Модульность также упрощает задачу, объединяя логически
связанные абстракции по группам. Но значительное упрощение в
понимании сложных задач достигается за счет образования из
абстракций иерархической структуры.
Иерархия – это упорядочение абстракций, расположение их по
уровням.
В основе построения иерархии лежит концепция наследования, то
есть возможность определения нового класса на основе уже
имеющегося (базового). Один класс заимствует структурную часть
другого класса. Семантически, наследование описывает отношение
типа «is – a». Например, медведь есть млекопитающее, дом есть
недвижимость. Еще один пример: на основе класса, описывающего
объект «окружность», можно создать класс, описывающий объект
«кольцо». Причем часть свойств и методов у этих объектов будут
общими: координаты центра, радиус внешней окружности, метод
расчета длины внешней окружности.
6.6. Ассоциация
Пример. Желая автоматизировать розничную торговую точку, мы
выделяем две абстракции – товары и продажи. На рис.4. показана
ассоциация, которую мы при этом усматриваем. Класс «Товары» - это
то, что мы продали в некоторой сделке, а класс «Продажи» - это сама