Skip to content

Информационная система контроля установок ПО на компьютерах организации

Notifications You must be signed in to change notification settings

foxlxee/software_information_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Информационная система контроля установок ПО на компьютерах организации

Информационная система контроля установок ПО
Рисунок 1 - Главное окно приложения

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

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

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

Информация о программных продуктах

  • Название программного продукта
  • Фирма-разработчик
  • Номер версии
  • Назначение (например: текстовый редактор, мультимедийная программа и т. д.)

Информация о местах установки

  • Номера кабинетов, в которых установлены указанные программные продукты

Информация об ответственных лицах

  • Фамилия, имя, отчество

Определение основных элементов и их связей

Схема физической структуры БД
Рисунок 2 - Схема физической структуры БД

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

Таблица ПО

Эта таблица содержит сведения о программных продуктах:

  • id — уникальный идентификатор программного продукта (первичный ключ)
  • id_разработчика — внешний ключ, ссылающийся на таблицу Разработчики
  • id_категории — внешний ключ, ссылающийся на таблицу Категории
  • название — наименование программного продукта

Таблица Разработчики

Содержит информацию о фирмах, разрабатывающих программное обеспечение:

  • id — уникальный идентификатор разработчика
  • название — наименование фирмы-разработчика

Таблица Категории

Содержит классификацию программ по назначению (например, текстовые редакторы, графические редакторы и т. д.):

  • id — уникальный идентификатор категории
  • название — наименование категории

Таблица Установки

Фиксирует факт установки определённого программного продукта определённой версии в определённое время и с указанием ответственного сотрудника:

  • id — уникальный идентификатор установки
  • id_ПО — внешний ключ, ссылающийся на таблицу ПО
  • id_версии — внешний ключ, ссылающийся на таблицу Версии
  • дата_установки — дата выполнения установки
  • id_сотрудника — внешний ключ, ссылающийся на таблицу Сотрудники, определяющий лицо, ответственное за установку

Таблица Сотрудники

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

  • id — уникальный идентификатор сотрудника
  • ФИО — фамилия, имя и отчество сотрудника

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

Таблица Версии

Хранит информацию о версиях программного обеспечения:

  • id — уникальный идентификатор версии
  • название — номер или обозначение версии (например, 1.0, 2025.1 и т. п.)

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

Таблица Установки_Кабинеты

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

  • id_установки — внешний ключ, указывающий на таблицу Установки
  • номер_кабинета — номер кабинета, в котором находится компьютер с установленным ПО

Поскольку одна установка может быть выполнена в нескольких кабинетах, используется отдельная таблица для реализации связи «многие-ко-многим».

Выбор средства разработки базы данных

MySQL

В качестве системы управления базами данных (СУБД) для реализации проекта выбрана MySQL. Это популярная реляционная СУБД с открытым исходным кодом, обладающая высокой производительностью, и широко используется в коммерческих и образовательных проектах и легко интегрируется с различными языками программирования, включая C#.

Основными причинами выбора MySQL стали:

  • Бесплатная лицензия (GPL)
  • Поддержка языка SQL
  • Возможность подключения из среды разработки Visual Studio через MySQL Connector
  • Широкое распространение и большое количество учебных материалов

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

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

  • Developers — хранит информацию о разработчиках программного обеспечения. Таблица включает уникальный идентификатор и имя разработчика.
  • Categories — содержит категории программного обеспечения (например, офисные программы, антивирусы и т.д.).
  • Software — основная таблица, содержащая сведения о программном обеспечении. Связана с таблицами Developers и Categories через внешние ключи.
  • Versions — отражает различные версии программного обеспечения.
  • Employees — содержит информацию о сотрудниках, за которыми закреплены установки программ.
  • Installations — регистрирует установку конкретной версии программного обеспечения определённому сотруднику на конкретную дату. Связана с таблицами Software, Versions и Employees.
  • Installation_Rooms — дополнительная таблица, реализующая связь между установками и помещениями, в которых они производились. Используется составной первичный ключ по installation_id и room_number.

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

  • Использование типа INT AUTO_INCREMENT для первичных ключей.
  • Ограничение NOT NULL для обязательных полей, таких как имена и идентификаторы.
  • Организация связей «многие к одному» (SoftwareDeveloper) и «один ко многим» (InstallationsInstallation_Rooms).

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

Определение объектной модели

Обмен данными с базой данных в объектной модели происходит с помощью библиотеки MySql.Data.dll, используя классы MySqlConnection и MySqlCommand.

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

Классы InstallInfo, SoftwareInfo, EmployeeInfo, DeveloperInfo, CategoryInfo выражают установку, ПО, фирму, категорию и сотрудника соответственно.

Параметры в запросах обрабатываются чтобы избежать SQL-инъекций.

Заполнение таблиц в программе происходит, используя механизмы привязки данных (DataBinding) WPF.

Главное окно приложения

Главное окно приложения (рисунок 1) содержит навигационное меню слева, позволяющее переключаться между основными разделами:

  • Установки
  • ПО
  • Разработчики
  • Категории
  • Сотрудники

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

  • Сотрудник — имя сотрудника, за которым закреплена установка.
  • Кабинеты — список номеров кабинетов, в которых была выполнена установка.
  • ПО — наименование установленного программного продукта.
  • Версия — установленная версия программного обеспечения.
  • Разработчик — фирма, разработавшая ПО.
  • Категория — категория программного обеспечения (например, «Инструменты разработки», «Графические редакторы»).
  • Дата установки — дата, когда была выполнена установка.

Информация формируется на основе данных из таблиц Installations, Employees, Software, Versions, Developers, Categories и Installation_Rooms. Для представления связи «одна установка — несколько кабинетов» используется объединение и группировка значений room_number по installation_id.

Под таблицей расположены кнопки управления:

  • Добавить — открывает форму для создания новой записи в текущем разделе.
  • Изменить — позволяет редактировать выбранную запись в таблице.
  • Удалить — удаляет выбранную запись.
  • Установить фильтрацию — позволяет установить фильтрацию по определённым условиям.
Создание новой записи в БД
Рисунок 3 - Создание новой записи в БД

При добавлении новой установки открывается модальное окно, содержащее элементы ввода сотрудника, ПО, кабинетов, версии и даты установки (рисунок 3).

Кабинеты вводятся через пробел (например, 201 202 203), сотрудник и ПО выбираются в раскрывающихся списках, дата установки вводится в соответствующем элементе, в котором можно вводить дату в формате ДЕНЬ.МЕСЯЦ.ГОД или выбрать в календаре, нажатием на значок, располагающимся справа внутри рамки элемента.

После нажатия на элемент «Готово», программа проверит корректность введённой информации и в таблице установок будет создана новая запись.

Запись создаётся вызовом метода InsertInstall класса DataBaseManager. Метод принимает параметры: id ПО, id сотрудника, версию и дату установки.

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

При создании интерфейса был реализован абстрактный класс-обёртка TableView над DataGrid, в котором реализованы методы установки источника данных и обрабатываются выделения элементов в таблице. От этого класса наследуются классы, которые выражают определённые таблицы, например класс InstallsTableView выражает таблицу установок.

Стиль интерфейсов некоторых элементов переопределён и прописан в ресурсах приложения в файле App.xaml.

Реализовано предотвращение многократного запуска приложения одновременно используя механизм синхронизации Mutex.

Фильтрация

Фильтрация данных
Рисунок 4 - Фильтрация данных

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

Реализованы следующие возможности фильтрации:

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

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

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

Установка MySQL Community Server

Для работы информационной системы требуется установка MySQL Community Server:

  1. Перейдите на официальный сайт MySQL: https://dev.mysql.com/downloads/mysql/
  2. Выберите версию MySQL Community Server 8.4.6 LTS
  3. Скачайте и запустите установщик
  4. В процессе установки:
  • Выберите тип установки Developer Default
  • Установите root пароль
  • Завершите установку, приняв все параметры по умолчанию

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

После установки MySQL необходимо восстановить тестовые данные:

  1. Настройте файл init.bat
  • Откройте файл init.bat в текстовом редакторе
  • Найдите строку с параметром пароля и замените на тот, который вы указали при установке MySQL
  • Сохраните файл
  1. Запустите инициализацию
  • Запустите init.bat для выполнения

Скрипт автоматически:

  • Создаст базу данных installsdb_db
  • Импортирует все данные из backup.sql
  • Настроит необходимые таблицы и связи

About

Информационная система контроля установок ПО на компьютерах организации

Topics

Resources

Stars

Watchers

Forks