Разработка клиент-серверного приложения для автоматизации учёта движения товаров магазина интерьерных принадлежностей

 

Министерство образования и науки

ФГБОУ ВПО Рязанский государственный радиотехнический университет










ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


К квалификационной работе на степень бакалавра

на тему "Разработка клиент-серверного приложения для автоматизации учёта движения товаров магазина интерьерных принадлежностей"


Оглавление


Введение

1.1 Описание предметной области

1.2 Постановка задачи8

2 Технико-экономическое обоснование

3 Теоретическая часть

3.1 Выбор СУБД (анализ выбора)

3.2 Выбор языка программирования

3.2.1 Borland Delphi

3.2.2 Borland C++ Builder

3.2.3 Microsoft Visual C#

3.2.4 Итог сравнения

3.3 Выбор системных программ (среда разработки)

4 Проектирование информационной системы

4.1 Разработка серверной части информационной системы

4.1.1 Инфологическое проектирование БД

4.1.2 Даталогическое проектирование БД

4.1.2 Разработка хранимых процедур и представлений

4.2 Разработка клиентской части информационной системы

4.2.1 Схема взаимодействия клиентского приложения с базой данных

4.2.2 Разработка форм

4.2.3 Разработка отчетов

4.2.4 Разработка дистрибутива

5 Разработка технической документации

5.1 Руководство оператора

5.1.1 Назначение программы

5.1.2 Условия выполнения программы

5.1.3 Установка приложения

5.1.4 Запуск программы

5.1.5 Описание интерфейса приложения

5.1.6 Работа с отчетами

5.1.7 Сообщения оператору

5.3 Руководство программиста

5.3.1 Назначение и условия применения программы

5.3.2 Обращение к программе

5.3.3 Описание входной информации

5.3.4 Описание выходной информации

5.3.5 Сообщения

6 Тестирование информационной системы

6.1 Программа и методика тестирования

6.1.1 Тестирование методом "белого ящика"

6.1.2 Тестирование методом "черного ящика"

6.2 Результаты тестирования

Заключение

Список использованных источников



Введение


Сегодня информацию рассматривают как один из основных ресурсов развития общества, а информационные системы и технологии как средство повышения производительности и эффективности работы людей.

Создание современных электронных вычислительных машин позволило автоматизировать обработку данных во многих сферах человеческой деятельности, в том числе торговле. Без современных систем обработки данных трудно представить сегодня передовые производственные технологии, управление экономикой на всех ее уровнях, научные исследования, образование, издательское дело, функционирование средств массовой информации, проведение крупных спортивных состязаний. Значительно расширило сферу применения систем обработки данных появление персональных компьютеров.

Одним из наиболее распространенных классов систем обработки данных являются информационные системы.



1 Постановка задачи


.1 Описание предметной области


Часть реального мира, которая моделируется информационной системой, называется ее предметной областью.

В данном дипломном проекте рассматривается предметная область «Магазин интерьерных товаров». Сотрудники магазина в зависимости от служебных обязанностей должны иметь возможность просматривать и редактировать информацию о товарах, продажах, возвратах, акциях, поставках и поставщиках.

В зависимости от предоставляемых возможностей программа должна выделять три группы пользователей: администратор, продавец, покупатель. Деятельность администратора и продавца существенно различается. Продавец общается с клиентами и отвечает за продажи и возвраты. На администратора же возлагается обязанности по формированию ассортимента товаров, управлению текущими акциями, контролю закупок. Клиенту предоставляется возможность просмотра ассортимента магазина.

В базе данных должна храниться информация о товарах, продажах, возвратах, закупках, акциях.

Клиентское приложение должно в удобной для пользователя форме предоставлять информацию для просмотра и редактирования, для чего был разработан простой и понятный интерфейс.


.2 Постановка задачи


Необходимо разработать систему для оптимизации работы магазина интерьерных товаров.

Главной целью данной проектируемой системы является хранение и обработка информации о товарах и их размещении.

Автоматизация процесса обработки этой информации позволит хранить данные в одной базе и работать с ней с помощью удобного интерфейса клиентского приложения.

Основные задачи:

внесение новых, редактирование существующих данных о товарах;

хранение и добавление данных о движении товаров - закупках, продажах и возвратах;

поиск и просмотр необходимых данных.

Целесообразно представить ИС как совокупность следующих частей:

база данных, где содержится основной объём обрабатываемой информации;

клиентское приложение для работы с базой данных;

персональный компьютер, сочетающий серверную и клиентскую части БД;

дополнительные технические, организационные и другие меры для обеспечения правильного и безопасного функционирования ИС.

Исходя из данного состава ИС, можно распределить требуемые функции по подсистемам так:

на СУБД возлагаются функции хранения и упорядочивания данных, функции по поддержке целостности данных, а также функции архивирования данных для создания резервных копий;

клиентское приложение должно обеспечивать удобный пользовательский интерфейс, простоту работы с данными, возможность наглядно и удобно запрашивать из базы данных записи по описанным выше критериям;

на персональный компьютер возлагаются функции по хранению файлов базы данных и клиентского приложения, а также часть функций защиты содержимого БД: операционная система должна обладать собственными мерами защиты (например, пароли), желательно наличие антивирусного программного обеспечения и т.д.

. Технико-экономическое обоснование


Актуальность темы дипломного проекта обоснована общими тенденциями развития и применения информационных систем в области торговли. Автоматизация учёта процессов движения товаров позволит повысить производительность труда и уменьшить вероятность ошибок, вследствие чего повысится общая эффективность труда сотрудников магазина, а также будет предоставлен удобный сервис для покупателей.

Основание разработки

Основанием для проведения разработки является задание на выпускную квалификационную работу.

Дата утверждения: 26.03.2012г.

Организация, утвердившая документ: РГРТУ, кафедра ЭВМ.

Тема проекта: Разработка клиент-серверного приложения для автоматизации учёта движения товаров магазина интерьерных принадлежностей.



3 Теоретическая часть


.1 Выбор СУБД (анализ выбора)


Система управления базами данных (СУБД) - это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так, СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД.

Возможности, которые должна иметь СУБД, можно представить следующим образом:

СУБД должна воспринимать и обрабатывать команды пользователей и приложений на выборку, изменение, добавление или удаление данных. Таким образом, в СУБД должен быть компонент, отвечающий за выполнение этих действий, - специальный язык обработки данных. Чаще всего этим языком является язык SQL;

СУБД должна иметь возможность принимать данные в исходной форме из различных по своей природе источников и преобразовывать их в форму, соответствующую собственным объектам;

СУБД должна иметь функции по обеспечению безопасности, целостности, а в случае повреждения и по восстановлению хранящейся в базе данных информации;

В СУБД должен входить компонент, хранящий сведения обо всех объектах, которыми оперирует данная СУБД, и связях между ними, а также сведения о самой СУБД, например, об используемой ею памяти, активных соединениях и т.д.;

Желательно, чтобы в СУБД были реализованы механизмы оптимизации, обеспечивающие максимальную эффективность выполнения всех функций СУБД.

СУБД классифицируются:

По модели данных:

Иерархическая модель данных - логическая модель данных в виде древовидной структуры. Представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое дерево (граф). Принцип работы модели таков, что несколько узлов более низкого уровня соединяется при помощи связи с одним узлом более высокого уровня. Достоинствами иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения основных операций над данными. Иерархическая модель данных удобна для работы с иерархически упорядоченной информацией. Недостатком иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями.

Сетевая модель данных - эта модель позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных. Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе. Кроме того, в сетевой модели данных ослаблен контроль целостности связей вследствие допустимости установления произвольных связей между записями.

Реляционная модель данных. В реляционных базах данных вся информация представляется в виде двумерных таблиц. Реляционная модель опирается на систему понятий реляционной алгебры, важнейшими из которых являются таблица, отношение, строка, первичный ключ. Все операции над реляционной базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира (сущность), а каждая ее строки (кортеж) - конкретный объект. Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Основными недостатками реляционной модели являются следующие: отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.

Постреляционная модель. Представляет собой расширенную реляционную модель, снимающую ограничение неделимости данных, хранящихся в записях таблиц. Постреляционная модель данных допускает многозначные поля - поля, значения которых состоят из подзначений. Набор значений многозначных полей считается самостоятельной таблицей, встроенной в основную таблицу. Достоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей. Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки. Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.

По способу доступа:

Файл-серверные

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимущество: низкая нагрузка на ЦП сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость централизованного управления; затруднённость обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД.

На данный момент файл-серверная технология считается устаревшей.

Клиент-серверные

Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Недостаток: повышенные требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность.

Встраиваемые

Встраиваемая СУБД (англ. embedded DBMS) - СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки.

Проанализировав задачу, приходим к следующим выводам:

Для разрабатываемой ИС наиболее подходит реляционная модель данных

Т.к. требуется разработать клиент-серверное приложение, то необходимо выбрать клиент-серверную СУБД.

Так как разрабатываемая система предназначена для использования сравнительно небольшим кругом лиц, большая часть которых не имеет технического образования, то СУБД для разработки программного обеспечения должна быть выбрана с учетом характеристик отказоустойчивости, защиты и простоты использования (администрирования). Данным требованиям в большей степени удовлетворяет СУБД MS SQL Server 2005.

Microsoft SQL Server 2005 - это реляционная система управления базой данных. SQL Server является масштабируемой базой данных, это значит, что она может хранить значительные объемы данных и поддерживать работу многих пользователей, осуществляющих одновременный доступ к базе данных.


.2 Выбор языка программирования


При выборе системы программирования для разработки программного обеспечения нужно обратить внимание на то, что система должна обеспечивать наиболее простой, доступный и надежный способ взаимодействия с выбранной СУБД MS SQL Server 2005.


.2.1 Borland Delphi

Система программирования Borland Delphi явилась логическим продолжением и дальнейшим развитием идей, заложенных компанией-разработчиком еще в системе программирования Turbo Pascal.

Компания Borland попыталась учесть все недостатки существующих языков объектно-ориентированного программирования, а также свой опыт создания языка Borland Pascal. Новый язык вышел довольно удачным, как с точки зрения синтаксиса, так и с точки зрения предоставляемых возможностей. Этот язык поддерживает практически все основные механизмы объектно-ориентированного программирования.

Компонентная модель среды разработки предусматривает создание основной части программы в виде набора взаимосвязанных компонентов классов объектно-ориентированного языка. Во время разработки исходной программы компоненты предстают в виде графических образов и обозначений, связанных между собой. Каждый компонент обладает определенным набором свойств, событий и методов. Каждому из них соответствует свой фрагмент исходного кода программы, отвечающий за обработку метода или реакции на какое-то событие. Разработчик может располагать на экране и связывать между собой компоненты, а также редактировать связанный с ними исходный код программы. Причем поведение компонентов во время выполнения программы полностью определяется их взаимосвязью, исходным кодом программы и объектным кодом самой компоненты.

Для поддержки разработки результирующих программ для архитектуры клиент-сервер в состав Borland Delphi входит средство BDE. Оно обеспечивает результирующим программам возможность доступа к широкому диапазону серверов БД посредством классов библиотеки VCL. Посредством BDE результирующая программа может взаимодействовать с серверами БД типа Microsoft SQL Server, InterBase, Sybase, Oracle и т.п. Система программирования Borland Delphi поддерживает также создание результирующих программ, выполняющихся в архитектуре клиент-сервер, на базе других технологий, например ADO.


.2.2 Borland C++ Builder

Система программирования Borland C++ Builder объединила в себе идеи интегрированной среды разработки, реализованные компанией в системах программирования Turbo Pascal и Borland Delphi с возможностями языка программирования C++.

Современная реализация Borland C++ Builder ориентирована на разработку результирующих программ, выполняющихся под управлением ОС Microsoft Windows всех типов. Сама система программирования Borland C++ Builder, как и Borland Delphi, также функционирует под управлением ОС типа Microsoft Windows. Она полностью поддерживает стандарт языка C, что делает возможным создание с помощью данной системы программирования модулей и библиотек, используемых в других средствах разработки.

По возможностям, внешнему виду и технологиям система программирования Borland C++ Builder схожа с системой программирования Borland Delphi. В ее основу положены те же основные идеи и технологии. Структура классов языка C++ в системе программирования Borland C++ Builder построена в той же библиотеке VCL, в которой строится структура классов Object Pascal в системе программирования Borland Delphi. Правда, разработчик, создающий программы на C++, может не пользоваться классами VCL и взять за основу любую другую библиотеку, чего нельзя сказать о разработчике, использующем Object Pascal, набор доступных библиотек для последнего языка сильно ограничен.

Успешное распространение систем программирования Turbo Pascal и Borland Delphi способствовало и внедрению на рынок системы программирования Borland C++ Builder от той же компании-разработчика. Эта система программирования занимает прочную позицию на рынке средств разработки для языка C++, где существует довольно жесткая конкуренция.


.2.3 Microsoft Visual C#

Эта система программирования построена в виде интегрированной среды разработки, включающей в себя все необходимые средства для разработки результирующих программ, ориентированных на выполнение под управлением ОС типа Microsoft Windows различных версий.

Microsoft Visual C# это современный и прогрессивный язык программирования, который включает возможности, доступные в наиболее распространенных промышленных и исследовательских языках. Придерживаясь философии разработки С#, Microsoft ввела в него несколько потенциально новых возможностей, увеличивающих производительность разработчика с помощью структурных компонентов языка. По существу, C# доказал, что является языком, пригодным для создания высококачественного коммерческого программного обеспечения. Многие из возможностей языка программирования C# были созданы для четырех различных целей:

Единая система типов и упрощение способов использования языком значений и ссылочных типов.

Разработка на основе компонентов, основанная на таких возможностях как XML комментарии, атрибуты, свойства, события и делегаты.

Практические преимущества основанные на уникальных возможностях языка C#, включая работу с безопасными указателями, контроль переполнения и т.д.

Удобные языковые конструкции, такие как операторы foreach и using, повышающие производительность разработчика.

В отличие от систем программирования компании Borland, система программирования Microsoft Visual C# ориентирована на использование стандартных средств хранения и обработки ресурсов интерфейса пользователя в ОС Windows. Microsoft Visual C# обеспечивает все необходимые средства для создания профессиональных WINDOWS-приложений.


.2.4 Итог сравнения

В качестве языка программирования был выбран Microsoft Visual C# - инструмент быстрой разработки клиент-серверных приложений.

Разработка клиентских приложений для БД реализована чрезвычайно гибко и грамотно (содержит развитые средства взаимодействия с БД, с помощью которых можно осуществлять доступ к практически любым реляционным базам данных). Любая прикладная задача ложится на него легко. Время показало правильность многих заложенных в инструмент решений.

Высокая производительность и поддержка различных серверов баз данных превращают Microsoft Visual C# в идеальное решение для создания систем, использующих серверы баз данных разных производителей, и разработки надежных приложений, способных работать с разнородными серверами баз данных.

.3 Выбор системных программ (среда разработки)


В качестве среды разработки была выбора ОС Windows XP. Выбор обусловлен тем, что именно эта ОС используется в рассматриваемом магазине.



4. Проектирование информационной системы


В данном проекте применена клиент-серверная архитектура с применением двухзвенной модели DBS (DateBase Server - сервер баз данных). Для этой модели характерно, что функции компьютера клиента ограничиваются функциями представления информации, в то время как прикладные функции обеспечиваются приложением, находящемся на компьютере сервере. При этом обработка информации реализуется в виде хранимых процедур.

Процедуры обычно хранятся в словаре базы данных и разделяются несколькими клиентами.


Рисунок 1. Двухзвенная модель архитектуры клиент-сервер.


Достоинствами DBS является возможность хорошего администрирования приложения на этапах разработки, сопровождения и модификации, а также эффективного использования вычислительных и коммуникационных ресурсов.



4.1 Разработка серверной части информационной системы


.1.1 Инфологическое проектирование БД

.1.1.1 Выявление сущностей и связей

Основные понятия:

Сущностью называют вид объекта, выявленного в предметной области.

Атрибутом сущности называют свойство объекта.

Ключом сущности или ключевым атрибутом называют атрибут, с помощью которого можно однозначно идентифицировать каждый экземпляр сущности.

Экземпляром сущности называют экземпляр объекта соответствующего вида.

Связь между сущностями показывает взаимоотношения между объектами предметной области.

После анализа предметной области можно выявить её сущности и их потенциальные ключи:

Товары - содержит сведения о товарах, находящихся в ассортименте. Потенциальный ключ: Артикул

Продажи - cодержит информацию о продажах. Потенциальный ключ: Номер продажи, Артикул проданного товара.

Возвраты - информация о возвратах. Потенциальный ключ: Код продажи, артикул проданного товара

Акции - Потенциальный ключ: Код акции.

Закупки - сведения о осуществленных закупках. Потенциальный ключ: Номер закупки

Поставщики - информация о поставщиках. Потенциальный ключ: Наименование поставщика

Склады - список используемых складов. Потенциальный ключ: номер филиала

Виды товаров - сведения о видах товаров и соответствующей наценке. Потенциальный ключ: код типа товара

Пользователи - информация о пользователях системы. Потенциальный ключ: логин.

Выявление связей

В ходе разработки информационной системы были выявлены следующие связи между сущностями:

) Связь «Является» представлена на рисунке 2.


Рисунок 2. Связь «Является».


Товар принадлежит определённому типу, причём только одному. В магазине может продаваться несколько однотипных товаров. Следовательно, имеет место связь N..1. Товары какого-либо типа могут отсутствовать в магазине. Следовательно, для связи «Товар - Тип товара» будет использоваться кардинальность 1,1, а для связи «Тип товара ? Товар» - 0,N.

) Связь «Продан» представлена на рисунке 3.


Рисунок 3. Связь «Продан».


Товар может быть продан, причём несколько раз. Следовательно, имеет место связь 1..N. Продажа может содержать только один данный товар, а товар может быть не продан ни разу. Следовательно, для связи «Товары - Продажи» будет использоваться кардинальность 0,N, а для связи «Продажи ? Товары» - 1,1.

) Связь «Закупается» представлена на рисунке 4.

Рисунок 4. Связь «Закупается».


При необходимости товар может быть закуплен, причём несколько раз. Следовательно, имеет место связь 1..N. Необязательно, что товар был закуплен хотя бы один раз, но закупка обязательно содержит тот или иной товар. Следовательно, для связи «Товар ? Закупки» будет использоваться кардинальность 0,N, а для связи «Закупки ? Товар» - 1,1.

) Связь «Находится» представлена на рисунке 5.


Рисунок 5. Связь «Находится».


Товар может находиться на каком-либо складе (филиале магазина), причём не обязательно только на одном. На складе могут храниться различные товары. Следовательно, имеет место связь N..N. Необязательно, что товар присутствует хотя бы на одном складе, а на складе может не храниться ни одного товара. Следовательно, для связи «Товары ? Склады» будет использоваться кардинальность 0,N, а для связи «Склады ? Товары» - 0,N.

) Связь «Участвует в акции» представлена на рисунке 6.


Рисунок 6. Связь «Участвует в акции».


Товар может участвовать в какой-либо акции, причём не обязательно только в одной. В акции же могут участвовать различные товары. Следовательно, имеет место связь N..N. Необязательно, что товар участвует хотя бы в одной акции, а акция может не содержать ни одного товара. Следовательно, для связи «Товары ? Акции» будет использоваться кардинальность 0,N, а для связи «Акции ? Товары» - 0,N.

) Связь «Поставляют» представлена на рисунке 7.


Рисунок 7. Связь «Поставляют».


У одного поставщика может осуществляться несколько закупок, но одну закупку может поставлять только одни поставщик. Следовательно, имеет место связь 1..N. Необязательно, что поставщик осуществил хотя бы одну поставку. Но закупка обязательно закупается у какого-либо поставщика. Следовательно, для связи «Поставщики ? Закупки» будет использоваться кардинальность 0,N, а для связи «Закупки ? Поставщики» - 1,1.

) Связь «Возвращается» представлена на рисунке 8.


Рисунок 8. Связь «Возвращается».


Проданный товар может быть возвращён, причём один раз. Следовательно, имеет место связь 1..1. Возврат может содержать только одну данную продажу, а возврат может быть не осуществлён ни разу. Следовательно, для связи «Продажи - Возвраты» будет использоваться кардинальность 0,1, а для связи «Возвраты ? Продажи» - 1,1.


4.1.1.2 Выявление атрибутов сущностей. Назначение первичных ключей

Товары - Атрибуты: артикул, наименование, тип товара, цена, фотография. Первичный ключ: Артикул

Продажи - Атрибуты: номер продажи, артикул, дата продажи, количество, цена. Первичный ключ: Номер продажи, Артикул проданного товара.

Возвраты - Атрибуты: номер продажи, артикул, причина. Первичный ключ: Код продажи, код проданного товара

Акции - Атрибуты: код акции, название, дата начала, дата окончания. Первичный ключ: Код акции.

Закупки - Атрибуты: номер закупки, артикул, поставщик, цена, дата. Первичный ключ: Номер закупки

Поставщики - Атрибуты: наименование, представитель, телефон. Первичный ключ: Наименование поставщика

Склады - Атрибуты: номер склада, адрес, телефон. Первичный ключ: номер склада

Виды товаров - Атрибуты: код группы товаров, наименование группы, наценка. Первичный ключ: код группы товаров

Пользователи - Атрибуты: логин, роль, пароль. Первичный ключ: логин.


.1.1.3 Построение ER-диаграммы

В результате выявления сущностей и связей между ними получаем ER-диаграмму, представленную на рисунке 9. Диаграмма были построены с помощью пакета Sybase.

Американская компания Sybase, наряду с Oracle, Rational Software и рядом других, предлагает интегрированные инструменты, решающие задачи даталогического и инфологического проектирования. Продукт Sybase PowerDesigner является средством моделирования, проектирования, документирования и управления проектом. PowerDesigner успешно взаимодействует с СУБД и средствами разработки приложений других производителей.


б)

Рисунок 9 - ER-диаграмма для предметной области «магазин интерьерных товаров»


.1.2 Даталогическое проектирование БД

.1.2.1 Переход от ER-диаграммы к предварительным отношениям

Переход от ER-диаграммы к предварительным отношениям осуществляется с помощью следующих правил:

Если степень связи 1:1 и класс принадлежности обеих сущностей обязательный, то такая связь преобразуется в одно отношение, первичным ключом которого становится ключ любой из сущностей.

Если степень связи 1:1 и класс принадлежности одной из сущностей - обязательный, а другой - необязательный, то формируются два отношения, по одному для каждой сущности. Ключ каждой сущности становится первичным ключом соответствующего отношения. Ключ сущности с необязательным классом принадлежности добавляется как атрибут в отношение для сущности с обязательным классом принадлежности.

Если степень связи 1:1 и класс принадлежности обеих сущностей необязательный, то необходимы три отношения: по одному для каждой сущности и одно для связи. Ключами первых двух отношений будут ключи сущностей, а ключом третьего - ключ любой из сущностей.

Если степень связи 1:N и класс принадлежности n-связной сущности обязательный, то необходимы два отношения: по одному для каждой сущности. Ключами этих отношений станут ключи каждой сущности. Ключ односвязной сущности добавится как атрибут в отношение для n-связной сущности.

Если степень связи 1:N и класс принадлежности n-связной сущности необязательный, то необходимы три отношения: по одному для каждой сущности и одно для связи. В отношении для связи для связи атрибутов должны быть ключи каждой сущности. Ключами первых двух отношений будут ключи сущностей, а ключом третьего - ключ n-связной сущности.

Если степень связи N:N, то необходимы три отношения: по одному для каждой сущности и одно для связи. В отношении для связи среди атрибутов должны быть ключи каждой сущности. Ключами первых двух отношений становятся ключи сущностей, а ключом третьего - ключи обеих сущностей.

Так как используется CASE-средство проектирования баз данных Sybase PowerDesigner, то переход от концептуальной модели данных к предварительным отношениям (логической модели данных) осуществляется автоматически.

При переходе от концептуальной модели данных к логической были получены предварительные отношения, приведенные на рисунке 10.

Рисунок 10. Предварительные отношения


В результате были получены дополнительные сущности «Размещение товаров» и «Участие в акции», служащие для организации связи N..N.


.1.2.2 Заполнение предварительных отношений атрибутами

После формирования предварительных отношений необходимо заполнить их неключевыми атрибутами. После добавления неключевых атрибутов и определения их типов отношения приняли вид, показанный на рисунке 11.

Рисунок 11. Предварительные отношения, заполненные неключевыми атрибутами


.2.1.3 Проверка предварительных отношений на соответствие нормальным формам

Нормализация - это формальный метод анализа отношений на основе первичных или потенциальных ключей и существующих зависимостей между атрибутами.

Нормальная форма - свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных.

Существует несколько нормальных форм, каждой из которых соответствует определенный набор ограничений, и отношение находится в нормальной форме, если оно удовлетворяет свойственному ей набору ограничений.

Рассмотрим процесс нормализации и перевода отношений:

Отношение находится в 1НФ, если в нем каждое значение, стоящее на пересечении строки и столбца, не расчленяемо на несколько значений.

Отношения находятся в 1НФ по определению. Если таблица является отношением, то она находится в 1НФ.

Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа, т.е. отсутствуют частичные функциональные зависимости.

Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ.

Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут не является транзитивно зависимым от первичного ключа. Т.е. отсутствуют функциональные зависимости между неключевыми атрибутами.

Отношение находится в БКНФ (усиленная ЗНФ), если оно находится в 3НФ и детерминанты всех функциональных зависимостей являются потенциальными ключами. Т.е. должны отсутствовать зависимости атрибутов первичного ключа от неключевых атрибутов (ситуация, когда отношение имеет два или более потенциальных ключа, которые являются составными и имеют общий атрибут).

Если в отношении всего один потенциальный ключ, то отношение, находящееся в 3НФ, одновременно находится и в БКНФ.

НФ является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как правило, заканчивается приведением к ней.

Для каждого отношения нашей БД построим диаграмму функциональных зависимостей и определим, в какой нормальной форме оно находится.

Отношение «Товар»


Рисунок 12. Диаграмма функциональных зависимостей для отношения «Товар».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Продажа».


Рисунок 13. Диаграмма функциональных зависимостей для отношения

«Продажа».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Возврат»


Рисунок 14. Диаграмма функциональных зависимостей для отношения «Возврат».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Закупки»

Рисунок 15. Диаграмма функциональных зависимостей для отношения «Закупки».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Акции и скидки»

Рисунок 16. Диаграмма функциональных зависимостей для отношения «Акции и скидки».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Поставщики»


Рисунок 17. Диаграмма функциональных зависимостей для отношения «Поставщики».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Тип товара»


Рисунок 18. Диаграмма функциональных зависимостей для отношения «Тип товара».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.


Отношение «Участие в акции»


Рисунок 19. Диаграмма функциональных зависимостей для отношения «Участие в акции».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Склады»


Рисунок 20. Диаграмма функциональных зависимостей для отношения

«Склады».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Размещение товаров»

Рисунок 22. Диаграмма функциональных зависимостей для отношения

«Размещение товаров».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Пользователи»


Рисунок 23. Диаграмма функциональных зависимостей для отношения «Пользователи».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Вывод: Все отношения находятся в БКНФ и не требуют дальнейшей нормализации, следовательно LDM разрабатываемой информационной системы представленная на рисунке 11 не требует дальнейшей модернизации и является конечной для рассматриваемой системы.


.2.1.4 Построение схемы данных

Так как используется CASE-средство проектирования баз данных Sybase PowerDesigner, то переход от логической модели данных к физической модели данных осуществляется автоматически.

Для задания типов данных для полей таблиц были использованы стандартные средства CASE-средства проектирования баз данных Sybase PowerDesigner. Все типы данных были выбраны исходя из предъявляемых к ним требований.

Рисунок 24 - Физическая модель данных


На основе разработанной физической модели данных произведена генерация SQL-скрипта для создания базы данных с помощью стандартных средств системы проектирования баз данных Sybase PowerDesigner.

Текст сгенерированного SQL - скрипта приведён в приложении 2.

Схема базы данных в SQL Server, полученная в результате проектирования, изображена на рисунке 25.

Рисунок 25 - Схема данных


Все необходимые ограничения целостности задаются первичными и внешними ключами, а также разрешением каскадного обновления данных. Также осуществляется контроль на уровне хранимых процедур и клиентского приложения.


.1.2 Разработка хранимых процедур и представлений

Важной частью разрабатываемой информационной системы являются хранимые процедуры, с помощью которых будет осуществляться обработка данных на стороне сервера.

Хранимая процедура - последовательность SQL-операторов, хранимых и выполняемых на сервере.

Представление (просмотр) - виртуальные таблицы, информация в которых не хранится постоянно, а формируется динамически при обращении к ним.

Основные процедуры, необходимые для ведения базы данных, представлены в таблице 1.


Таблица 1. Хранимые процедуры

Название процедурыПараметрыОписаниеAddAct@ID int, @Desc varchar(100), @Disc float, @StartDate datetime, @EndDate datetimeДобавление новой акцииAddGood@ID int, @name varchar(100), @typename varchar(100), @agename varchar(100), @price money, @img image = nullДобавление нового товараAddGoodAct@Act varchar(100), @Code intДобавление товара в акциюAddPur@GID int, @SID varchar(100), @Cnt int, @p money, @d datetimeДобавление закупкиAddSup@ID int, @name varchar(100), @repr varchar(100), @addr varchar(100), @phone varchar(100)Добавление нового поставщикаAddUser@log varchar(100), @pas varchar(100), @role intДобавление пользователяDelAct@ID intУдаление акцииDelGood@ID intУдаление товараDelGoodAct@ID intУдаление товара из акцииDelPur@PID intУдаление закупкиNewReturn@SaleID int, @GoodID int, @RetData datetime, @couse varchar(100)Оформить возвратNewSale@SaleID int, @GoodID int, @WarehouseID int, @SaleDate datetime, @count intОформить новую продажуUpdGood@ID int, @name varchar(100), @price money, @img image = nullОбновление информации о товареUpdSup@ID int, @name varchar(100), @repr varchar(100), @addr varchar(100), @phone varchar(100)Обновление информации о поставщикеUpdUser@log varchar(100), @pas varchar(100), Обновление информации о пользователе

Таблица 2. Представления

НазваниеОписаниеActiveActionsПредставляет информацию о текущих ацияхGoods_SumDiscountsПредставляет информацию о товарах и скидках на нихGoods_UserВыводит совокупную информацию о товарах для покупателяGoods_User_temp_allВыводит суммарную совокупную информацию о товарах для продавцаGoods_User_w1Выводит совокупную информацию о товарах на первом складе для продавцаGoods_User_w2Выводит совокупную информацию о товарах на втором складе для продавцаSaler_ActionsВыводит совокупную информацию о текущих акцияхSaler_SalesВыводит информацию о продажах


4.2 Разработка клиентской части информационной системы


.2.1 Схема взаимодействия клиентского приложения с базой данных

Приложение разрабатывалось в среде Microsoft Visual C#. Взаимодействие с БД осуществляется с помощью технологии ADO.NET.

В ADO.NET можно создавать и управлять соединениями, используя объекты соединения (connection objects):

SqlConnection - объект, который управляет соединением к MS SQL Server 7.0 и выше, определен в пространстве имен System.Data.SqlClient;

OleDbConnection - объект, который управляет соединением к любым хранилищам данных, доступных через технологию OLE DB, определен в пространстве имен System.Data.OleDb ;

OdbcConnection - объект, который управляет соединением к любым базам данных, доступных через технологию ODBC, определен в пространстве имен System.Data.Odbc;

OracleConnection - объект, который управляет соединением к базам данных Oracle, определен в пространстве имен System.Data.Oracle.

Средство Server Explorer обеспечивает подключение к источникам данных во время разработки приложения. Это позволяет просматривать доступные источники данных, а также редактировать и создавать таблицы и другие объекты баз данных. Приложение не использует это соединение. Информация, получаемая с помощью соединения во время разработки, используется для установления свойств нового соединения, которое автоматически добавляется в приложение.

На формах для отображения информации из БД используется компонент DataGridView, к которому подключен, созданный для приложения объект класса TBindingSourse.

Отчёты создаются с использованием технологии Crystal Report.

Соединение с базой данных осуществляется с помощью провайдера Microsoft .NET Framework Data Provider for SQL Server.

.2.2 Разработка форм

Интерфейс пользователя представляет собой стандартное приложение Windows, разработанное с целью обеспечения максимального удобства и простоты работы с программой.

При запуске появится диалоговое окно с предложением ввести логин и пароль и тем самым выбрать необходимый уровень доступа (рисунок 26)


Рисунок 26 - Окно выбора прав доступа


В программе предусмотрено три уровня доступа:

Администратор - может изменять информацию о товарах, поставщиках, закупках, акциях и товарах по акциям.

Продавец - может просматривать информацию об имеющихся товарах, оформлять продажи и возвраты.

Пользователь - может просматривать товары и формировать предварительный список товаров для покупки.

В зависимости от выбора пользователя откроется главное окно работы с теми или иным разделами ИС. Все эти окна имеют схожую общую структуру. В качестве примера рассмотрим окно администратора (см. рисунок 27).

Рисунок 27 - Окно администратора


Практически каждое главное окно приложения имеет главное меню. Для создания главного меню был использован компонент MenuStrip.

Левая часть главных окон работы с разделами ИС отведена под таблицы, в которых отображаются данные в процессе работы с системой. Таблицы созданы с помощью компонента DataGridView, а в правой располагаются элементы поиска, управления и модификации данных. Для этих целей используются компонентыcomboBox, TextBox и Batton.

Все таблицы и соответствующие им элементы управления сгруппированы по вкладками.

Программа содержит 11 форм. Опишем основные из них.

При запуске программы вызывается окно диалога настройки подключения, где вводится имя сервера, имя базы данных, логин и пароль.

Затем выводится форма для авторизации пользователя BeginConnect. Она содержит следующие компоненты:

txtLogin - поле для ввода логина

txtPassword - поле для ввода пароля

btnOK - кнопка для подтверждения введенных данных

btnUser - кнопка для входа в программу без пароля

btnClose - кнопка для выхода из программы.

Форма представлена в файлах: BeginConnect.cs, BeginConnect.Designer.cs, BeginConnect.resx.

После авторизации в зависимости от выбранного уровня доступа выводится форма администратора, продавца или пользователя.

Форма администратора

Форма содержит несколько вкладок.

Вкладка «Товары» включает следующие компоненты:

dgAdmin_Goods - таблица для вывода информации о товарах

cbWH - выбор филиала магазина

btnShowPhoto - для просмотра фотографии товара

button1 - закрытие формы администратора

tcGoods - панель с вкладками, каждая из которых предназначена для реализации какого-либо действия администратора при работе с товарами (добавление, удаление, обновление, перемещение и поиск).
Вкладка «Добавить» обеспечивает возможность добавления товара и содержит компоненты:
label1 с текстом «Код:»

label5 с текстом «Наименование:»

label2 с текстом «Тип товара:»

label4 с текстом «Цена:»

label28 с текстом «Изображение:»

mtbAdd_Code - для ввода артикула

txtAdd_Name - для ввода наименования

cbAdd_Type - для выбора типа товара

mtbAdd_Price - для ввода цены

btnSelImageAdd - кнопка для вывода диалога открытия файла

txtImagePathAdd - для отображения полного имени выбранного изображения

btnAddGood - добавить товар

Вкладка «Удалить» обеспечивает возможность удаления товара и содержит компоненты:

label13 с текстом «Артикул:»

mtbCodeDel - для ввода артикула

btnDelGood - удалить товар

Вкладка «Переместить» обеспечивает возможность перемещения товара со склада на склад и содержит компоненты:

label36 с текстом «Артикул:»

mtbCodeMove - для ввода артикула

tbxMoveWarID - для ввода количества товара

cbMoveWarID - на какой склад перевести товар с центрального

btnMovelGood - переместить товар

Вкладка «Обновить» обеспечивает обновление информации о товаре и содержит компоненты:

label6 с текстом «Наименование:»

label7 с текстом «Цена:»

label32 с текстом «Изображение:»

txtUpd_Good - для ввода наименования

txtUpd_Pr - для ввода цены

btnSelImageUpd - кнопка для вывода диалога открытия файла

txtImagePathUpd - для отображения полного имени выбранного изображения

btnUpd - обновить информацию о товаре

Вкладка «Поиск» обеспечивает поиск товара по заданным критериям (наименование, тип, количество) и содержит компоненты:

label29 с текстом «Наименование:»

label30 с текстом «Тип товара:»

label29 с текстом «Количество:»

txtSearchName - для ввода наименования

txtCountSearch - для ввода условия количества

cbSearchType - для выбора типа товара

cbCountSearch - для выбора условия фильтрации количества (больше, меньше, равно)

btnSearch - кнопка поиска

btnSearchReset - сброс параметров поиска

Вкладка «Поставщики» включает следующие компоненты:

dgAdmin_Suppliers - таблица для вывода информации о поставщиках

button2 - закрытие формы

tcSupp - панель с вкладками, каждая из которых предназначена для реализации какого-либо действия администратора при работе с информацией о поставщиках (добавление, просмотр, обновление).
Вкладка «Просмотреть» обеспечивает возможность поиска сведений о поставщиках и просмотра информации о поставках. На ней расположены следующие компоненты:
label35 с текстом «Наименование:»

tbSupName - для ввода имени поставщика

btnSupInfo - кнопка для вывода формы SupInfo, обеспечивающей просмотр информации о поставках выбранного поставщика

btnSupGoodInfo - кнопка для вывода формы SupGoodInfo, обеспечивающей просмотр информации о товарах поставщика

tbSupGType - обеспечивает просмотр информации о поставщиках выбранного типа товара.

Вкладка «Добавить» обеспечивает добавление новых поставщиков и содержит компоненты:

label8 с текстом «Номер:»

label9 с текстом «Наименование:»

label10 с текстом «Представитель:»

label11 с текстом «Адрес:»

label12 с текстом «Телефон:»

txtNameSuppAdd - для ввода наименования поставщика

txtReprSuppAdd - для ввода фамилии и инициалов представителя

txtAddrSuppAdd - для ввода адреса

txtPhoneSuppAdd - для ввода телефона

btnAddSup - кнопка для добавления поставщика

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о каком-либо поставщике

Вкладка «Закупки» обеспечивает добавление и просмотр закупок и включает следующие компоненты:

dgAdmin_Purch - таблица для отображения информации о закупках

label23 с текстом «Артикул:»

label24 с текстом «Номер склада:»

label25 с текстом «Номер поставщика:»

label26 с текстом «Количество:»

label27 с текстом «Закупочная цена:»

mtbPurGoodID - для ввода артикула

mtbPurSupID - для ввода номера поставщика

mtbPurCnt - для ввод количества

mtbPurPrice - для ввода цены

btnAddPur - добавить закупку

button3 - закрытие формы

Вкладка «Товары по акции» обеспечивает управление и просмотр товаров, участвующих в акциях, и включает компоненты:

dgAdmin_Actions - таблица для отображения информации о товарах, участвующих в акциях

cbAdmin_Actions - для выбора акции

label19 с текстом «Артикул:»

mtbCodeGoodAct - для ввода артикула

btnAddGoodAct - кнопка для добавления товара в акцию

btnDelGoodAct - кнопка для удаления товара из акции

button4 - кнопка закрытия формы

Вкладка «Акции» отвечает за отображение и управление акциями и включает компоненты:

dgAdmin_Act - таблица для отображения информации об акциях

label20 с текстом «Номер акции:»

label21 с текстом «Описание:»

label22 с текстом «Скидка:»

label34 с текстом «Дата начала:»

label33 с текстом «Дата окончания:»

mtbAddAdmActID - для ввода номера акции

txtAdmActDesc - для ввода описания

txtAdmActDisc - для ввода скидки

mtbStartDate - для ввода даты начала действия акции

mtbEndDate - для ввода даты окончания действия акции

btnAddAct - кнопка для добавления акции

txtSearchAct - поле ввода данных для поиска

btnSearchAct - кнопка для поиска

btnFindClear - кнопка для сброса параметров поиска

button6 - кнопка закрытия формы

Вкладка «Группы товаров» обеспечивает управление и редактирование группами товаров и наценками и включает компоненты:

dgAdmin_GTypes - таблица для отображения информации о группах товаров

button4 - кнопка закрытия формы

tcGTypes - панель с вкладками
Вкладка «Добавить» обеспечивает добавление новых групп и содержит компоненты:
label18 с текстом «Код:»

label19 с текстом «Наименование:»

label12 с текстом «Наценка:»

txtGTypeID- для ввода кода группы товаров

txtGTypeName - для ввода наименования группы товаров

txtGTypeMargin - для ввода наценки

btnAddSup - кнопка для добавления группы

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о группе

Вкладка «Пользователи» обеспечивает управление и редактирование учётных записей пользователей и включает компоненты:

dgAdmin_Users - таблица для отображения информации о пользователях

button5 - кнопка закрытия формы

tcUsers - панель с вкладками
Вкладка «Добавить» обеспечивает добавление новых пользователей и содержит компоненты:
label48 с текстом «Логин:»

label49 с текстом «Пароль:»

label42 с текстом «Роль:»

txtLogin- для ввода логина

txtPas - для ввода пароля

сbGTypeMargin - для выбора роли (администратор, продавец)

btnAddUser - кнопка для добавления группы

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о пользователе.

Форма администратора представлена в файлах: Admin.cs, Admin.Designer.cs, Admin.resx.

Форма продавца

Форма содержит несколько вкладок.

Вкладка «Просмотр товаров» обеспечивает отображение информации о товарах, поиск и печать. На ней расположены следующие компоненты:

dgSaler_Goods_User - таблица для вывода информации о товарах

label7 с текстом «Поиск товара»

btnPrintGoods - кнопка для печати информации о товарах

label3 с текстом «Наименование:»

label1 с текстом «Тип товара:»

txtSaler_Name - для ввода наименования

cbSaler_Type - для выбора типа товара

btnSaler_Find - кнопка для поиска

btnSaler_Clear - кнопка для сброса параметров поиска

label4 с текстом «Выберите филиал:»

wareHouses - для выбора филиала

btnShowImage - кнопка для вывода фотографии товара

btnSaler_Close1 - кнопка закрытия формы

Вкладка «Продажи» обеспечивает просмотр информации о продажах и добавление новых продаж. Она включает следующие компоненты:

dgSaler_Sales - таблица для вывода информации о продажах

btnSaler_AddSale - кнопка для вызова формы Basket, которая обеспечивает формирование продажи

btnSaler_Close2 - кнопка закрытия формы

Вкладка «Возвраты» позволяет работать с информацией о возвратах и содержит следующие компоненты:

label5 с текстом «Введите код продажи для возврата:»

label9 с текстом «Введите Артикул для возврата:»

label6 с текстом «Причина:»

tbReturnName - для ввода кода продажи

tbGoodID - для ввода артикула

tbCouse - для ввода причины возврата

btnReturn - кнопка для реализации возврата

button1 - кнопка закрытия формы

Вкладка «Текущие акции» обеспечивает возможность просмотра действующих акций и товаров, участвующих в них. На ней расположены следующие компоненты:

dgSaler_Actions - таблица для вывода информации об акциях

label8 с текстом «Выберите акцию»

cb_Actions - для выбора акции

button2 - кнопка закрытия формы

Форма продавца представлена в файлах: Saler.cs, Saler.Design.cs, Saler.resx.

Форма для формирования корзины товаров

На данной форме осуществляется формирование списка товаров, которые пользователь хочет приобрести.

Форма включает следующие компоненты:

dataGridView1 - таблица для отображения товаров, имеющихся на складе

dataGridView2 - таблица для отображения товаров, выбранных пользователем

label7 с текстом «Поиск товара»

label3 с текстом «Наименование:»

label1 с текстом «Тип товара:»

label4 с текстом «Корзина товаров»

label5 с текстом «Сумма:»

label6 с текстом «руб.»

txtBasket_Name - для ввода наименования товара

cbBasket_Type - для выбора типа товара

btnBasket_Find - кнопка поиска

btnBasket_Clear - кнопка сброса параметров поиска

btnShowImage - кнопка вывода фотографии товара

txtBasket_Summa - поле вывода итоговой суммы

btnBasket_Add - кнопка для добавления товара в корзину

btnBasket_Del - кнопка для удаления товара из корзины

button2 - кнопка для удаления всех товаров из корзины

btnOK - кнопка для подтверждения оформления продажи

btnCancel - кнопка закрытия формы

Форма представлена в файлах: Basket.cs, Basket.Design.cs, Basket.resx.

Форма пользователя представляет собой форму Basket без кнопки btnOK.

Перед ее открытием выводится форма SelWh для выбора филиала. На этой форме расположены следующие компоненты:

btnWh1 - выбор первого филиала

btnWh2 - выбор второго филиала

btnClose - закрытие формы

Форма представлена в файлах: SelWh.cs, SelWh.Design.cs, SelWh.resx.


.2.3 Разработка отчетов

Отчет - это средство подготовки информации из БД к печати на принтере.

С помощью отчетов удается формировать необходимую документацию, основанную на данных, с которыми работает информационная система.

Для создания отчетов используется технология Crystal Reports.NET. В качестве источника данных Crystal Reports.NET использует набор данных (объект DataSet).

В программе предусмотрена возможность создания отчетов на основе информации о товарах и о сформированном заказе (корзине товаров).

Пример отчета представлен на рисунке 28.


Рисунок 28 - Отчет о заказе

.2.4 Разработка дистрибутива

Для разработки установочной программы использовалось приложение SmartInstallMaker 5.02.

Сначала был создан новый установочный проект и были выполнены необходимые настройки, показанные на рисунке 29.


Рисунок 29.Настройки проекта


Далее в проект были добавлены необходимые файлы, показанные на рисунке 30.


Рисунок 30.Добавление файлов в проект


Далее были установлены необходимые ярлыки.


Рисунок 31.Добавление ярлыков в проект


После этого проект был откомпилирован и получен работающий установщик.

Для создания базы данных на сервере необходимо запустить скрипт ICCreate.sql (приложение 2).



5 Разработка технической документации


.1 Руководство оператора


.1.1 Назначение программы

Программа предназначена для оптимизации работы магазина интерьерных товаров.

Основные функции:

внесение новых, редактирование существующих данных о товарах;

хранение и редактирование данных о движении товаров - закупках, продажах и возвратах;

хранение и редактирование данных о поставщиках;

обеспечение разделения возможностей пользователей в зависимости от характера выполняемой работы;

поиск и просмотр необходимых данных.


.1.2 Условия выполнения программы

Перед установкой программы следует убедиться в том, что система соответствует требованиям:

Для работы программы необходим IBM PC совместимый компьютер с процессором Pentium III или выше и с оперативной памятью 256 МБ или более.

Операционная система: Windows 2000/NT/XP/Vista/7.

SVGA видео карта с поддержкой минимального разрешения 640 x 480, минимум 256 цветов.

Установленная СУБД MS SQL Server 2000/2005 или выше. Средства доступа в сеть, если сервер БД расположен на другом компьютере.

Для установки программы требуется примерно 17 Мб свободного места на жестком диске.

Пользователь должен обладать практическими навыками работы в операционной системе.


.1.3 Установка приложения

Программа поставляется в виде автоматически исполняемого EXE файла с именем вида CMK_Setup.exe. После запуска программы необходимо следовать указаниям мастера установки.


.1.4 Запуск программы

После установки запуск программы возможен несколькими способами (пути к директориям прописаны «по умолчанию»):

из меню «Пуск/Все программы/ИС «Магазин интерьерных товаров»

с помощью ярлыка ИС «Магазин интерьерных товаров».exe на рабочем столе из папки «C:\Program Files\ ИС «Магазин интерьерных товаров».exe»

При запуске приложения появляется окно подключения к БД, в котором надо указать сервер, на котором находится база данных, и ввести данные для подключения (см. рисунок 32).


Рисунок 32 - Окно подключения


В случае возникновения ошибки дальнейшая работа приложения окажется невозможной.


5.1.5 Описание интерфейса приложения

После подключения будет показана форма входа, представленная на рисунке 31. Здесь необходимо ввести логин и пароль, определяющие вид работы в системе: продавец либо администратор. При этом продавец привязан к своему филиалу магазина. Также можно зайти пользователем (клиентом) без ввода логина и пароля по нажатию кнопки «Зайти покупателем» (рисунок 33).


Рисунок 33 - Форма входа


Окна программы имеют схожую структуру.

Левая часть главных окон работы с разделами ИС отведена под таблицы, в которых отображаются данные в процессе работы с системой, а в правой располагаются элементы поиска, управления и модификации данных.

Все таблицы и соответствующие им элементы управления сгруппированы по вкладками, соответствующим действиям, осуществляемым пользователями.

Структура и принципы работы для всех основных окон и вкладок одинаковы, поэтому рассмотрим подробно лишь вкладку «Товары» администратора (рисунок 34).

Рисунок 34 - Вкладка «Товары» администратора


Слева располагается таблица, содержащая данные о товарах. Данные можно сортировать по различным столбцам, щёлкая по соответствующим заголовкам таблицы. Щелчок мыши на строке таблицы выделяет её, делая доступной для редактирования. Справа на дополнительных вкладках сгруппированы элементы управления данными и их отображением. Так для поиска нужного товара нужно заполнить поле «Название», выбрать нужный пункт списка «Тип товара» для фильтрации по типу, указать количество и условие сравнения с помощью соответствующего поля. По щелчку на кнопке «Найти» приложение выведет в таблицу заданные условиями товары. Для добавления нового товара требуется перейти на вкладку «Добавить», заполнить одноимённые атрибутам поля и нажать кнопку «Добавить». В случае некорректного выполнения операции будет выведено сообщение о произошедшей ошибке.

Алгоритм работы с остальными вкладами аналогичен.

Т.к. остальные вкладки имеют аналогичную структуру и принципы работы, они подробно рассматриваться не будут. Отметим лишь основные осуществляемые ими действия:

Окно администратора:

Вкладка «Товары»:

Поиск по наименованию, группе и количеству

Просмотр информации о товаре

Добавление товара

Обновление информации о товаре

Удаление товара

Перемещение товара со склада на склад

Вкладка «Поставщики»:

Поиск по наименованию, группе товаров и просмотр поставщиков

Просмотр информации о поставках выбранного поставщика и о поставляемых им товарах

Добавление поставщика

Обновление информации о поставщике

Вкладка «Закупки»:

Просмотр закупок

Добавление закупок (товар добавляется на центральный склад)

Осуществление закупок (товар добавляется на указанный в закупке склад)

Вкладка «Товары по акции»:

Просмотр товаров, участвующих в текущих акциях

Добавление и удаление товара в текущие акции

Вкладка «Акции»:

Просмотр акций

Добавление акции

Вкладка «Группы товаров»:

Просмотр и редактирование групп товаров

Вкладка «Пользователи»:

Просмотр и редактирование списка пользователей

Окно продавца:

Рисунок 35 - Окно продавца


Продавец закреплён за определённым филиалом (торговой точкой), номер которого отображается в заголовке формы.

Вкладка «Товары»:

Просмотр информации о товарах

Поиск товаров по наименованию, типу

Вкладка «Продажи»:

Продажа товаров

Вкладка «Возвраты»:

Оформление возвратов

Вкладка «Текущие акции»:

Просмотр текущих акций и участвующих в них товаров

Указанным действиям соответствуют вкладки на главной форме.

Просмотр и поиск товаров (см. Рисунок 35) осуществляется аналогично администратору, с той разницей, что продавец не может получить информацию об удалённых товарах.

Для добавления новой продажи необходимо на вкладке «Продажи» нажать кнопку добавить. Продажа товаров осуществляется путём составления продавцом заказа (корзины товаров), и формирования на основе содержимого корзины новой записи о продаже.

Рисунок 36 - Формирование корзины товаров.


Заказ составляется путём выбора нужного товара из верхней таблицы, содержащей все товары филиала, и добавления в нижнюю, содержащую текущую конфигурацию заказа, при помощи кнопки добавить. Для удаления ошибочно добавленного в корзину товара его необходимо выделить в нижней таблице и нажать кнопку «Удалить». Для удаления всех записей можно воспользоваться кнопкой «Очистить». После завершения формирования корзины надо нажать кнопку «Ок», после чего данные о товарах в корзине будут занесены в продажи.

Окно пользователя.

Пользователь (клиент магазина) не может вносить какие-либо изменения в базу, его возможности ограничиваются лишь просмотром товаров выбранного филиала и формирования предварительного заказа. Данный процесс пользователя полностью совпадает с формированием корзины продавца, поэтому рассмотрен не будет.


5.1.6 Работа с отчетами

Отчёты формируют печатную форму информации о товарах.

Чтобы сформировать отчет, нужно нажать кнопку «Печать», если она доступна на данной вкладке. Сразу после этого откроется диалоговое окно, содержащее отчет. С помощью кнопок в верхней части окна, можно осуществить печать данного отчета, обновить информацию, которую он содержит, а также осуществить масштабирование документа на экране.


Рисунок 37 - Отчет о заказе


Рисунок 38 - Отчет, содержащий список товаров


.1.7 Сообщения оператору

При выполнении программы могут выдаваться следующие виды сообщений:

сообщения об ошибках;

сообщения о подтверждении выполняемого действия.

Сообщения об ошибках выдаются в следующих случаях:

некорректно заполнены поля (не заполнены обязательные поля, введены символьные данные вместо числовых и т.д.);

введены некорректные данные (добавляемый товар с таким артикулом уже существует, не существует поставщика с указанным наименованием и т.д.).

В сообщении выводится информация о причине, вызвавшей ошибку.

Сообщения о подтверждении выполняемого действия выводятся при успешном добавлении или обновлении записи в одну из таблицы.


.3 Руководство программиста


.3.1 Назначение и условия применения программы

Программа предназначена для оптимизации работы магазина интерьерных товаров.

Основные функции:

внесение новых, редактирование существующих данных о товарах;

хранение и редактирование данных о движении товаров - закупках, продажах и возвратах;

хранение и редактирование данных о поставщиках;

обеспечение разделения возможностей пользователей в зависимости от характера выполняемой работы;

поиск и просмотр необходимых данных.

Перед установкой программы следует убедиться в том, что система соответствует требованиям:

Для работы программы необходим IBM PC совместимый компьютер с процессором Pentium III или выше и с оперативной памятью 256 МБ или более.

Операционная система: Windows 2000/NT/XP/Vista/7.

SVGA видео карта с поддержкой минимального разрешения 640 x 480, минимум 256 цветов.

Установленная СУБД MS SQL Server 2000/2005 или выше. Средства доступа в сеть, если сервер БД расположен на другом компьютере.

Для установки программы требуется примерно 17 Мб свободного места на жестком диске.

Пользователь должен обладать практическими навыками работы в операционной системе.


.3.2 Обращение к программе

Запуск приложения осуществляется путем запуска на выполнение файла ICShop.exe. Для выполнения программы дополнительных файлов не требуется.

Порядок работы с программой описан в документе «Руководство оператора».

Завершение работы программы возможно двумя способами:

с помощью пункта меню Файл - Выход;

с помощью кнопки «Закрыть» в левом верхнем углу окна программы.


.3.3 Описание входной информации

Входными данными для этой задачи является информация таблиц базы данных ICShop. Структура таблиц приведена в таблице 3.


Таблица 3.Сводное описание входной информации.

Имя таблицыНаименование поляТипGoodsGoodIDчисловоеNameтекстовоеGTy_GoodsTypeIDчисловоеPriceденежноеPhotoизображениеGTypeGoodsTypeIDчисловоеGoodsTypeчисловоеMarginденежноеActionsAndDiscountsActionIDчисловоеDescriptionсимвольноеDiscountчисловоеStartDateдатаEndDateдатаGoodsActionsAct_ActionIDчисловоеGoo_GoodIDчисловоеdbo.GoodsWarehousesWar_WarehouseIDчисловоеGoo_GoodIDчисловоеCountчисловоеPurchasesPurchaseIDчисловоеGoo_GoodIDчисловоеSup_SupplierNameсимвольноеCountчисловоеPurchPriceденежноеRecDateдатаSaleReturnSal_SaleIDчисловоеSal_GoodIDчисловоеReturnDateдатаCouseсимвольноеSalesSaleIDчисловоеGoodIDчисловоеWareHouseIDчисловоеSaleDateдатаCountчисловоеpriceденежноеSuppliersSupNameсимвольноеRepresentativeсимвольноеSupAddressсимвольноеSupPhoneсимвольноеUsersLoginсимвольноеPasswordсимвольноеWarehouseIDчисловоеWarehousesWarehouseIDчисловоеAddressсимвольноеPhoneсимвольное5.3.4 Описание выходной информации

Выходными данными для этой задачи является информация таблиц базы данных ICShop. Структура выходных таблиц совпадает с входными.


.3.5 Сообщения

В процессе работы программного стенда пользователю могут выдаваться сообщения в виде стандартных диалоговых окон.

Перечень сообщений и порядок действия описан в документе «Руководство оператора».


6. Тестирование информационной системы


.1 Программа и методика тестирования


Объектом испытаний является разработанное в рамках данной работы клиентское приложение "ИС магазина интерьерных товаров". Целью испытаний является выявление возможных функциональных ошибок и сбоев, возникающих при работе приложения и подтверждение его работоспособности.

Проверке в процессе тестирования подлежит процедура AddPur, которая используется для добавления записи в таблицу "Товары".

Порядок испытаний:

Тестирование методом «белого ящика» процедуры AddPur.

Тестирование методом «чёрного ящика» процедуры AddPur.


.1.1 Тестирование методом "белого ящика"

Для тестирования методом "белого ящика" построим потоковый граф на основании кода процедуры AddPur:

private void AddPur(){

(1)if ((mtbPurGoodID.Text != "")&

(2) (mtbPurSupID.Text != "")&

(3) (mtbPurCnt.Text != "")&

(4) (mtbPurPrice.Text !=""))

(5){con.Open();

(5) SqlCommandcom = con.CreateCommand();

(5)com.CommandText = "EXECUTE @result = AddPur @GID, @SID, @Cnt, @p, @d";

(5)com.Parameters.Add("@result", SqlDbType.Int);

(5)com.Parameters["@result"].Direction = ParameterDirection.Output;

(5)com.Parameters.Add("@GID", SqlDbType.Int).Value = Convert.ToInt32(mtbPurGoodID.Text);

(5)com.Parameters.Add("@SID", SqlDbType.VarChar).Value = mtbPurSupID.Text;

(5)com.Parameters.Add("@Cnt", SqlDbType.Int).Value = Convert.ToInt32(mtbPurCnt.Text);

(5)com.Parameters.Add("@p", SqlDbType.Money).Value = Convert.ToInt32(mtbPurPrice.Text);

(5)com.Parameters.Add("@d", SqlDbType.DateTime).Value = DateTime.Now.ToString();

(5)com.ExecuteNonQuery();

(5) int temp = Convert.ToInt32(com.Parameters["@result"].Value);

(6)if (temp != 0)

(7) MessageBox.Show("Некорректные данные");

(8) else

(8) MessageBox.Show("Закупка добавлена");

(9) con.Close();

(9) UpdateData();}

(10) else

(10) MessageBox.Show("Заполните все поля!");

(11)}}

На рисунке 39 изображен потоковый граф, вершины которого соответствуют пронумерованным операторам процедуры, а дуги являются отображением потока управления.

Рисунок 39 - Потоковый граф тестирования процедуры AddPur


Определим цикломатическую сложность полученного графа 3 способами:

V(G) = 6 регионов = 6

V(G) = 15 дуг - 11 узлов + 2 = 6

V(G) = 5 предикатных узлов +1 = 6

Составим множество базовых путей:

-10-11

-2-10-11

-2-3-10-11

-2-3-4-10-11

-2-3-4-5-6-8-9-11

-2-3-4-5-6-7-9-11

На основе множества базовых путей составим тестовые варианты, по одному для каждого пути. Тестовые варианты приведены в таблице 4.


Таблица 4. Тестовые варианты

№ путиИсходные данныеОжидаемые результатыРеальные результаты1При вводе данных поле "Артикул" остается незаполненным "Добавление не будет выполнено, будет выведено сообщение о том, что не все поля заполнены.Запись не добавлена, выведено сообщение о том, что не все поля заполнены.2При вводе данных поле "Поставщик" остается незаполненным "Добавление не будет выполнено, будет выведено сообщение о том, что не все поля заполнены.Запись не добавлена, выведено сообщение о том, что не все поля заполнены.3При вводе данных поле "Количество" остается незаполненнымДобавление не будет выполнено, будет выведено сообщение о том, что не все поля заполнены.Запись не добавлена, выведено сообщение о том, что не все поля заполнены.4При вводе данных поле "Цена" остается незаполненнымДобавление не будет выполнено, будет выведено сообщение о том, что не все поля заполнены.Запись не добавлена, выведено сообщение о том, что не все поля заполнены.5При вводе данных в поле "Поставщик" введено не существующее наименование поставщикаДобавление не будет выполнено, будет выведено сообщение о том, что введены некорректные данныеЗапись не добавлена, выведено сообщение о том, что введены некорректные данные.6При вводе все поля заполнены верноДобавление не будет выполнено, запись появится в таблицеЗапись успешно добавлена

.1.2 Тестирование методом "черного ящика"

В этой стратегии программа рассматривается как чёрный ящик. Для обнаружения всех ошибок в программе необходимо выполнить исчерпывающее тестирование, то есть тестирование на всевозможных наборах данных. При этом необходимо выбирать наиболее подходящие подмножества, подмножества с наивысшей вероятностью обнаружения ошибок.

Для тестирования методом "черного ящика" процедуры AddPur воспользуемся способом разбиения на классы эквивалентности. На основании спецификации можно составить дерево разбиений.

Дерево разбиений приведено на рисунке 40.


Рисунок 40 - Дерево разбиений


Дерево разбиений имеет 3 листа. Составим тестовые варианты для каждого из листьев. Тестовые варианты приведены в таблице 5.


Таблица 5. Тестовые варианты для метода "черного ящика"

№Исходные данныеОжидаемые результатыРеальные результаты1При вводе данных поле "Артикул" остается незаполненным "Добавление не будет выполнено, будет выведено сообщение о том, что не все поля заполнены.Запись не добавлена, выведено сообщение о том, что не все поля заполнены.2При вводе данных в поле "Поставщик" введено не существующее наименование поставщикаДобавление не будет выполнено, будет выведено сообщение о том, что введены некорректные данныеЗапись не добавлена, выведено сообщение о том, что введены некорректные данные.3При вводе все поля заполнены верноДобавление не будет выполнено, запись появится в таблицеЗапись успешно добавлена

.2 Результаты тестирования


В результате тестирования процедуры AddPur методами "черного ящика" и "белого ящика" было выявлено, что на приведенных тестовых вариантах ошибок в работе процедуры не обнаружено. Следовательно, можно утверждать, что данная процедура работоспособна.

Исходя из того, что все процедуры добавления, изменения и удаления данных имеют схожий алгоритм, можно так же говорить о работоспособности системы в целом.



Заключение


Из проделанной работы следует, что разработанная информационная система полностью удовлетворяет поставленной задаче. Клиентское приложение в совокупности с грамотно организованной базой данных позволяет облегчить работу сотрудников магазина интерьерных товаров и выбор товара покупателям.

В результате получена информационная система, предоставляющая пользователям простой и удобный способ взаимодействия с базой данных. Информационная система легко модифицируема, при возникновении необходимости возможна дальнейшая ее доработка (как базы данных, так и клиентского приложения) для расширения круга решаемых задач. Полученная в результате проведенной работы информационная система в полной мере удовлетворяет поставленной задаче, что не исключает возможности расширения её функциональных возможностей в будущем.



Список использованных источников


Когаловский М.Р. Перспективные технологии информационных систем. - М.: ДМК Пресс; М: Компания АйТи, 2003. - 288с.

Петров В.Н. Информационные системы - Спб.: Питер, 2003. - 687с.

Гладких А.А., Дементьев В.Е. Базовые принципы информационно безопасности вычислительных систем.- Ульяновск: УлГТУ, 2009. - 156 с.

Благодаров А.В., лекции «Клиент-серверные приложения БД», 2011 г

Гринченко Н.Н., лекции «Базы Данных», 2010 г

Благодаров А.В., Клиент-серверные приложения БД. Методические указания к лабораторным работам, 2011 г

Библиотека MSDN для Visual Studio 2005.

ГОСТ 19.001-77. ЕСПД. Общие положения

ГОСТ 19.002-80. ЕСПД. Схемы алгоритмов и программ. Правила выполнения.



Министерство образования и науки ФГБОУ ВПО Рязанский государственный радиотехнический университет ПОЯСНИТЕЛЬНАЯ ЗАПИСК

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ