Наконец, объектная модель ориентирована на человеческое восприятие мира, или, по словам Робсона, "многие люди, не имеющие понятия о том, как работает компьютер, находят вполне естественным объектно-ориентированный подход к системам" [84].
Использование объектного подхода
Возможность применения объектного подхода доказана для задач самого разного характера. На рис. 2-6 приведен перечень областей, для которых реализованы объектно-ориентированные системы. Более подробные сведения об этих и других проектах можно найти в приведенной библиографии.
В настоящее время объектно-ориентированное проектирование - единственная методология, позволяющая справиться со сложностью, присущей очень большим системам. Однако, следует заметить, что иногда применение OOD может оказаться нецелесообразным, например, из-за неподготовленности персонала или отсутствия подходящих средств разработки. К этой теме мы вернемся в главе 7.
Открытые вопросы
Чтобы успешно использовать объектный подход, нам предстоит ответить на следующие вопросы:
• Что такое классы и объекты?
• Как идентифицировать классы и объекты в конкретных приложениях?
• Как описать схему объектно-ориентированной системы?
• Как создавать хорошо структурированные объектно-ориентированные системы?
• Как организовать управление процессом разработки согласно OOD? Этим вопросам посвящены следующие пять глав.
Выводы
• Развитие программной индустрии привело к созданию методов объектно-ориентированного анализа, проектирования и программирования, которые служат для программирования "в большом".
• В программировании существует несколько парадигм, ориентированных на процедуры, объекты, логику, правила и ограничения.
• Абстракция определяет существенные характеристики некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, абстракция четко очерчивает концептуальную границу объекта с точки зрения наблюдателя.
• Инкапсуляция - это процесс разделения устройства и поведения объекта; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации.
Авиационное оборудование Обработка коммерческой информации
Автоматизация учреждений Операционные системы
Автоматизированное проектирование Планирование инвестиций
Автоматизированное обучение Повторно используемые компоненты
Автоматизированное производство программного обеспечения Подготовка документов
Анимация Программные средства космических станций
Базы данных Проектирование интерфейса пользователя
Банковское дело Проектирование СБИС
Гипермедиа Распознавание образов
Кинопроизводство Робототехника
Контроль программного обеспечения Системы телеметрии
Математический анализ Системы управления и регулирования
Медицинская электроника Средства разработки программ
Моделирование авиационной и космической техники Телекоммуникации
Музыкальная композиция Управление воздушным движением
Написание сценариев Управление химическими процессами
Нефтяная промышленность Экспертные системы
•
•
•
•
•
Дополнительная литература
Концепция объектной модели была впервые введена Джонсом (Jones) [F 1979] и Вильям-сом (Williams) [F 1986]. Диссертация Кэя (Кау) [F 1969] дала направление большой части дальнейших работ по объектно-ориентированному программированию.
Шоу (Shaw) [J 1984] дала блестящий обзор механизмов абстракции в языках программирования высокого уровня. Теоретические обоснования абстракции можно найти в работах Лисков и Гуттага (Liskov and Guttag) [H 1986], Гуттага (Guttag) [J 1980] и Хилфингера Hilfinger [J 1982]. Работа Парнаса (Parnas) [F 1979] по скрытию информации была очень плодотворна. Смысл и значение иерархии обсуждается в работе под редакцией Пати (Pattee) [J 1973].