'

Аналитические планы счетов как архитектурный артефакт

Понравилась презентация – покажи это...





Слайд 0

Михаил Заборов CustIS «Заказные ИнформСистемы» Руководитель направления «Торговые сети» Декабрь 2009 Аналитические планы счетов как архитектурный артефакт


Слайд 1

2/113 Занимается разработкой больших корпоративных информационных систем на заказ


Слайд 2

3/113 Большие проекты t 0 4 мес. 1 год Маленькие Средние Наш размерчик! = от 10 – 15 чел. лет Команда 5-10 человек


Слайд 3

4/113 Очень большие проекты t 0 1 год 10 лет = от 40 – 100 чел. лет Команда 30-50 человек


Слайд 4

5/113 Принудительно делим на просто большие


Слайд 5

6/113 В чем еще можно мерять размер? Объем данных Количество транзакций Объем изменений Длительность проекта Количество отчетов ?


Слайд 6

7/113 Промышленные технологии


Слайд 7

8/113 Внутренняя логистика -Операционная система 24x7 Объем базы >1 Tb 10 млн Проводок в месяц  Общее количество проводок 270 млн


Слайд 8

9/113 Аналитическое хранилище Объем базы >  525 Gb Проводок в месяц 8 млн Общее количество проводок 200 млн Пиковое кол-во проводок в день 1.7 млн 


Слайд 9

10/113 Биллинг ЖКХ «Радей» (Саратов) Проводок в месяц 4.6 млн Общее количество проводок 130 млн Пиковое кол-во проводок в день  2.8 млн  


Слайд 10

11/113 Успешные и востребованные проекты после фазы внедрения вовсе не заканчивают свою «жизнь»


Слайд 11

12/113 Начало работы


Слайд 12

13/113 Развитие, сопровождение Внедрение, адаптация Сильные изменения в законодательстве


Слайд 13

14/113 Корпоративные(Enterprise) Системы ERP / биллинг / банковские / торговые / складские системы … Прикладное программное обеспечение предприятий и организаций Buzzword


Слайд 14

15/113


Слайд 15

Немного истории От инструмента к методологии 16/113


Слайд 16

17/113 Методология появилась не сразу


Слайд 17

Вначале появились архитектурные паттерны, решавшие прикладные задачи Потом появился инструментарий Выделился специализированный слой архитектуры Появилась методология описания и использования планов счетов 18/113


Слайд 18

19/113 Задачи, которые призван решать инструментарий


Слайд 19

20/113 Ведение остатков и движений ресурсов материальные виртуальные


Слайд 20

21/113 Гарантия «Консервативности» «Ничто не может произойти из ничего, и никак не может то, что есть, уничтожиться» © Эмпедокл «Однако за время пути собака могла подрасти!» «Багаж» С.Я.Маршак Законы сохранения


Слайд 21

22/113 Ведение полной истории изменений ресурса Состояние на любой момент времени Привязка к документам, породившим изменение


Слайд 22

23/113 Отчеты Повторяемость Детализация Согласованность


Слайд 23

24/113 Больше всего для этих целей подходит учет: Двойная запись Журнал операции План счетов «Консервативность» Полная история Согласованность отчетов


Слайд 24

ЧТО ЕСТЬ УЧЕТ? Основные артефакты 25/113


Слайд 25

26/113 http://www.omg.org/technology/documents/formal/gen_ledger.htm Стандарт OMG http://martinfowler.com/eaaDev/Account.html http://martinfowler.com/eaaDev/AccountingEntry.html http://martinfowler.com/eaaDev/AccountingTransaction.html Архитектурные паттерны Спецификация на проводочную машину Что по этому поводу есть в IT?


Слайд 26

27/113 В средневековье Учет велся в больших хозяйственных книгах (Ledger)


Слайд 27

28/113 Запись в книге (Entry) 2 типа - приход/расход Страница в книге = счет(Account) Регулярно рассчитывается остаток или сальдо (Balance)


Слайд 28

29/113 Именно эти объекты отразил в своей модели Фаулер


Слайд 29

30/113 Но нам нужна двойная запись У Фаулера есть и такой паттерн (Two Legged Transaction) Новый термин - проводка(Transaction) В бух учете: счет зачисления - дебет счет списания - кредит На самом деле все не так просто ?


Слайд 30

ПРОВОДОЧНАЯ МАШИНА CustIS Инструментарий 31/113 Наша реализация существенно сложнее


Слайд 31

32/113 Учетные счета (Accounts) Выделяются различные виды ресурсов – они называются синтетическими (балансовыми) счетами Для них жестко задан набор аналитик


Слайд 32

33/113


Слайд 33

34/113 Учетные счета (Accounts) Под каждым синтетическим счетом есть иерархия аналитических счетов


Слайд 34

35/113 Синтетический счет Аналитические счета


Слайд 35

36/113 Экземпляры счетов Товар на складе


Слайд 36

37/113 Учетные счета (Accounts) Под каждым синтетическим счетом также есть OLAP куб аналитических счетов


Слайд 37

38/113 Текущий остаток хранится на каждом аналитическом счете нижнего уровня


Слайд 38

39/113 Проводки (Transaction) Между синтетическими счетами типы операций жестко задают корреспонденции


Слайд 39

40/113 Схему можно чуть усложнить


Слайд 40

41/113 Остатки (Сальдо, Balance) Несложно получить остаток на гранях OLAP куба


Слайд 41

42/113 Кроме того, для каждой ячейки куба, если нужно, хранится график изменения остатка в нужных временных разрезах


Слайд 42

43/113 Показатели Можно хранить (заранее настроенные) произвольные агрегированные показатели по аналитикам счетов и операций Стандартная агрегация Произвольная агрегация Если нужно, то с графиком


Слайд 43

44/113 Кроме агрегированных показателей можно хранить и более детальные (подокументные расшифровки, например состояние заказа) Показатели


Слайд 44

45/113 Можно хранить несколько разнородных показателей в одной записи таблицы БД, например план-факт Показатели


Слайд 45

46/113 И еще… Множество временных разрезов физическая дата учетная дата бухгалтерская дата период отчетности дата документа


Слайд 46

47/113 Мультивалютность Разные типы валюты: - Документа - Контракта - Учетная - Бюджетная - Национальная - Бухгалтерская Разные номиналы (рубли, €, $, ? и т.д.) Переоценка - Курсовые разницы - Суммовые разницы И еще…


Слайд 47

48/113 Множественность учета Несколько планов счетов Товарный (количественный) учет Денежный учет Смешанный (товарно-денежный) учет в одном плане счетов Работа с начальным сальдо Процедуры инициализации остатков ведение истории движений до начала расчетов Разные механизмы создания  аналитических счетов Автоматическое по аналитикам операции Ручное в соответствии с требованиями бухгалтерии И еще…


Слайд 48

49/113 Принципиальная схема работы


Слайд 49

МЕТОДОЛОГИЯ ОПИСАНИЯ УЧЕТА Описание нотации 50/113


Слайд 50

51/113 Простой план счетов


Слайд 51

52/113


Слайд 52

53/113 Как читать схему Начальное состояние системы Что мы знаем: Остатки: Всего книг в фонде – 0 На руках - 0 в библиотеке - 0 Обороты: Принято книг - 0 Выдано - 0 Вернулось – 0 Потеряна - 0


Слайд 53

54/113 Что мы знаем: Остатки: Всего книг в фонде – 7 На руках - 0 в библиотеке - 7 по авторам: Буч – 7 по полкам A1 – 7 Обороты: Принято книг - 7 Выдано - 0 Вернулось – 0 Потеряна - 0


Слайд 54

55/113 Что мы знаем: Остатки: Всего книг в фонде – 10 На руках - 0 в библиотеке - 10 по авторам: Буч – 10 по полкам A1 – 7 A2 - 3 Обороты: Принято книг - 10 Выдано - 0 Вернулось – 0 Потеряна - 0


Слайд 55

56/113 Что мы знаем: Остатки: Всего книг в фонде – 10 На руках - 2 в библиотеке - 8 по авторам: Буч – 8 по полкам A1 – 7 A2 - 1 Обороты: Принято книг - 10 Выдано - 2 Вернулось – 0 Потеряна - 0


Слайд 56

57/113 Что мы знаем: Остатки: Всего книг в фонде – 16 На руках - 2 в библиотеке - 14 по авторам: Буч – 8 Кайт - 6 по полкам A1 – 7 A2 - 7 Обороты: Принято книг - 16 Выдано - 2 Вернулось – 0 Потеряна - 0


Слайд 57

Что мы знаем: Остатки: Всего книг в фонде – 16 На руках - 2 в библиотеке - 14 по авторам: Буч – 8 Кайт - 6 по полкам A1 – 7 A2 - 7 58/113 Эту ошибку можно обрабатывать по-разному Обороты: Принято книг - 16 Выдано - 2 Вернулось – 0 Потеряна - 0 Так нельзя! На полке A1 нет Кайта


Слайд 58

59/113 Что мы знаем: Остатки: Всего книг в фонде – 15 На руках - 1 в библиотеке - 14 по авторам: Буч – 8 Кайт - 6 по полкам A1 – 7 A2 - 7 Обороты: Принято книг - 16 Выдано - 2 Вернулось – 0 Потеряна - 1


Слайд 59

60/113 А если выкладывание на полку - отдельный процесс?


Слайд 60

61/113 Эти картинки понятны и бизнесу и разработчику


Слайд 61

62/113 В больших планах счетов мы используем субсчета Очень похоже на наследование


Слайд 62

63/113


Слайд 63

64/113 Эквивалентная запись: Убрать главный счет Все аналитики главного счета прописать в субсчетах Все операции главного счета размножить на субсчета


Слайд 64

65/113 Есть еще один «нюанс» - активно/пассивный учет


Слайд 65

Баланс компании 66/113 Эти критерии тяжело понять, если ты не бухгалтер


Слайд 66

67/113 Для нас это выглядит так: Активный счет - это счет, где увеличение остатка записывается по дебету, уменьшение остатка – по кредиту (т.е. если на него пришла сумма, то остаток на счете увеличился, а если ушла – то уменьшился) Пассивный счет - увеличение остатка записывается по кредиту, уменьшение остатка – по дебету (т.е. если на него пришла сумма, то остаток на счете уменьшился, а если ушла – то увеличился) Активно-пассивный счет – это активный счет, на котором разрешен отрицательный остаток Естественный ход вещей С ног на голову


Слайд 67

68/113 Теперь вы ничего не сможете сказать по этой картинке… …если не знаете активность счетов C «консервативностью» тоже много вопросов


Слайд 68

69/113 Как это отображается у нас


Слайд 69

70/113 Можно представить как 2 ресурса Пользоваться нужно с осторожностью


Слайд 70

71/113 А как описывать планы счетов по-другому?


Слайд 71

72/113 Например так…


Слайд 72

73/113 В лучшем случае - так


Слайд 73

74/113 почти эквивалентно


Слайд 74

УЧЕТ - АРХИТЕКТУРНЫЙ АРТЕФАКТ Как встраивается в приложение 75/113


Слайд 75

76/113 Классическая ситуация: Формочки Бизнес логика Объекты/Классы/ Сущности Реляционные Таблицы Справочники Документы Что–то еще Всем понятно что такое «Документ»?


Слайд 76

77/113 Наш случай:


Слайд 77

78/113 Чуть подробнее


Слайд 78

79/113 Объектная модель ведет учетную Отображение может быть On-line и off-line


Слайд 79

80/113 Отчетность


Слайд 80

81/113 Отчетность


Слайд 81

УЧЕТ – МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ 82/113


Слайд 82

83/113 При итеративной разработке мы работаем с небольшим куском системы


Слайд 83

84/113


Слайд 84

85/113 Где гарантия, что мы получится то, что нужно?


Слайд 85

86/113


Слайд 86

87/113 Нужна общая картина


Слайд 87

88/113


Слайд 88

89/113 При проектировании такая картина – модель предметной области aka Domain Model


Слайд 89

90/113 Модель – это упрощенное приближение реальности. Максимально простое, при условии достаточной близости к действительности.


Слайд 90

91/113 Чаще это всего диаграмма классов(ER-модель)


Слайд 91

92/113 Мы часто используем Учетные модели, как модели предметной области Совместно с диаграммой классов PROFIT: Учет, обычно, более стабилен. В него гораздо реже вносятся изменения - «инвариант предметной области» Учет обычно более лаконичен и информативен Практически всегда мы включаем схему учета в концептуальный проект (vision)– диаграмму классов не всегда. И почти всегда рисуем план счетов раньше.


Слайд 92

93/113 Планы счетов «прочно вошли в нашу жизнь»


Слайд 93

94/113


Слайд 94

95/113


Слайд 95

96/113


Слайд 96

97/113


Слайд 97

98/113 Аналитические планы счетов: Модель предметной области Методология описания потоков ресурсов Дополнительный архитектурный слой Инструментарий разработки учетных систем 15 лет успешного использования


Слайд 98

99/113 Спасибо за внимание!


×

HTML:





Ссылка: