Файл: Применение объектно-ориентированного подхода при проектировании информационной системы.pdf
Добавлен: 01.04.2023
Просмотров: 90
Скачиваний: 2
Центральным понятием объектно-ориентированного программирования является объект, который становится своего рода модулем, содержащим данные и подпрограмму. Объект – это самодостаточная сущность, которая имеет внутреннее состояние (содержащиеся в нем данные) и может отвечать на сообщения (обращения к его методам). Например, объект записей студента имеет состояние, состоящее из сведений обо всех зарегистрированных студентах. Если ему отправляется сообщение, в котором говорится о добавлении сведений о новом ученике, он отвечает, изменяя свое состояние. Если будет отправлено сообщение о том, что оно должно быть напечатано, оно ответит распечаткой списка сведений обо всех зарегистрированных студентах.
Подход объектно-ориентированного программирования к разработке программного обеспечения должен начинаться с определения объектов, вовлеченных в проблему, и определения сообщений, на которые эти объекты должны отвечать. В результате получается набор объектов, каждый со своими данными и собственным набором обязанностей. Объекты взаимодействуют, посылая сообщения друг другу [11.].
ООП демонстрирует следующие свойства: абстракция данных, инкапсуляция, наследование и полиморфизм.
Абстракция данных
Абстракция данных – это методология, которая позволяет скрывать фоновые данные от внешнего мира, предоставляя только важную информацию о том или ином объекте. Абстракция данных обеспечивает четкое разделение между абстрактными свойствами типа данных и конкретными деталями его реализации. Абстракция данных упрощает сложную реальность, моделируя классы, соответствующие задаче. Абстракция также достигается с помощью композиции. Например, класс, описывающий автомобиль, будет состоять из двигателя, коробки передач, руля и многих других компонентов. Чтобы создать этот класс, не нужно знать, как различные компоненты работают внутри, а только то, как взаимодействовать с ними, то есть отправлять им сообщения, получать от них сообщения и, возможно, как взаимодействуют различные объектами, составляющие класс, друг с другом.
Инкапсуляция
Инкапсуляция – это возможность объединять код и данные в одном месте и скрывать эти данные от внешнего воздействия. Иными словами, это такое объединение внутри класса полей и методов, при котором доступ к полю возможен только путем вызова соответствующего метода. При идеальном выполнении принципа инкапсуляции поля класса могут быть только личными (использоваться только методами данного класса).
Наследование
Наследование – это возможность определения для базового класса (предка) иерархии производных классов (наследников), в каждом из которых доступны элементы базового класса (их описание становится частью описания производного класса). Иначе говоря, наследование – механизм, посредством которого класс может наследовать элементы другого класса и добавлять к ним свои элементы.
Как правило, базовый класс является общим, производные – более специальными, конкретными. Естественно, у класса-наследника обычно больше полей и методов, чем у класса-предка, так как при наследовании обычно добавляются новые элементы.
Если имеется иерархия классов, то можно рассматривать защищенные (protected) элементы класса, которые доступны для методов своего класса и его наследников.
Одиночное наследование – это случай, когда каждый производный класс может наследовать только от одного базового класса, тогда как множественное наследование – это случай, когда класс может наследовать от двух или более базовых классов. В современных объектно-ориентированных языках, таких как Java и C++, предусмотрено множественное наследование [3.].
Полиморфизм
Полиморфизм – это механизм, который позволяет объектам разных типов по-разному реагировать на один и тот же вызов функции. Перегрузка и шаблоны функций могут рассматриваться как примитивные полиморфизмы, поскольку решение о вызове конкретной функции принимается во время компиляции, а не во время выполнения. Во время компиляции точная природа некоторых объектов не может быть определена. Полиморфизм – это способность идентифицировать определенные аспекты, общие для нескольких типов данных, и писать код, который одинаково хорошо работает со всеми из них, игнорируя различия в ситуациях, не имеющих значения [6.].
Таким образом, как структурное программирование, так и ООП требуют элементарного понимания концепций программирования и порядка выполнения инструкций программы. Циклы, условные операторы и переменные являются понятиями, которые необходимо знать вне зависимости от того, какой из подходов используется. В таблице 1 приведены основные различия между объектно-ориентированным и структурным программированием.
Таблица 1 – Различия между структурной и ООП-парадигмой
Структурное программирование |
Объектно-ориентированное программирование |
Нисходящий подход |
Восходящий подход |
Фокус на алгоритме и инструкциях |
Фокус на объектной модели |
Программа делится на подмодули, функции, процедуры |
Программа организована с помощью ряда классов и объектов |
Функции не зависят друг от друга |
Классы могут образовать иерархию |
Данные и функции рассматриваются как отдельные объекты |
Данные и функции – единое целое |
Повторное использование методов невозможно |
Возможно повторное использование методов |
Используется вызов функции |
Сообщения передаются объектам |
Абстракция функций |
Абстракция данных |
Главное – алгоритм |
Главное – данные |
Инкапсуляция отсутствует |
Данные и функциональные возможности – единая сущность |
Ключевое отношение – между программистом и программой |
Ключевое отношение – между программистом и пользователем |
3. Проектирование информационно-справочной системы на объектно-ориентированном языке программирования
Анализ предметной области
Информационно-справочная система (ИСС) – это интегрированный набор компонентов для сбора, хранения и обработки данных, а также для предоставления информации, знаний и цифровых продуктов. Как правило, в информационно-справочных системах нет сложных алгоритмов обработки данных, а целью системы является поиск и выдача информации в удобном виде. Коммерческие фирмы и другие организации полагаются на информационно-справочные системы для осуществления и управления своей деятельностью, взаимодействия со своими клиентами и поставщиками, а также для конкуренции на рынке. Информационно-справочные системы используются для управления цепочками поставок и электронными рынками. Например, корпорации используют информационно-справочные системы для обработки финансовых счетов, управления своими человеческими ресурсами и привлечения потенциальных клиентов с помощью онлайн-акций. Многие крупные компании построены исключительно вокруг информационно-справочных систем. К ним относится Google, компания поисковых систем, которая получает большую часть своего дохода от рекламы по некоторым ключевым словам с помощью поисковых запросов в Интернете. Цифровые товары, такие как электронные книги, видеопродукция и программное обеспечение, а также онлайн-сервисы, такие как игры и социальные сети, поставляются с информационно-справочными системами. Люди полагаются на информационно-справочные системы, обычно использующие Интернет, для ведения большей части своей личной жизни: для общения, учебы, покупок, банковских операций и развлечений.
В рамках данной работы в качестве предметной области выбрана информация о сотрудниках некоторого предприятия. В настоящее время разработано большое количество программных продуктов, включающих в себя все необходимые функции и возможности для выполнения роли информационно-справочной системы о сотрудниках.
Для достижения поставленной цели в работе была выполнена программа на языке С++ в виде консольного приложения. В главной функции main() реализовано меню пользователя, в котором каждому действию соответствует определенная цифра. Реализованы следующие функции для работы с данными: добавление, редактирование, удаление записи, поиск сотрудников по фамилии, сохранение данных в текстовый файл и ввод данных из файла, вывод на экран.
В разрабатываемом приложении пользователю необходимо:
- Ввести записи в информационно-справочную систему с клавиатуры либо занести готовую базу из текстового файла в программу для дальнейшей обработки;
- Выбрать в интерактивном меню необходимую операцию для обработки информационно-справочной системы;
- После этого с системой можно производить все предложенные операции, в том числе записывать созданные базы в текстовые файлы формата txt.
- Для окончания работы приложения выбрать соответствующий пункт меню.
Описание программы
Для функционирования данного программного обеспечения необходим компьютер с установленным на нем средством разработки программного обеспечения MS Visual Studio 2019. В программе могут обрабатываться не только данные, введенные пользователем с клавиатуры, но и текстовые документы – каждая строка такого документа содержит набор атрибутов (данные), описывающих сотрудника (фамилия и имя, знак зодиака, дата рождения). Программное средство также может выгружать созданную информацию в текстовый документ.
Разработанное приложение поддерживается на большинстве операционных систем, среди которых Windows XP, Windows Vista, Windows 7, 8, 10.
Помимо этого, программа корректно работает как на 32-разрядных системах, так и на 64-разрядных системах.
Для положительной работы программы необходимо всего 220 Кб свободной памяти на жестком диске компьютера и 1 Мб оперативной памяти. Исходя расчетных данных, каждый пользователь современного ПК может позволить себе использование разработанного программного продукта.
Запуск программы осуществляется так же, как и запуск любой другой программы в среде Windows, то есть для ее запуска необходимо щелкнуть мышью по пиктограмме запускающего файла.
Входными данными являются поля, из которых создается запись с информацией о сотруднике (фамилия, имя, знак зодиака, дата рождения), выходными – строки созданной информационно-справочной системы.
Руководство пользователя (оператора)
Программа решает задачу автоматизации процесса хранения информации о сотрудниках. С помощью данной программы можно вносить новые сведения, удалять устаревшие, просматривать текущие данные.
Запуск программы осуществляется так же, как и запуск любой другой программы в среде Windows, то есть для ее запуска необходимо щелкнуть мышью по пиктограмме запускающего файла.
Управление работой программы осуществляется путем выбора того или иного пункта меню.
Ввод информации может осуществляться с клавиатуры.
Для выхода из программы (завершения работы программы) необходимо закрыть окно с помощью кнопки «Выход».
Для функционирования данной системы необходим следующий минимальный состав аппаратных средств:
- ПЭВМ не ниже PentiumIV;
- Объем ОЗУ не менее 512 Мб;
- Монитор;
- Клавиатура;
- Мышь.
Программа содержит следующий набор команд:
1 – Добавить в конец
2 – Вывод списка
3 – Добавить в начало
4 – Поиск
5 – Поиск по фамилии
6 – Удаление
7 – Редактировать
8 – Сохранить в файл
9 – Считать из файла
0 – Выход
Руководство программиста
Программа решает задачу автоматизации процесса хранения информации о сотрудниках. С помощью данной программы можно вносить новые сведения, удалять устаревшие, просматривать текущие данные. Программу можно использовать на любом типе ПК с установленной системой Windows. Для положительной работы программы необходимо всего 220 Кб свободной памяти на жестком диске компьютера и 1 Мб оперативной памяти.
Программа написана на языке C++с помощью среды разработки MS Visual Studio 2019.
Для хранения данных о сотруднике был спроектирован класс, поля которого позволяют управлять всеми атрибутами сотрудника. Кроме того, реализованы функции-члены для ввода и вывода данных. Исходный код класса приведен в листинге 1.
Листинг 1. Класс ZNAK, описывающий сотрудника некоторого предприятия
class ZNAK
{
public:
string name; // фамилия, имя
string zodiak; // знак зодиака
int birthday[3]; // дата рождения
ZNAK(){}
void inputData()
{
cin.ignore(cin.rdbuf()->in_avail());
string name, surname;
cout << "Введите фамилию: ";
getline(cin, surname);
while (cin.fail() || isEmpty(surname))
{