Архитектура корпоративных систем (Максим Цепков,...

36
Три точки опоры в архитектуре корпоративных систем Докладчик: Максим Цепков ([email protected]) www.CUSTIS.ru

Upload: custis

Post on 15-Jun-2015

925 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Три точки опоры в архитектуре корпоративных систем

Докладчик:

Максим Цепков ([email protected])www.CUSTIS.ru

Page 2: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Корпоративные приложенияЗаказная разработка сложных систем– Поддержка уникальных бизнес-процессов заказчика

– Частые изменения системы – вместе c изменениями бизнеса

– Постановки необходимо согласовывать с бизнес-пользователями

Большие долгоживущие системы– Начальная разработка – 5–20 человеко-лет за 0,5–2 года

– Активное развитие весь срок эксплуатации – 5–10 лет (бывает дольше)

– Существенно меняется коллектив разработчиков и пользователей

Учетно-аналитические системы– Учет – одна из основных функций системы

– Учетные показатели – основа бизнес-логики и принятия решений

– Связь учета с документооборотом должна быть прозрачна

Наш опыт

2/36

Page 3: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Что нужно для проектирования?Понятное описание системы– Заказчик владеет языком описания и верифицирует постановки

– Разработчики тоже свободно общаются на языке описания

Прозрачное и ясное описание– Компактно представляет сложные конструкции системы

– Соответствует реализации (программному коду)

– Связывается с тем, что видит пользователь в системе

Проект системы развивается вместе с системой– На языке описания можно формулировать запросы на изменение

– Можно оценить трудоемкость реализации доработок

Ошибки в постановках – самый большой риск

Понятное и прозрачное описание его снижает

3/36

Page 4: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Как мы проектируем?Мы строим модель на языке предметной области

Сначала это – модель самой предметной области

Но очень быстро превращается в модель системы

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

Модель является архитектурой системы

Модель итеративно развивается вместе с системой

Применяем диаграммы и другие методы компактного

представления сложных систем, разработанные в IT

Наш опыт

4/36

Page 5: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Наш способ – в мировом тренде

Domain Driven Design – mainstream в проектировании

Архитектура на основе модели предметной области

Единый язык общения заказчиков и разработчиков

Итеративное проектирование и разработка

5/36

Page 6: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Подробнее о DDD

Концептуальная книга Эрика Эванса– на английском – в 2003 г.

– на русском – только в 2010 г.

Практическая книга Джимми Нильссона– на английском – в 2006 г.

– на русском – в 2007 г. (почти сразу!)

Для знакомства – можно смотреть материалы, ссылки, слайды и видеозапись

тренинга Андрея Бибичева: http://lib.custis.ru/ddd-training

6/36

Вельянинова
"материалы, слайды и видеозапись тренинга..." Что за "ссылки тренинга"?
Page 7: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Учетная машина – DDD для корпоративного приложения

Мы не просто применяем DDD при проектировании

У нас сложился шаблон модели – Учетная машина

Мы применяем его для учетных корпоративных приложений предприятий и банков

7/36

Page 8: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Шаблон учетной машины

8/36

Page 9: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Обобщенное учетное приложение

Пользователи создают документы

По необходимости заполняют справочники

Потом документы исполняют

При этом меняются учетные данные

Которые влияют на исполнение документов

И отражаются в отчетах

9/36

Page 10: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Состав учетного приложения

СВЯЗЬ

10/36

Page 11: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Что такое учетные показатели?

Учетные показатели – отражение реальных потоков обобщенных ресурсов(товаров, денег, долгов и др.)

Учетные показатели нужны и важныв большинстве управленческих систем,

а не только в бухгалтерии

Бухгалтерия же отражает реальные потоки весьма опосредованно

11/36

Page 12: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

СВЯЗЬ

Представление Учетной машины

Документыи справочники – диаграмма

классов

Документооборот – диаграмма состояний

Учет – диаграмма

учета

12/36

Page 13: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Как представить учет?

Учет – основное назначение учетной системы

Представление учета оказалось за рамками UML

И вообще эффективного представления

Мы придумали Диаграммы учета

Они дают целостную учетную модель системы

Наш метод

13/36

Page 14: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Диаграммы учета

Показывают, как отражается движение ресурсов в учете

14/36

Page 15: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Подробно о диаграммах учетаК сожалению, подробного описания нет Есть выступления на конференциях

ЛАФ-2010 – http://lib.custis.ru/Accounting-diagrams

«Диаграммы планов счетов – средство моделирования и проектирования учета»

SECR-2010 – http://lib.custis.ru/Simplify-security-accounting

«Учет ценных бумаг – сделать сложное простым»

Презентация и видео

Презентация и статья

15/36

Page 16: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Документы (и справочники)Используем объектно-ориентированный подход

Классы соответствуют бизнес-объектам – заказчик видит знакомые названия

Используем цветовые

выделения

Единый язык

Представляем диаграммой

классов

16/36

Page 17: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Связь документов с учетом

При обработке и проведении документов возникают хозяйственные операции, отражаемые в учете

Документу приписываем состояниеОно определяет отражение документа в учетеи другие аспекты документооборота:– текущий этап обработки документа

– ответственность за документ

– права на совершение действий

Наш метод

17/36

Page 18: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Диаграмма переходов документа

Граф состояний документа изображается на State Machine Diagram (UML)– узлы – состояния

– ребра – методы-переходы

Состояния и переходыназываем в терминах бизнеса

Состояниязаказа

Единый язык

18/36

Page 19: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Итак, единая модель системы

Модель системы представляется в проекциях– диаграмма классов – структура объектов и их методы

– диаграмма учета – учетная модель системы

– диаграмма состояний документов – документооборот

Все проекции связаны между собой через методы-переходы, которые есть на всех диаграммах

Эта модель – результат обобщения нашего опыта разработки корпоративных приложений

В большинстве случаев проекций модели достаточно

В терминах предметной области

Единый язык

19/36

Page 20: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Развитие моделив ходе проекта

20/36

Page 21: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

От модели предметной области – к модели системыНачало проекта (1–2 месяца)– Интерактив с заказчиком, анализ предметной области

– Диаграмма классов и диаграмма учета в крупном

– План поэтапной реализации по фрагментам предметной области

Итеративная разработка (6–18 месяцев)– Детальное проектирование фрагмента системы

– Уточнение структур данных и учета, проработка документооборота

– Реализация спроектированного фрагмента

Внедрение и эксплуатация (5–10 лет)– Реализация бизнес-процессов в рамках модели системы

– Запросы на развитие системы в терминах модели

Модельпредметной

области

По фрагментам

21/36

Page 22: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Развитие объектной моделиСначала основные классы без деталей

Подробности – по ходу разработки– Уточняем иерархию типов

– Определяем атрибуты и методы

– Проектируем вспомогательные классы

– Уточняем структуру ассоциаций между классами

Не все делаем на первом этапе

22/36

Page 23: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Развитие учетаУточнения– определяем аналитики

– определяем источники событий учета

Изменения– добавляем новые участки учета

– добавляем транзитные счета

23/36

Page 24: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Проработка документооборотаОт простого, определяемого учетом – к сложной поддержке бизнес-процессов

24/36

Page 25: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Сложная модель связанных документов

Диаграмма классов

Диаграмма состояний

Диаграмма учета

Документы могут появляться в ходе развития проекта

25/36

Page 26: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

РеализацияУчетной машины

26/36

Page 27: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Платформа реализацииБольшинство приложений мы делаем на C# и Oracle

Объектная модель реализуется понятным образом – создаем классы, реализуем методы и т. д.

Для модели документооборота и учета нужно типовое отображение в объектную реализацию

Что значит «типовое»? Для реализации достаточно постановок с диаграммами переходов и учета, дополнительного проектирования не требуется

27/36

Page 28: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Реализация документооборота

Для прозрачной модели это должно совпадать:учетные события – суть хозяйственные операции

ВЗГЛЯД БИЗНЕСА

Есть журнал хозяйственных операций, возникающих при обработкеи проведении документов

РЕАЛИЗАЦИЯ источник учета – события

(Event Sourcing, Фаулер), они возникают в методах документов

Единый язык

28/36

Page 29: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Документооборот – как мы делаем

Для документов применяем design pattern State Entity– У документов есть атрибут – состояние

– Изменение состояния – через вызов метода объекта

– Метод изменения состояния называется также переходом документа

– Учетные события возникают на переходах документов

Используем реализацию на метаданных – у метода описываем начальное и конечное состояния

Диаграмма состояний и описание семантики переходов достаточно для реализации разработчиком

29/36

Page 30: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Реализация учета

Есть Patterns for Accounting Мартина Фаулера – отражение учета в объектную реализацию– учетные счета и проводки

– источник проводок – события

У нас – более развитая реализация– хранение аналитических признаков на счетах и проводках

– ведение остатков и оборотов учетных счетов

– ведение детальных и агрегированных показателей

Есть собственный язык описания – GL-XML

Наш метод

30/36

Page 31: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Объектная реализация учета

Стрелки диаграммы переходов

Стрелки диаграммы

учета

Аналитики счета

Текущие остаткивычисляются

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

Показателивычисляются

автоматическиЭти счета изображены

на диаграмме учета

31/36

Page 32: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Реализация учета – как мы делаем

Диаграмма учета определяет– набор учетных счетов и их аналитику

– проводки, выполняемые по конкретным переходам

Еще надо определить набор хранимых показателей, необходимых для эффективной работы отчетов

Задача разработчика– описать набор счетов, аналитику счетов и аналитику проводок

– описать хранимые показатели

– обеспечить создание проводок на учетных событиях – императивно или декларативно

32/36

Page 33: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Заключение(что я хотел сказать)

33/36

Page 34: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Архитектура по модели – эффективно

Domain Driven Design – архитектура на основе модели

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

Итеративно и сохраняя целостность

Domain Driven Design – не только объектные модели

34/36

Page 35: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Да будут архитектурные шаблоны

Шаблоны программирования – не только для отдельных фрагментов, но и для приложения в целом

Учетная машина – шаблон корпоративного приложенияПроектирование на основе Domain Driven DesignТиповое отображение в реализацию

35/36

Page 36: Архитектура корпоративных систем (Максим Цепков, SoftwarePeople 2011)

Software People 2011

Спасибо!

Вопросы?

Максим Цепков ([email protected])

36/36