Главная страница
Навигация по странице:

  • Сервер

  • Учитель Дисципина

  • Ученик Оценки Имеет оценкиПоставлены ученику успеваемостьM1Рис. Представление сильной агрегации - Сильная или составная – композиция

  • 3 Объектно – ориентированное проектирование

  • Анализ поставленной задачи (предметной области) и уточнение спецификаций

  • 3.1.1 ОО анализ с использованием имитационного моделирования для простых предметных областей

  • 3.1.2 ОО анализ на основе вариантов использования UML Для выявления понятий определяют: • варианты использования(прецеденты)

  • Отмена.

  • Вычислить длину окружности

  • Вычислить площадь круга

  • Вычислить

  • ООП. Пособие по ООП в С++. Создание сложных программных систем Объектно ориентированная технология


    Скачать 2.1 Mb.
    НазваниеСоздание сложных программных систем Объектно ориентированная технология
    Дата21.02.2022
    Размер2.1 Mb.
    Формат файлаpdf
    Имя файлаПособие по ООП в С++.pdf
    ТипАнализ
    #369034
    страница2 из 15
    1   2   3   4   5   6   7   8   9   ...   15
    Актор (actor) – может воздействовать на другие объекты, но сам никогда не подвергается воздействию – активный объект.
    Сервер – может только подвергаться воздействию, но сам никогда не воздействует на другие объекты – пассивный объект.
    Агент– может быть активным и пассивным. Он создается для выполнения операций в интересах, какого либо актора или агента.
    Меню : Меню
    Журнал
    Табель
    По ст ав ит ь о це нк у
    Оф ор ми ть
    Рис. Связи между объектами
    • Агрегация
    Агрегация описывает отношение целого и части: некоторые свойства объекта – также объекты. Если объект является результатом декомпозиции более сложного объекта, то говорят об отношении включения одного объекта в другой (иерархия целое часть).
    Например, автомат по продаже газет – имеет свое состояние и поведение, а газета так же объект, который продает автомат.
    Например, матричный калькулятор. Калькулятор – объект, который оперирует объектами матрицами. Его свойство – матрица или две матрицы, которые так же представляют объекты.
    Пример. Определить объекты, исходя из следующих фраз.
    Пятилетняя Аня играет красным резиновым мячом. Семилетний Паша играет синим футбольным мячом.
    Объект Девочка со свойствами: Имя – Аня, Возраст – 5 лет. Объект
    Мальчик со свойствами Имя – Паша, Возраст – 7 лет.
    Поведение: играет мячом. Взаимодействие – с мячом. Объект Мяч со свойствами Цвет, Вид мяча и поведением – подпрыгивает на высоту, ни на что не воздействует.

    2.2
    Классы
    Класс – множество объектов, имеющих общую структуру и поведение.
    Объекты, не связанные общностью структуры и поведения, нельзя объединять в класс. «Класс – это контракт между клиентами и абстракцией». Любой объект называют так же экземпляром класса.
    Пример определения классов
    Пятилетняя Аня играет красным резиновым мячом. Семилетний Паша играет синим футбольным мячом.
    Объект Девочка со свойствами: Имя – Аня, Возраст – 5 лет. Объект
    Мальчик со свойствами Имя – Паша, Возраст – 7 лет. Объект Мяч со свойствами Цвет, Вид мяча. В этом примере два класса: Дети и Мяч.
    Структура класса включает две части:
    - интерфейс – внешнее устройство класса - операции доступные всем объектам системы – обязательства класса перед своими клиентами. Главное в интерфейсе – объявление операций, поддерживаемых всеми экземплярами класса.
    - реализация – внутреннее устройство класса – реализация операций объявленных в интерфейсной части.
    Состояние объекта задается в его классе через определения констант или переменных, помещенных в закрытую или защищенные части класса.
    Классы, как и объекты не могут быть изолированными. В каждой предметной области абстракции взаимодействуют по разному, что и должно быть определено в проекте.
    Отношения между классами:

    Наследование (общее часть)
    Отношение «обобщение - специализация» или «общее частное»-is-a: студент, студент-выпускник, студент-дипломник; геометрическая фигура: круг, квадрат, треугольник.
    Студент
    Дипломник
    Выпускник
    Рис. Представление наследования в UML

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

    Представление ассоциации на UML включает: название ассоциации
    (глагольная фраза); определение Роли – это словосочетания существительных, соответствующих субъектам и объектам того факта, которое определяет в ассоциации одна из сторон ассоциации.
    Бинарная ассоциация
    Отношение с мощностью 1 к 1. Пример бинарной ассоциации
    «Пациент» Имеет «Полис» с мощностью 1 к 1 и ролями Обслуживается по и
    Принадлежит. Реализация: класс Пациент должен содержать номер полиса.
    Пациент
    Полис
    Обслуживается по Принадежит
    Имеет
    1 1
    Рис. Представление бинарной ассоциации в UML
    N – арная ассоциация
    Ассоциация обучает, имеет две роли: со стороны ученика учит по; со стороны Дисциплина преподается. Мощность отношения 1 ко многим (М).
    Имена ролей удобно использовать при определении имени метода или переменной. Реализация: класс Учитель должен содержать множество номеров дисциплин, которым обучает Учитель.
    Учитель
    Дисципина
    Учит по
    Преподается
    Обучает
    M
    1
    Рис. Представление n – арной ассоциации в UML

    Агрегация, композиция и принадлежность
    Агрегация – это отношение части и целого между двумя классами.
    UML позволяет представить два вида агрегации:
    - Слабая или совместная – агрегация.
    Совместная агрегация позволяет моделировать отношения части и целого, в котором объект Х обладает другим объектом Y, но в тоже время другие объекты (Z, A, B) могут обладать этим же объектом Y. Т.е. при удалении объекта X, объект Y не должен быть удален.
    Реализация: класс Ученик имеет методы включения, удаления, обновления оценок ученика в массив объектов Оценки.
    Ученик
    Оценки
    Имеет оценки
    Поставлены ученику успеваемость
    M
    1
    Рис. Представление сильной агрегации
    - Сильная или составная – композиция.

    Позволяет моделировать отношения части и целого, когда один объект
    Х обладает исключительным правом владения объектом Y. Т.е. при удалении объекта Х объект Y должен быть удален.
    Предположим, что объекты касса Ученик собирают данные по текущей успеваемости – за текущую четверть, но так же надо сохранять историю оценок – результаты по прошлым четвертям. Надо добавить еще один класс
    Архив оценок и связать его с классом Ученик. При удалении объекта ученика, удаляется его архив оценок.
    Зависимость
    Создадим класс Menu и включим в него метод ShowPupil, который будет отображать данные по ученику и его оценкам. Т.е. изменения в кассе Ученики и Оценки должны привести к изменениям в классе Menu.
    3 Объектно – ориентированное проектирование
    «Цель проектирования – выявление ясной и относительно простой внутренней структуры, иногда называемой архитектурой. Проект есть окончательный продукт процесса проектирования.» Страуструп.
    Проектирование подразумевает учет противоречивых требований. Его продуктом являются модели, позволяющие понять структуру будущей системы.
    Проектирование программной системы с использованием ОО подхода включает: определение объектов предметной обасти и .
    3.1
    Анализ поставленной задачи (предметной области) и
    уточнение спецификаций
    Процесс представления предметной области задачи в виде совокупности объектов, обменивающихся сообщениями, получил название объектной декомпозиции.
    Декомпозиция – это разделение сложной программной системы на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо.
    Для определения объектов, а, следовательно, и классов используют методику, получившую название объектной декомпозиции. Объектная декомпозиция - процесс представления предметной области задачи в виде совокупности объектов, обменивающихся сообщениями. Сообщения реализуют операции над объектами. Набор объектов программных систем обычно определяется при анализе моделируемых систем.

    Разрабатываемая программная система предназначена для решения задач пользователей конкретной предметной области. Задачи требуют данных и вот задача разработчика на этапе проектирования определить эти задачи.
    Задачи составят функционал программной системы. Задачам требуются данные, следовательно, следующая задача разработчика - определить данные предметной области.
    Для реализации программной системы с использованием объектно – ориентированной парадигмы, необходимо данные представить через объекты, классы, отношения объектов и классов.
    На первом этапе проектирования, который получил название объектно
    - ориентированный анализ предметной области, необходимо поучить максимально полное описание предметной области через ее информационные объекты (функциональные элементы). Этап анализа использует процесс объектной декомпозиции для определения данных предметной области, которые являются объектами (в теории ООП) и связи между ними
    (сообщения).
    При выполнении объектной декомпозиции в каждом конкретном случае, можно использовать один из двух подходов: имитационное моделирование, проектирование с использованием UML.
    3.1.1 ОО анализ с использованием имитационного моделирования для
    простых предметных областей
    Первоначально объектный подход был предложен для разработки имитационных моделей сложных систем. Чтобы понять, о каких объектах и сообщениях идет речь, следует представить (имитировать) процесс работы будущей системы.
    Существуют классы задач, подлежащие автоматизации и не связанные с имитацией. В таком случае как бы программным путем имитируется поведение системы.
    Пример . Применение имитационного моделирования для определения объектной модели программной системы Определение параметров
    геометрических фигур
    Задача. По запросу пользователя программа должна вычислять: площадь круга или длину окружности круга; объем сферы или площадь ее поверхности по заданным пользователем размеров. Все команды пользователя должны интерпретироваться и в результате должны формироваться команды на вычисление параметров фигур и изменение их размеров.

    Требования к программе: управление системой посредством пользовательского интерфейса; функции пользователя: вводить и модифицировать размеры, вычислять параметры выбранной фигуры.
    1. Выполнить ООД – т.е. выявить объекты и их воздействие друг на друга.
    Для этого надо разработать имитационную модель системы, в которой определить все процессы и выделить элементы, обладающие собственным поведением, воздействующие на другие объекты или являющиеся объектами такого воздействия.
    2. Определить процессы и представить работу будущей системы: -
    Определение параметров геометрических фигур. Представим работу системы: пользователь в меню выбирает вид фигуры, ему предоставляется набор действий с этой фигурой: ввод или модификация размеров (радиус), вычисление длины окружности или площади круга; вычисление объема или площади поверхности сферы. Перечисленные задачи составляют функционал программной системы. Понятия: круг, сфера, размер(радиус), геометрическая фигура.
    Все перечисленные процессы можно моделировать, используя три объекта: Меню (получает и интерпретирует команды) и два объекта –
    Геометрические фигуры (их две), каждая со своими размерами (свойствами).
    На рис. представлена в форме UML диаграммы объектная модель программной системы.
    Круг
    Меню
    Сфера
    Вычислить длину окружности
    Вычислить объем
    Вычислить площадь
    Вычислить периметр
    Изменить/вести радиус
    Изменить/ввести размер
    Рис. Диаграмма объектов программной системы Определение параметров
    геометрических фигур
    Задачи этапа анализа:

    Исследование предметной области и выполнение объектной декомпозиции программной системы с целью выявления объектов и особенностей их поведения (программных абстракций).

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

    3.1.2 ОО анализ на основе вариантов использования UML
    Для выявления понятий определяют:

    варианты использования(прецеденты) создаваемого программного обеспечения;

    сценарии для каждого варианта.
    Понятия диаграммы вариантов использования
    Действующее лицо (Актор ) — представляет собой роль, которую некоторая персона или внешняя система играет при взаимодействии с рассматриваемой системой. Примерами действующих лиц могут быть индивидуумы (клиент, кассир, брокер, менеджер, студент, профессор, директор) или внешние системы
    (система управления запасами, система оповещения, система водоснабжения, сайт Интернет-магазина).
    Вариант использования — это элемент функциональности, представляемый системой при взаимодействии с действующими лицами.
    Вариант использования представляет действия, выполняемые одним или несколькими субъектами для достижения определенной цели.
    Структура диаграммы вариантов использования представлена рисунке
    ХХХ, более подробно о диаграмме вариантов смотрите в [xxx]

    Пример использования диаграммы вариантов использования системы «Автомат по продаже напитков» при анализе предметной области
    1)
    Основные варианты использования (функционал системы)
    Купить напиток. Торговый автомат выдает напиток после того, как клиент выбирает нужный вариант и платит за него.
    Провести плановый ремонт.
    Ремонтник выполняет плановое техобслуживание автомата, необходимое для обеспечения его безотказной работы.
    Провести техническое обслуживание.
    Ремонтник выполняет не запланированное обслуживание автомата при выходе его из строя.
    Загрузить продукты. Обслуживающий персонал загружает продукты в торговый автомат для пополнения запасов напитков.
    2)
    Описание варианта использования «Купить напиток»
    • Вариант пользования: Купить напиток
    Краткое описание варианта: Торговый автомат выдает напиток после того, как клиент выбирает нужный вариант и платит за него.
    Действующее лицо: Клиент
    Исходные условия: Автомат ожидает поступления монет.
    Описание. Автомат изначально находится в состоянии ожидания и выводит на дисплей сообщение «Опустите монеты». Клиент опускает монеты
    в щель автомата. Автомат выводит на дисплей принятую от клиента сумму и включает подсветку кнопок с названиями напитков. Автомат выдаст соответствующий напиток и даст сдачу, если напиток стоит меньше, чем заплатил клиент.
    Исключения.
    Отмена. Если клиент нажал кнопку отмены до того как произведен выбор напитка, автомат вернет клиенту деньги и перейдет в состояние ожидания.
    Напиток отсутствует. Если нет напитка, выбранного клиентом, то выводится сообщение «Напиток отсутствует».
    Недостаточно денег. Если клиент выбирает напиток, который стоит дороже того что он заплатил, то выводится сообщение: «Необходимо доплатить n рублей». Автомат ожидает доплаты и готов выдать покупку.
    Нет сдачи. Если клиент передал автомату достаточное количество денег для покупки напитка, но в автомате нет денег, чтобы корректно выдать сдачу, выводит сообщение «Невозможно выдать сдачу». Автомат продолжает принимать монеты, готов к выбору напитка клиентом.
    Постусловие: Автомат готов к приему монет.
    Диаграмма вариантов использования торгового автомата
    Клиент
    Покупка напитка
    Обслуживание автомата
    Сделать ремонт
    Загрузка напитков
    Торговый автомат
    Ремонтник
    Обслуживающий персонал
    Пример 3. Варианты использования и контекстная диаграмма классов системыОпределение параметров геометрических фигур

    Рис. Диаграмма вариантов использования программной системы
    Определение параметров геометрических фигур
    1.
    Варианты использования – это действия, которые пользователь может выполнять с помощью программной системы.
    • Выбрать фигуру
    • Ввести/изменить радиус
    Вычислить длину окружности
    Вычислить площадь круга
    • Вычислить объем сферы
    • Вычислить площадь поверхности сферы
    2.
    Описание вариантов
    Название варианта
    Выбор фигуры
    Цель
    Определить фигуру
    Действующие лица
    Пользователь
    Краткое описание
    Выбор в меню вида фигуры для
    отображения
    Тип варианта
    Основной
    Название варианта
    Ввести радиус

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

    окружности.
    Система
    выполняет
    проверку значения радиуса и если он
    заполнен значением, то выполняет
    вычисление и возвращает результат.
    Тип варианта
    Основной
    Название варианта
    Вычислить
    площади
    поверхности сферы
    Цель
    Получить площадь поверхности
    объекта
    Действующие лица
    Система
    Краткое описание
    Пользователь выбирает в меню
    операцию площади поверхности сферы.
    Система выполняет проверку значения
    радиуса и если он заполнен значением,
    то
    выполняет
    вычисление
    и
    возвращает результат.
    Тип варианта
    Основной
    Название варианта
    1   2   3   4   5   6   7   8   9   ...   15


    написать администратору сайта