На рисунке 3.1 представлена среда автоматизированной системы бюджетного процесса.
Рисунок 3.1 – Среда автоматизированной системы бюджетного процесса
Пользовательская среда автоматизированной системы бюджетного процесса состоит из нескольких основных частей:
- главное меню приложения;
- строка навигации по доступным проектам бюджета;
- панель навигации;
- основная часть.
Главное меню приложения служит для доступа ко всем функциям системы.
Строка навигации по доступным проектам бюджета служит для выбора поселения и проекта бюджета на соответствующий год, с которым будет вестись работа.
Панель навигации дублирует основные функции главного меню приложения для облегчения и ускорения доступа пользователя.
В основной части среды, выполненной в виде панели с закладками, открываются формы, непосредственно с которыми работает пользователь.
Структура главного меню приложения представлена в таблице 19.
Таблица 19 – Структура главного меню
№ п/п | Название | Описание |
1 | 2 | 3 |
1 | Файл | |
1.1 | Войти в системы | Позволяет пользователю подключится к системе |
1.2 | Выйти из системы | Позволяет пользователю отключится от системы |
1.3 | Выход | Завершает работу приложения |
2 | Правка | |
2.1 | Отменить | Позволяет отменить последнее произведенной пользователем действие |
2.2 | Повторить | Позволяет повторить отмененное ранее действие |
2.3 | Скопировать | Позволяет скопировать данные в буфер обмена |
2.4 | Вырезать | Позволяет вырезать данные в буфер обмена |
2.5 | Вставить | Позволяет вставить данные из буфера обмена |
3 | Проект бюджета | |
3.1 | Доходы | |
3.1.1 | Сметы доходов | Администраторам бюджетных средств позволяет вводить и передавать в Финансовое управление сметы доходов, а работникам Финансового управления проверять и утверждать сметы |
3.1.2 | Справки-уведомления | Администраторам бюджетных средств позволяет вводить справки-уведомления по доходам, а работникам Финансового управления проверять и утверждать их |
3.2 | Расходы | |
3.2.1 | Сметы расходов | Распорядителям бюджетных средств позволяет вводить и передавать в Финансовое управление сметы расходов, а работникам Финансового управления проверять и утверждать сметы |
3.2.2 | Справки-уведомления | Распорядителям бюджетных средств позволяет вводить и передавать в Финансовое управление справки-уведомления по расходам, а работникам Финансового управления проверять и утверждать их |
Следует отметить, что пользовательский интерфейс автоматически настраивается в соответствии с правами доступа текущего пользователя, то есть пользователю отображаются только доступные ему функции.
В процессе анализа требований и объектно-ориентированного анализа предметной области основное внимание уделялось правильной организации деятельности, т.е. изучению основных целей построения автоматизированной системы бюджетного процесса. На данном этапе акцент смещается в сторону правильной реализации поставленных целей, т.е. разработке грамотного проектного решения, удовлетворяющего поставленным требованиям. И здесь на помощь приходят диаграммы взаимодействий, иллюстрирующие взаимодействия объектов в процессе выполнения системных требований /18/. Они помогают определить структуру приложения, т.е. выявить классы системы и их взаимосвязи.
На рисунке 3.2 представлена диаграмма, показывающая объекты и сообщения, передаваемые между ними в процессе аутентификации пользователя в системе.
Пользователь вводит логин и пароль своей учетной записи и нажимает на кнопку «Войти» формы AuthForm. Эта форма в свою очередь отправляет сообщение Connect управляющему объекту ClientImpl, который представляет собой клиентское приложение. Объект ClientImpl вызывает метод Connect объекта-сервера ServerImpl и передает себя в качестве параметра этого сообщения. ServerImpl проверяет наличие в системе зарегистрированной учетной записи, с введенными пользователем логином и паролем, при помощи управляющего объекта SecurityManager. Если учетная запись с введенными пользователем данными зарегистрирована в системе, то сервер регистрирует сессию для клиентского приложения и возвращает управление клиентскому приложению.
Рисунок 3.2 – Аутентификация пользователя в системе
На рисунке 3.3 представлена диаграмма, показывающая объекты и сообщения, передаваемые между ними в процессе регистрации нового пользователя в системе.
Администратор вводит на форме RegisterUserForm необходимые для регистрации нового пользователя данные, а затем запускает процедуру регистрации нового пользователя в системе. Форма RegisterUserForm передает сообщение Register управляющему объекту UserManager вместе с введенными администратором данными.
UserManager проверяет корректность введенных данных и добавляет нового пользователя в систему.
Рисунок 3.3 – Регистрация нового пользователя в системе
На рисунке 3.4 представлена диаграмма, показывающая объекты и сообщения, передаваемые между ними в процессе смены пароля на учетной записи.
Пользователь вводит свой старый пароль и новый, и запускает процедуру смены пароля. Форма ChangePasswordForm передает сообщение ChangePass управляющему объекту UserManager, который в свою очередь при помощи SecureManager проверяет наличие у пользователя права на смену пароля на текущей учетной записи. Если у пользователя это право имеется, то SecureManager посылает сообщений объекту Users, который меняет пароль на учетной записи.
В рамках дипломного проекта был разработан полный комплект диаграмм взаимодействия для всех основных и альтернативных сценариев прецедентов, но из-за ограничений накладываемых на размер дипломного проекта их не представляется возможным привести все здесь, поскольку это увеличило бы объем проекта на несколько сотен страниц.
Рисунок 3.4 – Смена пароля на учетной записи пользователя
После построения диаграмм взаимодействия можно наконец-то представить систему в виде совокупности классов и взаимосвязей между ними. Для предоставления подобного рода информации служат диаграммы классов. В приложении В представлены основные классы объектов составляющие автоматизированную систему бюджетного процесса, а в приложении Г приведены фрагменты кода.
Дадим некоторые пояснения по структуре приложения.
Центральными классами являются ServerImpl и ClientImpl, которые соответственно представляют серверную и клиентскую часть приложения. Первый объект реализует интерфейс IServer, а второй IClient. Клиентская часть приложения имеет доступ к серверу только через интерфейс IServer. Такая реализация продиктована требованиями безопасности.
При проектировании класса ServerImpl использовался паттерн Singleton, что гарантирует существование единственного экземпляра этого класса в течение всего времени работы программы.
Класс ServerImpl управляет загрузкой подключаемых модулей и предоставляет доступ клиентскому коду к управляющим объектам.
Подключаемые модули поставляются в виде динамически подключаемых библиотек. В каждой библиотеке определен один или несколько классов реализующих интерфейс IPlugin. Класс ServerImpl при запуске приложения просматривает динамически подключаемые библиотеки на наличие классов реализующих интерфейс IPlugin и в случае если такие классы обнаружены, создает объекты этих классов и вызывает метод Load. В этом методе подключаемый модуль проводит необходимую ему инициализацию и регистрирует управляющие классы объектов в системе.
Все управляющие объекты реализуют интерфейс IManager и доступ к ним осуществляется по названию менеджера через класс ServerImpl.
Рассмотрим назначение основных менеджеров.
SecurityManager агрегирует в себе функция связанные с безопасностью. К числу таких функций относится аутентификация пользователя в системе, определение прав доступа пользователя и т.д.
SessionManager управляет подключенными клиентскими приложениями. При подключении нового клиента к серверу ему автоматически присваивается сессия и вся дальнейшая работа строится на использовании этой сессии.
UserManager служит для управления пользователями. Он позволяет регистрировать новые учетные записи пользователей, удалять их и изменять регистрационные данные.
PermissionManager служит для управления правами доступа пользователей и пользовательских групп. С его помощью можно назначать или снимать права доступа с пользователя или пользовательской группы.
DatabaseManager управляет подключениями к базе данных, а также транзакциями.
DALManager управляет компонентами доступа к данным. При помощи этого менеджера в системе регистрируются DAL‑компоненты, которые осуществляют сохранение объектов в базе данных, их модификацию и удаление, а также построение объектов из данных сохраненных в базе.
BudgetManager управляет проектами бюджета. Позволяет создавать, модифицировать и утверждать проекты бюджета.
BCAdminManager управляет администраторами бюджетных средств. Позволяет назначать и удалять администраторов бюджетных средств.