Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 400107.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
568.32 Кб
Скачать
    1. Этапы построения программного обеспечения

по объектно-ориентированной методике

Различают следующие этапы:

  • объектно-ориентированный анализ (ООА);

  • объектно-ориентированное проектирование (ООD);

  • объектно-ориентированное программирование (OOP);

  • эволюция;

  • модификация.

В этой главе рассмотрим ООА и OOD, основы OOP на языках Turbo Pascal и С++ изложены в последующих главах.

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

Цель OOD – разработка структуры классов и объектов, соответствующих предметной области и позволяющих решить поставленные задачи.

Цель ООР – реализация ее на языке программирования по объектно-ориентированной методике.

Эволюция и развитие представляют собой развитие и усовершенствование уже внедренного программного обеспечения.

2.4. Объектно-ориентированный анализ

В ходе ООА необходимо:

  • раскрыть объекты и классы, их атрибуты и связи;

  • определить поведение каждого объекта;

  • описать, какой объект какое сообщение выдает или обрабатывает.

ООА включает три стадии.

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

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

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

Информационные модели

В любой предметной области имеем дело с объектами – предметами реального мира. В ходе составления информационной модели необходимо выделить классы. В ООА класс – это такая абстракция множества объектов, что:

все элементы этого множества (объекты) имеют одни и те же характеристики,

все объекты этого класса подчинены одним и тем же правилам поведения.

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

Рекомендуют для выделения классов следующие множества объектов.

Реальные объекты – физически существующие предметы (машина, собака).

Роли – абстракция цели или назначения человека или оборудования (директор, бак для …).

Инциденты – абстракция чего-то произошедшего или случившегося (наводнение).

Взаимодействия – для отражения отношений между классами.

Спецификации – используются для представления правил, стандартов.

Существует шутливая рекомендация. Для ООА составьте описание предметной области на естественном языке. Существительные в этом описании являются кандидатами для классов, а глаголы – на поведение (методы).

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

Имя_класса. Имя_атрибута

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

Примеры:

Состояние  {Откр.; Закр.}

Мощность  [1.5; 6.0]

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

Классы могут быть представлены следующими способами.

Текстовый

СОТРУДНИК (ТАБЕЛЬНЫЙ НОМЕР, Фамилия, Имя, Отчество,…)

Графический.

6 СОТРУДНИК

*ТАБЕЛЬНЫЙ НОМЕР

Фамилия

Имя

Отчество

Год_рождения

……………….

Номер и имя класса

Идентификатор

Атрибуты

Табличный

Сотрудник

Табельный_номер

Фамилия

Имя

Отчество

     

При выборе атрибутов для класса необходимо соблюдать следующие правила:

Один объект имеет одно единственное значение для каждого атрибута.

Атрибут не имеет никакой внутренней структуры.

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

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

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

АВТОМОБИЛЬ

*НОМЕР_ГОС-РЕГ

Марка

Год_выпуска

…………

ВЛАДЕЛЕЦ

*Имя

Адрес

………………..

Владеет

Принадлежит

Рис. 2.3. Представление отношения между классами

Различают 3 разновидности связей.

Один-к-одному (1:1) – любой объект одного класса имеет такую связь с одним объектом другого класса (рис. 2.4.).

МУЖ

*ИМЯ

ЖЕНА

*ИМЯ

Замужем за

женат на

рис. 2.4. Обозначение отношения 1:1

Один-ко-многим (1:М) (Многие-к-одному) Любой объект одного класса может иметь такую связь с одним или несколькими объектами другого класса, но любой объект другого класса связан только с одним объектом первого (рис. 2.5.).

КНИГА

ВЛАДЕЛЕЦ

Владеет

Принадлежит

Рис. 2.5. Обозначение отношения 1:М

Каждая книга принадлежит одному владельцу, но любой владелец может иметь много книг.

Многие-ко-многим (М:М). Любой объект одного класса связан с несколькими объектами другого класса и наоборот (рис. 2.6.).

КНИГА

АВТОР

Рис. 2.6. представление отношения М:М

Любой автор написал одну или несколько книг, любая книга может иметь нескольких авторов.

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

Y

СОБАКА

ЧЕЛОВЕК

Y

Рис. 2.7. Представление условной связи

Собака может быть бродячей и не иметь хозяина; человек может не иметь собаку или иметь несколько.

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

М УЖ(ИМЯ,…) ЖЕНА(ИМЯ,……,Имя мужа)

Для связи 1:М (М:1) вспомогательный атрибут добавляют к объекту на стороне М (много), потому что тогда можно ограничиться лишь одним значением и будут соблюдены правила атрибутов

К НИГА(АВТОР, НАЗВАНИЕ,..Имя владельца) ВЛАДЕЛЕЦ(ИМЯ,…)

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

К НИГА(…….) АВТОР(……)

АВТОРСТВО(Автор, Книга, Дата_издания,….)

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

Результаты составления информационной модели:

Графическое представление информационной модели (классы и связи между ними), называемое иногда диаграммой информационной структуры, диаграммой “сущность - связь”, ER – диаграммой. (Сюда входят и суперклассы).

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

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

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