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

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

  Все выпуски  

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


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


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

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

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

Представляю Вашему вниманию требования пользователя. Как бы заказчик мог их составить. Что-то прописано довольно конкретно, что-то не очень, а что-то вообще упущено.

Система должна обеспечивать следующие возможности:

1. Учетные функции.
1.1. Ежедневная запись расходов и доходов в разрезе счетов.
Пример.
Сегодня на карточный банковский счет мне зачислили зарплату X рублей.
Я обналичил Y рублей.
На Z рублей купил пакет кефира.

В системе должны появиться следующие записи:
ДатаСтатьяСодержаниеСчет источникСчет приемникСумма
сегодня зарплата - свой карт-счетчужой счет X
сегодня обналичивание - своя наличка Свой карт-счетY
сегодня Комиссия за обналичивание- свой карт-счетчужой счет %Y
сегодня Еда кефирСвоя наличка чужой счет Z
Должна быть возможность автоматического создания записи (например, комиссия).

1.2. Классификация счетов

    Счета должны обладать следующими атрибутами:
  • Наименование счета.
  • Наличный/безналичный.
  • Свой/чужой.
  • Валюта счета.
1.3. Классификация статей
    Статьи должны обладать следующими атрибутами:
  • Наименование статьи.
  • Счет источник (список возможных счетов).
  • Счет приемник (список возможных счетов).
  • Список автоматических операций.

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

2.Статистические функции.

    Система должна уметь генерировать различные отчеты за различные промежутки времени:
  • Отчет текущего месяца.
  • Ежемесячные отчеты.
  • Ежеквартальные.
  • Ежегодные.
    Отчеты должны включать:
  • Итоги по статьям.
  • Остатки на счетах.
  • Показатель: процент накопления, (доходы-расходы)/доходы.
  • Показатель: баланс, (доходы-расходы).
  • Показатель: собственные средства.
Должна быть возможность построения графика по каждому из параметров.

3.Аналитические функции.
Назначение аналитических функций - планирование расходов будущих периодов на основе накопленной статистики.

    Для планирования могут использоваться следующие данные:
  • Статистика прошлых периодов.
  • Календарь праздников.
  • Календарь дней рождения лиц, которым надо будет сделать подарок.

В следующем выпуске я представлю техническую спецификацию на систему.

*** Почта рассылки ***

Лобасенко Роман Борисович прислал Дельный комментарий на прошлый выпуск.

    Практика показывает, что создать продукт "с первого раза" шансов нет, даже домашнюю бухгалтерию, поэтому к
  1. Формирование требований к программе с точки зрения пользователь.
  2. Подготовка спецификации.
  3. Проработка общей структуры программы.
  4. Проработка форм визуализации.
  5. Реализация программы (кодирование).
  6. я добавил бы еще 2 пункта
  7. Проверка на соответствие продукта требованиям заказчика (тестирование).
  8. Доработка выявленных несоответствий.
Причем не исключена их цикличность.

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

Я уже довольно давно пользуюсь Exel для ведения домашних финансов, этот опыт и использую как "черновое решение".

Вообще разработка программного обеспечения - дело весьма сложно. Причем основную сложность представляет именно проектирование, т.е. создание "плана программы" - классы, функции, структуры данных…
Предлагаю Вам поделиться опытом в этом нелегком деле.


* * *

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

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


В избранное