Файл: 6 Программа и методика испытаний информационной системы 20.doc
Добавлен: 10.01.2024
Просмотров: 120
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1.1 Описание предметной области
1.2 Функции проектируемой информационной системы
2 Разработка UML-диаграмм этапа проектирования
3 Разработка инфологической схемы базы данных
4 Программные средства для разработки ИС для предметной области «Предприятие автоперевозок»
5 Проектирование интерфейса приложения
6 Программа и методика испытаний информационной системы
8 Способы разработки Web-страниц. Языки гипертекстовой разметки
Цели создния информационной системы
2.2 Цели создания информационной системы
Информационная система создается с целью
- сбора исходной информации, необходимой для планирования грузоперевозок и подготовки отчетности по показателям деятельности;
- повышения качества (полноты, точности, достоверности,
своевременности, согласованности) информации;
- повышение эффективности использования водителей в зависимости от стажа и опыта;
- увеличение количества возможных перевозок с помощью аналитики;
- эффективное распределения грузов по соответствующему автотранспорту;
- сокращение времени, затрачиваемого на информационно-аналитическую деятельность;
3 Функциональные задачи информационной системы 3.1 Ввод, редактирование, удаление данных
Оператор осуществляет ввод, удаление и редактирование той или иной информации, с возможностью автоматизации (подстановок из других таблиц, фиксированных наборов данных и т.д.) и входного контроля от некорректных действий. Оператор вводит (редактирует, удаляет) данные в следующие категории:
- водитель;
- автотранспорт;
- груз;
- направление (маршрут);
- рейс.
3.2 Идентификация пользователя
Ограничение доступа к информационной системе с помощью идентификации пользователя (парольная защита).
3.3 Поиск данных
Оператор осуществляет поиск по разнообразным признакам (не менее одного в каждой из информационных категорий, например, ФИО водителя и т.д.). С помощью функции поиска можно получить информацию об отдельной единице категории или совокупности объектов, занесённых в информационную систему.
3.4 Сортировка данных
Оператор осуществляет сортировку по различным признакам (не менее одного в каждой из информационных категорий, например, по характеристикам перевозимых грузов и т.д.).
3.5 Основные запросы для составления отчетов
Оператор, заполняя соответствующие поля для запроса в системе, имеет возможность быстро находить соответствующую информацию для формирования отчёта по основным логистическим вопросам компании.
Основные запросы представляют собой три совокупности данных:
3.5.1 Водитель – направление – период времени
Информация по всем водителям, которые совершали перевозки грузов за выбранный промежуток времени в заданном направлении.
3.5.2 Водитель – километраж
Информация о том, кто за заданный промежуток времени совершил максимальные (в километровом исчислении) перевозки.
3.5.3 Водитель – месячные маршруты
Информация для любого заданного водителя, о всех маршрутах, в которые он ездил в текущем месяце.
4 Требования к системе 4.1 Технические требования к системе 4.1.1 Основные требования к функционалу
На главной форме должны быть предусмотрены кнопки для быстрого доступа к вызову форм ввода, редактирования и удаления данных по основным категориям:
- водители;
- автомобили;
- грузы;
- маршруты;
- рейсы.
А также кнопка для перехода в окно составления отчета с главной формы.
4.1.2 Требования к ПК и программному обеспечению
Операционная система: Windows XP/Vista/7/8.1/10
Процессор: Intel Pentium D 3 GHz и более современные аналоги
Оперативная память: 2 Gb
4.2 Входные данные
Входными данными являются данные, вводимые пользователем с клавиатуры:
- данные водителя: ФИО, дата рождения, классность, стаж, контактный телефон;
- сведения об автомобиле: марка, номер, грузоподъемность и мощность, техническое состояние;
- сведения о характеристиках груза: тип груза, требования к транспортировке;
- сведения о маршрутах: место назначения, расстояние в километрах, класс сложности маршрута;
- сведения о текущих рейсах: маршрут, кто и на какой машине повезет какой-либо груз, за какое время.
4.3 Обработка данных
- при помощи кнопки «Добавить» значения, введённые оператором, записываются в таблицу.
- при помощи кнопки «Изменить» значения в таблице изменяются.
- предназначение кнопки «Удалить» - удаление выбранной строки из базы данных.
- при помощи соответствующих полей оператор вводит нужные данные для поиска необходимой информации. При нажатии кнопки «Поиск» производится поиск данных.
4.4 Выходные данные
Выходными данными для продукта являются значения, выводимые программой пользователю на экран в процессе обработки данных.
4.5 Требования к лингвистическому обеспечению
Система должна поддерживать следующие языки графического интерфейса:
- русский.
4.6 Внешний вид приложения
Использование приложения должно быть комфортным для неподготовленного пользователя, не требующим дополнительного обучения по эксплуатации.
4.7 Профиль пользователя
Должна быть предусмотрена аутентификация пользователя, соответственно наличия у пользователя логина и пароля, а также информации о личных данных:
- имя;
- фамилия;
- дата рождения;
- должность.
5 Разработка интерфейса системы
Вид главной формы с доступом к редактированию данных, составлению отчета, авторизации представлен на рисунке 10.
Рисунок 10 - Главная форма
Вид формы ввода и редактирования данных водителя представлен на рисунке 11.
Рисунок 11 - Форма ввода и редактирования данных водителя
Вид формы ввода и редактирования данных автомобиля представлен на рисунке 12.
Рисунок 12 - Форма ввода и редактирования данных водителя
6 Пользователи системы
Система предназначена для должности «Оператор ЭВМ», предусматривающей работу с различными приложениями. Возможна работа больше одного человека за одним компьютером, поэтому предусматривается парольная защита для доступа к информационной системе.
Приложение Б - Исходный код
Листинг 1 Главная форма:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Entity;
namespace TruckingCompany
{
public partial class Form1 : Form
{
DriverContext db;
public Form1()
{
db = new DriverContext();
db.Drivers.Load();
InitializeComponent();
dataGridView1.DataSource = db.Drivers.Local.ToBindingList();
}
// add
private void Button1_Click(object sender, EventArgs e)
{
DriverForm drvForm = new DriverForm();
DialogResult result = drvForm.ShowDialog(this);
if (result == DialogResult.Cancel)
return;
Driver driver = new Driver();
driver.Name = drvForm.textBox1.Text;
driver.Surname = drvForm.textBox2.Text;
driver.Category = drvForm.comboBox1.SelectedItem.ToString();
driver.Age = (int)drvForm.numericUpDown1.Value;
driver.Truck = (Truck)drvForm.comboBox2.SelectedItem;
driver.Point = (Point)drvForm.comboBox3.SelectedItem;
db.Drivers.Add(driver);
db.SaveChanges();
dataGridView1.Refresh();
MessageBox.Show("Новый водитель добавлен");
}
// update
private void Button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int index = dataGridView1.SelectedRows[0].Index;
int id = 0;
bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
if (converted == false)
return;
Driver driver = db.Drivers.Find(id);
DriverForm drvForm = new DriverForm();
drvForm.textBox1.Text = driver.Name;
drvForm.textBox2.Text = driver.Surname;
drvForm.comboBox1.SelectedItem = driver.Category;
drvForm.numericUpDown1.Value = driver.Age;
drvForm.comboBox2.SelectedItem = driver.Truck;
drvForm.comboBox3.SelectedItem = driver.Point;
List trucks = db.Trucks.ToList();
drvForm.comboBox2.DataSource = trucks;
drvForm.comboBox2.ValueMember = "Id";
drvForm.comboBox2.DisplayMember = "Title";
List points = db.Points.ToList();
drvForm.comboBox3.DataSource = points;
drvForm.comboBox3.ValueMember = "Id";
drvForm.comboBox3.DisplayMember = "City";
if (driver.Truck != null)
drvForm.comboBox2.SelectedValue = driver.Truck.Id;
DialogResult result = drvForm.ShowDialog(this);
if (result == DialogResult.Cancel)
return;
driver.Name = drvForm.textBox1.Text;
driver.Surname = drvForm.textBox2.Text;
driver.Category = drvForm.comboBox1.SelectedItem.ToString();
driver.Age = (int)drvForm.numericUpDown1.Value;
driver.Truck = (Truck)drvForm.comboBox2.SelectedItem;
driver.Point = (Point)drvForm.comboBox3.SelectedItem;
db.Entry(driver).State = EntityState.Modified;
db.SaveChanges();
dataGridView1.Refresh();
MessageBox.Show("Данные обновлены");
}
}
// delete
private void Button3_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int index = dataGridView1.SelectedRows[0].Index;
int id = 0;
bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
if (converted == false)
return;
Driver driver = db.Drivers.Find(id);
db.Drivers.Remove(driver);
db.SaveChanges();
dataGridView1.Refresh();
MessageBox.Show("Данные удалены");
}
}
// open AuthorizationForm
private void Button4_Click(object sender, EventArgs e)
{
AuthorizationForm AuthF = new AuthorizationForm();
AuthF.Show();
}
// open ReportForm
private void Button5_Click(object sender, EventArgs e)
{
ReportForm RepF = new ReportForm();
RepF.Show();
}
}
}