Главная
Каталог
Библиотека
Избранное
Порталы
Библиотеки вузов
Отзывы
Новости
 
12+
 
Предварительный просмотр документа

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

Автор/создатель: Глотова Т.В.
Год: 2001 
Приведено описание основ объектно-ориентированной методологии рассматриваемой в лекционном курсе "Разработка САПР". Учебное пособие содержит определения основных понятий - объектов, классов и отношений, методики объектно-ориентированного анализа, основные элементы объектного подхода. Рассматриваются составные части объектно-ориентированной методологии, основные этапы жизненного цикла при объектно-ориентированном подходе к разработке проекта, диаграммы унифицированного языка моделирования UML. Приведены сведения о наиболее распространенных CASE-средствах, поддерживающих объектно-ориентированную методологию разработки систем. Учебное пособие разработано на кафедре "Системы автоматизации проектирования" и предназначены для студентов специальности 22.03 изучающих курс "Разработка САПР".
Показать полное описание документа
РЕЙТИНГ

Оценка пользователей: 3.7
Количество голосов: 3
Оцените ресурс:
5 4 3 2 1

ОТЗЫВЫ


Популярные ресурсы по теме

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра. Изображения (картинки, формулы, графики) отсутствуют.
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Т. В. ГЛОТОВА ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МЕТОДОЛОГИЯ РАЗРАБОТКИ СЛОЖНЫХ СИСТЕМ Учебное пособие ПЕНЗА 2001 УДК 681.3 Г48 Приведено описание основ объектно-ориентированной методологии рассматриваемой в лекционном курсе "Разработка САПР". Учебное пособие содержит определения основных понятий - объектов, классов и отношений, методики объектно-ориентированного анализа, основные элементы объектного подхода. Рассматриваются составные части объектно- ориентированной методологии, основные этапы жизненного цикла при объектно-ориентированном подходе к разработке проекта, диаграммы унифицированного языка моделирования UML. Приведены сведения о наиболее распространенных CASE-средствах, поддерживающих объектно- ориентированную методологию разработки систем. Учебное пособие разработано на кафедре "Системы автоматизации проектирования" и предназначены для студентов специальности 22.03 изучающих курс "Разработка САПР". Ил. 9, библиогр. 5 назв. Рецензенты: кафедра Вычислительных машин и систем Пензенского технологического института; Заведующий кафедрой Прикладной математики и информатики Пензенского Государственного Университета д.т.н., профессор Линьков В.М. 2 1. Введение в объектно-ориентированную методологию разработки систем. Объектно-ориентированная технология развивается в различных областях вычислительной техники как средство решения проблем связанных со сложностью создаваемых систем. Объектный подход применяется не только в программировании, но также в проектировании интерфейса пользователя, баз данных, баз знаний и даже компьютерной архитектуры. Смысл такого широкого подхода состоит в том, что он позволяет применить объектную ориентацию для решения всего круга проблем, связанных со сложными системами. В основе объектно-ориентированного проектирования лежит представление о том, что программную систему необходимо проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определенного класса, причем классы образуют иерархию. Повышение интереса разработчиков к этой методологии обусловлено тем, что методы структурного анализа и проектирования не обеспечивают дальнейшего снижения трудоемкости разработки. Объектно- ориентированный подход наиболее естественно соответствует реальному процессу разработки систем и не только программных, который является итеративным и может потребовать внести изменения в уже разработанные и отлаженные компоненты системы. 3 составными частями объектно-ориентированной методологии (ООМ) являются: - объектно-ориентированный анализ; - объектно-ориентированное проектирование; - объектно-ориентированное программирование. Объектно-ориентированное программирование. Обьектно- ориентированное программирование — это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на принципах наследования. В данном определении можно выделить три части: 1) объектно-ориентированное программирование использует в качестве элементов конструкции объекты, а не алгоритмы; 2) каждый объект является реализацией определенного класса; 3) классы организованы иерархически. Объектно-ориентированное проектирование. Методы программирования, прежде всего, подразумевают правильное и эффективное использование механизмов языков программирования. Методы проектирования напротив, основное внимание направляют на правильное и эффективное структурирование сложных систем. Объектно-ориентированное проектирование — это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления как логической и физической, так статической и динамической моделей проектируемой системы. В данном определении содержатся две важные части: 4 1) объектно-ориентированное проектирование ведет к объектно- ориентированной декомпозиции; 2) используется многообразие приемов представления моделей, отражающих логическую (структуры классов и объектов) и физическую (архитектура модулей и процессов) структуру системы. Именно поддержка объектно-ориентированной декомпозиции отличает объектно-ориентированное проектирование от структурного проектирования. Объектно-ориентированный анализ. На объектный подход оказали влияние предыдущие этапы развития программных средств. Традиционные приемы структурного анализа основаны на потоках данных в системе. Объектно-ориентированный анализ (ООА) направлен на создание моделей, более близких к реальности, с использованием объектно- ориентированного подхода; это методология, при которой требования формируются на основе понятий классов и объектов, составляющих словарь предметной области. На результатах ООА формируются модели, на которых основывается объектно-ориентированное проектирование; объектно-ориентированное проектирование в свою очередь создает основу для окончательной реализации системы с использованием методологии объектно- ориентированного программирования Главными достоинствами ООМ по сравнению со структурными методами являются: - возможность преодолеть ограничения, связанные со сложностью разрабатываемых систем; - использование на стадии анализа моделей близких к реальности; 5 - применение как при анализе и проектировании информационных систем, так и систем реального времени и аппаратно-программных комплексов; - обеспечение возможности повторного использования разработанного программного обеспечения, позволяющего существенно сократить сроки и снизить затраты на разработку каждой последующей системы; - поддержка итеративного, а не лавинообразного, как в структурном подходе, процесса проектирования; - естественная работа с разнородной информацией, используемой в мультимедиа системах; - создание более открытых систем; - полное использование описательных возможностей объектно- ориентированных языков программирования. Принципы объектного подхода. Объектная модель, которая является концептуальной базой объектно- ориентированной методологии, имеет четыре главных элемента: - абстрагирование - ограничение доступа или инкапсуляция - модульность - иерархия. Без любого из этих элементов модель не будет объектно- ориентированной. Кроме главных имеется три дополнительных элемента: - типизация - параллелизм 6 - сохраняемость или устойчивость (persistence) Эти элементы полезны в объектной модели, но не обязательны. Абстрагирование - это выделение таких существенных характеристик объекта, которые отличают его от всех других видов объектов и таким образом чётко определяются особенности данного объекта с точки зрения дальнейшего его рассмотрения. Абстрагирование позволяет отделить самые существенные особенности поведения от несущественных. Абстракция определяет существенные характеристики некоторого объекта, которые отличают его от всех других видов объектов и четко очерчивает концептуальную границу объекта с точки зрения наблюдателя. Выделяют целый спектр абстракций: абстракция сущности, поведения, абстракция виртуальной машины, произвольная абстракция. Выбор достаточного множества абстракций, для заданной предметной области, является главной проблемой в объектном проектировании. Инкапсуляция - это процесс разделения элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации. В языке С++ управление доступом и видимостью достигается с большой гибкостью. Элементы объекта могут быть отнесены к общедоступной, обособленной и защищенной части. Инкапсуляция не спасает от глупости; она как заметил Страуструп защищает от ошибок, но не от жульничества. Абстракция и ограничение доступа дополняют друг друга: абстрагирование направлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутренним устройством. Практически это означает наличие двух частей в классе: интерфейса и реализации, Интерфейс отражает внешнее поведение объекта, описывая абстракцию поведения всех 7 объектов данного класса. Внутренняя реализация описывает представление этой абстракции и механизмы достижения желаемого поведения объекта. Разделение интерфейса и реализации позволяет защитить объекты от деталей реализации объектов более низкого уровня. Инкапсуляция позволяет вносить в программу изменения, сохраняя ее надежность и минимизируя затраты на этот процесс. Модульность - это свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей. В языке С++ под модулями понимается раздельно компилируемые файлы. Модульность - это разделение программы на раздельно компилируемые фрагменты, имеющие между собой средства сообщения. Традиционным в С++ является помещение интерфейсной части модулей в отдельные файлы с расширением .h. Иерархия - ранжированная (упорядоченная) система абстракций. Основными видами иерархических структур, применительно к сложным системам, является структура классов (иерархия "is -a") и структура объектов (иерархия "part of"). Принцип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным. Наследование - это такая иерархичность абстракций, в которой подклассы наследуют строение от одного или нескольких суперклассов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Суперклассы отражают наиболее общие, а подклассы более специализированные абстракции. Поэтому о наследовании говорят, как об иерархии "обобщение специализации". Различают случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае 8 суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов. Иерархия по составу определяет отношения агрегирования. Более высокий уровень представляет те абстракции, которые используют в своём составе другие классы. Принципы абстрагирования, ограничение доступа, иерархии конкурируют между собой. Принцип наследования требует открыть доступ к состоянию и к функциям объекта для производных объектов. Дополнительные элементы: Типизация - ограничение предъявляемых классу объектов, препятствующих взаимозамене различных классов и в большинстве случаев сильно сужающих возможность такой замены. Концепция типизации строится на понятии абстрактных типов данных. Тип - точное определение свойств строения или поведения, которое присуще некоторой совокупности объекта. Часто термины «тип» и «класс» считают эквивалентными. Более точно сказать, что класс реализует тип. Типизация- ограничение предъявляемых классу объектов, препятствующих взаимозамене различных классов и в большинстве случаев сильно сужающих возможность такой замены. Типизация позволяет выполнять описание абстракций т. о., что реализуется поддержка проектных решений на уровне языка программирования. В тоже время объектно-ориентированные языки программирования могут быть: строго типизированными, нестрого типизированными и совсем не типизированными, что позволяет говорить о типизации, как о 9 второстепенном элементе. Сильно типизированные языки - это такие языки, в которых все выражения проводят проверку на соответствие типов. С++ поддерживает сильную типизацию. Различают статическую типизацию (раннее связывание) и динамическую типизацию (позднее связывание). Разделение имеет отношение ко времени, когда имена связывают с типами: статическая - во время компиляции; динамическая - во время исполнения программы. Полиморфизм возникает на стыке принципов наследования и динамических связей. Это свойство является самым существенным в объектно-ориентированном программировании. Полиморфизм отличает объектно-ориентированное проектирование от более традиционных методов с использованием абстрактных типов данных. Параллелизм. Для определенной категории задач автоматические системы реализуют обработку многих событий, происходящих одновременно. В то время как объектно-ориентированное программирование строится на абстракции, инкапсуляции и наследовании, параллелизм связан с абстрагированием процессов и синхронизацией. Объект является основой, которая объединяет обе концепции. Каждый объект (как абстракция реальности) может представлять собой отдельный поток управления (абстракцию процесса). Такой объект называется активным Параллелизм- свойство, отличающее активные объекты от пассивных. Для систем, построенных на основе объектно-ориентированного проектировании, реальность может быть представлена, как совокупность взаимодействующих объектов, часть из которых - активна. Сохраняемость /устойчивость - это свойство объекта существовать во времени и/или пространстве, вне зависимости от процессов, породивших 10
Яндекс цитирования