Закономірності

Метод елементарних об'єктів

Поняття «Хороша технологічна платформа» включає в себе ряд суперечливих вимог. Навіть якщо не враховувати показник вартості, а розглядати тільки технічні характеристики, залишаються конфліктні ситуації між вимогами простоти і універсальності. Зазвичай для вузького класу вирішуваних завдань інструментарій, створений одними і тими ж розробниками, виглядає простіше, ніж для широкого класу різноманітних завдань. Послідовне нарощування функціональних можливостей призводить до появи нових налаштувань, властивостей, застережень, умовностей і т.п. Такий процес може перейти кордон, коли платформа стає придатною не через відсутність необхідної функції, а через свою громіздкість, складності у вивченні і експлуатації.

Але існує інший шлях розширення функціональних можливостей. Він полягає не в нарощуванні програмного забезпечення платформи, а в спрощенні математичного уявлення об'єкта автоматизації. Суть методу полягає в тому, що б висловити прикладну задачу як об'єкт обліку, розкласти його на елементарні об'єкти, структура яких і методи роботи з якими не залежать від додатку. Тоді програмне забезпечення, створене для роботи з елементарним об'єктом також не залежить від конкретного додатка, отже, воно не росте в своєму обсязі при розширенні області застосування. Його зростання відбувається тільки в бік поліпшення якості.

У цій статті викладені основні положення методу елементарних об'єктів: уявлення про елементарний об'єкт і елементарні операції

Елементарні об'єкти

Завдання обліку і обробки інформації в управлінській діяльності підприємства мають різні цілі, різні методи обробки, різні форми представлення результатів. Одне і те ж завдання на різних підприємствах або навіть на одному, але виконувана різними людьми, має різний зовнішній вигляд. Прагнення знайти закономірності в їх описі схожі на спроби знайти закономірності в китайських ієрогліфах. Можна відзначити спільність в різних елементах ієрогліфів, але не правила в їх написанні, як в писемності, заснованої на суворому алфавіті.

Проведемо аналогію між завданнями управлінського обліку і фізичними матеріалами. Нескінченно велика різноманітність матеріалів в своїй фізичній природі описується обмеженою кількістю елементарних частинок, певним чином пов'язаних між собою.

Дотримуючись цієї аналогії, уявімо кожну управлінську задачу у вигляді об'єкта обліку, як сукупності взаємопов'язаних однорідних елементарних об'єктів. Такі елементарні об'єкти повинні мати властивості, необхідними для вирішення всіх завдань управлінської діяльності, з одного боку, а склад і характер цих властивостей повинен бути однаковим для всієї множини вирішуваних завдань, з іншого. Розглядаючи елементарний об'єкт (ЕО) в статичному стані необхідно і достатньо описати: ідентифікацію, стан, внутрішні зв'язки.

Ідентифікація елементарного об'єкта вимагає унікального ключа, однозначно визначає посилання на даний ЕО в межах всього об'єкту обліку. Вимога наявності унікального ключа не залежить від об'єкта обліку.

Стан елементарного об'єкта описується набором параметрів. Цей набір залежить від об'єкта обліку. Наприклад, ЕО в обліку матеріалів включає параметри ціна, кількість, сума. Параметри елементарних об'єктів задовольняють наступним двом вимогам:

1. Склад параметрів загальний для всіх ЕО одного об'єкта обліку.
2. Параметри одного ЕО не залежить від параметрів інших ЕО.

Недотримання будь-якого з цих властивостей означає неправильне визначення елементарного об'єкта.

Внутрішні зв'язки елементарних об'єктів відображають залежності між параметрами ЕО. Наприклад, при обліку матеріалів параметр «вартість» дорівнює добутку параметрів «ціна» і «кількість». Внутрішні зв'язки однакові для всіх ЕО одного об'єкта обліку. Якщо це правило порушується, то це означає, що неправильно визначено об'єкт обліку. Він повинен бути розділений на частини для забезпечення даного правила. У загальному випадку параметри елементарного об'єкта об'єднуються в групи, кожна з яких призначена для опису будь-якої окремої сторони обліку об'єкта. Виділення груп має сенс для спрощення процедур розрахунку параметрів елементарних об'єктів.

Зовнішні зв'язки елементарних об'єктів визначають приналежність ЕО до різних груп, що об'єднує їх відповідно до різних факторів. Прикладами факторів є групи матеріалів, підрозділи підприємства, адреси міста. Набір факторів визначається для кожного об'єкта обліку. Фактори мають деревоподібну структуру. Кожна точка дерева призначена для заданої точки обліку. Висяча вершина дерева відповідає найбільшою деталізації опису об'єкта. Фактор зв'язку- елементарний об'єкт - це значення висячої вершини фактора обліку, приписане ЕО. У загальному випадку застосовується багатовимірний аналіз, тобто облік об'єкта одночасно за кількома факторами. Кожен ЕО має стільки параметрів зовнішніх зв'язків, скільки факторів прийнято для об'єкта обліку. Поділ параметрів елементарних об'єктів на три групи дозволяє розділити завдання автоматизації завдань обліку також на три відповідних групи:

- склад елементарних об'єктів
- опис стан об'єкта
- вибірка об'єктів за чинниками обліку.


Метод і, отже, і програмне забезпечення для підтримки складу елементарних об'єктів, загальні для всіх об'єктів обліку, так як ЕО мають однакові параметри ідентифікації. Облік внутрішнього стану ЕО визначається внутрішніми параметрами, властивий даного об'єкту обліку і не залежить від інших об'єктів. Внаслідок цього методи роботи з внутрішніми параметрами ЕО є локальними для кожного об'єкта. Відсутність зв'язків із зовнішніми об'єктами визначає простоту їх розробки і підтримки. Методи вибірки елементарних об'єктів за такими чинниками обліку є загальними для різних об'єктів в силу однорідності зовнішніх зв'язків елементарних об'єктів.

На основі викладених властивостей елементарних об'єктів і класифікації завдань можна зробити наступні висновки:

1. Структура бази даних для обліку елементарних об'єктів однакова для всіх управлінських завдань обліку в частині ідентифікації ЕО, об'єднання ЕО в групи і відрізняється тільки набором внутрішніх параметрів.
2. Програмне забезпечення однакове для всіх управлінських завдань обліку в частині підтримки складу елементарних об'єктів, формування різних вибірок ЕО за факторами обліку, і локальне, тобто не залежно від інших об'єктів обліку в частині збалансованості внутрішніх параметрів ЕО.
Елементарні операції

Перехід елементарного об'єкта з одного стану в інший проводиться елементарною операцією. Зміна стану - це зміна хоча б одного параметра ЕО. Змінюватися можуть значення групи внутрішніх параметрів або групи параметрів зовнішніх зв'язків. Ідентифікаційний код не може змінюватися, так як елементарна операція виконується тільки над одним ЕО. Елементарна операція характеризується наступними групами параметрів:

- ідентифікаційний код операції,
- ідентифікаційний код об'єкта,
- параметри часу,
- зміна внутрішніх параметрів ЕО,
- зміна параметрів зовнішніх зв'язків.

Ідентифікаційний код операції призначений для однозначного посилання на елементарну операцію в межах одного об'єкта обліку.

Ідентифікаційний код елементарного об'єкта визначає той ЕО, над яким проводиться операція.

Параметри часу визначають дату і час елементарної операції, з тією точністю, яка вимагається в обліку об'єкта.

Зміна внутрішніх параметрів ЕО виконується у вигляді збільшень. Значення пов'язаних параметрів визначаються за функціональними залежностями цих зв'язків.

Зміна параметрів зовнішніх зв'язків описується двома станами - значення параметра до операції і значення після. Таке уявлення параметрів зв'язків дозволяє відстежити шлях руху (перетворення) елементарного об'єкта.

Таким чином, поділ розв'язуваних управлінських завдань автоматизованого обліку та обробки інформації на об'єкти, які можна представити у вигляді елементарних об'єктів з описаними вище властивостями, а операції над ними у вигляді елементарних операцій, дозволяє отримати наступні можливості:

1. Структура бази даних для обліку елементарних операцій однакова для всіх управлінських завдань обліку в частині ідентифікації операцій, об'єднання операцій в групи і відрізняється тільки набором внутрішніх параметрів.
2. Програмне забезпечення однаково для всіх управлінських завдань обліку в частині обробки елементарних операцій, формування різних вибірок операцій за чинниками обліку, і не залежне від інших об'єктів обліку в частині збалансованості внутрішніх параметрів ЕО при виконанні операцій над ними.

На практиці це забезпечує зниження вартості і строків розробки програмного забезпечення (ПО), так як один і той же ПО може бути використаний для вирішення різноманітних завдань автоматизації управління.

Можливість уніфікації процесів впровадження ПО, довівши його до рівня технології.

Зниження вартості і складності експлуатації функціонуючих систем за рахунок зниження різноманітності використовуваного ПО.

Структура операції

Автоматизований управлінський облік, як будь-яка інша комп'ютерна система, являє собою взаємодію користувача і комп'ютерного програмного забезпечення. Користувач вводить необхідні вихідні дані, програмне забезпечення обробляє їх і надає результати обробки для прийняття рішень. На основі прийнятих рішень користувач може вводити нові дані і т.д.

Вихідними даними для програмного комплексу є операції, які описують ті чи інші дії з об'єктом обліку. Одна і та ж операція може вимагати формування декількох документів. Документи є відображенням операції і формуються автоматично на основі одних і тих же даних. В одній операції в загальному випадку виконується безліч дій. У прийнятій методології елементарних об'єктів кожна дія відображається одним записом, яка є дією над елементарним об'єктом. Безліч таких дій становлять операцію.

- Код операції
- Номер пп ЕО
- Код ЕО
- Зв'язки ЕО
- Параметри ЕО
- Підсумки по операції

Ключовим параметром рядка є код елементарного об'єкта. Він не залежить від об'єкта обліку. Набір якісних параметрів залежить від об'єкта обліку і від призначення операції - метою будь-якої операції є зміна стану якісних параметрів.
Підсумковий запис по операції включається до реєстру операцій. Він призначений для надання користувачу списку виконаних операцій. До реєстру заноситься код операції, коментар, і деякі підсумки, які становлять особливий інтерес для користувача.

- Код операції
- Коментар
- Деякі підсумки

Код операції є складовим. Він включає в себе вид операції, номер і дату. За цими параметрами проводиться відображення реєстру, вибірка. Для класифікації операції за призначенням використовується таблиця структури операцій, яка є деревовидним угрупованням операцій по спільності їх властивостей.

Кожна операція має два стани: проведена і не проведена. Не проведена операція - це чернетка. Вона не використовується розрахунковими процедурами, не включається в звіти. Застосування цього методу можна розглянути на основі програмного комплексу «БАС»

Фактор часу в базі даних

Працюючий програмний комплекс в кожен момент часу використовує різну інформацію зі своєї бази даних. З плином часу частина інформації застаріває і замінюється новою. Заміна проводиться в робочому режимі по мірі виникнення необхідності без зупинки системи, так як на реально діючому підприємстві така зупинка не припустима. Але така заміна пов'язана з низкою проблем, серед яких такі.

Повернення звітного періоду. У простих програмах обробки інформації, орієнтованих на одного користувача, звичайною формою руху в часі є закриття звітного періоду. До моменту закриття закінчується обробка даних звітного періоду, формуються необхідні звіти, і проводиться переклад бази даних в стан, відповідне наступного періоду. Повернення назад можливе тільки шляхом відновлення бази даних з архівів, зроблених перед моментом закриття періоду. З ростом складності системи такий підхід стає неприйнятним, так як практично неможливо всім користувачам одночасно закінчити роботу в попередньому періоді і дружно перейти в наступний. У звичайній практиці бухгалтерії на початку чергового місяця обробляється інформація попереднього і вводяться операції поточного.

Проблема перерахунків. У загальному випадку, при виникненні необхідності перерахунків одних величин за попередні періоди потрібно виконати перерахунки інших, що мають від перших функціональну залежність. По суті, це виконання нового розрахунку для зазначеного періоду, і розміщення результатів змін в поточному. Для забезпечення такої можливості в автоматизованій системі в операціях повинна бути посилання на той період, для якого виконується розрахунок. При відсутності такого посилання автоматичний перерахунок неможливий.

Актуальні довідники. Одна і та ж інформація може використовуватися в різних періодах часу, при цьому для різних періодів вона має різне значення. Проблема виникає тоді, коли в системі на багато користувачів різні користувачі працюють в різних звітних періодах. Наприклад, назва підприємства знаходиться в довіднику, і воно змінилося в поточному періоді. Тоді звіти тих користувачів, які працюють в попередньому періоді, використовують вже нову назву.

Правила розрахунків. З плином часу змінюються правила виконання розрахунків. Наприклад, починаючи з 1-го березня 2003 р скасовано утримання із зарплати 0.5% до фонду соцстраху. У певний момент часу ці зміни вносяться в базу даних. Але розрахункова процедура повинна як і раніше при розрахунках за лютий застосувати утримання, а, починаючи з березня - не робити його.

Пристосований для обліку фактора часу є програмний комплекс «БАС». У ній кожне окреме завдання обробки даних виділено в окремий об'єкт, заснований на безлічі однорідних елементарних об'єктів, а всі операції в системі розглядаються як операції над елементарними об'єктами. Елементарний об'єкт описується трьома групами параметрів: ідентифікаційний код, внутрішні параметри та параметри зовнішніх зв'язків. Елементарна операція містить відомості про об'єкт і дані, про зміну параметрів об'єкта. Фактор часу відноситься до параметрів зовнішніх зв'язків елементарного об'єкта і операції.

Рішення завдання зміни періоду в системі проводиться шляхом поділу періоду за призначенням на два види: звітний і розрахунковий. Звітний - це період, в якому виконується операція. Розрахунковий - це період, для якого виконується операція. Наприклад, в серпні нараховується зарплата за липень місяць. В цьому випадку звітним періодом є серпень, а розрахунковим - липень.

Значення звітного періоду є індивідуальним для кожного користувача. Він може довільно змінювати період, переходячи в будь-який наступний, або повертаючись до будь-якого попереднього. Обмеженням є дата закриття періоду, яка є спільною для всіх користувачів одного модуля (об'єкта обліку). Система не дозволяє повернутися в звітний період, що передує даті закриття. Це можна зробити тільки після зсуву дати закриття на більш ранній період користувачем, що має відповідні права доступу.

Значення розрахункового періоду не обмежується допомогою звичайних методів тестування. Перебуваючи в будь-якому звітному періоді, користувач може робити посилання на будь-який розрахунковий. Контроль коректності посилань виконується або самим користувачем, або процедурою, яка обслуговує операцію введення даних.

Практична реалізація обліку періодів часу здійснюється шляхом введення двох полів в параметри зовнішніх зв'язків таблиці елементарних операцій: код звітного dw і код розрахункового періоду dc. Вибірка даних при dc Const дозволяє зробити перерахунки у разі посилань на минулі періоди, а вибірка при dw = Const операції, зроблені в звітному періоді.

Основний довідник, набір елементарних об'єктів, що становлять об'єкт обліку, зберігається в таблиці особових рахунків. З метою виділення груп параметрів елементарного об'єкта, впроваджена таблиця параметрів, в якій для кожної групи заводиться спеціальний вид даних, що включає всі параметри цієї групи. Умовно постійна інформація зберігається в даному довіднику в записах для заданого проміжку часу. Для цього в запис зі значеннями параметрів два поля: код початку періоду дії dwn і код закінчення періоду дії dwk. В межах цих періодів діють значення групи параметрів елементарного об'єкта, що зберігаються в даному записі.

Система контролює процес зміни значень параметрів. Це допускається тільки в тому випадку, якщо звітний період, в якому працює користувач, збігається з періодом початку дії параметрів. Наприклад, не буде дозволено зробити зміну прізвища співробітниці в червні, якщо дані про неї введені в січні. Для такої зміни користувач повинен в червні додати новий період дії параметрів, початок якого відповідає червню, і ввести нове прізвище. При цьому старе прізвище закривається травнем місяцем. Після таких змін не залежно від поточного періоду, в якому працюємо, користувач, будь-який звіт за період з січня по травень, використовує старе прізвище, а звіти з червня - нове. Також буде обрана відповідне прізвище при введенні операцій в різних періодах часу.

Вибір актуального періоду елементарних об'єктів при обробці елементарних операцій проводиться шляхом зіставлення факторів часу операції та об'єкта. Практично це реалізується блоком умови

where dw between dwn and dwk
при вибірці даних для звітного періоду і
dс between dwn and dwk 
при виконанні посилань на розрахунковий період.

Підтримка в актуальному стані різних довідкових даних реалізована шляхом використання настроювальних операцій. Суть їх використання полягає в тому, що значення параметрів для довідкових записів заносяться в спеціальну відомість, яка характеризується датою створення і періодом дії довідкових даних. При зміні параметрів довідкових записів створюється нова відомість, в яку заносяться нові значення параметрів, і призначається новий період їх дії.

Надалі процедури, що використовують довідкові дані, вибирають з налаштуваних операцій ті, які є актуальними для оброблюваного періоду. Найбільш часто вживаним способом є пошук відомості з параметрами, дата якої найбільша з наявних операцій, але попередня поточної. З знайденої операції зчитуються значення довідкових записів, які використовуються при обробці даних операції.

Облік фактора часу в правилах розрахунків-це найбільш складна сторона цього завдання. Формальне її рішення є в тій частині правил розрахунків, яка описується наслаштувальними таблицями. Так само як і для довідкових даних, різні правила описуються в налаштувальних таблицях: таблиці винятків, таблиці входимость, таблиці опису нелінійних функцій. Будь-яка з цих таблиць має період дії, який використовується при зчитуванні правил розрахунків. Вибір актуальної таблиці для зчитування визначається за кодом звітного або розрахункового періоду часу в залежності від процедури обробки.

Прийнятий метод обліку фактора часу в програмному комплексі «БАС» виправдав свою ефективність в різних програмах. Він дозволив вирішити практично всі завдання автоматичного виконання перерахунків в програмі «Зарплата»: прибутковий податок, пенсійний фонд, доплата до мінімального заробітку, різні утримання та нарахування. У програмі «CRM-Послуги» виконуються перерахунки при зміні тарифів або даних про відключення за попередні місяці. У програмі «Абонентська служба» при зміні даних про абонента (пільги, склад сім'ї та ін.).

Крім того, в системі забезпечена можливість оперативного надання користувачеві програми даних про історію нарахувань і утримань, про хід взаєморозрахунків і т.п. А можливість одночасної роботи в різних періодах часу забезпечує плавне завершення звітного періоду і при впровадженні системи,є можливість початку експлуатації при частковій готовності до автоматизації окремих ділянок обліку.


Приватне підприємство «Науково-дослідне і конструкторсько-технологічне бюро автоматизованих систем» (скорочено ПП «БАС») Частное предприятие «Научно-исследовательское и конструкторско-технологическое бюро автоматизированных систем» (сокращенно ЧП «БАС») Scientific-research and design-technological bureau of automated systems (abbreviated as BAS)