Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
02.05.2014
Размер:
5.27 Mб
Скачать

Министерство образования российской федерации

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по курсу

"Технология объектно-ориентированного моделирования",

для подготовки инженеров по специальностям

Прикладные информационные системы в экономике”

Уфа-2003

Составители: Л.Р.Черняховская, Н.И.Федорова, Р.Р.Шарафутдинова

УДК

Исследование технологии объектно-ориентрованного моделирования: Методические указания к лабораторным работам по курсу "Технология объектно-ориентированного моделирования" для подготовки инженеров по специальности “Прикладные информационные системы в экономике”/ Уфимск. гос. авиац. техн. унив-т; Сост. Л.Р.Черняховская, Н.И.Федорова, Р.Р.Шарафутдинова. - Уфа, 2003. - с.

Содержатся основные сведения, необходимые для исследования возможностей CASE – средств объектно-ориентированного анализа и моделирования информационных систем. Целью лабораторного практикума является привитие навыков моделирования на языке UML (Unified Modeling Language) в среде объектно-ориентированного инструмента моделирования Rational Rose. Рассматривается методика объектно-ориентированного моделирования и этапы системного проектирования деловых процессов. Обсуждается порядок проведения лабораторных работ.

Предназначены для студентов старших курсов специальности “Прикладные информационные системы в экономике”.

Ил. . Библиогр.: 8 назв.

Рецензенты:

ВВЕДЕНИЕ

Целью лабораторного практикума по курсу "Технология объектно-ориентированного моделирования" является изучение основ и освоение понятийного аппарата объектно-ориентированного моделирования, овладение навыками моделирования на языке UML (Unified Modeling Language) в среде объектно-ориентированного инструмента моделирования Rational Rose.

В отличие от традиционного подхода, когда основное внимание уделяется информации, с которой работает система, при объектно-ориентированном подходе внимание уделяется как информации, так и поведению, что позволяет создавать гибкие системы, допускающие изменение их поведения и/или содержащейся в них информации.

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

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

Объект - это абстракция множества предметов реального мира, обладающих одинаковыми характеристиками и законами поведения. Объект представляет собой типичный неопределенный элемент такого множества. Экземпляр объекта - это конкретный определенный элемент множества. Например, в вычислительных сетях объектом является некоторый сервер, а экземпляром этого объекта – Интранет–сервер, установленный в конкретной корпоративной сети.

Объект инкапсулирует данные и поведение, которые отличаются от традиционного разделения на функции и данные. Данные объекта представляются атрибутами, а его поведение - операциями.

Каждый объект имеет состояние, поведение и индивидуальность. Состоянием (state) объекта называется одно из условий, в котором он может находиться. Состояние системы обычно меняется во времени и определяется набором свойств, называемых атрибутами. Поведение объекта определяет, как объект взаимодействует с другими объектами. Индивидуальность означает, что каждый объект уникален и отличается от других объектов.

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

С точки зрения объектного моделирования понятия "описание класса" и "описание объекта" эквивалентны, так как для определения множества схожих элементов, образующих класс, достаточно описать его типичного представителя, то есть объект.

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

Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого объекта, скрыты от внешних компонентов. Сокрытие данных и методов в качестве собственных ресурсов объекта получило название инкапсуляции.

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

Наследование - механизм, позволяющий создавать новые объекты, основываясь на уже существующих, при этом порождаемый объект-потомок наследует свойства порождающего, родительского объекта.

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

В соответствии с принципами объектно–ориентированного анализа для описания свойств объектов предметной области и отношений между объектами необходимо моделирование процессов управления производить в соответствии со следующими главными принципами: абстрагирование; инкапсуляция; модальность; иерархия.

Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя. Абстрагирование включает понятия агрегации и обобщения.

Агрегация - это такая абстракция, которая превращает связь между объектами в некоторый агрегированный объект более высокого уровня.

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

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

а) интегрировать и поддерживать важный класс представлений;

б) обеспечивать при определенных эволюционных изменениях стабильность данных и знаний;

в) облегчать понимание сложных моделей;

г) в большей степени отражать семантику предметной области;

д) осуществлять дополнительную оптимизацию на более низких уровнях реализации. Родовой тип формализуется благодаря некоторому множеству инвариантных свойств.

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

Одно из преимуществ такой "иерархии абстракций" заключается в возможности доступа различных пользователей к модели на разных уровнях абстракции. Таким образом, единственная модель может совместно использоваться несколькими различными пользователями без нарушения их требований к доступу. Другим достоинством иерархии абстракций является повышенная стабильность модели в процессе развития приложения или самой системы. Изменения в тех деталях, которые игнорируются на более высоких уровнях модели, не будут затрагивать эти уровни. Некоторые изменения, конечно, будут при этом распространяться с нижнего уровня на верхний.

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

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

Стандартной нотацией для моделирования крупных информационных систем (ИС) на основе объектно-ориентированной методологии служит унифицированный язык моделирования UML (Unified Modeling Language), который поддерживается рядом CASE-продуктов, одним из наиболее распространенных является. Rational Rose. Важным аспектом успешного создания сложной ИС является использование методологии разработки проекта, в рамках которой вводятся этапы работы, ставятся задачи аналитикам, проектировщикам, программистам, тестировщикам, системным интеграторам и т.д., в рамках методологии Rational Unified Process (RUP).

Методология RUP предписывает построение системы диаграмм – единичных описаний фрагментов системы. Диаграммы иллюстрируют различные аспекты системы. У каждой диаграммы есть своя цель и своя аудитория.

Диаграмма в UML – это графическое представление набора элементов, изображаемое чаще всего в виде связанного графа с вершинами (сущностями) и ребрами (отношениями). Диаграмма – это в некотором смысле одна из проекций системы; на рис.1 показаны девять типов диаграмм UML. UML – диаграммы (как различные подсети семантической сети) представляют разные аспекты предметной области, определяя в совокупности онтологическую модель предметной области. На рис. 2. показана методология объектного моделирования предметной области управления в проблемных ситуациях.

Моделирование проводится как "поуровневый спуск" от концептуальной модели к логической, а затем к физической модели программной системы.

Концептуальная модель выражается в виде "диаграмм прецедентов" (Use Case diagram). Этот тип диаграмм служит для проведения итерационного цикла общей постановки задачи вместе с заказчиком. Диаграммы прецедентов служат основой для достижения взаимопонимания между программистами-профессионалами, разрабатывающими проект, и "бизнесменами" - заказчиками проекта. Внутри каждого прецедента могут быть определены:

  • Вложенная диаграмма прецедентов(Use case diagram )

  • Диаграмма взаимодействия объектов (Collaboration diagram)

  • Диаграмма последовательности взаимодействий (Sequence diagram)

  • Диаграмма классов (Class diagram)

  • Диаграмма перехода состояний(State diagram)

Логическая модель позволяет определять два различных взгляда на системы: статический и динамический. Статическая модель выражается диаграммами классов (Class diagram). Именно диаграммы классов служат основой для генерации программного кода на целевом языке программирования.

Для описания динамики используются диаграммы поведения (behavior diagrams), которые подразделяются на:

  • диаграммы состояний (statechart diagrams),

  • диаграммы активностей (activity diagrams) и

  • диаграммы взаимодействия (interaction diagrams), состоящие из:

  • диаграмм последовательности (sequence diagrams)

  • диаграмм взаимодействий (collaboration diagrams)

Физическая модель задается диаграммами реализации (implementation diagrams) - диаграммы, с помощью которых описывается архитектура приложения. Они состоят из компонентных диаграмм (component diagrams) и диаграмм размещения (deployment diagrams).

В UML имеется 4 типа сущностей: структурные, поведенческие, группирующие, аннотационные.

Структурные сущности – это имена существительные в моделях на языке UML. Как правило, они представляют собой статические части модели, соответствующие концептуальным или физическим элементам системы. Поведенческие сущности являются динамическими составляющими модели UML. Это глаголы языка: они описывают поведение модели во времени и пространстве. Группирующие сущности являются организующими частями модели UML. Это блоки, на которые можно разложить модель. Аннотационные сущности – пояснительные части модели UML.

В языке UML определены 4 типа отношений: зависимость, ассоциация, обобщение, реализация.

Зависимость – это семантическое отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой. Ассоциация – структурное отношение, описывающее совокупность связей; связь – это соединение между объектами. Обобщение – отношение "специализация/обобщение", при котором объект специализированного элемента (потомок) может быть подставлен вместо объекта обобщенного элемента (родителя или предка). Реализация – это семантическое отношение между классификаторами.

При построении общей модели в Rational Rose используются принципы:

  • декомпозиции и абстрагирования,

  • иерархии на концептуальном, логическом и физическом уровнях,

  • повторного использования элементов моделей/программных компонент,

  • разработки различных типов моделей для различных аспектов системы,

  • согласованности статических и динамических моделей системы,

  • пошаговое и итеративное моделирования/программирования,

  • поддержки коллективной разработки/использования компонент.

Определяющими факторами при включении модели в комплекс, описывающий процессы управления, являются:

  • соблюдение принципов системного подхода к описанию сложных систем;

  • соответствие типа модели требуемым результатам описания процесса (формирование исходных данных для поддержки принятия решений) и принципам моделирования.

Соседние файлы в папке Методические указания