Автор работы: Пользователь скрыл имя, 12 Марта 2013 в 18:25, курсовая работа
Необходимо разработать программный продукт предоставляющий возможность отслеживать работу библиотеки, составлять отчеты о посещаемости за необходимый период времени. С другой стороны программа частично должна быть нацелена на работу с читателями – предоставлять читателями возможность бронировать книги в виде электронной заявки на сайте библиотеки, тем самым минимизируя время непосредственного общения с библиотекарем. Должен быть представлен расширенный поиск книг, основанные на комбинировании различных параметров: автор, жанр, название книги.
Постановка задачи проектирования.
Необходимо реализовать базу данных, в которой будет храниться информация о читателях, информация о заказанных книгах и книгах в целом.
1. Описание предметной области. 3
2. Постановка задачи проектирования. 3
3. Business диаграмма. 4
4. UseCase диаграмма. 5
5. Потоки событий вариантов использования. 6
5.1 Поток событий варианта использования «Оформление запроса». 6
1.2 Поток событий варианта использования «Создать отчет о посещаемости» 6
6. Выявление требований к проекту. Техническое задание. 8
1. Введение. 8
2. Основания для разработки. 8
3. Назначение разработки. 8
4. Требования к программе или программному изделию. 8
5. Требования к программной документации. 12
6. Технико-экономические показатели. 12
7. Стадии и этапы разработки. 12
8. Порядок контроля и приемки. 13
7. Диаграмма классов. 14
8. Диаграммы действий. 15
Диаграмма действий – бронирование книги через сайт. 15
9. Полная диаграмма классов. 16
10. Архитектура системы. Диаграмма компонентов. 17
11. Диаграммы последовательности 17
12. Технический проект. 18
12.1 База данных, таблицы (типы, форматы, ключи, индексы). 18
12.2 Запросы, описание, формы, отчёты. 20
13. Заключение. 22
Приложение: текст программы. 22
Диаграмма действий – бронирование книги через сайт.
Рис. 4. Диаграмма действий – бронирование книги через сайт
Рис. 5. Диаграмма последовательности (с boundary классами)
Рис. 6. Диаграмма компонентов
Рис. 7. Диаграмма последовательности
Рис. 8. Схема данных
Таблица 1: Сущность Жанры
№ п/п |
Атрибут |
Семантика |
Тип |
Пример |
1 |
Код |
Первичный ключ |
Integer |
101 |
2 |
Жанр |
Название жанра |
Char |
Романтика |
Таблица 2: Сущность Писатели
№ п/п |
Атрибут |
Семантика |
Тип |
Пример |
1 |
Код |
Первичный ключ |
Integer |
222 |
2 |
Писатель |
ФИО писателя |
Char |
Пушкин |
Таблица 3: Сущность Книги
№ п/п |
Атрибут |
Семантика |
Тип |
Пример |
1 |
Код |
Первичный ключ |
Integer |
301 |
2 |
Книга |
Название книги |
Char |
Война миров |
3 |
Страницы |
Количество страниц |
Integer |
657 |
4 |
Жанр_Код |
Первичный ключ жанра |
Integer |
421 |
5 |
Писатель_Код |
Первичный ключ писателя |
Integer |
431 |
6 |
Стоимость |
Стоимость книги |
Integer |
1500 |
Таблица 4: Сущность Журнал выдачи/приема
№ п/п |
Атрибут |
Семантика |
Тип |
Пример |
1 |
Код |
Первичный ключ |
Integer |
333 |
2 |
Читатель |
ФИО читателя |
Char |
Петров В.В. |
3 |
Книга_код |
Первичный ключ книги |
Integer |
102 |
4 |
Дата выдачи |
Дата выдачи книги читателю |
Date |
12.05.10 |
5 |
Срок сдачи |
Срок сдачи книги |
Date |
12.06.10 |
6 |
Дата возврата |
Дата возврата книги читателем |
Date |
13.10.12 |
Рис. 9. Таблица Жанры
Рис. 10.Таблица Журнал приема/выдачи
Рис.11. Таблица Книги
Рис.12. Таблица Писатели
Запрос 1 – Карточка пользователя. Пользователь можно посмотреть какие книги он брал/имеет на руках. На карточке хранится персональный журнал выдач книг пользователю.
Рис. 13. Запрос 1 – Карточка пользователя
Запрос 2 – Подсчет штрафа. Делается подсчет штрафа в зависимости от срока сдачи и стоимости книги.
Рис. 14. Запрос 2 – Подсчет штрафа
Запрос 3 – Поиск по автору. Пользователь осуществляет поиск книги по автору.
Рис. 15. Запрос 3 – Поиск по автору
Запрос 4 – Просроченные книги. Библиотекарь может посмотреть список просроченных книг, на основе которых он может выписать штрафы должникам.
Рис.16. Запрос 4 – Просроченные книги
Запрос 5 – Наиболее востребованная книга. На основе этого запроса Зав. библиотекой может выявить самую популярную книгу и увеличить, при необходимости, количество экземпляров самой популярной книги.
Рис. 17. Запрос 5 – Наиболее востребованная книга
Отчет 1 – Подсчет штрафа. Отчет о задолжностях.
Рис. 17. Отчет 1 – Подсчет штрафа
Отчет 2 – Писатели. Общий список литературы.
Рис. 18. Отчет 2 – Писатели
В ходе семестра была спроектирована система по работе библиотеки в RationalRose, с помощью языка UML. Эта система разработана на основе базы данных в MSAccess для сравнения с конечным продуктом, полученным с помощью RationalRose. В Rose рассмотрены и построены основные диаграммы – действий, business и usecase. Так же построена диаграмма классов и по ней сформирован SQL код разрабатываемой системы.
UML - формальный язык, который необходимо освоить каждому, кто собирается заниматься программной инженерией.
CREATE TABLE S_2.T_Редактирование_списка_
T_Редактирование_списка_
CONSTRAINT PK_T_Редактирование_списка_29
PRIMARY KEY (T_Редактирование_списка_
);
CREATE TABLE S_2.T_Журнал_выдачи/приема (
Название_книги CHAR ( 20 ) NOT NULL,
ID_автора INTEGER NOT NULL,
ID_жанра INTEGER NOT NULL,
ID_читателя INTEGER NOT NULL,
Дата_выдачи DATE NOT NULL,
Дата_возврата DATE NOT NULL,
ID INTEGER NOT NULL,
T_Авторы_ID INTEGER NOT NULL,
T_Жанр_ID_жанра INTEGER,
COL_2 INTEGER NOT NULL,
T_Запросы_ID INTEGER,
T_Отчеты_ID INTEGER,
T_Редактирование_Журнал_
T_Читатели_ID_читателя INTEGER NOT NULL,
CONSTRAINT PK_T_Журнал_выдачи/приема20 PRIMARY KEY (ID)
);
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE INDEX S_2.TC_T_Журнал_выдачи/
CREATE TABLE S_2.T_Редактирование_Журнал_
T_Редактирование_Журнал_
CONSTRAINT PK_T_Редактирование_Журнал_26
PRIMARY KEY (T_Редактирование_Журнал_
);
CREATE TABLE S_2.T_Читатели (
Название_книги CHAR ( 20 ) NOT NULL,
Дата_рождения DATE NOT NULL,
ID_читателя INTEGER NOT NULL,
T_Редактирование_списка_
CONSTRAINT PK_T_Читатели22 PRIMARY KEY (ID_читателя)
);
CREATE INDEX S_2.TC_T_Читатели63 ON S_2.T_Читатели
(T_Редактирование_списка_
CREATE TABLE S_2.T_Авторы (
ФИО_автора CHAR ( 20 ) NOT NULL,
ID_автора INTEGER NOT NULL,
T_Авторы_ID INTEGER NOT NULL,
T_Редактирование_списка_
CONSTRAINT PK_T_Авторы23 PRIMARY KEY (T_Авторы_ID)
);