Автор работы: Пользователь скрыл имя, 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 Пользовательский интерфейс программы
Приложение А Полный текст соглашения по кодированию
Приложение В Текст программы
Приложение С Результаты тестирования программы
Определим связи:
Связь между сущностями Type/Dish(тип/блюдо):
Блюдо имеет один тип. Один тип может соответствовать разным блюдам. Блюдо обязано иметь тип. Из этого следует, что один экземпляр сущности Type может быть связан с N экземплярами сущности Dish. Один экземпляр сущности Dish связан только с одним экземпляром сущности Type. Таким образом, мы получили связь 1 :N. Класс принадлежности сущности Dish обязательный.
Связь Dish/Recipe (блюдо/рецепт) имеет следующие характеристики:
Каждое блюдо может иметь один рецепт. В свою очередь каждый рецепт принадлежит одному блюду. Блюдо может не иметь рецепта. Рецепт должен иметь блюдо. Из этого следует, что один экземпляр сущности Dish может быть связан c 1 экземплярами сущности Recipe. Каждый экземпляр сущности Recipe может быть связан с 1 экземплярами сущности Dish. Таким образом, мы получили связь 1:1, класс принадлежности сущности Recipe обязательный.
Связь Dish/Consumption(блюдо/расход)
Каждый блюдо может обладать нескольким расходами. В свою очередь каждый расход может принадлежать только одному блюду. Для каждого расхода должен быть указан хотя бы одно блюдо. Из этого следует, что один экземпляр сущности Dish может быть связан c N экземплярами сущности Consumption. Каждый экземпляр сущности Consumption может быть связан с 1 экземплярами сущности Dish. Таким образом, мы получили связь 1:n, класс принадлежности сущности Consumption обязательный.
Dish/Product (блюдо/продукт):
Каждое блюдо может включать в состав несколько продуктов. В свою очередь каждый продукт может требоваться в нескольких блюд. Для каждого блюда должен быть указан хотя бы один продукт, не каждый продукт может быть в блюде. Из этого следует, что один экземпляр сущности Dish может быть связан c M экземплярами сущности Product. Каждый экземпляр сущности Product может быть связан с N экземплярами сущности Dish. Таким образом, мы получили связь N :M, класс принадлежности сущности Dish обязательный.
Логическая модель представлена в приложении А (рис. 5).
Генерация набора предварительных отношений производится по 8 основным правилам. В результате было получено 6 отношений:
Тип (Номер типа, Название типа);
Блюдо (Номер блюда, Номер типа, Название блюда, Цена, Калории, Рисунок);
Рецепт (Номер рецепта, Описание рецепта, Номер блюда);
Расход (Номер расхода, Номер блюда, Количество порций, Дата, Столик, Адрес, Фамилия_Имя_Отчество, Телефон);
Продукт_Блюдо (Номер блюда, Номер продукта, Вес);
Продукт (Номер продукта, Название продукта, Количество продукта).
База данных проектировалась на Erwin 4.1. Физическая модель представлена в приложении А (рис. 6).
На основе физической модели был сгенерирован SQL–скрипт, в который необходимо добавить генераторы, триггеры и хранимые процедуры.
Генераторы
CREATE GENERATOR объявляет генератор для базы данных и устанавливает его начальное значение в нуль. Генератор это последовательный номер, который может быть вставлен в столбец с помощью функции GEN_ID(). Генератор часто используется, что бы гарантировать уникальное значение в PRIMARY KEY, такой как номер счета, который должен уникально идентифицировать ассоциированную строку.
Например, добавление генератора к таблице Product:
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 TRIGGER определяет новый триггер
в базе данных. Триггер это
отдельная программа
Триггер никогда не вызывается непосредственно. Наоборот, когда приложение или пользователь пытаются выполнить инструкцию INSERT, UPDATE или DELETE над строкой в таблице, любые триггеры связанные с этой таблицей и операцией автоматически выполняются.
Рассмотрим пример. Ниже приведен код триггера, который срабатывает при добавлении нового блюда:
CREATE TRIGGER tI_Dish FOR Dish AFTER INSERT AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from Type
where
NEW.N_Type = Type.N_Type into numrows;
IF (
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
END !!
Хранимой процедурой называется именованный набор предварительно откомпилированных команд SQL, который может вызываться из клиентского приложения или из другой хранимой процедуры.
Хранимая процедура FIND_CONSUMPTION возвращает в выходном параметре название блюда NAZ_DISH, количество порций KOL и цену PR блюд, дата потребления которых находится в интервале дат (входной параметр), причем количество порций блюд за предложенный период суммируется:
CREATE PROCEDURE FIND_CONSUMPTION (B_DATA DATE,A_DATA DATE)
RETURNS (NAZ_DISH VARCHAR (20), KOL INTEGER, PR INTEGER)
AS
BEGIN
FOR
SELECT Dish_Name ,sum(N_Portion),sum(Price* N_Portion)
FROM Dish,Consumption
WHERE Dish.N_Dish=Consumption.N_Dish AND
Consumption.Date_of_order BETWEEN :B_Data AND :A_DATA
GROUP BY Dish_Name
INTO : NAZ_DISH ,:KOL, :PR
DO
BEGIN
SUSPEND;
END
END;
Хранимая процедура TIP_DISH возвращает в выходном параметре LIST номер типа блюда, задаваемого входным параметром T_N:
CREATE PROCEDURE TIP_DISH (T_N INTEGER)
RETURNS (LIST VARCHAR (20))
AS
BEGIN
FOR
SELECT Distinct Dish_Name FROM Dish,Tip
WHERE :T_N = Dish.N_Type
INTO : LIST
DO
BEGIN
SUSPEND;
END
END;
Хранимая процедура FIND_
CREATE PROCEDURE FIND_PRODUCT (B_N INTEGER)
RETURNS (PROD CHAR (18), REC VARCHAR (500))
AS
BEGIN
FOR
SELECT Product_Name, Cooking_method
FROM PRODUCT, RECIPE,Product_Dish
WHERE :B_N = Product_Dish.N_Dish
AND Product.N_product=Product_
AND Product_Dish.N_Dish=RECIPE.N_
INTO : PROD, :REC
DO
BEGIN
SUSPEND;
END
END;
Полученный SQL–скрипт приведен в приложении Б.
Ни одно отношение не имеет множества атрибутов, являющегося подмножеством множества атрибутов какого-либо другого отношения
Информационная модель тестируется при помощи программы Erwin Examiner. Обнаружены следующие ошибки:
В результате тестирования модели были выявлены два вида ошибок, носящих рекомендательный характер:
В данной модели суррогатные ключи в перечисленных таблица введены потому, что никакое подмножество множества атрибутов таблиц не дает гарантии уникальности кортежей.
Введение индексов ускоряет поиск информации, однако замедляет обновление информации. В созданной модели добавлены только необходимые индексы, поэтому никаких других индексов не требуется.
На основе Постановки задачи и дополнительных требований к системе определён окончательный набор функций:
Для функционирования программы необходимо следующее:
Удобство использования
Система разрабатывается для
К развёртыванию системы
К пользовательскому интерфейсу системы
предъявляются следующие
Для скорейшего обучения клиентов использованию системы, вместе с ней должны поставляться подробная документация.
Надёжность
К надёжности системы
предъявляются следующие
Для данной системы выбрана клиент-серверная архитектура. Клиент-серверная система характеризуется наличием двух взаимодействующих самостоятельных процессов - клиента и сервера, которые, в общем случае, могут выполняться на разных компьютерах, обмениваясь данными по сети.
Процессы, реализующие
некоторую службу, например службу
файловой системы или базы
данных, называются серверами (servers)
Система разрабатывается для работы в операционных системах Windows XP/Vista/7. Эти операционные системы являются фактическим стандартом и установлены на абсолютном большинстве компьютеров учебных и иных заведений, что обуславливает лёгкость освоения интерфейса системы. Операционные системы Windows XP/Vista/7 функционируют достаточно стабильно и соответствуют требованиям к надёжности работы. Процесс разработки Windows-приложений является более эффективным по сравнению с другими операционными системами ввиду существования мощных визуальных сред программирования и дополнительного программного обеспечения.
Процесс разработки ведётся в визуальной среде программирования Borland С++ 6. Драйверы баз данных dbGo for ADO, dbExpress и BDE, входящие в состав C++Builder, обеспечивают высокопроизводительную работу приложений с такими СУБД, как DB2, Informix, Oracle, Sybase, Microsoft SQL Server, MySQL, Access, Paradox и InterBase. Широкий выбор управляемых данными элементов интерфейса дает возможность быстро создавать прототипы приложений. SQL Monitor и другие отладочные инструменты служат повышению производительности, масштабируемости и уменьшению времени отклика приложений баз данных.
Для создания базы данных использовался InterBase SMP 2009, который объединяет в себе преимущества производительности, которые предлагает мультигенерационная архитектура (multi-generational architecture), с возможностями журналирования и восстановления после сбоев. Новые функции безопасности и шифрования обеспечивают улучшенную защиту данных. Удобная установка, компактность, автоматическое восстановление после сбоев, Unicode, встроенная поддержка симметричной многопроцессорной обработки, соответствие стандарту SQL 92 и минимальные требования к обслуживанию делают InterBase SMP 2009 идеальной базой данных (БД) для встроенных и ответственных серверных приложений для малых и средних организаций.
Диаграмма вариантов использования (Use Case, а также: вариант использования, сценарий использования) - спецификация последовательности действий (варианты последовательности), которые может осуществлять система, подсистема или класс, взаимодействуя с внешними актерами (англ. Actors).
Прецеденты служат для оформления функциональных требований к программным системам. Прецедент описывает некоторую часть поведения системы, не вдаваясь при этом в особенности внутренней структуры субъекта. Определение прецедента содержит в себе все свойственные ему виды поведения: основную последовательность, различные варианты стандартного поведения и различные исключительные ситуации с указанием ответной реакции на них. С точки зрения пользователя некоторые из видов поведения выглядят как ошибочные. Однако для системы ошибочная ситуация является одним из вариантов поведения, который должен быть описан и обработан.
Прецедент описывает взаимодействие системы с актёрами в виде последовательности сообщений. В понятие актер входят люди, компьютерные системы и процессы. Один и тот же прецедент может быть описан с различной степенью детализации.
При проектировании программного обеспечения
для составления диаграммы
Информация о работе Автоматизация обработки информации по работе туристической фирмы