Автор работы: Пользователь скрыл имя, 06 Мая 2012 в 20:59, курсовая работа
Автоматизация туристического агентства — это понятие, которого не существует и не может существовать в принципе. Хотя бы потому, что 90% успеха сделки между агентством и туристом состоит в личном контакте. Туристу важно знать своего менеджера, задать ему самые простые вопросы и просто убедиться, что его отдых был отдан в надежные руки.
Глава 1. Техническое задание
1.1 Описание и анализ задачи
1.1.1 ОПИСАНИЕ ЗАДАЧИ И СОСТАВЛЕНИЕ ГЛОССАРИЯ ПРОЕКТА
1.1.2 СОЗДАНИЕ МОДЕЛИ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ (use case diagram)
1.1.3 ОПИСАНИЕ ПОТОКОВ СОБЫТИЙ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ
1.2 Постановка задачи
1.2.1 ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
1.2.2 НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
1.2.3 ВЫХОДНЫЕ СООБЩЕНИЯ
1.2.4 ВХОДНЫЕ СООБЩЕНИЯ
1.3 Тестирование системы
1.3.1 МЕТОДЫ ТЕСТИРОВАНИЯ
1.3.2 ТЕСТОВЫЕ СЛУЧАИ
Глава 2. Проектирование программного обеспечения
2.1 Описание подхода к проектированию
2.1.1 Объектно-ориентированное проектирование
2.1.2 Описание языка моделирования UML
2.1.3 Соглашения по моделированию
2.2 Аналитическая модель программного обеспечения
2.2.1 Диаграмма вариантов использования (use case diagram)
2.2.2 Диаграммы кооперации (collaboration diagram)
2.2.3 Диаграммы последовательности вариантов использования (sequence diagram)
2.2.3 Диаграммы классов уровня концепции (class diagram)
2.3 Логическая модель программного обеспечения
2.3.1 Диаграммы классов (class diagram)
2.3.2 Диаграммы состояний классов (statechart diagram)
2.3.1 Диаграмма деятельности (activity diagram)
2.4 Физическая модель программного обеспечения (реализация системы)
2.4.1 Диаграмма компонентов (component diagram)
2.4.2 Диаграмма развертывания (deployment diagram)
2.4.3 Генерация кода
Глава 3. Разработка программного обеспечения
3.1 Общие сведения
3.1.1 Язык программирования и среда программирование
3.1.2 Соглашение по кодированию программы
3.2 Спецификации программы
3.2.1 Модульный и файловый состав
3.2.2 Описание классов
3.3 Руководство пользователя
3.3.1 Установка программы
3.3.2 Пользовательский интерфейс программы
Приложение А Полный текст соглашения по кодированию
Приложение В Текст программы
Приложение С Результаты тестирования программы
Рисунок 1. Рецепт
Рисунок 2. Потребление
Рисунок 3. Список заказов
Рисунок 4.Заказ
Рисунок 5. Логическая модель
Рисунок 6. Физическая модель
CREATE TABLE Consumption (
N_Consumption INTEGER NOT NULL,
Date_of_order TIMESTAMP,
N_Portion INTEGER,
N_Dish INTEGER NOT NULL,
Tabel INTEGER,
Adress VARCHAR(20),
FIO VARCHAR(20),
Telefon INTEGER
);
CREATE UNIQUE INDEX XPKConsumption ON Consumption
(
N_Consumption
);
ALTER TABLE Consumption
ADD PRIMARY KEY (N_Consumption);
CREATE TABLE Dish (
N_Dish INTEGER NOT NULL,
Dish_Name VARCHAR(20),
Price INTEGER ,
caloric_content INTEGER ,
N_Type INTEGER NOT NULL,
Picture BLOB
);
CREATE UNIQUE INDEX XPKDish ON Dish
(
N_Dish
);
ALTER TABLE Dish
ADD PRIMARY KEY (N_Dish);
CREATE TABLE Product (
N_Product INTEGER NOT NULL,
Product_Name VARCHAR(20),
quantity INTEGER
);
CREATE UNIQUE INDEX XPKProduct ON Product
(
N_Product
);
ALTER TABLE Product
ADD PRIMARY KEY (N_Product);
CREATE TABLE Product_Dish (
N_Product INTEGER NOT NULL,
N_Dish INTEGER NOT NULL,
Weight INTEGER
);
CREATE UNIQUE INDEX XPKProduct_Dish ON Product_Dish
(
N_Product,
N_Dish
);
ALTER TABLE Product_Dish
ADD PRIMARY KEY (N_Product, N_Dish);
CREATE TABLE Recipe (
N_Recipe INTEGER NOT NULL,
Cooking_method VARCHAR(500),
N_Dish INTEGER NOT NULL
);
CREATE UNIQUE INDEX XPKRecipe ON Recipe
(
N_Recipe
);
ALTER TABLE Recipe
ADD PRIMARY KEY (N_Recipe);
CREATE TABLE Tip (
N_Type INTEGER NOT NULL,
Type_Name VARCHAR(20)
);
CREATE UNIQUE INDEX XPKTip ON Tip
(
N_Type
);
ALTER TABLE Tip
ADD PRIMARY KEY (N_Type);
ALTER TABLE Consumption
ADD FOREIGN KEY (N_Dish)
REFERENCES Dish;
ALTER TABLE Dish
ADD FOREIGN KEY (N_Type)
REFERENCES Tip;
ALTER TABLE Product_Dish
ADD FOREIGN KEY (N_Dish)
REFERENCES Dish;
ALTER TABLE Product_Dish
ADD FOREIGN KEY (N_Product)
REFERENCES Product;
ALTER TABLE Recipe
ADD FOREIGN KEY (N_Dish)
REFERENCES Dish;
CREATE EXCEPTION ERWIN_PARENT_INSERT_RESTRICT 'Cannot INSERT Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT 'Cannot UPDATE Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_PARENT_DELETE_RESTRICT 'Cannot DELETE Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_CHILD_INSERT_RESTRICT 'Cannot INSERT Child table because Parent table does not exist.';
CREATE EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT 'Cannot UPDATE Child table because Parent table does not exist.';
CREATE EXCEPTION ERWIN_CHILD_DELETE_RESTRICT 'Cannot DELETE Child table because Parent table does not exist.';
CREATE EXCEPTION ERWIN_PARENT_INSERT_NOACTION 'Cannot INSERT Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_PARENT_UPDATE_NOACTION 'Cannot UPDATE Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_PARENT_DELETE_NOACTION 'Cannot DELETE Parent table because Child table exists.';
CREATE EXCEPTION ERWIN_CHILD_INSERT_NOACTION 'Cannot INSERT Child table because Parent table does not exist.';
CREATE EXCEPTION ERWIN_CHILD_UPDATE_NOACTION 'Cannot UPDATE Child table because Parent table does not exist.';
CREATE EXCEPTION ERWIN_CHILD_DELETE_NOACTION 'Cannot DELETE Child table because Parent table does not exist.';
set term !! ;
CREATE TRIGGER tI_Consumption FOR Consumption AFTER INSERT AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Consumption FOR Consumption AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tD_Dish FOR Dish AFTER DELETE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Recipe
where
Recipe.N_Dish = OLD.N_Dish into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
select count(*)
from Consumption
where
Consumption.N_Dish = OLD.N_Dish into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
select count(*)
from Product_Dish
where
Product_Dish.N_Dish = OLD.N_Dish into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tI_Dish FOR Dish AFTER INSERT AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Tip
where
NEW.N_Type = Tip.N_Type into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Dish FOR Dish AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
IF
(OLD.N_Dish <> NEW.N_Dish) THEN
BEGIN
select count(*)
from Recipe
where
Recipe.N_Dish = OLD.N_Dish into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
IF
(OLD.N_Dish <> NEW.N_Dish) THEN
BEGIN
select count(*)
from Consumption
where
Consumption.N_Dish = OLD.N_Dish into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
IF
(OLD.N_Dish <> NEW.N_Dish) THEN
BEGIN
update Product_Dish
set
Product_Dish.N_Dish = NEW.N_Dish
where
Product_Dish.N_Dish = OLD.N_Dish;
END
select count(*)
from Tip
where
NEW.N_Type = Tip.N_Type into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tD_Product FOR Product AFTER DELETE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Product_Dish
where
Product_Dish.N_Product = OLD.N_Product into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Product FOR Product AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
IF
(OLD.N_Product <> NEW.N_Product) THEN
BEGIN
update Product_Dish
set
Product_Dish.N_Product = NEW.N_Product
where
Product_Dish.N_Product = OLD.N_Product;
END
END !!
set term !! ;
CREATE TRIGGER tI_Product_Dish FOR Product_Dish AFTER INSERT AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
select count(*)
from Product
where
NEW.N_Product = Product.N_Product into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Product_Dish FOR Product_Dish AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
select count(*)
from Product
where
NEW.N_Product = Product.N_Product into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tI_Recipe FOR Recipe AFTER INSERT AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Recipe FOR Recipe AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
NEW.N_Dish = Dish.N_Dish into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tD_Tip FOR Tip AFTER DELETE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Dish
where
Dish.N_Type = OLD.N_Type into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
END !!
set term !! ;
CREATE TRIGGER tU_Tip FOR Tip AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
IF
(OLD.N_Type <> NEW.N_Type) THEN
BEGIN
select count(*)
from Dish
where
Dish.N_Type = OLD.N_Type into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
END !!
CREATE GENERATOR Product_ID;
set term !! ;
CREATE TRIGGER tI_Product_ID FOR Product Before INSERT POSITION 0 AS
begin
New.N_Product=Gen_ID(Product_
end!!
CREATE GENERATOR Dish_ID;
set term !! ;
CREATE TRIGGER tI_Dish_ID FOR Dish Before INSERT POSITION 0 AS
begin
New.N_Dish=Gen_ID(Dish_ID,1);
end!!
CREATE GENERATOR Consumption_ID;
Информация о работе Автоматизация обработки информации по работе туристической фирмы