Отправляет email-рассылки с помощью сервиса Sendsay

Килограмм килобайтов

  Все выпуски  

Килограмм килобайтов


"Килограмм килобайтов"


Выпуск №26 Дата выхода:2007-12-04
Сайт рассылки: Рациональное программирование

Документация
 
Программирование
Oracle
Операционные системы
Linux
QNX

Здравствуйте, уважаемые подписчики

Предлагаю Вашему вниманию техническую спецификацию на разрабатываемую программу управления домашними финансами - HomeFin.

Техническая спецификация

Дата создания документа: 27.11.2007
Последнее изменение: 29.11.2007

1. Сущности

В системе должны быть описаны следующие сущности.

1.1. Счет - отражает понятие реального мира "счет", т.е. запись об остатке денежных средств, может быть как безналичным, т.е. "банковский счет", может быть наличным, т.е. деньги в кошельке. Для простоты все чужие счета надо заменить на наличный чужой счет и безналичный чужой счет.

    Счет имеет следующие атрибуты:
  • Тип счета.
  • Наименование счета.
  • Признак наличный/безналичный.
  • Признак свой/чужой.
  • Валюта счета.
Типом счета называется совокупность экземпляров счетов, имеющих равные значения атрибутов. Типы счетов должны описываться в справочнике счетов.
    Экземпляр счета имеет следующие атрибуты:
  • Идентификатор счета.
  • Тип счета.
Для каждого экземпляра счета ведется история изменения остатка.
    Запись в истории включает следующие поля:
  • Идентификатор счета.
  • Идентификатор записи баланса.
  • Остаток на счете.
"Идентификатор записи баланса" - это запись баланса, которая привела к текущему остатку.
Все возможные валюты должны описываться в справочнике валют.
    Валюта имеет следующие атрибуты:
  • Код валюты.
  • Наименование валюты.

1.2. Статья - это тип операции с денежными средствами. Статья может быть доходами и расходами. Однако в системе это разделение не имеет смысл, т.к. доходы и расходы можно разделить по направлению движения средств.
Чтобы обеспечить автоматическое создание записей баланса, необходимо организовать иерархическую структуру статей. Т.е. при создании записи надо проверять есть ли у статьи дочерние, если есть надо создать соответствующие им записи и т.д. до нижней точки иерархии. Вся последовательность записей должна быть сделана полностью, если для выполнения одной записи не достаточно средств на счете все уже сделанные записи должны быть отменены.

    Статья имеет следующие атрибуты:
  • Тип статьи.
  • Тип родительской статьи (если есть).
  • Порядковый номер в последовательности.
  • Наименование статьи.
  • Идентификаторы возможных счетов источников.
  • Идентификаторы возможных счетов приемников.
  • Правило расчета суммы.
Иерархия статей обеспечивается атрибутами: "тип родительской статьи" и "порядковый номер в последовательности". Тип родительской статьи может быть не задан. Возможные направления движения средств определяются парами идентификаторов счетов источника и приемника.
Для автоматического формирования записи баланса необходимо определить сумму статьи. Это значение задается "правилом расчета суммы". Правило должно основываться на сумме родительской статьи, скорее всего, это будет процент от суммы родительской статьи

1.3. Баланс- это основная сущность системы. Баланс - это совокупность записей отражающих движение средств.

    Запись баланса имеет следующие атрибуты:
  • Идентификатор записи.
  • Дата записи.
  • Тип статьи.
  • Содержание записи.
  • Идентификатор счета источника.
  • Идентификатор счета приемника.
  • Сумма.
Атрибут "Содержание записи" конкретизирует тип статьи.
Пример.
Тип статьи: "Развлечения", содержание записи: "кино".

2. Отчеты

2.1. Ядро отчетов.
Отчет по статьям формируется на основе данных баланса, путем группировки по типу статьи в заданном временном интервале.
Отчет по счетам формируется на основе данных истории изменения счетов.
Остальные отсчеты формируются на основе отчетов по счетам и данным баланса.

3. Аналитические функции

Что-то определенное по этому функционалу можно будет сказать после реализации базовых функций.

4. Перспективные планы

    Дальнейшим развитием системы могут быть следующие функции:
  • Модуль работы с собственными кредитами.
  • Модуль работы с должниками.
  • Модуль работы с контрагентами (хранение персональной информации).
  • Модуль работы со срочными банковскими вкладами.
  • Модуль учета операций с ценными бумагами.
  • Модуль анализа операций с ценными бумагами.

Структура хранения данных

Структура хранения данных представлена на следующем рисунке.
Стрелками указаны зависимости. Например, объект "счет" зависит от объекта "справочник счетов", который в свою очередь зависит от объекта "справочник валют".
Структура хранения данных программы HomeFin


* * *

Ведущий рассылки: Петрелевич Сергей

У Вас есть вопрос? Спрашивайте
Напишите, что Вы хотите видеть в рассылке. Мне важно знать Ваше мнение.


В избранное