Предметно-ориентированное проектирование автоматизированных систем управления

Содержание

Слайд 2

РАЗДЕЛ 1. ВВЕДЕНИЕ В ПРЕДМЕТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ

РАЗДЕЛ 1. ВВЕДЕНИЕ В ПРЕДМЕТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ

Слайд 3

Предметно-ориентированное проектирование 
(Domain Driven Design, DDD) – это набор принципов и схем, направленных на

Предметно-ориентированное проектирование (Domain Driven Design, DDD) – это набор принципов и схем,
создание оптимальных систем объектов, отражающих предметную область с максимальной степенью полноты и соответствия.

Слайд 4

Инструментарий

Visual Studio 2019 Community

SQL Server 2017 Express

Microsoft SQL Server Management Studio 2017

Инструментарий Visual Studio 2019 Community SQL Server 2017 Express Microsoft SQL Server Management Studio 2017

Слайд 9

Классы и объекты

Классы и объекты

Слайд 10

Класс точек

Класс точек

Слайд 11

Объекты класса Point

Объекты класса Point

Слайд 13

Автоматические свойства

Автоматические свойства

Слайд 14

Определение свойств с использованием лямбда-выражений

Определение свойств с использованием лямбда-выражений

Слайд 15

Конструктор с параметрами

Конструктор с параметрами

Слайд 16

Перегрузка конструктора

Перегрузка конструктора

Слайд 17

Создание объектов с помощью конструктора с параметрами и без параметров

Создание объектов с помощью конструктора с параметрами и без параметров

Слайд 19

Копирующий конструктор

Копирующий конструктор

Слайд 20

Метод клонирования объекта

Метод клонирования объекта

Слайд 21

Код класса Point

Код класса Point

Слайд 22

Классы коллекций

Классы коллекций

Слайд 25

Работа со списком точек

Работа со списком точек

Слайд 26

Параметризованные (обобщенные) классы
Bingo Cage (пример)

Параметризованные (обобщенные) классы Bingo Cage (пример)

Слайд 30

Наследование и полиморфизм

Наследование и полиморфизм

Слайд 39

Базовые принципы и понятия предметно-ориентированного проектирования

Базовые принципы и понятия предметно-ориентированного проектирования

Слайд 40

Предметно-ориентированное проектирование 
(Domain Driven Design, DDD) – это набор принципов и схем, направленных на

Предметно-ориентированное проектирование (Domain Driven Design, DDD) – это набор принципов и схем,
создание оптимальных систем объектов, отражающих предметную область с максимальной степенью полноты и соответствия.

Слайд 41

Единый язык (ubiquitous language)

Ubiquitous (англ.) – вездесущий, повсеместный, распространенный, встречающийся повсюду.

Единый язык:
построен

Единый язык (ubiquitous language) Ubiquitous (англ.) – вездесущий, повсеместный, распространенный, встречающийся повсюду.
на основе терминов предметной области.
понятен как программистам и IT-специалистам, так и специалистам предметной области, для которой создается программное обеспечение.

В DDD модель создается на едином языке, понятном как программистам, так и экспертам предметной области.

Слайд 42

ООП и DDD

С заказчиком согласуется функционал (use cases, user stories) и интерфейсы

ООП и DDD С заказчиком согласуется функционал (use cases, user stories) и
(GUI и, при необходимости, взаимодействие с другими системами). Создается обычное ТЗ.

Объектная модель предметной области (Domain Model) содержит только элементы, которые соотносятся с объектами предметной области. Инфраструктурные элементы в модели предметной области отсутствуют.

В объектной модели объекты могут не иметь отношения к предметной области.

Модель согласуется с заказчиком. Функционал и интерфейсы следуют из модели.

ООП

DDD

Слайд 43

Модель верхнего уровня – основные объекты.
Вспомогательные объекты – на схемах фрагментов, они

Модель верхнего уровня – основные объекты. Вспомогательные объекты – на схемах фрагментов,
используются только локально.
Технические шаблоны в модели не отражаются, достаточно указать их использование.

Управление сложностью в модели предметной области

Слайд 47

Предметная область, домен (англ. domain, домен) – предметная область или область знания,

Предметная область, домен (англ. domain, домен) – предметная область или область знания,
для которой создается программное обеспечение.
Модель (англ. model) – модель предметной области. Описывает отдельные аспекты области и может быть использована для решения проблемы. На ее основе создается программное обеспечение.
Единый язык (англ. ubiquitous language) – используется для описания предметной области (домена) и модели предметной области с единых методологических позиций. Должен быть понятен как разработчикам, так и специалистам в той области, для которой создается программное обеспечение.
Ограниченный контекст (англ. bounded context) – это явная граница, внутри которой существует модель предметной области.

Основные понятия DDD

Слайд 48

Пример ограниченных контекстов

Клиентская база
Система безопасности и защиты
резервное копирование
Взаимодействие с платежными системами
Ведение отчётности
Администрирование
Система

Пример ограниченных контекстов Клиентская база Система безопасности и защиты резервное копирование Взаимодействие
уведомлений

Контексты (крупномасштабные зоны ответственности) в системе биллинга крупной телекоммуникационной компании:

Слайд 49

Entity vs Value Object
Сущности и Объекты-значения

Ссылочная эквивалентность

Entity vs Value Object Сущности и Объекты-значения Ссылочная эквивалентность

Слайд 50

Identifier equality
Эквивалентность идентификаторов

Identifier equality Эквивалентность идентификаторов

Слайд 51

Структурная эквивалентность

Структурная эквивалентность

Слайд 52

Основное отличие между сущностями и объектами-значения лежит в том, как мы сравниваем

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