Письмо 02 - Введение

В этом письме будут рассмотрены концептуальные положения объектной технологии. Дело в том, что многие исследователи не только рассматривают различные положения, но и трактовка этих положений существенно различается. Как следствие получается расхождение в объектных моделях и, соответственно, в возможностях заложенных в этих моделях. Очень часто объектную модель воплощают в каком-то одном языке, и оценка модели основывается на оценке возможностей предоставляемых языком. Такая практика порочна по своему существу. Дело в том, что одна и та же модель может быть различно реализована в различных языках программирования. Поэтому более правильно обсуждать различные объектные модели и только в рамках одинаковых моделей сравнивать языки. Это с одной стороны. С другой стороны, сегодня надо отходить от универсальных языков высокого уровня, одинаково пригодных для любого применения. Современные системы слишком сложны и разносторонни, чтобы их можно было эффективно создавать с помощью какого-то одного языка. Никого не удивляет тот факт, что создание приложений ведётся с помощью 3GL. Работа с базами данных из того же приложения происходит с помощью SQL, реже с помощью QBE. Создание интерфейса с пользователем осуществляется на специальном языке (те, кто пишет под Windows, могут посмотреть на структуру RC-файлов). Наконец, межпрограммные и межкомпьютерные коммуникации реализуются посредством прикладного API, который тоже представляет собой псевдоязык. Список можно продолжить, рассматривая более специализированные системы и/или подсистемы.

При рассмотрении объектных моделей обычно выделяют три основных концептуальных положения: инкапсуляция, полиморфизм и наследование. Действительно, эти положения являются наиболее важными для описания основ объектной технологии, хотя их одних недостаточно. Поэтому в этом письме будут рассмотрены эти три положения, а следующее письмо введёт в круг основных положений агрегацию и следующие из неё положения: конструирование, локализация и абстракция.

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

Сайт Alexus Software Development