Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Применение объектно-ориентированного подхода при проектировании информационной системы (Концепция подхода)

Содержание:

ВВЕДЕНИЕ

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

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

Цель курсовой работы – исследовать объектно-ориентированный подход проектирования информационной системы.

Задача курсовой работы:

  • Рассмотреть концепции объектно-ориентированного подхода;
  • Проанализировать преимущества и недостатки данного подхода;
  • Исследовать три основных средства реализации объектно-ориентированного подхода.

Вопросам исследования объектно-ориентированного подхода проектирования информационной системы посвящены работы таких авторов как: Бородакий Ю. В., Лободинский Ю. Г., Кузин А. В., Левонисова С. В. и других.

Данная курсовая работа состоит из введения, трёх глав, заключения, списка использованных источников.

Список использованных источников включает 0 трудов различных авторов. Данные источники представляются надёжными, так как они изданы известными издательствами, размещены на сайтах электронных библиотек ВУЗов России, рекомендованы методическими указаниями по изучению дисциплины «Методы и средства проектирования информационных систем и технологий».

1. Концепция подхода

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

Свойства информационных систем [6]:

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

Процессы в информационной системе [7]:

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

Объектно-ориентированный подход, как и функционально-ориентированный, предполагает декомпозицию информационной системы. Декомпозиция – это разделение целого (большой задачи) на части (подзадачи). Основное отличие в том, что при функциональном подходе происходит декомпозиция процессов обработки, а в объектно-ориентированном – объектов. В ООП выделяют классы объектов. Каждый класс содержит однородные объекты. Объекты одного класса имеют идентичный набор методов, описанных в данном классе.

Объект — предмет или явление, имеющее четко определенное поведение и обладающие состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс [3].

Класс – это множество объектов, связанных общностью структуры и поведения [6].

Рис. 1. Структура класса в ООП

В объектно-ориентированном подходе выделяют несколько свойств объектов [1]:

  • Инкапсуляция. Скрытие информации. Т.е. состав и структура атрибутов объекта защищена от внешнего вмешательства или неправильного использования;
  • Абстрагирование. Возможность объединять классы в отдельные группы, выделяя общие, значимые для них всех характеристики (общие поля и общее поведение). Собственно, абстрагирование и есть следствие наследования: базовые классы не всегда имеют свою проекцию на объекты реального мира, а создаются исключительно с целью выделить общие черты целой группы объектов;
  • Наследование. Свойство, характеризующее наличие иерархической связи классов объектов. Т.е. существуют родительские и дочерние классы. Все методы родительского класса автоматически присваиваются дочерним. Некоторые языки программирования поддерживают множественное наследование, то есть у класса могут быть несколько родительских классов;
  • Полиморфизм – возможность выбора объектом в ответ на получаемые им сообщения какого-либо метода из множества методов в зависимости от того, какое пришло сообщение;
  • Интерфейс. В некоторых языках программирования (C#, Java) понятие интерфейса выделено явно - это не только открытые методы и свойства самого класса. Такие языки, как правило, не поддерживают множественного наследования и компенсируют это тем, что любой объект может иметь один базовый объект и реализовывать любое количество интерфейсов. Интерфейс в их интерпретации – это подобие абстрактного класса, содержащего только описание (сигнатуру) открытых методов и свойств. Реализация интерфейса ложится на плечи каждого класса, который собирается его поддерживать. Один и тот же интерфейс могут реализовывать классы абсолютно разных иерархий, что расширяет возможности полиморфизма.

Рис. 2. Пример наследования

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

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

2. Преимущества и недостатки подхода

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

Несомненным достоинством функционального подхода является проектирование информационной системы «сверху-вниз», при которой каждый функциональный блок может быть декомпозирован в множество подфункций. Благодаря этому реализуется модульное проектирования ИС.

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

Объектно-ориентированный подход обладает следующими преимуществами [7]:

  • Объектная декомпозиция позволяет создавать модели меньшего размера путём использования общих механизмов;
  • Существенно повышается уровень унификации разработки и пригодность для повторного использования;
  • Заметно легче организовать параллельные вычисления, так как каждый объект обладает собственными значениями атрибутов, что позволяет организовать его автономную работу;
  • Объектная модель более естественная, так как ориентирована на человеческое восприятие мира.

Но данный подход не идеален и имеет также ряд недостатков [1]:

  • Некоторое снижения быстродействия за счёт более сложной организации программной системы;
  • Более трудное документирование классов нежели процедур и модулей;
  • Высокие начальные затраты. Подход не обеспечивает мгновенной отдачи. Только после двух-трёх проектов и накопления повторно используемых компонентов заметен эффект;
  • ООП порождает огромные иерархии классов, что приводит к тому, что функциональность расползается или, как говорят, размывается по базовым и производным членам класса, и отследить логику работы того или иного метода становится сложно.

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

3. Основные средства реализации объектно-ориентированного подхода

3.1. Объектно-ориентированные языки

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

Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ [6]. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами. Язык программирования отличается от естественных языков тем, что предназначен для управления ЭВМ, в то время как естественные языки используются, прежде всего, для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений [4].

Как правило, язык программирования существует в нескольких, но существенно отличающихся видах [7]:

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

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

Первым таким языком стал Simula 67, разработанный в конце 60-х годов в Норвегии. Однако современники были не готовы воспринять ценности языка, и он не выдержал конкуренции с другими языками, прежде всего с языком Fortran.

Сейчас же существует много объектно-ориентированных языков и их количество постоянно растёт. Но самыми популярными являются C++, C#, Java, PHP, Python.

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

PHP и Python используются для разработки веб-ресурсов, позволяя создавать динамичные сайты.

Объектно-ориентированным языкам присущи следующие характеристики [3]:

  • абстрактные типы данных;
  • скрытие реализации внешнего интерфейса (инкапсуляция);
  • наследование свойств и поведения объектов;
  • динамическое связывание имени со значением;
  • полиморфизм имен сообщений;
  • автоматическое управление памятью.

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

3.2. Объектно-ориентированная база данных

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

База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей [5].

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

Предметная область - часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации [4]. Предметная область представляется множеством фрагментов, например, предприятие - цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область.

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

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

Таким образом, система управления базой данных (СУБД) - важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.

Основные функции СУБД [4]:

  • управление данными во внешней памяти (на дисках);
  • управление данными в оперативной памяти;
  • журнализация изменений и восстановление базы данных после сбоев;
  • поддержание языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты (см. рис. 3) [5]:

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

Рис. 3. Компоненты СУБД

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

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

Обязательные характеристики [5]:

  • Поддержка сложных объектов. В системе должна быть предусмотрена возможность создания составных объектов за счет применения конструкторов составных объектов. Необходимо, чтобы конструкторы объектов были ортогональны, то есть любой конструктор можно было применять к любому объекту;
  • Поддержка индивидуальности объектов. Все объекты должны иметь уникальный идентификатор, который не зависит от значений их атрибутов;
  • Поддержка инкапсуляции. Корректная инкапсуляция достигается за счет того, что программисты обладают правом доступа только к спецификации интерфейса методов, а данные и реализация методов скрыты внутри объектов;
  • Поддержка типов и классов. Требуется, чтобы в ООБД поддерживалась хотя бы одна концепция различия между типами и классами. (Термин «тип» более соответствует понятию абстрактного типа данных. В языках программирования переменная объявляется с указанием её типа. Компилятор может использовать эту информацию для проверки выполняемых с переменной операций на совместимость с её типом, что позволяет гарантировать корректность программного обеспечения. С другой стороны, класс является неким шаблоном для создания объектов и предоставляет методы, которые могут применяться к этим объектам. Таким образом, понятие «класс» в большей степени относится ко времени исполнения, чем ко времени компиляции.);
  • Поддержка наследования типов и классов от их предков. Подтип, или подкласс, должен наследовать атрибуты и методы от его супертипа, или суперкласса, соответственно;
  • Перегрузка в сочетании с полным связыванием. Методы должны применяться к объектам разных типов. Реализация метода должна зависеть от типа объектов, к которым данный метод применяется. Для обеспечения этой функциональности связывание имен методов в системе не должно выполняться до времени выполнения программы;
  • Вычислительная полнота. Язык манипулирования данными должен быть языком программирования общего назначения;
  • Набор типов данных должен быть расширяемым. Пользователь должен иметь средства создания новых типов данных на основе набора предопределенных системных типов. Более того, между способами использования системных и пользовательских типов данных не должно быть никаких различий.

Для управления такой базой используются объектно-ориентированные системы управления базами данных (ООСУБД). Данные системы позволяют работать с объектами базы данных также как с объектами в объектно-ориентированных языках программирования.

Для того, чтобы СУБД являлась объектно-ориентированно, она должна обеспечивать следующий функционал [4]:

  • Долговременное хранение;
  • Использование внешней памяти;
  • Параллелизм;
  • Восстановление;
  • Нерегламентированные запросы.

Рис. 4. Пример классов в ООБД

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

3.3. Объектно-ориентированная среда программирования

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

Использование IDE для разработки программного обеспечения является прямой противоположностью способу, в котором используются несвязанные инструменты, такие как текстовый редактор, компилятор, и т. п. Интегрированные среды разработки были созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простыми пользовательскими интерфейсами [6]. Это позволяет разработчику сделать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки. Однако так как IDE является сложным программным комплексом, то среда разработки сможет качественно ускорить процесс разработки ПО лишь после специального обучения. Для уменьшения барьера вхождения многие достаточно интерактивны, а для облегчения перехода с одной на другую интерфейс у одного производителя максимально близок, вплоть до использования одной IDE.

IDE обычно представляет собой единственную программу, в которой проводится вся разработка. Она, как правило, содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель интегрированной среды заключается в том, чтобы объединить различные утилиты в одном модуле, который позволит абстрагироваться от выполнения вспомогательных задач, тем самым позволяя программисту сосредоточиться на решении собственно алгоритмической задачи и избежать потерь времени при выполнении типичных технических действий (например, вызове компилятора) [7]. Таким образом, повышается производительность труда разработчика. Также считается, что тесная интеграция задач разработки может далее повысить производительность за счёт возможности введения дополнительных функций на промежуточных этапах работы. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.

Большинство современных IDE являются графическими. Но первые IDE использовались ещё до того, как стали широко применяться операционные системы с графическим интерфейсом — они были основаны на текстовом интерфейсе с использованием функциональных и горячих клавиш для вызова различных функций (например, Turbo Pascal, созданный фирмой Borland).

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

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

Среда разработки включает в себя [4]:

  • текстовый редактор;
  • компилятор и/или интерпретатор;
  • средства автоматизации сборки;
  • отладчик.

Рис. 5. Скриншот среды программирования IntelliJ IDEA

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

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

А средства автоматической сборки позволяют без особого труда собрать законченный проект в файл-инсталлятор для последующего использования готового продукта на других компьютерах.

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

ЗАКЛЮЧЕНИЕ

Объектно-ориентированный подход проектирования информационной системы, обладая описанными выше преимуществами, становится всё более популярным в наши дни.

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

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

Модульность всей системы позволяет удобно разделить её и разрабатывать параллельно без оказания какого-либо ущерба другим модулям.

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

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

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Бородакий Ю. В., Лободинский Ю. Г. Эволюция информационных систем (современное состояние и перспективы). — М.: Горячая линия - Телеком, 2014. — 368 с.
  2. Бодров О.А., Медведев Р.Е. Предметно-ориентированные экономические информационные системы. — М.: Горячая линия - Телеком, 2013. — 244 с.
  3. Вендров А. М. Проектирование программного обеспечения экономических информационных систем: Учебник. – 2-е изд., перераб. И доп. – М.: Финансы и Статистика, 2006 – 544 с.
  4. Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2012. — 484 с.
  5. Кузин А. В., Левонисова С. В. Базы данных. М: Издательство: Академия, 2012. – 398 с.
  6. Проектирование экономических информационных систем: Учебник / Г. Н. Смирнова, А. А. Сорокин, Ю. Ф. Тельнов; под ред. Ю. Ф. Тельнова. – М.: Финансы и Статистика, 2012. – 512 с.
  7. Уткин В. Б. Информационные системы в экономике: Учебник для студ. высш. учеб, заведений / В. Б. Уткин, К. В. Балдин. — М.: Издательский центр «Академия», 2011. — 288с.