Книга: Основы объектно-ориентированного программирования
Четыре мира программной разработки
Четыре мира программной разработки
Из предшествующей дискуссии следует, что когда мы говорим об ОО-разработке, следует различать четыре отдельных мира:
[x]. Моделируемую систему, - внешнюю по отношению к программной системе, описываемую типами объектов и их абстрактными отношениями.
[x]. Частную конкретизацию внешней системы, состоящую из объектов с фиксированными отношениями.
[x]. Программную систему, состоящую из классов, связанных ОО-отношениями ("быть клиентом", "быть наследником").
[x]. Объектную структуру в том виде, в котором она существует в процессе выполнения программной системы, то есть множество программных объектов, связанных ссылками.
Соотношения между этими мирами представлены на рис.8.9.
Рис. 8.9. Формы и их экземпляры
И на программном и на внешнем уровне (нижняя и верхняя части рисунка) важно разграничить общие понятия и их конкретные реализации (классы и абстрактные отношения слева, объекты и отношения экземпляров справа). Данный момент уже обсуждался в дискуссии о сравнительной роли классов и объектов в предыдущей лекции. Применительно к отношениям необходимо отличать абстрактные отношения loved_one от множества связей loved_one, существующих между элементами конкретного множества объектов.
Это различие невыразимо ни в стандартных математических определениях понятия "отношение", ни в программистской терминологии, например в теории реляционных баз данных. Если ограничиться бинарными отношениями, то и в математике и в теории баз данных отношение определяется как множество пар в форме <x, y>, где x и y являются элементами заданных множеств TX и TY. В терминах программирования все x относятся к типу TX, а все y - к типу TY. Будучи пригодными для математиков, эти определения не подходят для целей моделирования, поскольку не позволяют различать абстрактные отношения и отношения конкретных экземпляров. При моделировании системы отношение "любит" имеет свои общие и абстрактные свойства, совершенно не зависящие от записи того, кто кого любит в конкретной группе людей в некоторый момент времени.
Это обсуждение будет продолжено в лекции 11, когда будут рассматриваться преобразования между абстрактными и конкретными объектами, и будет дано имя вертикальным стрелкам предыдущего рисунка - функция абстракции. (См. "Функции абстракции", лекция 11) |
- 1.8. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ
- 3. Участники разработки экспертных систем
- Часть III. Шаблоны разработки через тестирование
- 1.1. Схема и основные этапы разработки новой продукции
- Глава 33 Четыре маленьких шага к большим продажам на Amazon
- 5.5. ПРИМЕР РАЗРАБОТКИ ОПИСАНИЯ ПРОЦЕССА "КИПЯЧЕНИЕ ВОДЫ В ЧАЙНИКЕ"
- Три силы и четыре требования
- IBPP для разработки C++
- 1.2.4. Отражение материального мира
- Четырехэтапное рукопожатие
- 7.2. Этапы разработки
- Процесс разработки программного обеспечения