Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Основные инструменты ООП и понятийный аппарат).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.05.2023

Просмотров: 348

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Все объекты, даже неиспользующиеся, продолжают существовать внутри внешней памяти с сохранением всех внутренних связей.

В объектно-ориентированных системах управления базами данных технология объектом включает в себя две первые стадии создания продукта. Их (данных) способы моделирования изменяются и дополняются разработчиками.

2.3. Проектирование информационной бизнес-системы “Предприятие”

Рассмотрим информационную систему в рамках одного предприятия. В соответствии с Дрогобыцким И.Н. любую экономическую систему можно рассматривать как совокупность трёх подсистем: финансовой, производственной и обеспечивающей.[17]

На рисунке 1 представлена система “Предприятие”. Предположим, эту систему нужно реализовать с помощью объектно-ориентированного подхода.

Рисунок 1. Предприятие

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

Реализация системы “Предприятие” с помощью проектных модулей будет показана на рисунке 2.

Рисунок 2. Проектные модули

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

Для описания бизнес-процессов используется методология семейства IDEF. Для управления объектами может быть выбрана любая другая объектно-ориентированая методология.

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


2.4. Проектирование систем управления базами данных с помощью ООП

Предположим существование некой абстрактной объектно-ориентированной системы управления базами данных. Важной задачей здесь является необходимость сохранить состояния объектов после перезапуска прикладной программы.

Для этого мы поместим процедуры управления внутрь этой программы, создавать выделенный сервер базы в нашем примере будет нецелесообразно.

Наша воображаемая система управления Name имеет реально существующий прототип ObjectStore. Она будет обеспечивать длительное хранение в базе объектов, созданных на языках C++ и Java.

Любое взаимодействие с программой будет вестись методами стандартного объектно-ориентированного языка (предположим, Ruby).

Важным преимуществом этой системы перед процедурными аналогами будет автоматическое расширение виртуальной памяти ОС. Как это происходит?

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

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

Наша вымышленная система управления будет поддерживать транзакции и допускать следующие методы доступа: хэширования данных в таблицу для несортированных массивов, перемещение их в B-дерево для сортированных и, вполне вероятно, использование языка структурированных запросов.

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

Плюсами использования декларативного языка будет, во-первых, независимость от конкретной системы управления базами данных. В случае, если нам понадобится сгенерировать новую базу данных, мы, игнорируя особые диалекты или синтаксические различия, сможем перенести массив структурированных запросов в другую СУБД.

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


Декларативность в представленном контексте синонимична абстракции, ведь благодаря SQL мы описываем только те данные, которые подвергаются обработке. Сервис автоматически выдаст нам варианты написания для наших запросов.

2.5. Пример кода для проектирования датчиковой информационной системы в тепличном хозяйстве

Для наглядной иллюстрации приведём пример с использованием объектно-ориентированного метода C++.

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

Важными деталями здесь является учёт стадии выращивания, вида взращиваемых растений, плотности гидропоники на каждом этапе взращивания. Факторы, которые в обязательном порядке нужно учитывать и контролировать с пользовательского интерфейса (не инкапсулированные): влажность, свет, показатель pH, насыщенность питательными веществами, плотность гидропоники, температуру.

Цель программы — автоматизации выращивания при минимальном вмешательстве клиента.

Важно запрограммировать датчики на каждый род факторов от температуры до кислотности. Проведём абстрагирование.

Датчик температуры — это объект, измеряющий температуру. Температура — числовой параметр в неком диапазоне значений, имеющий запрограммированную точность и выражающий число градусов по Цельсию, Кельвину или Фаренгейту в числовом значении.

Датчик нужно где-то расположить, поэтому месторасположения датчика — идентифицируемая точка тепличной конструкции.

Датчик должен ощущать температуру и репрезентовать результат пользователю. Встаёт вопрос: какие функции должны быть инкапсулированы, а какие — выведены в интерфейс?

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

Примерно так должен выглядеть код данного проектного решения:

// Температура по Фаренгейту

typedef float Temperature;

// Число, однозначно определяющее положение датчика


typedef unsigned int Location;

class TemperatureSensor {

public:

TemperatureSensor (Location);

~TemperatureSensor();

void calibrate(Temperature actualTemperature);

Temperature currentTemperature() const;

private:

...

};

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

Класс TemperatureSensor — это только спецификация датчика; настоящая его начинка скрыта в его закрытой (private) части. Класс TemperatureSensor это еще не объект. Собственно датчики — это его экземпляры, и их нужно создать, прежде чем с ними можно будет оперировать. Например, можно написать так:

Temperature temperature;

TemperatureSensor greenhouse1Sensor(1);

TemperatureSensor greenhouse2Sensor(2);

temperature = greenhouse1Sensor.currentTemperature();

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

Заключение

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

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

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

Немаловажно, что выявлены отличия между ООП и процедурным подходами, описаны главные инструменты ООП, изучена история его формирования и эволюции.

Подробно описана методология объектно-ориентированного анализа и проектирования, на практических примерах рассмотрены и проиллюстрированы особенности проектирования информационных систем с применением объектно-ориентированного стиля.

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


Можно сделать следующие выводы:

        1. Объектно-ориентированный подход, при всех своих очевидных недостатках, чаще всего идеально подходит для проектирования информационных систем;
        2. Методы, классы и интерактивный инструментарий ООП незаменимы для проектирования систем управления базами данных;
        3. Любые задачи от написания простейших программ до сложной многоуровневой системы с большим количеством переменных могут быть реализованы в структуре объектно-ориентированного языка программирования.

Оглядываясь на десятилетия эволюции ООП остаётся только предполагать, насколько удобным и практичным станут объектно-ориентированные языки в скором времени.

Список использованной литературы

1. ГОСТ 33707-2016 (ISO/IEC 2382:2015) Информационные технологии (ИТ). – Введ. 2007-09-01. – М.: Издательство стандартов, 2017. – 27 с.

2. Грэди Буч, Роберт А. Максимчук, Майкл У. Энгл Объектно-ориентированный анализ и проектирование с примерами приложений. - М.: Вильямс, 2014. – 705 с.

3. Динамика объектов в ООП // GitHub URL: https://geekbrains.ru/courses/70 (дата обращения: 12.11.2018).

4. Дрогобыкий, И. Н. Системный анализ в экономике. - Ростов: Финансы и статистика , 2007. – 512 с.

5. Джейми Крайс Изменение парадигмы: объектный подход. - М.: Бомбора, 2016. – 430 с.

6. Кирильченко, Н. Д. Сущность и методы объектно-ориентированного программирования: продвинутый курс. - СПб.: Питер, 2016. – 418 с.

7. Когаловский, М. Р. Перспективные технологии информационных систем. - М.: ДМК-пресс, 2014. – 288 с.

8. Кузнецов, Н. В. Объектно-ориентированное программирование на PHP. - СПб.: БХВ-Петербург, - 609 с.

9. Мэтт Вайсфельд Объектно-ориентированное мышление. - СПб.: Питер, 2015. – 301 с.

10. Основы объектно-ориентированного программирования // IT-Academy URL: https://www.it-academy.by/course/osnovy-programmirovaniya/osnovy-oop/?set_city=84 (дата обращения: 10.11.2018).

11. Роберт Лафоре Объектно-ориентированное программирование: история. - СПб.: Питер, 2018. – 928 с.

12. Технология ООП: преимущества и недостатки // GitHub URL: https://github.com/Panda-Lewandowski/Object-Oriented-Programming/wiki/Технология-ООП (дата обращения: 12.11.2018).

13. Федеральный закон от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и защите информации» // СПС КонсультантПлюс

14. Фундаментальные принципы объектно-ориентированного программирования // Tproger URL: https://tproger.ru/translations/oop-js-fundamentals/ (дата обращения: 10.11.2018).