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


The Presentation inside:

Slide 0

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


Slide 1

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


Slide 2

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


Slide 3

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


Slide 4

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


Slide 5

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


Slide 6

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


Slide 7

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


Slide 8

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


Slide 9

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


Slide 10

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


Slide 11

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


Slide 12

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


Slide 13

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


Slide 14

15/113


Slide 15

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


Slide 16

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


Slide 17

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


Slide 18

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


Slide 19

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


Slide 20

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


Slide 21

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


Slide 22

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


Slide 23

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


Slide 24

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


Slide 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?


Slide 26

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


Slide 27

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


Slide 28

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


Slide 29

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


Slide 30

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


Slide 31

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


Slide 32

33/113


Slide 33

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


Slide 34

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


Slide 35

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


Slide 36

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


Slide 37

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


Slide 38

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


Slide 39

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


Slide 40

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


Slide 41

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


Slide 42

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


Slide 43

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


Slide 44

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


Slide 45

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


Slide 46

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


Slide 47

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


Slide 48

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


Slide 49

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


Slide 50

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


Slide 51

52/113


Slide 52

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


Slide 53

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


Slide 54

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


Slide 55

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


Slide 56

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


Slide 57

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


Slide 58

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


Slide 59

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


Slide 60

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


Slide 61

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


Slide 62

63/113


Slide 63

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


Slide 64

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


Slide 65

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


Slide 66

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


Slide 67

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


Slide 68

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


Slide 69

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


Slide 70

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


Slide 71

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


Slide 72

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


Slide 73

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


Slide 74

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


Slide 75

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


Slide 76

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


Slide 77

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


Slide 78

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


Slide 79

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


Slide 80

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


Slide 81

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


Slide 82

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


Slide 83

84/113


Slide 84

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


Slide 85

86/113


Slide 86

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


Slide 87

88/113


Slide 88

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


Slide 89

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


Slide 90

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


Slide 91

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


Slide 92

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


Slide 93

94/113


Slide 94

95/113


Slide 95

96/113


Slide 96

97/113


Slide 97

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


Slide 98

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


×

HTML:





Ссылка: