Презентация Объектно-ориентированное проектирование ПС (часть 2) онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Объектно-ориентированное проектирование ПС (часть 2) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 76 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Объектно-ориентированное проектирование ПС (часть 2)
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:76 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.37 MB
- Просмотров:64
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Шаблон Controller Проблема](/documents_6/9a070bc5155ba4a586d8821440011767/img1.jpg)
Содержание слайда: Шаблон Controller
Проблема Кто должен отвечать за обработку системных сообщений?
Решение Обязанности по обработке системных сообщений назначаются классу, который:
представляет систему в целом;
представляет сценарий некоторого прецедента, в рамках которого обрабатываются системные сообщения
№8 слайд
![Диаграммы взаимодействия](/documents_6/9a070bc5155ba4a586d8821440011767/img7.jpg)
Содержание слайда: Диаграммы взаимодействия
Реализация прецедентов представляется в виде диаграмм взаимодействия, начинающихся с соответствующего системного сообщения
Диаграммы взаимодействия включают процессы передачи сообщений между программными объектами, участвующими в реализации прецедента
№9 слайд
![Прецедент Оформление продажи](/documents_6/9a070bc5155ba4a586d8821440011767/img8.jpg)
Содержание слайда: Прецедент «Оформление продажи»
На текущей итерации рассмотрены следующие системные события и соответствующие операции:
Начать оформление покупки (makeNewSale)
Ввести данные товара (enterItem)
Завершить оформление покупки (endSale)
Оформить платеж (makePayment)
Для наглядности каждая операция будет представлена отдельной диаграммой
№12 слайд
![Операция enterItem Операция](/documents_6/9a070bc5155ba4a586d8821440011767/img11.jpg)
Содержание слайда: Операция enterItem
Операция
enterItem(iID: ItemID, quantity: integer)
Ссылки
Прецеденты: Оформление продажи
Предусловия
Инициирована продажа
Постусловия
Создан экземпляр sli класса SalesLineItem
Экземпляр sli связан с объектом класса Sale
Атрибуту sli.quantity присвоено значение quantity
Экземпляр sli связан с классом ProductSpecification
№13 слайд
![Обработка enterItem Ранее](/documents_6/9a070bc5155ba4a586d8821440011767/img12.jpg)
Содержание слайда: Обработка enterItem
Ранее было установлено, что объект Sale должен создаваться объектом Registor
Объект Sale создает объект SalesLineItem и добавляет его в свой контейнер
Затем необходимо получить описание товара ProductSpecification для экземпляра SalesLineItem
Кто должен поставлять эту информацию?
№14 слайд
![Класс ProductCatalog На](/documents_6/9a070bc5155ba4a586d8821440011767/img13.jpg)
Содержание слайда: Класс ProductCatalog
На основе анализа предметной области и в соответствии с шаблоном Expert эта обязанность должна быть назначена классу ProductCatalog
Этот класс должен содержать коллекцию экземпляров класса ProductSpecification
Запрос на получение описания товара должен отправлять объект Register
№19 слайд
![Операция makePayment Операция](/documents_6/9a070bc5155ba4a586d8821440011767/img18.jpg)
Содержание слайда: Операция makePayment
Операция makePayment(amount: Money)
Ссылки Прецеденты: Оформление продажи
Предусловия Инициирована продажа
Постусловия
Создан экземпляр p класса Payment
Экземпляр p связан с объектом класса Sale
Атрибуту amountTendered присвоено значение amount
Экземпляр Sale связан с экземпляром класса Store для его добавления в журнал продаж
№25 слайд
![Запуск приложения](/documents_6/9a070bc5155ba4a586d8821440011767/img24.jpg)
Содержание слайда: Запуск приложения
Представляется системной операцией StartUp, которая является абстракцией реального процесса загрузки и инициализации приложения
Диаграмма взаимодействия для операции StartUp строится в последнюю очередь, когда уже известна информация об основных системных операциях
№28 слайд
![Операция StartUp Операция](/documents_6/9a070bc5155ba4a586d8821440011767/img27.jpg)
Содержание слайда: Операция StartUp
Операция StartUp()
Ссылки Прецеденты: Запуск системы
Предусловия Отсутствуют
Постусловия
Создан экземпляр класса Store
Создан экземпляр pc класса ProductCatalog
Экземпляр pc связан с экземпляром класса Store
Создан экземпляр ps класса ProductSpecification
Экземпляр ps связан с объектом класса Product Catalog
№31 слайд
![Подключение уровня интерфейса](/documents_6/9a070bc5155ba4a586d8821440011767/img30.jpg)
Содержание слайда: Подключение уровня интерфейса
До сих пор проектирование велось на уровне объектов предметной области
Для подключения уровня пользовательского интерфейса потребуем, чтобы инициализирующая программа создавала и объекты уровня пользовательского интерфейса и исходный объект уровня предметной области с их связыванием
№37 слайд
![Ассоциации и навигация Линии](/documents_6/9a070bc5155ba4a586d8821440011767/img36.jpg)
Содержание слайда: Ассоциации и навигация
Линии связи и навигации устанавливаются на основе анализа диаграмм взаимодействия
Такие ассоциации интерпретируются как видимость целевого класса для класса-источника, обеспечиваемая с помощью атрибутов (атрибут класса-источника является ссылкой на экземпляр целевого класса)
№39 слайд
![Отношения зависимости](/documents_6/9a070bc5155ba4a586d8821440011767/img38.jpg)
Содержание слайда: Отношения зависимости
Означает наличие у одного из классов информации о другом классе
Изображается пунктирной линией
Объект класса Register получает информацию об объекте класса ProductSpecification в виде возвращаемого значения метода getSpecification, а объект класса Sale – через параметр метода makeLineItem
№44 слайд
![Тестирование модулей](/documents_6/9a070bc5155ba4a586d8821440011767/img43.jpg)
Содержание слайда: Тестирование модулей
Осуществляется с использованием утилит модульного тестирования (NUnit, JUnit и т.д.)
Широко используемой является практика программирования на основе тестирования, когда тесты пишутся до написания кода
Тем самым обеспечивается тотальный и неформальный характер тестирования
№45 слайд
![Синхронизация артефактов На](/documents_6/9a070bc5155ba4a586d8821440011767/img44.jpg)
Содержание слайда: Синхронизация артефактов
На этапе реализации программного кода проясняются многие детали, не учтенные на стадиях анализа и проектирования
Поэтому после завершения кодирования необходимо произвести синхронизацию основных артефактов – концептуальной модели, проектного решения и программного кода
№52 слайд
![Шаблон Factory Проблема Какой](/documents_6/9a070bc5155ba4a586d8821440011767/img51.jpg)
Содержание слайда: Шаблон Factory
Проблема Какой класс должен отвечать за создание объектов-адаптеров? Как определять тип создаваемого адаптера?
Решение Создать искусственный (не представляющий понятия предметной области) объект и назначить ему группу обязанностей по созданию других объектов
№53 слайд
![Обоснование решения](/documents_6/9a070bc5155ba4a586d8821440011767/img52.jpg)
Содержание слайда: Обоснование решения
Действительно, если бы обязанности по созданию новых объектов были поручены одному из объектов уровня предметной области (например, Register), то это нарушило бы принцип разделения обязанностей
Кроме того, это уменьшило бы связность соответствующего объекта уровня предметной области
№56 слайд
![Шаблон Singleton](/documents_6/9a070bc5155ba4a586d8821440011767/img55.jpg)
Содержание слайда: Шаблон Singleton
Использование объекта-фабрики порождает новую проблему проектирования – кто должен создавать саму фабрику и как получить к ней доступ?
При этом очевидно, что в рамках приложения нужен всего лишь один экземпляр фабрики, доступ к которому возможен для любых объектов
№60 слайд
![Пример обращения к](/documents_6/9a070bc5155ba4a586d8821440011767/img59.jpg)
Содержание слайда: Пример обращения к объекту-фабрике
public class Register
{
public void initialize ( )
{ …выполняем необходимые действия
// обращаемся к объекту-фабрике через вызов
// статического метода getInstance ( )
ServicesFactory. getInstance ( ). getAccountAdapter();
…выполняем необходимые действия
}
// другие методы
}
№65 слайд
![Взаимодействие](/documents_6/9a070bc5155ba4a586d8821440011767/img64.jpg)
Содержание слайда: Взаимодействие объекта-стратегии с объектом Sale
При отправке объекту класса Sale сообщения getTotal он делегирует часть своих задач объекту стратегии
При этом контекстный объект передает объекту стратегии ссылку на самого себя (this) для обеспечения параметрической видимости
№71 слайд
![Задача Подключение](/documents_6/9a070bc5155ba4a586d8821440011767/img70.jpg)
Содержание слайда: Задача 3:Подключение бизнес-правил
Требуется подключить правила, отменяющие некоторые действия, например:
при наличии подарочного сертификата может быть приобретен только один товар – все операции enterItem, кроме первой должны быть отменены;
при проведении благотворительной акции могут приобретаться товары стоимостью не выше некоторой пороговой
№73 слайд
![Шаблон Facade Проблема Как](/documents_6/9a070bc5155ba4a586d8821440011767/img72.jpg)
Содержание слайда: Шаблон Facade
Проблема Как обеспечить унифицированный интерфейс с набором разрозненных интерфейсов и реализаций, подверженных частым изменениям
Решение Определить одну точку взаимодействия с подсистемой – фасадный объект и возложить на него обязанность по взаимодействию с компонентами подсистемы
№74 слайд
![Шаблон Facade В данном случае](/documents_6/9a070bc5155ba4a586d8821440011767/img73.jpg)
Содержание слайда: Шаблон Facade
В данном случае можно определить подсистему «генератор правил», которую можно реализовать либо на основе шаблона Strategy, либо с помощью интерпретатора правил, считывающих и интерпретирующих набор правил if – then
Фасадный объект для такой подсистемы можно назвать RuleEngineFacade
№75 слайд
![Пример обращения к объекту](/documents_6/9a070bc5155ba4a586d8821440011767/img74.jpg)
Содержание слайда: Пример обращения к объекту фасада
public class Sale
{ public void makeLineItem ( )
{
SalesLineItem sli = new SalesLineItem (spec, quant);
// обращение к фасадному объекту
if (RuleEngineFacade.getInstance( ).isInvalid(sli, this))
return;
lineItems.add(sli);
}
// другие методы
}
Скачать все slide презентации Объектно-ориентированное проектирование ПС (часть 2) одним архивом:
Похожие презентации
-
Объектно-ориентированное проектирование ИС
-
Объектно-ориентированное проектирование ИС. Модель реализации
-
Объектно-ориентированные технологии программирования и стандарты проектирования
-
Объектно-ориентированный анализ и проектирование
-
Объектно-ориентированное проектирование ПС
-
Принципы объектно-ориентированного проектирования
-
Кодирование основных типов алгоритмических структур на языках объектно — ориентированного и процедурного программирования
-
Объектно-ориентированное программирование на алгоритмическом языке С
-
Объектноориентированное программирование. Наследование
-
Объектноориентированное программирование. Информатика