
- •1. Основные понятия объектно-ориентированного подхода
- •1.1. Объектно-ориентированная разработка программ
- •1.2. Объектно-ориентированные языки программирования
- •1.3. Сквозной пример
- •2. Первая фаза жц - анализ требований и предварительное проектирование системы. Объектно-ориентированное моделирование
- •2.1. Объектная модель системы
- •2.2. Построение объектной модели
- •2.3. Пример объектной модели
- •2.4. Выделение подсистем
- •2.5. Динамическая модель системы или подсистемы
- •2.6. Функциональная модель подсистемы
- •2.7. Заключительные замечания к разделу
- •3. Вторая фаза жц - конструирование системы
- •3.1. Разработка архитектуры системы
- •3.2. Архитектура системы управления банковской сетью
- •3.3. Разработка объектов
- •4. Сравнительный анализ оо методологий разработки программных систем
- •4.1. Методология omt
- •4.2. Методология sa/sd
- •4.3. Методология jsd
- •4.4. Методология osa
- •5. Третья фаза жц - реализация объектно-ориентированного проекта
- •5.1. Объектно-ориентированный стиль программирования
- •5.2. Объектно-ориентированные системы программирования
- •5.4. Другие объектно-ориентированные системы программирования
- •5.5. Не объектно-ориентированные системы программирования
1. Основные понятия объектно-ориентированного подхода
Объектно-ориентированный (ОО) подход основан на систематическом использовании моделей для языково-независимой разработки программной системы (ПС), на основе из ее прагматики. Последний термин нуждается в пояснении. Прагматика определяется целью разработки ПС: для обслуживания клиентов банка, для управления работой аэропорта и т.п. В формулировке цели участвуют предметы и понятия реального мира, имеющие отношение к разрабатываемой программной системе (см. рис. 1.1). При ОО подходе эти предметы и понятия заменяются моделями, т.е. определенными формальными конструкциями, представляющими их в ПС.
Рис. 1.1. Семантика (смысл программы с точки зрения выполняющего ее компьютера) и прагматика (смысл программы с точки зрения ее пользователей)
Модель содержит не все признаки и свойства представляемого ею предмета (понятия), а только те, которые существенны для разрабатываемой ПС. Тем самым модель "беднее", а, следовательно, проще представляемого ею предмета (понятия). Но главное даже не в этом, а в том, что модель есть формальная конструкция: формальный характер моделей позволяет определить формальные зависимости между ними и формальные операции над ними. Это упрощает как разработку и изучение (анализ) моделей, так и их реализацию на компьютере. В частности, формальный характер моделей позволяет получить формальную модель разрабатываемой ПС как композицию формальных моделей ее компонентов.
Таким образом, ОО подход помогает справиться с такими сложными проблемами, как
уменьшение сложности программного обеспечения (ПО);
повышение надежности ПО;
обеспечение возможности модификации отдельных компонентов ПО без изменения остальных его компонентов;
обеспечение возможности повторного использования отдельных компонентов ПО.
Систематическое применение ОО подхода позволяет разрабатывать хорошо структурированные, надежные в эксплуатации, достаточно просто модифицируемые ПС. Этим объясняется интерес программистов к ОО подходу и ООЯ программирования. ОО подход является одним из наиболее интенсивно развивающихся направлений теоретического и прикладного программирования.
Объектно-ориентированный подход имеет два аспекта:
объектно-ориентированная разработка ПО;
объектно-ориентированная реализация ПО.
1.1. Объектно-ориентированная разработка программ
ОО разработка ПО связана с применением ОО моделей при разработке ПС и их компонентов. Говоря об ОО разработке, я имею в виду:
объектно-ориентированные методологии (технологии) разработки ПС;
инструментальные средства, поддерживающие эти технологии.
ОО разработка может начаться на самом первом этапе ЖЦ; она не связана с языком программирования, на котором предполагается реализовать ПС: этот язык может и не быть ОО. На этапе разработки объекты - это некоторые формальные конструкции (например, прямоугольники с закругленными углами, с помощью которых они изображаются на схемах), никак пока не связанные с их будущей реализацией на одном из языков программирования.
ОО разработка ПО связана с применением ОО методологий (технологий). Обычно эти ОО методологии поддерживаются инструментальными программными средствами, но и без таких средств они полезны, так как позволяют понять различные аспекты и свойства разрабатываемой ПС, что в последующем существенно облегчает ее реализацию, тестирование, сопровождение, разработку новых версий и более существенную модификацию.