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

  • Логическое проектирование

  • Физическое проектирование

  • Примеры реализации объектно – ориентированного проектирования

  • Выдать читателю свободный экземпляр

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

  • Список экземпляров читателя

  • Издание Книга Журнал БД Фонд БД Списк экземпляров Экземпляр Заказ очередь заказов Библиотекарь Читатель

  • Геометрческая фигура +Изобразить круг()Круг +Изобразть квадрат()Квадрат

  • Основные принципы объектно – ориентированного программирования Абстрагирование

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


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

    Объекты Фигура, Сфера, Круг – однотипны, причем Фигура – более общее понятие, чем Круг, Сфера. Между ними просматривается отношение обобщения.
    Меню – объект, который позволит пользователю управлять фигурами.
    Т.о. между объектом Фигура и Меню существует связь типа – «ассоциация» с названием Управляет.
    3.2
    Логическое проектирование
    Из выявленных на этапе анализа понятий выбираются понятия, которые могут претендовать на классы.
    На этом этапе выполняется разработка структуры классов: определение полей, для хранения состояния объекта и алгоритмов методов, реализующих поведение объектов. При этом используются специальные приемы разработки классов (наследование, композиция, наполнение, полиморфизм и т.д.).
    При анализе выявленных понятий учитывают, что некоторые понятия
    ПО нецелесообразно реализовывать как программные объекты.
    Если некоторому понятию соответствует скалярное значение или множество значений несложной структуры, и эти понятия характеризуют более сложное понятие, то его следует рассматривать как атрибут более сложного понятия–объекта. Например, атрибутом объекта книга можно считать Название, Год издания, Издательство.
    Результатом логического проектирования является описание структуры каждого класса и отношений между классами. Для отображения отношений классов в UML используется контекстная диаграмма классов.
    На контекстной диаграмме для изображения класса используются элементы в виде прямоугольников двух видов, форматы представлены в таблице ниже, более подробно в [xxxx]
    Упрощенное – прямоугольник с именем класса
    С атрибутами
    Имя класса
    Атрибуты(свойства)
    Пример контекстной диаграммы классов системы Определение
    параметров геометрических фигур
    В результате имитации был получен перечень понятий: геометрическая
    фигура, круг, сфера, размер, меню.
    Имя класса

    На роль объектов претендуют: Фигура, Круг, Сфера, Меню так как они сложнее понятия размер, который можно рассматривать как характеристики фигур – т.е. атрибуты объектов Фигура.
    Объекты Фигура, Круг, Сфера – однотипны, причем Фигура – более общее понятие, чем Круг, Сфера. Между ними просматривается отношение is
    a.
    Меню — это объект, который позволит пользователю управлять фигурами. Объекты Фигура и Меню не однотипны и они связаны отношением типа – «ассоциация» - односторонняя с названием Управляет. На рисунке ххх
    представлена контекстная диаграмма классов
    Рис. Контекстная диаграмма классов программы Определение
    параметров геометрических фигур
    3.3
    Физическое проектирование
    Объединение реализаций классов в модули, выбор схемы их подключения (статическое или динамическое), способы взаимодействия с оборудованием и другими программными системами.
    3.4
    Примеры реализации объектно – ориентированного
    проектирования
    Пример 2. Представим предметную область разрабатываемой системы
    «Управление выдачей и возвратом книг» через присущие ей абстракции
    (важные объекты предметной области). Выполним моделирование процесса работы библиотечной системы, которая обеспечивает регистрацию новых книг, регистрацию читателей, выдачу и возврат книг фонда читателями, списание книг, формирование справочных отчетов.
    Определим функции системы:
    • Ведение фонда библиотеки
    • Выдача и возврат объектов библиотеки
    • Списание объектов библиотеки

    • Регистрация новых поступлений
    • Регистрация читателей
    • Формирование отчетов
    Исходя из функций будущей системы получаем абстракции - объекты
    (Книга, Газета, Журнал, Электронные издания), Фонд библиотеки, Карточка читателя, Заказ.
    Рис.2. Объектно-ориентированная декомпозиция
    Объектная декомпозиция, так же как и процедурная, может применяться многократно или быть многоуровневой. Это значит, что каждый объект системы может рассматриваться как система, которая состоит из элементов, взаимодействующих друг с другом через сообщения. На каждом уровне мы получаем объекты с более простым поведением, что позволяет разрабатывать сложные системы по частям.
    На рисунке ХХХ представлена диаграмма вариантов использования библиотечной системы

    Библиотечная система
    Читатель
    Библиотекарь
    Поиск книги в фонде
    Заказать книгу
    Выдать читатлю свободный экземпляр
    Список экземпляров читателя
    Отдать книгу
    БД Фонд книг
    Зарегстрирвать читателя
    Авторизовать читателя
    Найти свобдный экземпляр
    Рис. ХХХ Диаграмма основных вариантов использования программной системы
    «Управление выдачей и возвратом книг»
    Дополнительные
    • Ввод параметров для поиска книги
    • Оформление заказа книги
    Описание основных вариантов использования и сценариев вариантов использования по схеме
    Название варианта
    Поиск издания
    Цель
    Найти
    нужную
    литературу(книгу,
    журнал,диск)в фонде для оформления заказа
    Действующие лица
    Читатель
    Краткое описание
    ПС предоставляет Читателю инвентарный
    номер свободного экземпляра, или сообщение о том,
    что свободного экземпляра нет.
    Тип варианта
    основной
    Сценарий варианта Поиск издания
    Действия пользователя
    Действие системы

    Запуск режима подготовки критериев поиска
    Открывает окно ввода критериев
    Вводит значения только в те поля, которые сформируют критерий поиска и выполняет команду Найти
    Выводит результат поиска: либо сообщение о том, что книги вообще нет в фонде, либо о том ,что все выданы. Если то, что искал читатель найдено, то возвращается учетный номер, например ISBN и система начинает искать свободный экземпляр в списке экземпляров.
    Название варианта
    Заказать экземпляр
    Цель
    Подготовка заказа на литературу
    Действующие лица
    Читатель
    Краткое описание
    Если читатель при поиске получил инвентарный номерэкземпляра, то этот экземпляр закрепляется за читателем: в запись экземпляра записывается Логин читателя, дата выдачи, дата возврата
    Тип варианта основной
    Сценарий варианта Заказать экземпляр
    Действия пользователя
    Действие системы
    Выбор команды Оформление заказа
    Открывает окно авторизации.Если пользователь не является читателем,то ему предлагается зарегистрироваться
    Заполняет поля окна авторизации или регистрации
    Проверяется политика безопасности, правильность заполнения. Если аутентификация успешно выполнена, то система формирует заказ на выдачу книги и отображает его в окно пользователя.
    Если аутентификация не выполнена, то выдается сообщение в окно
    пользователя.
    Окно соответствующим образом настраивается.
    Выполняет команду Заказать
    Ставит заказ в очередь на оформление заказа
    Название варианта
    Выдать читателю свободный экземпляр
    Цель
    Учет книг выданных читателям
    Действующие лица
    Библиотекарь
    Краткое описание
    В запись о книге фонда с инвентарным номером заносится номер пользователя, дата возврата, код оформившего заказ
    Тип варианта основной
    Сценарий варианта Выдать читателю свободный экземпляр
    Действия пользователя
    Действие системы
    Выполнить команду оформления заказов
    Проверка регистрации пользователей, чьи заказы оформляются.
    Если все зарегистрированы, то открывается очередь заказов
    Установить даты возврата для каждого заказа и выполнить команду
    Выполнить заказ
    Выдает запрос на авторизацию библиотекаря
    Вводит свой код пароль
    Проверка идентификации.
    Если библиотекарь идентифицирован, то в записи книг записывается информация: код читателя и дата возврата
    Название варианта
    Найти свободный экземпляр
    Цель
    Проверить наличие свободного экземпляра
    Действующие лица
    Система

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

    2. Читатель
    3. Список читателей
    4. Библиотекарь
    5. БД Фонд изданий (системный каталог)
    6. Экземпляр
    7. БД Список экземпляров изданий
    8. Заказ
    9. Очередь заказов
    Издание
    Книга
    Журнал
    БД Фонд
    БД Списк экземпляров
    Экземпляр
    Заказ
    очередь заказов
    Библиотекарь
    Читатель
    Список экземпляров читателя
    Эл.издание
    1 1
    1
    *
    1
    *
    1
    *
    1 1
    1 1
    1 1
    1
    *
    Список читателей
    1
    *
    Рис. Контекстная диаграмма классов

    Рис. Диаграмма классов
    Пример декомпозиции программной системы «Складской учет»:
    • Занести в план
    • Оформить накладную
    • Включить товар в накладную
    • Отпустить товар
    • Проверить наличие товара на складе
    • Изменить количество товара на складе
    • Передать товар заказчику
    Здесь предметная область представлена не как совокупность функций взаимодействующих друг с другом, а совокупностью объектов: Товар,
    Накладная, Склад, Заказ, заказчик. На рисунке ХХХ.- объектно - ориентированная декомпозиция программной системы «Складской учет».
    Склад
    Заказ
    Товар
    Заказчик
    Накладная
    Прове рит н аличи е
    вк лю чи ть офор мить п
    р и
    н ят ь
    Передать

    Рисунок 2. Объектная модель программы «Складской учет»
    Объекты обладают поведением, состоянием, свойствами, которые в программе реализуются в виде подпрограмм ( функций ). Таким образом, объектно - ориентированная технология включает в себя возможности структурного подхода, но объектно - ориентированное проектирование в большей степени реализует модель реального мира и соответствует естественной логике человеческого мышления.
    По мнению автора С ++, Бьерна Страуструпа [2], различие между процедурным и объектно - ориентированным стилями программирования заключается примерно в следующем : программа на процедурном языке
    отражает " способ мышления " процессора, а на объектно -
    ориентированном способ мышления программиста. Отвечая требованиям современного программирования, объектно - ориентированный стиль программирования делает акцент на разработке новых типов данных, наиболее полно соответствующих концепциям выбранной области знаний и задачам приложения.
    Сравнивая объектно - ориентированный и процедурный стиль программирования (подробно остановимся на этих двух технологиях, поскольку для остальных характерна некоторая функциональная ограниченность, не позволяющая использовать их для решения широкого круга задач ), необходимо выбрать критерий сравнения.
    Основной критерий в оценке программных продуктов – сложность [1], а основными требованиями к методологиям разработки являются : удобство сопровождения, возможность безболезненного наращивания уже существующей программы, способность разработанных программных объектов к повторному использованию. При этом на второй план отступает такое требование, как быстрое проектирование первоначальной версии программы, потому что его воплощение обычно не позволяет соблюсти все остальные условия. Дело в том, что процесс разработки программного обеспечения не заканчивается первой версией. Он сводится к итеративному расширению предыдущих версий, что, в некоторой степени, и помогает решать проблему сложности. В борьбе с проблемами, определяемыми сложностью программ, дальше всех продвинулась объектно
    - ориентированная технология, которая и получила наибольшее распространение. В настоящее время она успешно развивается по самым разным направлениям, затрагивая как анализ и проектирование программных систем, так и написание самих программ. Последнее определяется как
    объектно - ориентированное программирование и связано с использованием соответствующих объектно - ориентированных языков.
    В качестве примера языков, поддерживающих объектно - ориентированный стиль программирования, можно привести С ++, Object
    Pascal, Smalltalk, Ada, Eiffel.
    Развитие ООП практически вытеснило процедурное программирование из разработки сложных программных систем.
    +Установить х()
    +Устанвть у()
    +Установить цвет залвки()
    +Установить цвет контура()
    +Утановить размер()
    +Изобразть фигуру()
    #Коорднаты
    #Цвет заливки
    #Цвет контура
    Геометрческая фигура
    +Изобразить круг()
    Круг
    +Изобразть квадрат()
    Квадрат
    +Выбрать фигуру()
    +Выполнть метод Изобразить фигуру()
    +ВЫплнить метод Устанвть цвет()
    +ВЫплнить метод Устанвть цвет заливки()
    +ВЫплнить метод Устанвить х()
    +ВЫплнить метод Устанвить у()
    +ВЫплнить метод зобразить фигуру()
    -Объект Круг
    -Объект Квадрат
    Меню
    -Конец1 1
    -Конец2
    *
    Уточненная диаграмма классов
    4 Реализация системы.
    Поэтапное подключение классов к системе по методу «сверху вниз»: создают шаблон основной программы на заглушках (моделируют работу ПС); затем реализуют и подключают классы так, чтобы создать грубое, но работающее решение - прототип будущей системы. Например, прототипом может служить интерфейс пользователя. Его тестируют и отлаживают. Его показывают заказчику и уточняют детали.
    Модификация. Это добавление новы функциональных возможностей или изменение существующих свойств системы. Модификация касается только реализации класса, его интерфейс не затрагивается

    5 Класс в С++
    Практика показывает, что сочетание структурного и модульного программирования позволяет получить достаточно надежное программное обеспечение.
    Узким местом модульного программирования является то, что ошибка интерфейса (межмодульных связей) может быть выявлена только на этапе выполнения всей программы, так как модуль компилируется отдельно.
    При увеличении размера программы (свыше 100 000 операторов), возрастает сложность межмодульных интерфейсов, предусмотреть взаимовлияние отдельных частей программы становиться сложно.
    Объектно-ориентированное программирование объединило лучшие идеи структурированного с рядом мощных концепций, которые способствуют более эффективной организации программ. Объектно-ориентированный подход к программированию позволяет разложить задачу на составные части таким образом, что каждая составная часть будет представлять собой самостоятельный объект, который содержит собственные инструкции и данные.
    При таком подходе существенно понижается общий уровень сложности программ, что позволяет программисту справляться с более сложными программами, чем раньше (т.е. написанными при использовании структурированного программирования).
    Данные в программах структурного программирования не защищены, доступ к глобальным переменным не закрыт, они могут подвергаться случайным действиям.
    Все языки объектно-ориентированного программирования характеризуются тремя общими признаками (тремя китами): инкапсуляцией, полиморфизмом и наследованием.
    Все программы, как правило, состоят из двух основных элементов: инструкций (кода) и данных. Код — это часть программы, которая выполняет действия, а данные представляют собой информацию, на которую направлены эти действия.
    Инкапсуляция — это такой механизм программирования, который связывает воедино код и данные, которые он обрабатывает, чтобы обезопасить их как от внешнего вмешательства, так и от неправильного использования.

    5.1
    Основные принципы объектно – ориентированного
    программирования
    Абстрагирование – выделение абстракций предметной области. Абстракция
    – совокупность существенных характеристик объекта, отличающих его от всех других видов объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа поставленной задачи.
    Абстракция существенно зависит от решаемой задачи: т.е. в одном случае это форма предмета, в другом его вес, в третьем – материал из которого он изготовлен, в четвертом – закон движения предмета.
    ООП предлагает объединять все свойства абстракции в единую программную единицу – абстрактный тип (класс).
    Абстрагирование позволяет сосредоточиться на общих свойствах объектов предметной области, не вдаваясь на этапе проектирования в детали, т.е. игнорируются не слишком важные детали, и т.о. имеем дело с обобщенной идеализированной моделью объекта. Абстракции представляют связанные информационные единицы. Применение абстракции позволяет, моделировать систему из объектов большого семантического объема.
    1   2   3   4   5   6   7   8   9   ...   15


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