Описание объектной модели менеджера семейного бюджета

Ссылка на GD

Менеджер семейного бюджета - это система, которая представляет собой финансовый менеджер, позволяющий следить за денежными накоплениями семьи, а также анализировать расходы и давать советы по их оптимизации.

Менеджер семейного бюджета содержит информацию о всех расходах и доходах семьи, что позволяет эффективно рассчитывать расходы в текущем месяце, основываясь на расходах в прошлом (прошлых месяцах). Если расходы в определенном промежутке времени текущего месяца превышают рассчитанные на основании предыдущих месяцев, то система предупреждает об этом пользователей и по их желанию корректирует финансовую модель. Также менеджер позволяет запланировать какую-либо большую покупку или кредит и на основании стоимости рассчитать оптимальную финансовую модель расходов, при которой возможно не сильно сократить(или не изменять) расходы и в кратчайшие сроки совершить ее или закрыть кредит.

У всех расходов и доходов есть своя категория(продукты, электроника и т.д. для расходов и зарплата, долг, дарение и т.д. для доходов). Помимо готовых категорий можно добавлять свои индивидуальные категории. Также к каждому расходу и доходу можно добавить примечание(краткое описание), которое потом можно посмотреть.

Менеджер будет включать в себя следующие подсистемы:

  1. Подсистема управления пользователями включает в себя:
    1. Добавление/удаление пользователя.
    2. Аутентификация
  2. Подсистема учета денежного потока включает в себя:
    1. Учет расходов
    2. Учет доходов
  3. Подсистема анализа денежного потока включает в себя:
    1. Анализ расходов за заданный промежуток времени
    2. Анализ доходов за заданный промежуток времени
    3. Формирование финансового отчета за заданный промежуток времени
  4. Подсистема планирования денежного потока включает в себя:
    1. Расчет финансовой модели на заданный промежуток времени
    2. Корректировка финансовой модели
  5. Подсистема контроля денежного потока включает в себя:
    1. Контроль расходов
    2. Оповещение пользователей в случае превышения ожидаемых расходов

Возможные варианты взаимодействия с системой:

  • Контроль расходов

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

    • Внесение расходов. Пользователь нажимает на кнопку внесения расхода, выбирает категорию расхода из предложенных, по желанию пишет краткое описание. После вводит сумму и нажимает кнопку добавить, после чего расход добавляется в список расходов и от общей суммы отнимается его сумма
    • Удаление расходов. Пользователь выбирает расход и нажатием на соответсвующую кнопку удаляет расход из списка расходов, после чего сумма расхода добавляется к общей сумме.
    • Редактирование расходов. Пользователь выбирает расход и после нажатия на соответсвующую кнопку попадает в редактор расхода, где можно изменить сумму, категорию или описание расхода. Если изменилась сумма, то она либо добавляется либо отнимается от общей суммы.
  • Контроль доходов

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

    • Внесение доходов. Пользователь нажимает на кнопку внесения дохода, выбирает категорию дохода из предложенных, по желанию пишет краткое описание. После вводит сумму и нажимает кнопку добавить, после чего доход добавляется в список доходов и от общей суммы отнимается его сумма
    • Удаление доходов. Пользователь выбирает доход и нажатием на соответсвующую кнопку удаляет доход из списка доходов, после чего сумма дохода добавляется к общей сумме.
    • Редактирование доходов. Пользователь выбирает доход и после нажатия на соответсвующую кнопку попадает в редактор дохода, где можно изменить сумму, категорию или описание дохода. Если изменилась сумма, то она либо добавляется либо отнимается от общей суммы.
  • Просмотр анализа денежного потока

    Пользователь авторизируется в системе, заходит в категорию "анализ", где показываются последние траты и доходы, а также тенденция изменения расходов и доходов за промежуток времени(по умолчанию - месяц).

    • Выбор промежутка времени анализа. Пользователь нажимает на кнопку изменения промежутка времени, после чего выбирает его. После выбора пользователю показывается анализ за выбранный промежуток времени и он становится промежутком по умолчанию
  • Контроль запланированных покупок

    Пользователь авторизируется в системе, заходит в категорию "запланированные покупки", где показываются запланированные покупки, сумма, которая осталась до их совершения, и желаемое время совершения и выбирает одну из операций:

    • Создание запланированной покупки. Пользователь нажимает на кнопку "создать", после чего появляется редактор запланированной покупки, где он указывает название, цену и ожидаемое время совершения покупки. После создания она появляется в списке запланированных покупок.
    • Редактирование запланированной покупки. Пользователь нажимает на кнопку "редактировать", после чего появляется редактор запланированной покупки, где он изменяет название, цену или ожидаемое время совершения покупки. После редактирования она обновляется в списке запланированных покупок.
    • Удаление запланированной покупки. Пользователь нажимает кнопку "удалить", после чего запланированная покупка удаляется из списка.

Сценарии использования

Пользователь авторизуется в системе, вводит логин "RichDaddy" и пароль "MakingCashEveryday2006". Открывает вкладку доходы и вводит свои последние доходы. После заходит во вкладу расходы и вводит свои последние расходы. Заходит во вкладку анализ, выбирает промежуток времени равный неделе и смотрит тенденцию изменения изменения рвсходов и доходов. Затем опять заходит во вкладку расходы и смотрит историю расходов. Выходит из программы.

Пользователь авторизуется в системе, вводит логин "RichDaddy" и пароль "MakingCashEveryday2006". Выбирает вкладку добавление пользователя, вводит логин нового пользователя. После заходит во вкладку запалированные покупки и нажимает на кнопу создать, после чего в редакторе запланированной покупки в поле название указывает "машина", в поле цена указывает "30000", а в поле ожидаемое время совершения покупки указывает дату через год от текущей, нажимает кнопку добавить, после чего возвращается в прошлую вкладку. Выходит из программы.

Возможны 3 направления развития системы:

  1. Анализ цен на наиболее часто покупаемые товары, на основании которого будет предложена оптимизация расходов (товары дешевле, но со схожими характеристиками или в других магазинах)
  2. Интеграция с банковскими приложениями
  3. Автооплата ежемесячных платежей