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

Голосов: 4

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

Приведенный ниже текст получен путем автоматического извлечения из оригинального 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



    
Яндекс цитирования Яндекс.Метрика