Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
96 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
1.69 MB
Просмотров:
69
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Объектно-ориентированное](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img0.jpg)
Содержание слайда: Объектно-ориентированное проектирование ПС
Лекция 7
№2 слайд![Способы декомпозиции системы](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img1.jpg)
Содержание слайда: Способы декомпозиции системы
Функциональная декомпозиция– на основе потока данных с выделением обрабатывающих функций
Объектная декомпозиция – на основе выделения сущностей, обладающих собственными наборами данных, состояниями и наборами операций
№3 слайд![Способы декомпозиции системы](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img2.jpg)
Содержание слайда: Способы декомпозиции системы
В первом случае внимание концентрируется на порядке происходящих событий (действиях)
Во втором – на агентах, являющихся либо объектами, либо субъектами действий
№4 слайд![Структурные единицы Основной](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img3.jpg)
Содержание слайда: Структурные единицы
Основной структурной единицей при функциональной декомпозиции является процедура, как программная реализация алгоритма
Основной структурной единицей при объектно-ориентированной декомпозиции является объект как объединение данных и действий над ними
№5 слайд![Начало проектирования](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img4.jpg)
Содержание слайда: Начало проектирования
Результаты анализа предметной области представляются в виде диаграммы прецедентов с описанием прецедентов
Следующий шаг – создание концептуальной модели разрабатываемой системы, т.е. описание ее в терминах предметной области
№6 слайд![Ключевые абстракции В](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img5.jpg)
Содержание слайда: Ключевые абстракции
В концептуальной модели используются ключевые абстракции предметной области
Ключевая абстракция - это класс или объект, который входит в словарь проблемной области
№7 слайд![Выделение объектов Ключевые](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img6.jpg)
Содержание слайда: Выделение объектов
Ключевые абстракции определяют границы системы: выделяют то, что входит в нее и важно для нас, а также устраняют все лишнее
На более поздних этапах проектирования большинство ключевых абстракций будут отображены в программные классы
№8 слайд![ПРЕЦЕДЕНТЫ И ТРЕБОВАНИЯ](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img7.jpg)
Содержание слайда: ПРЕЦЕДЕНТЫ И ТРЕБОВАНИЯ
№9 слайд![Требования Уточним понятие](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img8.jpg)
Содержание слайда: Требования
Уточним понятие прецедента и его связь с понятием «требования к программной системе»
Требования (requirements) – это возможности или условия, которым должна удовлетворять разрабатываемая система
№10 слайд![Требования и риски](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img9.jpg)
Содержание слайда: Требования и риски
№11 слайд![Формулировка требований](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img10.jpg)
Содержание слайда: Формулировка требований
Требования к системе могут быть представлены в виде списка кратких утверждений типа: «система должна обеспечивать выполнение такой-то операции»
Такой подход связан, по крайней мере, с двумя недостатками:
нечеткостью формулировки требований,
неполнотой их списка
№12 слайд![Формулировка требований Для](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img11.jpg)
Содержание слайда: Формулировка требований
Для описания функциональных требований к системе был предложен подход, основанный на использовании прецедентов (Ivar Jacobson, 1986)
Прецедент (use case) – это описание способа использования системы с целью получения некоторого результата, значимого для исполнителя
№13 слайд![Прецедент и сценарии](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img12.jpg)
Содержание слайда: Прецедент и сценарии
Прецедент однозначно связан с результатом, но достижение одного и того же результата может происходить разными путями, в зависимости от тех или иных условий
Конкретная последовательность действий или взаимодействий между системой и исполнителем в рамках одного прецедента называется сценарием (scenario)
№14 слайд![Прецедент и сценарии Таким](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img13.jpg)
Содержание слайда: Прецедент и сценарии
Таким образом, прецедент – это набор различных сценариев использования системы для получения одного и того же значимого результата
Сценарий, реализующийся с наибольшей вероятностью, называется основным, а остальные сценарии – альтернативными
№15 слайд![Исполнитель Под исполнителем](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img14.jpg)
Содержание слайда: Исполнитель
Под исполнителем (actor) в предыдущих определениях понималась некоторая сущность, обладающая поведением (человек или организация, представленные ролью, или компьютерная система)
№16 слайд![ПРИМЕР РАЗРАБОТКИ Это т](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img15.jpg)
Содержание слайда: ПРИМЕР РАЗРАБОТКИ
Это т пример описан в книге Крэга Лармана «Применение UML и шаблонов проектирования»
№17 слайд![Постановка задачи Разработать](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img16.jpg)
Содержание слайда: Постановка задачи
Разработать программное обеспечение для системы организации товарооборота и обработки платежей в магазинах розничной торговли
№18 слайд![Модель разработки Разработка](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img17.jpg)
Содержание слайда: Модель разработки
Разработка системы будет вестись в рамках модели RUP - адаптивного итеративного процесса с постепенным наращиванием функциональности ПС и уточнением требований посредством механизма обратной связи
№19 слайд![Фазы процесса разработки](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img18.jpg)
Содержание слайда: Фазы процесса разработки
Начало – анализ проблемы, формирование представлений о функциях системы и основных требованиях к ней
Развитие –реализация базовой части системы и уточнение требований; осуществляется через последовательность итераций
№20 слайд![Фазы процесса разработки](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img19.jpg)
Содержание слайда: Фазы процесса разработки
Конструирование – разработка системы в полном объеме и окончательная формулировка требований; осуществляется через последовательность итераций, каждая из которых завершается созданием релиза
Внедрение – развертывание системы и бета-тестирование
№21 слайд![ЭТАП НАЧАЛО Основные задачи](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img20.jpg)
Содержание слайда: ЭТАП НАЧАЛО
Основные задачи:
формирование представления о проекте
формулирование исходных требований к системе
оценка стоимости проекта
идентификация основных рисков
№22 слайд![Анализ предметной области](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img21.jpg)
Содержание слайда: Анализ предметной области
Предметная область – ро́зничная торго́вля (англ. retail)
Что делается – производится продажа товаров конечному потребителю (частному лицу)
Как делается – покупатель отбирает необходимые ему товары и производит оплату в кассе
№23 слайд![Анализ предметной области Где](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img22.jpg)
Содержание слайда: Анализ предметной области
Где делается – основным предприятием розничной торговли является магазин (дискаунтер, универмаг, универсам и т.д.)
Кто делает – субъектами процесса розничной торговли являются продавец (менеджер торгового зала, кассир) и покупатель
№24 слайд![Анализ предметной области](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img23.jpg)
Содержание слайда: Анализ предметной области
Когда делается – каждый магазин имеет фиксированный график работы
Зачем делается – розничная торговля обеспечивает удовлетворение потребностей населения в товарах различного назначения и получение торговой прибыли
№25 слайд![Проблемы Низкая скорость](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img24.jpg)
Содержание слайда: Проблемы
Низкая скорость выполнения операции оплаты покупок
Ошибки кассиров при подсчете стоимости товаров и расчете с покупателями
Сложность ведения учета проданных товаров
Большие объемы работ по подготовке данных для системы анализа
№26 слайд![Пути решения Создание](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img25.jpg)
Содержание слайда: Пути решения
Создание компьютеризированной системы оплаты покупок Point-Of-Sale (POS-система)
Интеграция этой системы с существующими компьютерными системами поддержки торговой деятельности – системой складского учета, системой анализа торговой деятельности, бухгалтерской системой
№27 слайд![POS-терминал POS-система](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img26.jpg)
Содержание слайда: POS-терминал
POS-система реализуется в виде набора POS-терминалов
Каждый POS-терминал представляет собой программно-аппаратный комплекс, установленный на месте, где кассир осуществляет прием платежей от клиентов (АРМ кассира)
№28 слайд![Аппаратная часть Аппаратная](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img27.jpg)
Содержание слайда: Аппаратная часть
Аппаратная часть POS-терминала включает:
системный блок ПК,
фискальный регистратор,
POS-монитор кассира,
денежный ящик,
программируемую клавиатуру,
считыватель карт,
считыватель штрих-кодов
№29 слайд![Фискальный регистратор](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img28.jpg)
Содержание слайда: Фискальный регистратор
Фискальный регистратор (ФР) – это устройство, обеспечивающее не корректируемую ежесуточную или ежесменную регистрацию наличных денежных расчетов и энергонезависимое долговременное хранение итоговой информации
Он сохраняет результаты продаж в фискальной памяти в течение всего срока его эксплуатации, а также распечатывает чеки покупателя.
№30 слайд![Аппаратная часть POS-терминала](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img29.jpg)
Содержание слайда: Аппаратная часть POS-терминала
№31 слайд![Интерфейс пользователя](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img30.jpg)
Содержание слайда: Интерфейс пользователя
POS-терминал должен иметь интерфейс взаимодействия с пользователем для
поиска нужного товара и получения его характеристик;
формирования и печати чеков;
подсчета сдачи;
выполнения различных отчетов
№32 слайд![Определение границ системы](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img31.jpg)
Содержание слайда: Определение границ системы
Границы системы проще всего определить установив основных исполнителей, потребности которых удовлетворяются данной системой
Для этого надо ответить на вопросы:
Кто будет снабжать систему информацией?
Кто будет получать информацию от системы?
Кто будет осуществлять поддержку и обслуживание системы?
Использует ли система внешние ресурсы?
№33 слайд![Границы системы](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img32.jpg)
Содержание слайда: Границы системы
№34 слайд![Основные исполнители Кассир](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img33.jpg)
Содержание слайда: Основные исполнители
Кассир
оформляет продажи,
выполняет возврат товара,
регистрирует выручку;
Системный администратор
редактирует список пользователей,
управляет безопасностью;
№35 слайд![Основные исполнители Менеджер](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img34.jpg)
Содержание слайда: Основные исполнители
Менеджер
включает систему,
выключает систему
Система анализа торговой деятельности
анализирует информацию о продажах и оценивает производительность
№36 слайд![Прецеденты Следует иметь в](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img35.jpg)
Содержание слайда: Прецеденты
Следует иметь в виду, что прецеденты могут быть определены на разных уровнях детализации
При анализе требований следует сосредоточить внимание на уровне элементарных бизнес-процессов, т.е. задач достаточно высокого уровня
Основной сценарий таких прецедентов содержит 5 – 10 шагов
№37 слайд![Прецеденты для POS-системы](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img36.jpg)
Содержание слайда: Прецеденты для POS-системы
Включение системы
Регистрация в системе
Оформление покупки
Возврат товара
Регистрация выручки
Управление списком пользователей
Управление безопасностью
Анализ деятельности
Выключение системы
№38 слайд![Ранжирование прецедентов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img37.jpg)
Содержание слайда: Ранжирование прецедентов
Учитываются следующие факторы:
влияние на архитектуру (например, добавление новых классов);
наличие рискованных, срочных или сложных функций;
потребность в дополнительных исследованиях;
степень важности соответствующего бизнес-процесса
№39 слайд![Ранжирование прецедентов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img38.jpg)
Содержание слайда: Ранжирование прецедентов
№40 слайд![Функциональные требования](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img39.jpg)
Содержание слайда: Функциональные требования
Требования этой категории исследуются и формулируются в процессе разработки модели прецедентов (вариантов использования)
Как правило, одной задаче исполнителя соответствует один прецедент
№41 слайд![Диаграмма прецедентов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img40.jpg)
Содержание слайда: Диаграмма прецедентов
№42 слайд![Описание прецедентов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img41.jpg)
Содержание слайда: Описание прецедентов
Диаграмма прецедентов дает наглядное изображение системного контекста – границ системы, внешние по отношению к ней понятия и способы использования системы
Однако, для формулирования и анализа требований необходимо детальное текстовое описание прецедентов
№43 слайд![Описание прецедентов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img42.jpg)
Содержание слайда: Описание прецедентов
Текстовое описание прецедента может быть развернутым или кратким
На начальном этапе развернутое описание дается лишь для основных прецедентов (10-20% от их общего числа)
Пример развернутого описания для прецедента Оформление продажи
№44 слайд![Диаграммы и описания](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img43.jpg)
Содержание слайда: Диаграммы и описания прецедентов
Важно иметь в виду, что главное в работе над прецедентами – это составление их описаний, основных и альтернативных сценариев, т.е. текстовых документов
Диаграммы прецедентов играют важную, но второстепенную роль, помогая наглядно представить связи прецедентов с исполнителями, а также взаимосвязи прецедентов
№45 слайд![Нефункциональные требования](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img44.jpg)
Содержание слайда: Нефункциональные требования
Определяются в дополнительной спецификации
Приведем пример такой спецификации для POS-системы
№46 слайд![Эргономичность Для достижения](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img45.jpg)
Содержание слайда: Эргономичность
Для достижения высокой скорости обслуживания покупателей при его высоком качестве необходимо:
обеспечить минимальное время отклика системы,
текст должен быть виден с расстояния 1 м,
не должно быть мерцания экрана,
предупреждающие сообщения должны сопровождаться звуковыми сигналами
№47 слайд![Надежность При сбое в работе](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img46.jpg)
Содержание слайда: Надежность
При сбое в работе внешних систем (анализ деятельности) необходимо обеспечить возможность локальной обработки данных, их сохранение и последующую передачу
Этот вопрос требует дальнейшей проработки
№48 слайд![Производительность Покупатель](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img47.jpg)
Содержание слайда: Производительность
Покупатель хочет оформить покупку как можно быстрее
Одна из основных причин задержки – низкая скорость авторизации
Необходимо обеспечить выполнение авторизации менее, чем за 1 минуту в 90% случаев
№49 слайд![Недостатки существующих](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img48.jpg)
Содержание слайда: Недостатки существующих решений
Не обеспечивается автоматический переход из интерактивного в автономный режим при сбоях внешних систем;
Отсутствие простой возможности интеграции с внешними системами;
Отсутствие поддержки новых терминальных технологий
№50 слайд![Итоги этапа Начало Выделены](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img49.jpg)
Содержание слайда: Итоги этапа Начало
Выделены основные исполнители, задачи и прецеденты
Выполнено ранжирование и описание прецедентов
Сформулированы в черновом варианте требования к системе
№51 слайд![ЭТАП РАЗВИТИЕ Создается](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img50.jpg)
Содержание слайда: ЭТАП РАЗВИТИЕ
Создается базовая архитектура системы
Производится разрешение высоких рисков
Определяется большинство требований (до 80% прецедентов получают развернутое описание)
Полностью разрабатывается некоторый фрагмент системы
№52 слайд![Первая итерация Программная](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img51.jpg)
Содержание слайда: Первая итерация
Программная реализация базового сценария прецедента Оформление продажи
Реализация прецедента Включение системы (необходим для предыдущего)
Взаимодействие с внешними службами не реализуется
№53 слайд![Словарь предметной области](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img52.jpg)
Содержание слайда: Словарь предметной области
Для дальнейшей работы над системой требуется выделить основные сущности предметной области и зафиксировать их в словаре
Register – реестр (терминал)
Item – товар
Store – магазин
Sale – продажа
Sales LineItem – элемент продажи
№54 слайд![Словарь предметной области](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img53.jpg)
Содержание слайда: Словарь предметной области
Cashier –кассир
Customer – покупатель
Manager – менеджер
Payment – платеж
Product Catalog – каталог товаров
Product Specification – спецификация товара
№55 слайд![Концептуальная модель](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img54.jpg)
Содержание слайда: Концептуальная модель
Выделенные таким образом сущности рассматриваются как классы понятий предметной области или концептуальные классы
Описание предметной области в терминах концептуальных классов называется концептуальной моделью предметной области
№56 слайд![Концептуальная модель](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img55.jpg)
Содержание слайда: Концептуальная модель
Отображает наиболее важные для цели моделирования классы понятий предметной области (концептуальные классы)
Кроме того концептуальная модель может отображать
ассоциации между концептуальными классами,
атрибуты концептуальных классов
№57 слайд![Классы и атрибуты](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img56.jpg)
Содержание слайда: Классы и атрибуты
№58 слайд![Концептуальная модель](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img57.jpg)
Содержание слайда: Концептуальная модель
№59 слайд![Поведение системы Это](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img58.jpg)
Содержание слайда: Поведение системы
Это описание действий, выполняемых системой, без детализации механизма их реализации
Для визуального представления поведения системы используют диаграмму последовательностей системы
№60 слайд![Диаграммы последовательностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img59.jpg)
Содержание слайда: Диаграммы последовательностей
Диаграммы последовательностей – это составная часть модели прецедентов, позволяющая визуализировать взаимодействие объектов в процессе реализации прецедента
№61 слайд![Диаграмма последовательностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img60.jpg)
Содержание слайда: Диаграмма последовательностей
№62 слайд![Системные операции Диаграмма](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img61.jpg)
Содержание слайда: Системные операции
Диаграмма последовательностей системы позволяет выделить набор системных операций
Операцией называется любое преобразование объекта или запрос к объекту
Операция называется системной, если в качестве объекта выступает система в целом
№63 слайд![Описание операций Операции](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img62.jpg)
Содержание слайда: Описание операций
Операции требуют отдельного описания, если они достаточно сложны и их содержание не раскрыто в описании соответствующего прецедента
№64 слайд![Структура описания операции](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img63.jpg)
Содержание слайда: Структура описания операции
№65 слайд![Категории постусловий](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img64.jpg)
Содержание слайда: Категории постусловий
Создание или удаление экземпляра объекта
Модификация атрибута экземпляра объекта
Формирование или разрыв ассоциации
№66 слайд![Системные операции POS](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img65.jpg)
Содержание слайда: Системные операции POS
№67 слайд![Системные операции POS](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img66.jpg)
Содержание слайда: Системные операции POS
№68 слайд![](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img67.jpg)
№69 слайд![Модель проектирования](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img68.jpg)
Содержание слайда: Модель проектирования
Созданием концептуальной модели завершается анализ требований в рамках первой итерации
На следующем этапе внимание фокусируется на разработке проектного решения, удовлетворяющего требованиям данной итерации, т.е. модели проектирования
№70 слайд![Концептуальные и программные](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img69.jpg)
Содержание слайда: Концептуальные и программные классы
Концептуальная модель содержит концептуальные классы с указанием их атрибутов
Модель проектирования содержит программные классы с указанием их атрибутов и методов
№71 слайд![](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img70.jpg)
№72 слайд![Распределение обязанностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img71.jpg)
Содержание слайда: Распределение обязанностей
Основной задачей этапа проектирования является построение логики взаимодействия объектов, обеспечивающей выполнение системных требований
Это достигается путем распределения обязанностей объектов
№73 слайд![Знания и действия Обязанность](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img72.jpg)
Содержание слайда: Знания и действия
Обязанность определяется как контракт объекта и делятся на
знания (наличие информации об инкапсулированных данных, о связанных объектах)
действия (выполнение вычислений, создание экземпляра, инициирование действий других объектов или управление ими)
№74 слайд![Реализация обязанностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img73.jpg)
Содержание слайда: Реализация обязанностей
Обязанности реализуются посредством методов программных классов
Метод может реализовывать обязанность самостоятельно, либо во взаимодействии с методами других классов
№75 слайд![Диаграммы взаимодействия Для](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img74.jpg)
Содержание слайда: Диаграммы взаимодействия
Для визуализации распределения обязанностей между объектами используют диаграммы взаимодействия двух видов:
диаграммы кооперации,
диаграммы последовательностей
В обоих случаях взаимодействие объектов представляется в виде обмена сообщениями
№76 слайд![Шаблоны Распределение](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img75.jpg)
Содержание слайда: Шаблоны
Распределение обязанностей подчиняется ряду принципов, обобщающих практический опыт проектирования программных систем
Эти принципы формулируются в виде шаблонов проектирования (design patterns)
№77 слайд![Шаблон Expert Проблема Каков](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img76.jpg)
Содержание слайда: Шаблон Expert
Проблема Каков наиболее общий принцип распределения обязанностей?
Решение Назначить обязанность классу, владеющему информацией, необходимой для выполнения обязанности
№78 слайд![Формулировка обязанности](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img77.jpg)
Содержание слайда: Формулировка обязанности
Вычислить общую сумму продажи
Какая информация нужна для выполнения этой обязанности?
стоимость каждого вида товаров,
цену каждого вида товаров
Какой класс должен выполнять эту обязанность?
№79 слайд![Вычисление общей стоимости](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img78.jpg)
Содержание слайда: Вычисление общей стоимости
№80 слайд![Распределение обязанностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img79.jpg)
Содержание слайда: Распределение обязанностей
Класс Sale – эксперт для вычисления общей суммы продажи
Класс Sales LineItem– эксперт для вычисления промежуточной суммы элемента продажи
Класс Product Specification – эксперт для определения цены товара
№81 слайд![Диаграмма кооперации](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img80.jpg)
Содержание слайда: Диаграмма кооперации
№82 слайд![Создание программных объектов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img81.jpg)
Содержание слайда: Создание программных объектов
Объекты программных классов должны быть созданы, чтобы их можно было использовать
Проблема Какие классы должны отвечать за создание объектов классов Sale, Sales LineItem, Product Specification?
№83 слайд![Шаблон Creator Решение](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img82.jpg)
Содержание слайда: Шаблон Creator
Решение Назначить классу B создавать объекты класса A, если выполняется одно из условий:
Класс B агрегирует объекты A
Класс B содержит объекты A
Класс B записывает объекты A
Класс B активно использует объекты A
Класс B обладает данными для инициализации объектов класса A
№84 слайд![Шаблон Creator Под агрегацией](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img83.jpg)
Содержание слайда: Шаблон Creator
Под агрегацией классом B объектов класса A подразумевается, что последние являются составляющими частями объектов класса B
Если же объект класса B выступает лишь в роли контейнера для объектов класса A, то говорят, класс B содержит объекты класса A
№85 слайд![Выявление объекта-создателя](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img84.jpg)
Содержание слайда: Выявление объекта-создателя
№86 слайд![Шаблон Creator Определяет](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img85.jpg)
Содержание слайда: Шаблон Creator
Определяет способ распределения обязанностей, связанный с процессом создания объектов
Основное назначение – выявление объекта-создателя:
класс-контейнер
класс-регистратор
класс, владеющий информацией, необходимой при инициализации объекта
№87 слайд![Создание объектов](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img86.jpg)
Содержание слайда: Создание объектов SalesLineItem
Класс Sale агрегирует объекты класса SalesLineItem и поэтому является хорошим кандидатом на роль создателя объектов этого класса
№88 слайд![Диаграмма последовательностей](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img87.jpg)
Содержание слайда: Диаграмма последовательностей
№89 слайд![Обеспечение низкого сцепления](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img88.jpg)
Содержание слайда: Обеспечение низкого сцепления
Необходимо создать объект Payment и связать его с объектом Sale
Возможны два альтернативных пути:
объект Payment создается объектом Register, который затем уведомляет об этом объект Sale;
объект Payment создается объектом Sale, который получает соответствующее указание от объекта Register
№90 слайд![Два способа создания Payment](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img89.jpg)
Содержание слайда: Два способа создания Payment
№91 слайд![Шаблон Low Coupling Этот](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img90.jpg)
Содержание слайда: Шаблон Low Coupling
Этот шаблон поддерживает независимость классов и слабое сцепление между ними
В соответствии с данным шаблоном предпочтение следует отдать второму способу, т.к. при этом не возникает дополнительной связи между Register и Payment
№92 слайд![Шаблон Low Coupling Высокая](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img91.jpg)
Содержание слайда: Шаблон Low Coupling
Высокая степень сцепления объектов сама по себе не является проблемой
Рекомендуется избегать ее в двух случаях:
для классов, являющихся достаточно общими по своей природе и многократно используемыми;
для неустойчивых и подверженными частому изменению элементов системы
№93 слайд![Шаблон High Cohesion Проблема](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img92.jpg)
Содержание слайда: Шаблон High Cohesion
Проблема Как обеспечить управление сложностью?
Решение Распределить обязанности способом, обеспечивающим высокую степень функциональной связности
Функциональная связность– это мера взаимосвязи обязанностей класса
Класс с низкой степенью связности выполняет много разнородных функций
№94 слайд![Два способа создания Payment](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img93.jpg)
Содержание слайда: Два способа создания Payment
№95 слайд![Шаблон High Cohesion Классы с](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img94.jpg)
Содержание слайда: Шаблон High Cohesion
Классы с высокой степенью связности просты в понимании, поддержке и повторном использовании
Сцепление и связность взаимозависимы: неправильное сцепление порождает слабую связность, и наоборот
№96 слайд![Конец лекции](/documents_6/868dccf62cd389a7a2d51ec86ac26eff/img95.jpg)
Содержание слайда: Конец лекции