На этапе проектирования не было внесено дополнительных объектов, кроме тех, которые были выявлены и составлены из словаря предметной области на этапе анализа рис. 2. Единственное дополнение, лишь то, что три объекта: книга, автор, тематика сильно пересекаются и их можно логически сгруппировать рис.4. Так же под объектом каталог понимается два каталога: каталог книг и каталог читателей.
Рис. 4 Диаграмма объектов системы на этапе проектирования
Базовые классы системы
На этапе проектирования не было внесено дополнительных классов, кроме тех, которые были выявлены на основании объектов рис.2, на этапе анализа системы рис. 3. Как и в диаграмме объектов системы на этапе проектирования, в диаграмме классов можно логически объединить четыре класса в одну группу сведения о книге как это показано на рис.5.
Перечень классов в библиотечной системе:
· Группа «сведения о книге»
1. Книга;
2. Автор;
3. Тематика;
4. Размещение_книги;
· Заказ;
· Читатель/Клиент;
· Запись_на_дефицитную_книгу;
· Каталог_книг;
· Каталог_читателей.
Рис.5 Диаграмма классов на этапе проектирования
Состояния системы
В разрабатываемой системе выделяются такие основные состояния:
· Состояние ожидания;
· Добавление информации;
· Пополнение БД;
· Создание учётной записи о читателе;
· Оформление заказа;
· Запрос к БД;
· Использование БД (или ожидание ответа от БД);
· Отказ от заказа;
· Предоставление информации.
Состояний в данной информационной системе может быть на порядок больше, в схеме состояний системы учитываются лишь основные рис.6, ниже, в подробном описании каждого состояния, будет рассмотрено, почему их на самом деле больше.
Рис. 6 Диаграмма основных состояний системы
Самым основным состоянием является состояние ожидание системы. С него начинается работа разрабатываемой системы и на нём же она должна заканчиваться, за исключением внештатных ситуаций которые могут привести к потере данных. Состояние ожидания является связывающим звеном между всеми состояниями, именно из него начинается работа с другими компонентами системы, тем самым обеспечивается возможность совершения необходимого действия.
Добавление информации выделено отдельным состоянием, хотя правильнее сказать, что оно включает в себя группу состояний, по своим действиям очень похожим. Добавлением информации по книгам, авторам, информация по дефицитным книгам и т.д. Так же оно включает в себя набор состояний по изменению информации, уже находящейся в базе данных, а также их удаление.
Создание учётной записи о читателе, это состояние можно было бы и включить в группу «добавление информации», оно так же имеет в себе подгруппу состояний по изменению, удалению информации. Но в связи со спецификой работы системы решено было выделить его отдельно.
Пополнение БД, это состояние является промежуточным, между клиентской программой и серверной, подразумевает создание записей и последующий перенос информации на сервер.
Использование БД, это состояние подразумевает использование системой отдельно выделенной серверной машины, которая занимается хранением, записью информации и обработкой запросов от клиентских машин.
Оформление заказа, является важным состоянием системы, поэтому его необходимо было выделить отдельно. В нем происходит формирование записей о необходимых книгах, их суммарной стоимости, удобное и быстрое предоставление информации и книгах которые имеются в наличие. Это состояние имеет очень сильное взаимодействие состоянием «Запрос к БД», за счёт которого и достигается функционал этого состояния.
Отказ от заказа, один из завершающих моментов состояния «оформление заказа». В момент этого состояния, система должна отменить все изменения которые могли произойти, на этапе формирования заказа.
Запрос к БД, одно из самых гибких состояний. Оно также является связующим звеном между клиентской частью программы и серверной. Под запросом понимаются не только SQL запросы, но и механизмы контроля целостности базы данных и адекватности запрашиваемых данных из хранилища.
Использование БД, состояние системы при котором серверная машина (серверная часть системы), работает с базой данных на прямую через СУБД, обрабатывает запросы формируя на них ответы и высылает их запрашивающим клиентским машинам (приложениям).
Предоставление информации, обработчик информации от серверной части системы (серверной машины), с целью её дальнейшего представления в удобной форме.
Модули системы
В разрабатываемой системе подразумевается создать 9 модулей, 4 из которых было решено сгруппировать под общим названием наполнение таблиц, это связано с тем, что решаемые ими задачи подобны, а именно формирование начальных данных в БД для возможности функционирования системы в целом. Взаимодействие модулей между собой показано на рис.7.