Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объектно-ориентированные языки программирования




Основные понятия объектно-ориентированного подхода

Объектно-ориентированный (ОО) подход основан на систематическом использовании моделей для языково-независимой разработки программной системы (ПС), на основе из ее прагматики. Последний термин нуждается в пояснении. Прагматика определяется целью разработки ПС: для обслуживания клиентов банка, для управления работой аэропорта и т.п. В формулировке цели участвуют предметы и понятия реального мира, имеющие отношение к разрабатываемой программной системе (см. рис. 1.1). При ОО подходе эти предметы и понятия заменяются моделями, т.е. определенными формальными конструкциями, представляющими их в ПС.

Рис. 1.1. Семантика (смысл программы с точки зрения выполняющего ее компьютера) и прагматика (смысл программы с точки зрения ее пользователей)

Модель содержит не все признаки и свойства представляемого ею предмета (понятия), а только те, которые существенны для разрабатываемой ПС. Тем самым модель "беднее", а, следовательно, проще представляемого ею предмета (понятия). Но главное даже не в этом, а в том, что модель есть формальная конструкция: формальный характер моделей позволяет определить формальные зависимости между ними и формальные операции над ними. Это упрощает как разработку и изучение (анализ) моделей, так и их реализацию на компьютере. В частности, формальный характер моделей позволяет получить формальную модель разрабатываемой ПС как композицию формальных моделей ее компонентов.

Таким образом, ОО подход помогает справиться с такими сложными проблемами, как

· уменьшение сложности программного обеспечения (ПО);

· повышение надежности ПО;

· обеспечение возможности модификации отдельных компонентов ПО без изменения остальных его компонентов;

· обеспечение возможности повторного использования отдельных компонентов ПО.

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

Объектно-ориентированный подход имеет два аспекта:

· объектно-ориентированная разработка ПО;

· объектно-ориентированная реализация ПО.

Объектно-ориентированная разработка программ

ОО разработка ПО связана с применением ОО моделей при разработке ПС и их компонентов. Говоря об ОО разработке, я имею в виду:

· объектно-ориентированные методологии (технологии) разработки ПС;

· инструментальные средства, поддерживающие эти технологии.

ОО разработка может начаться на самом первом этапе ЖЦ; она не связана с языком программирования, на котором предполагается реализовать ПС: этот язык может и не быть ОО. На этапе разработки объекты - это некоторые формальные конструкции (например, прямоугольники с закругленными углами, с помощью которых они изображаются на схемах), никак пока не связанные с их будущей реализацией на одном из языков программирования.

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

Объектно-ориентированные языки программирования

Реализация ПО связана с использованием одного из языков программирования. Показано, что наиболее удобными для реализации ПС, разработанных в рамках ОО подхода, являются ООЯ программирования, хотя возможна реализация и на не ООЯ.

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

Первый ООЯ программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных ООЯ программирования, а в результате их исследования были разработаны современные ООЯ программирования: C++, Smalltalk, Eiffel и др.

Сквозной пример

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

Рис. 1.3. Схема банковской сети

Клиенты банков имеют пластиковые банковские карточки (один клиент может иметь несколько карточек); карточка содержит код карточки, код банка, код клиента и другую информацию, обеспечивающую доступ к счету (счетам) клиента в этом банке. Клиент может вставить свою карточку в ATM (банкомат) и, при условии, что код карточки и код банка верны, начать банковскую проводку. Данные с карточки поступают в центральный компьютер, который распределяет их по компьютерам банков в соответствии с кодами банков до начала проводки; после окончания проводки ее результаты поступают снова в центральный компьютер, который распределяет их по ATM. Являясь распределителем данных между компьютерами банков и ATM, центральный компьютер должен регулировать коллективный доступ со стороны клиентов и банков, организуя и поддерживая соответствующие очереди.

Проводка состоит в согласованном изменении данных на счетах клиента и отчетной документации банка, хранящихся в БД банка, в соответствии с данными проводки. Проводка включает в себя и проверку права клиента на доступ к его счетам на момент проводки (проверка безопасности), и проверку соответствия суммы, затребованной клиентом, текущему состоянию его счета. Если проверки прошли успешно, клиент получает из ATM затребованную им сумму денег и квитанцию, в противном случае он получает только квитанцию. Во время осуществления проводки могут произойти сбои в работе аппаратуры, либо клиент может раздумать получать деньги и отменить начавшуюся проводку. В этом случае все счета и отчетные документы должны быть восстановлены в том состоянии, в котором они были до начала проводки (откат). Для реализации отката используется служба ведения записей об изменениях, вносимых в БД банка при выполнении проводки. Все действия, связанные с выполнением проводки (в том числе протоколирование и обеспечение безопасности проводки), производятся ПО системы управления банковской сетью, процесс разработки которого и составляет содержание сквозного примера.

Компьютер банка поддерживает счета клиентов, т.е. хранит их в своей БД и выполняет проводки над этими счетами по запросам с ATM (удаленная проводка) или с кассовых терминалов (проводка кассира, данные о которой вводятся кассиром).

Несмотря на внешнюю простоту, эта задача достаточно сложна, чтобы на ее примере можно было продемонстрировать основные особенности ОО подхода к разработке ПС: в этой задаче есть и необходимость распределения по сети компьютеров (банкомат, который мы будем для краткости называть ATM, тоже можно рассматривать как специализированный компьютер), и асинхронные процессы, и необходимость синхронизации таких процессов для организации параллельного обслуживания нескольких клиентов, и работа с БД (информация о клиентах хранится в БД банков), в частности, обслуживание транзакций (транзакциями являются банковские проводки). Наряду с описанным примером будет рассмотрено достаточно большое число других примеров, предназначенных для демонстрации особенностей, не охватываемых этим основным примером.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...