Пишем курсовую по разработке ИС — подробный разбор примера на Delphi и SQL

Введение, или как правильно задать вектор всей курсовой работы

Обоснование актуальности — краеугольный камень любой научной работы. В контексте разработки информационной системы (ИС) недостаточно просто заявить о «необходимости цифровизации». Важно показать, что автоматизация учета в конкретной фирме — это не абстрактная учебная задача, а реальная бизнес-необходимость. Без современной ИС компания сталкивается с замедлением обработки заказов, ошибками в отчетности из-за человеческого фактора и отсутствием единой, достоверной базы данных для принятия управленческих решений. Все это ведет к прямым финансовым и репутационным потерям.

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

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

  1. Проанализировать предметную область и существующие бизнес-процессы.
  2. Спроектировать архитектуру системы и ее базу данных.
  3. Обосновать выбор технологического стека для реализации проекта.
  4. Разработать программные модули и пользовательский интерфейс.
  5. Провести комплексное тестирование разработанного продукта.

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

Глава 1. Анализируем предметную область и существующие бизнес-процессы

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

Существующий бизнес-процесс «Управление заказами» выглядит следующим образом: менеджер принимает заявку от клиента по телефону или электронной почте. Затем он вручную проверяет наличие товара на складе, заглядывая в общую таблицу Microsoft Excel. После подтверждения наличия, он создает счет в том же Excel и отправляет его клиенту. Все данные о продажах, клиентах и товарах хранятся в отдельных файлах, а часть информации — в бумажных журналах учета.

Такой подход порождает целый комплекс проблем, которые напрямую влияют на эффективность бизнеса:

  • Низкая скорость обработки информации: Ручной поиск данных в разных источниках занимает много времени и замедляет весь цикл продажи.
  • Высокий риск человеческой ошибки: Опечатки при вводе данных, продажа уже зарезервированного товара, неверный расчет итоговой суммы — все это становится нормой.
  • Отсутствие единой базы данных: Невозможно быстро получить актуальную информацию об остатках на складе, истории заказов конкретного клиента или общей динамике продаж.
  • Сложности с формированием отчетов: Подготовка любого аналитического отчета для руководства превращается в трудоемкий процесс ручного сведения данных из десятка таблиц.

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

Глава 2. Проектируем архитектуру будущей системы

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

Функциональное моделирование (IDEF0)

Для описания функций системы и ее взаимодействия с внешним миром мы применяем методологию IDEF0. Диаграмма верхнего уровня (контекстная диаграмма A-0) показывает систему как «черный ящик». Входами для нашей ИС являются «Данные о заказе» от Менеджера и «Данные о товарах» от Администратора. Выходами — «Сформированные отчеты» для Руководства и «Счета и накладные» для Клиентов. Управлением служат «Правила компании», а механизмом — «Сотрудники» (Менеджер, Администратор).

Информационное моделирование (UML)

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

1. Диаграмма прецедентов (Use Case Diagram):
Она наглядно показывает роли пользователей и их действия.

  • Актер: Менеджер
    • Оформить новый заказ
    • Просмотреть историю заказов
    • Редактировать данные клиента
    • Сформировать отчет по продажам
  • Актер: Администратор
    • Добавить/изменить товар в каталоге
    • Управлять пользователями системы
    • Просматривать все системные логи

2. ER-диаграмма (Entity-Relationship Diagram):
Это схема будущей базы данных. Мы выделяем ключевые сущности, их атрибуты и связи.

Сущности:
Clients (id, name, contact_info)
Products (id, product_name, price, stock_quantity)
Orders (id, client_id, order_date, total_amount)
Order_Items (order_id, product_id, quantity, price_per_item)

Связи:
— Один «Клиент» может иметь много «Заказов» (один-ко-многим).
— Один «Заказ» состоит из многих «Позиций заказа» (один-ко-многим).
— Одна «Позиция заказа» ссылается на один «Товар» (многие-к-одному).

3. Диаграмма последовательности (Sequence Diagram):
Она детализирует один конкретный прецедент, показывая взаимодействие объектов во времени. Для примера возьмем «Оформление нового заказа»:

  1. Менеджер нажимает кнопку «Создать заказ» в ФормеЗаказов.
  2. ФормаЗаказов создает новый объект Заказ.
  3. Менеджер добавляет товар. ФормаЗаказов обращается к КонтроллеруТоваров за информацией о наличии.
  4. КонтроллерТоваров выполняет запрос к БазеДанных.
  5. БазаДанных возвращает остаток товара.
  6. После добавления всех товаров, Менеджер нажимает «Сохранить». ФормаЗаказов вызывает метод `save()` у объекта Заказ.
  7. Объект Заказ сохраняет себя и связанные с ним ПозицииЗаказа в БазуДанных.

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

Глава 3. Обосновываем выбор средств разработки

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

  1. Клиент-серверная архитектура. Мы выбрали именно эту архитектуру, а не локальное приложение, по нескольким причинам. Во-первых, она обеспечивает централизованное хранение данных, что решает одну из ключевых проблем старой системы. Во-вторых, она позволяет нескольким пользователям (менеджерам, администратору) одновременно работать с единой, всегда актуальной базой данных.
  2. Среда разработки клиентской части: Delphi (Object Pascal). Для создания настольного Windows-приложения Delphi является одним из лучших инструментов. Ключевые преимущества:
    • Высокая скорость разработки (RAD): Наличие богатой библиотеки визуальных компонентов (VCL) позволяет быстро проектировать сложные пользовательские интерфейсы.
    • Нативная компиляция: Приложения компилируются в быстрый исполняемый код, не требующий для работы дополнительных фреймворков вроде .NET или Java.
    • Мощные средства для работы с данными: Delphi изначально «заточен» под создание приложений для баз данных.
  3. Система управления базами данных (СУБД): SQL-сервер. В качестве серверной части мы используем реляционную СУБД (например, MS SQL Server, PostgreSQL или Firebird). Использование SQL-сервера гарантирует надежность хранения, целостность данных, масштабируемость и возможность выполнять сложные запросы на стандартном языке SQL.
  4. Технология доступа к данным: FireDAC. Для связи нашего клиентского приложения на Delphi с SQL-сервером будет использоваться современная библиотека компонентов FireDAC. Она обеспечивает унифицированный и высокопроизводительный доступ к большинству популярных СУБД, что делает наше решение гибким.

Таким образом, выбранный стек Delphi + SQL Server + FireDAC является оптимальным для поставленной задачи, обеспечивая баланс между скоростью разработки, производительностью и надежностью готового решения.

Глава 4. Разрабатываем программные модули и пользовательский интерфейс

Это самая объемная и наглядная глава, где теоретический проект превращается в работающую программу. Мы покажем ключевые этапы реализации: от создания структуры базы данных до написания кода, отвечающего за бизнес-логику.

1. Реализация базы данных

На основе ER-диаграммы из второй главы мы пишем SQL-скрипты для создания таблиц в нашей СУБД. Это гарантирует, что структура данных в точности соответствует проекту.


CREATE TABLE Clients (
    ID INT PRIMARY KEY IDENTITY,
    ClientName NVARCHAR(255) NOT NULL,
    ContactInfo NVARCHAR(255)
);

CREATE TABLE Products (
    ID INT PRIMARY KEY IDENTITY,
    ProductName NVARCHAR(255) NOT NULL,
    Price DECIMAL(18, 2) NOT NULL,
    StockQuantity INT NOT NULL
);

CREATE TABLE Orders (
    ID INT PRIMARY KEY IDENTITY,
    ClientID INT FOREIGN KEY REFERENCES Clients(ID),
    OrderDate DATETIME NOT NULL,
    TotalAmount DECIMAL(18, 2)
);

CREATE TABLE OrderItems (
    ID INT PRIMARY KEY IDENTITY,
    OrderID INT FOREIGN KEY REFERENCES Orders(ID),
    ProductID INT FOREIGN KEY REFERENCES Products(ID),
    Quantity INT NOT NULL,
    PricePerItem DECIMAL(18, 2) NOT NULL
);

2. Разработка пользовательского интерфейса (GUI)

Интерфейс спроектирован в среде Delphi с использованием стандартных компонентов VCL. Ниже описаны основные формы приложения.

  • Главное окно: Содержит главное меню (Файл, Справочники, Отчеты), панель инструментов с иконками для быстрых действий и основную рабочую область, где могут открываться дочерние окна.
  • Форма «Справочник товаров»: Представлена в виде таблицы (компонент TDBGrid), отображающей список всех товаров. Над таблицей расположены поля для фильтрации и поиска. Кнопки «Добавить», «Редактировать» и «Удалить» позволяют управлять записями.
  • Форма «Создание/редактирование заказа»: Самая сложная форма. В верхней части — поля для выбора клиента и указания даты. Основную часть занимает таблица с позициями заказа. Кнопки «Добавить товар в заказ» и «Удалить товар» управляют содержимым. Общая сумма рассчитывается автоматически.

3. Программная логика (Object Pascal)

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

Подключение к базе данных (в модуле данных):


procedure TDataModule1.ConnectToDB;
begin
  FDConnection.Params.Clear;
  FDConnection.Params.Add('DriverID=MSSQL');
  FDConnection.Params.Add('Server=MY_SERVER_NAME');
  FDConnection.Params.Add('Database=MyCourseWorkDB');
  FDConnection.Params.Add('User_Name=myuser');
  FDConnection.Params.Add('Password=mypass');
  try
    FDConnection.Connected := True;
  except
    on E: Exception do
      ShowMessage('Ошибка подключения к БД: ' + E.Message);
  end;
end;

Реализация CRUD-операций для справочника товаров:
Для отображения и редактирования данных мы используем связку TFDQuery, TDataSource и TDBGrid. Операции добавления, изменения и удаления (CRUD) реализуются очень просто.


// Открытие таблицы товаров
procedure TProductsForm.FormShow(Sender: TObject);
begin
  DataModule1.FDQueryProducts.Open('SELECT * FROM Products');
end;

// Добавление новой записи
procedure TProductsForm.btnAddClick(Sender: TObject);
begin
  DataModule1.FDQueryProducts.Append;
end;

// Сохранение изменений
procedure TProductsForm.btnSaveClick(Sender: TObject);
begin
  DataModule1.FDQueryProducts.Post;
end;

// Удаление текущей записи
procedure TProductsForm.btnDeleteClick(Sender: TObject);
begin
  if MessageDlg('Вы уверены, что хотите удалить запись?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    DataModule1.FDQueryProducts.Delete;
end;

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

Глава 5. Проводим тестирование и описываем руководство пользователя

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

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

Мы применили двухуровневый подход к тестированию:

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

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

Тестовый случай Ожидаемый результат Фактический результат
Добавление нового клиента с корректными данными. В таблице ‘Clients’ появляется новая запись. Успешно
Попытка сохранить заказ без указания клиента. Система выдает ошибку и не сохраняет заказ. Успешно
Удаление товара, который присутствует в существующих заказах. Система блокирует удаление из-за нарушения целостности данных. Успешно
Формирование отчета по продажам за период. Отчет генерируется и содержит корректные данные о заказах за указанный период. Успешно

Краткое руководство пользователя

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

  • Запуск и вход: Запустите файл `ProjectApp.exe`. Введите логин и пароль, предоставленные администратором.
  • Работа со справочниками: Для добавления или редактирования клиентов или товаров перейдите в меню «Справочники» и выберите соответствующий пункт. Используйте кнопки на панели инструментов для добавления, изменения или удаления записей.
  • Создание заказа: Перейдите в раздел «Заказы». Нажмите кнопку «Создать новый заказ». Выберите клиента из выпадающего списка, затем с помощью кнопки «Добавить товар» наполните заказ. После добавления всех позиций нажмите «Сохранить».

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

Заключение, где мы подводим итоги и гордимся результатом

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

Ключевыми результатами работы являются:

  • Проведен детальный анализ предметной области, выявлены узкие места существующей системы учета на базе Excel и бумажных носителей.
  • Спроектирована надежная архитектура ИС с использованием методологий IDEF0 и UML, включая разработку ER-диаграммы базы данных.
  • Реализовано полнофункциональное настольное приложение на языке Object Pascal в среде Delphi.
  • Создана и развернута централизованная база данных под управлением SQL-сервера, обеспечивающая целостность и быстрый доступ к информации.

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

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

Список источников информации

  1. 1. Агальцов, В.П. Базы данных. В 2-х т.Т. 1. Локальные базы данных: Учебник / В.П. Агальцов. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. — 352 c.
  2. 2. Акперов, И.Г. Информационные технологии в менеджменте: Учебник / И.Г. Акперов, А.В. Сметанин, И.А. Коноплева. — М.: НИЦ ИНФРА-М, 2013. — 400 c.
  3. 3. Венделева, М.А. Информационные технологии в управлении: Учебное пособие для бакалавров / М.А. Венделева, Ю.В. Вертакова. — М.: Юрайт, 2013. — 462 c.
  4. 4. Голицына, О.Л. Базы данных: Учебное пособие / О.Л. Голицына, Н.В. Максимов, И.И. Попов. — М.: Форум, 2012. — 400 c.
  5. 5. Грекул В. И., Денищенко Г. Н., Коровкина Н. Л. Проектирование информационных систем. — М.: Интернет-университет информационных технологий – М.: ИНТУИТ.ру, 2012. с.135
  6. 6. Гринберг, А.С. Информационные технологии управления: [Учеб. пособие для вузов по специальностям 351400 «Прикладная информатика (по обл.)», 061100 «Менеджмент орг.», 061000 «Гос. и муницип. упр.»] /А.С. Гринберг, Н.Н. Горбачев, А.С. Бондаренко.-М.: ЮНИТИ, 2012.-479 с.
  7. 7. Диго, С.М. Базы данных: проектирование и использование: [Учеб. для вузов по специальности «Прикладная информатика (по обл.)»] /С.М. Диго.-М.: Финансы и статистика, 2012.-591 с.
  8. 8. Емельянов В.И.: Основы программирования на Delphi. — М.: Высшая школа, 2005
  9. 9. Зубов А.: Программирование на Delphi. — СПб.: Питер, 2012
  10. 10. Ивасенко, А.Г. Информационные технологии в экономике и управлении: [учеб. пособие для вузов по специальностям «Прикладная информатика (по обл.)», «Менеджмент орг.», «Гос. и муницип. упр.»] /А. Г. Ивасенко, А. Ю. Гридасов, В. А. Павленко.-М.: КноРус, 2013.-153 с.
  11. 11. Информатика: [учеб. для вузов по специальности «Прикладная информатика (по обл.)» и др. экон. специальностям] /А. Н. Гуда [и др.] ; под общ. ред. В. И. Колесникова.-М.: Дашков и К°, 2013.-399 с.
  12. 12. Информатика: учебник для студентов вузов, обучающихся по специальности 080801 «Прикладная информатика» и другим экономическим специальностям /[В. В. Трофимов и др.] ; под ред. проф. В. В. Трофимова.-М.: Юрайт, 2013.-910 с.
  13. 13. Исаев, Г.Н. Информационные технологии: Учебное пособие / Г.Н. Исаев. — М.: Омега-Л, 2013. — 464 c.
  14. 14. Карпова, И.П. Базы данных: Учебное пособие / И.П. Карпова. — СПб.: Питер, 2013. — 240 c.

Похожие записи