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

Автор работы: Пользователь скрыл имя, 08 Ноября 2015 в 11:17, курсовая работа

Краткое описание

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

Содержание

ВВЕДЕНИЕ 3
1. АНАЛИЗ СРЕДЫ 5
2. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 16
2.1. Список исполнителей 16
2.2. Техническое задание 17
2.2.1. Назначение и область применения программного изделия. 17
2.2.2. Основание для разработки 17
2.2.3. Требования заказчика к ПИ 17
2.3. Календарный план разработки 21
2.3.1. Общий план разработки 21
2.3.2. Индивидуальный план разработки 22
2.4. Документация разработки 23
2.4.1. Технический проект 23
2.4.2. Подготовка к разработке 25
2.4.3. Программная реализация 29
2.4.4. Тестирование системы 36
2.5. Эксплуатационная документация 41
2.5.1. Руководство системного программиста 41
2.5.2. Руководство программиста. 43
2.5.3. Руководство оператора. 46
2.5.4. Документация по установке и сопровождению системы 49
ЗАКЛЮЧЕНИЕ 52
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ. 54
Приложения.

Прикрепленные файлы: 1 файл

Курсовик РиСПСиИТ.docx

— 687.66 Кб (Скачать документ)

 

      1. Документация по установке и сопровождению системы

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

Комплект поставки комплекса «Электронная очередь»:

    • database.sql – файл запросов к базе данных. Это специально сформированный файл, содержащий запросы, автоматически создающее в СУБД базу данных для системы.
    • register.exe – исполняемый файл, служит для запуска модуля «Регистратор».
    • display.exe – исполняемый файл, служит для запуска модуля «Дисплей».
    • operator.exe – исполняемый файл, служит для запуска модуля «Оператор».
    • admin.exe – исполняемый файл, служит для запуска модуля «Администратор».
    • Данная документация

 

Установка комплекса:

  1. Импортируйте файл database.sql в установленную СУБД MySQL. Мы рекомендуем воспользоваться для этого системой phpMyAdmin, но Вы можете произвести импорт и с помощью встроенной в MySQL Server консоли. Данный скрипт установит базу данных и создаст пользователя в СУБД.
  2. Запустите Администраторское приложение с помощью файла admin.exe. Перейдите во вторую вкладку и создайте нужные категории обслуживания.
  3. Запустите слежение за базой данных администраторским приложением с помощью кнопки «Запустить», расположенной в первой вкладке.
  4. Используя файл display.exe запустите приложение «Дисплей». Данное приложение не требует дальнейшей настройки и будет работать в автоматическом режиме.
  5. Для включения регистрации клиентов в системе запустите программу «Регистратор» (файл register.exe).
  6. Для управления очередью, и обслуживанию посетителей включите операторское приложение (operator.exe). Дальнейшие настройки приложения выполнит работник, который будет его использовать.

 

Настройки по умолчанию для всех приложений:

  • Адрес сервера: localhost
  • Имя базы данных: queue
  • Имя пользователя в СУБД: student
  • Пароль пользователя в СУБД: qwerty

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

Если одна из программ комплекса не запускается, то, скорее всего, приложение не находит базу данных – проверьте запущен ли сервис MySQL Server.

 

 

ЗАКЛЮЧЕНИЕ

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

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

Результат и качество исполнения проекта соответствуют заявленным показателям.

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

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

  • Информация о подключении к БД (адрес сервера, название БД, имя пользователя, пароль)
  • Фиксирование в приложении «Оператор» номера данного оператора, и запрете изменения его пользователем
  • Фиксирование в приложении «Оператор» ФИО пользователя, обычно использующего данный компьютер

Для повышения безопасности системы следует в будущем внедрить в нее модуль логгирования в реальном времени (записи происходящих событий).

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

Для разработки нами были использованы только бесплатные, и свободные для использования компоненты, а также бесплатные версии СУБД и IDE – это сильно сказалось на итоговой стоимости системы, в сторону уменьшения.

Разработка программ велась с учетом календарного плана, и была завершена на 1 неделю раньше предполагаемого срока. Это время было потрачено на дополнительную оптимизацию системы, а также увеличение функциональности. Благодаря дополнительному времени также было осуществлено более качественное тестирования комплекса.

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

 

 

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.

 

  1. Свободная энциклопедия «Википедия», статья «Электронная очередь» – ru.wikipedia.org/wiki/Электронная_очередь
  2. Сайт компании ООО «Мета Технологическая Группа» – www.metatgroup.ru
  3. Сайт компании Компания «ВИЛДИС» – www.suo-vizov.ru/
  4. Сайт компании NB-Systems – www.nbsystems.ru/next.htm
  5. Свободная энциклопедия «Википедия», статья «Oracle Database» – ru.wikipedia.org/wiki/Oracle_Database
  6. Свободная энциклопедия «Википедия», статья «Microsoft SQL Server» – ru.wikipedia.org/wiki/Microsoft_SQL_Server
  7. Свободная энциклопедия «Википедия», статья «MySQL» – ru.wikipedia.org/wiki/MySQL
  8. Свободная энциклопедия «Википедия», статья «Microsoft Visual Studio» – ru.wikipedia.org/wiki/Microsoft_Visual_Studio
  9. Свободная энциклопедия «Википедия», статья «C#» – ru.wikipedia.org/wiki/C_Sharp
  10. Свободная энциклопедия «Википедия», статья «Delphi (среда разработки)» – ru.wikipedia.org/wiki/Delphi_(среда_разработки)
  11. Свободная энциклопедия «Википедия», статья «CLR» – ru.wikipedia.org/wiki/CLR
  12. М. Фленов. Библия C#. БВХ-Петербург, 2009
  13. К. Дж. Дейт. Введение в системы баз данных. Седьмое издание. Вильямс, 2001.
  14. Методические указания к курсовому проекту «Проектирование программного средства сложной структуры». СПбГИЭУ, 2011

 

 

 

 

Первоначальный (эскизный) вариант проекта

Приложение 1



 

 

Приложение 2

Исходный код приложения «Регистратор»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

 

namespace register

{

    public partial class Form1 : Form

    {

        string MyConString = "SERVER=localhost;" +

                            "DATABASE=queue;" +

                            "UID=student;" +

                            "PASSWORD=qwerty;";

 

        List<int> cat_id;

        List<string> cat_abbr;

 

        public Form1()

        {

            InitializeComponent();

 

            cat_id = new List<int>();

            cat_abbr = new List<string>();

 

            MySqlConnection connection = new MySqlConnection(MyConString);

            MySqlCommand query = connection.CreateCommand();

            MySqlDataReader Reader;

            query.CommandText = "SELECT cat_id, name, abbr FROM cat WHERE active='1'";

            connection.Open();

            Reader = query.ExecuteReader();

            while (Reader.Read())

            {

                catListBox.Items.Add(Reader.GetValue(1).ToString() + " (" + Reader.GetValue(2).ToString() + ")");

                cat_id.Add(int.Parse(Reader.GetValue(0).ToString()));

                cat_abbr.Add(Reader.GetValue(2).ToString());

            }

            connection.Close();

            //MessageBox.Show(DateTime.Now.ToFileTime().ToString());

        }

 

        private void timeTimer_Tick(object sender, EventArgs e)

        {

            timeLabel.Text = DateTime.Now.ToLongTimeString();

            dateLabel.Text = DateTime.Now.ToLongDateString();

        }

 

        private void regButton_Click(object sender, EventArgs e)

        {

            if (catListBox.SelectedIndex >= 0)

            {

                MySqlConnection connection = new MySqlConnection(MyConString);

                MySqlCommand query = connection.CreateCommand();

                MySqlDataReader Reader;

                connection.Open();

               

                // Добавляем в базу информацию  о себе

                query.CommandText = "INSERT INTO `turn` SET " +

                                    "`cat_id` =  '" + cat_id[catListBox.SelectedIndex] + "'," +

                                    "`num` =  (SELECT cat.count FROM cat WHERE cat.cat_id='" + cat_id[catListBox.SelectedIndex] + "')+1" + "," +

                                    "`date_reg` =  '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'";

                query.ExecuteNonQuery();

 

                // Увеличиваем счетчик категории  на 1

                query.CommandText = "UPDATE `queue`.`cat` SET `count` = `count`+1 WHERE `cat`.`cat_id` = '" + cat_id[catListBox.SelectedIndex] + "'";

                query.ExecuteNonQuery();

 

                //

                query.CommandText = "SELECT count FROM cat WHERE `cat`.`cat_id` = '" + cat_id[catListBox.SelectedIndex] + "'";

               

                Reader = query.ExecuteReader();

 

                while (Reader.Read())

                {

                    infoLabel.Text = cat_abbr[catListBox.SelectedIndex] + Reader.GetValue(0).ToString();

                }

 

                connection.Close();

            }

            else

            {

                MessageBox.Show("Не выбрана категория");

            }

        }

    }

}

 

 

Приложение 3

Исходный код приложения «Оператор»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

 

namespace @operator

{

    public partial class Form1 : Form

    {

 

        string MyConString = "SERVER=localhost;" +

                    "DATABASE=queue;" +

                    "UID=student;" +

                    "PASSWORD=qwerty;";

 

        List<int> cat_id;

        List<string> cat_abbr;

        int operator_id;

        int update = 0;

 

        string[] timerNames = { "Перерыв", "Ожидание клиента", "Время обслуживания" };

        bool waiting = false;

        int waittime = 10;

        string callWhere;

 

        int turn_id;

        string nameNum;

 

        int serviceTime;

 

        public Form1()

        {

            InitializeComponent();

 

            cat_id = new List<int>();

            cat_abbr = new List<string>();

 

            MySqlConnection connection = new MySqlConnection(MyConString);

            MySqlCommand query = connection.CreateCommand();

            MySqlDataReader Reader;

            query.CommandText = "SELECT cat_id, name, abbr FROM cat WHERE active='1'";

            connection.Open();

            Reader = query.ExecuteReader();

            while (Reader.Read())

            {

                selСheckedListBox.Items.Add(Reader.GetValue(1).ToString() + " (" + Reader.GetValue(2).ToString() + ")");

                cat_id.Add(int.Parse(Reader.GetValue(0).ToString()));

                cat_abbr.Add(Reader.GetValue(2).ToString());

            }

            connection.Close();

 

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            if (selСheckedListBox.SelectedItems.Count < 1)

            {

                MessageBox.Show("Не выбрана ни одна категория");

                return;

            }

 

            // Проверяем нет ли нас в онлайне

            MySqlConnection connection = new MySqlConnection(MyConString);

            MySqlCommand query = connection.CreateCommand();

            MySqlDataReader Reader;

 

            query.CommandText = "SELECT operator_id FROM operator " +

                                "WHERE `number` = '" + numberUpDown.Value.ToString() + "' AND " +

                                "`date_end` > '" + DateTime.Now.AddMinutes(-1).AddSeconds(-30).ToString("yyyy-MM-dd HH:mm:ss") + "' " +

                                "ORDER BY operator_id DESC";

            connection.Open();

            Reader = query.ExecuteReader();

 

            while (Reader.Read())

                if (int.Parse(Reader.GetValue(0).ToString()) > 0)

                {

                    // Если есть, то не даем зайти

                    MessageBox.Show("Оператор с таким номером уже есть онлайн");

                    connection.Close();

                    return;

                }

 

            connection.Close();

 

 

            // Прописываемся в онлайне

            connection = new MySqlConnection(MyConString);

            query = connection.CreateCommand();

 

            connection.Open();

 

            query.CommandText = "INSERT INTO `operator` SET " +

                                "`number` =  '" + numberUpDown.Value.ToString() + "'," +

                                "`fio` =  '" + fioTextBox.Text + "'," +

                                "`date_start` =  '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "', " +

                                "`date_end` =  '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'";

Информация о работе Разработка и стандартизация программных средств и информационных технологий