Файл: Анализ и оценка средств реализации объектно–ориентированного подхода к проектированию экономической информационной системы.pdf
Добавлен: 29.04.2023
Просмотров: 166
Скачиваний: 2
ВВЕДЕНИЕ
Жизнь во время активного развития и повсеместного внедрения новых информационных технологий предоставляет множество преимуществ, но также ужесточает и требования к нам всем. В более жестких условиях конкуренции оказываются не только сами люди, как личности, сотрудники, руководители, но и целые организации и общественные институты. По–настоящему современной компанией сегодня не может считаться та, которая не оборудована по крайней мере минимальным «информационным набором» – простейшей автоматизированной информационной системой. Такая система может использоваться как для автоматизации большинства процессов в компании, так и для выполнения лишь отдельных операций.
Сегодня среди автоматизированных информационных систем плотно укоренились так называемые экономические информационные системы. По сущности это та же информационная система, предназначенная для сбора, хранения и обработки информации. Отличие заключается в том, что система такого типа предназначена для работы с конкретным экономическим объектом, в частности – компанией, производством, учреждением и т.д. Экономические автоматизированные системы производятся серийно и могут устанавливаться в компании в виде уже готового продукта. Кроме того, нередко и индивидуальное проектирование, когда такой проект готовится специально для конкретной организации.
Во второй ситуации сегодня на помощь приходят объектно–ориентированные языки программирования, предоставляющие множество возможностей для создания современных удобных программ с пользовательским интерфейсом. Среди современных языков выделяются несколько флагманов, держащихся на вершине спроса последние годы.
Таким образом цель работы – осуществить анализ и оценку средств реализации объектно–ориентированного подхода к проектированию экономической информационной системы.
Для достижения данной цели выполним следующие задачи:
- рассмотреть сущность объектно–ориентированного подхода;
- охарактеризовать основные категории объектно–ориентированного подхода;
- осуществить анализ и оценку языков C ++, Python, Java, Delphi;
- подвести итоги работы.
Объектом данного исследования выступит объектно–ориентированный подход к проектированию информационных систем, а предметом – непосредственно объектно–ориентированные языки программирования, в частности – C ++, Python, Java.
Структура работы содержит две главы, по два и четыре параграфа соответственно. Кроме того, включены такие структурные элементы как введение, заключение и список использованных источников. В списке источников приведены работы, являющиеся теоретической базой данного исследования – это труды известных ученых, осуществляющих научные изыскания относительно процесса программирования, объектно–ориентированного подхода, конкретных языков программирования и т.д.
1. Общая характеристика объектно–ориентированного подхода к программированию
1.1. Сущность объектно–ориентированного подхода
Языки программирования – это искусственно созданные языки. От естественных они отличаются ограниченным числом «слов» и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику.
Языки программирования – это формальные языки общения человека с ЭВМ, предназначенные для описания совокупности инструкций, выполнение которых обеспечивает правильное решение требуемой задачи. Их основная роль заключается в планировании действий по обработке информации. Любой язык программирования основан на системе понятий, и уже с ее помощью человек может выражать свои соображения.
Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть по крайней мере двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т. п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств
В основе того или иного языка программирования лежит некоторая руководящая идея, оказывающая существенное влияние на стиль соответствующих программ.
Исторически первой была идея процедурного структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые – пятидесятые годы). Типичным примером процедурно–ориентированного языка является Фортран – первый и все еще один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы [14].
По мере прогресса в области вычислительной математики акцент в программировании стал смещаться с процедур в сторону организации данных. Оказалось, что эффективная разработка сложных программ нуждается в действенных способах контроля правильности использования данных. Контроль должен осуществляться как на стадии компиляции, так и при прогоне программ, в противном случае, как показала практика, резко возрастают трудности создания крупных программных проектов. Отчетливое осознание этой проблемы привело к созданию Алгола–60, а позже – Паскаля, Модулы–2, Си и множества других языков программирования, имеющих более или менее развитые структуры типов данных. Логическим следствием развития этого направления стал модульный подход к разработке программ, характеризующийся стремлением «спрятать» данные и процедуры внутри модуля.
Начиная с языка Симула–67, в программировании наметился новый подход, который получил название объектно–ориентированного программирования (ООП). Его руководящая идея заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое – объект. Характерной чертой объектов является инкапсуляция (объединение) данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение. Фактически объектно–ориентированное программирование можно рассматривать как модульное программирование нового уровня, когда вместо во многом случайного, механического объединения процедур и данных акцент делается на их смысловую связь.
Объектно–ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира [14].
Понятие «объект» впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно–ориентированной архитектурой также тесно связаны объектно–ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно–ориентированными языками программирования [14].
1.2. Основные категории объектно–ориентированного подхода
Концептуальной основой объектно–ориентированного подхода является объектная модель. Основными ее элементами являются:
- абстрагирование;
- инкапсуляция;
- модульность;
- иерархия.
Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:
- типизация;
- параллелизм;
- устойчивость [6].
Абстрагирование – это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно–ориентированного проектирования.
Инкапсуляция – это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды. Абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (или, иначе, ограничение доступа) не позволяет объектам–пользователям различать внутреннее устройство объекта [21].
Модульность – это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия – это ранжирование или упорядочение системы абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного класса или нескольких других классов), а примером иерархии объектов являются агрегация.
Типизация – это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо объектов другого или, по крайней мере, управлять таким использованием.
Параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и (или) в пространстве (при перемещении объекта из адресного пространства, в котором он был создан) [9].
Основные понятия объектно–ориентированного подхода: объект и класс.
Объект определяется как осязаемая реальность – предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и, наоборот, относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность – это свойства объекта, отличающие его от всех других объектов.
Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией. Как правило, в объектных и объектно–ориентированных языках операции, выполняемые над данным объектом, называются методами и являются составной частью определения класса.
Класс – это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов – одна из самых сложных задач объектно–ориентированного проектирования [9].
Следующую группу важных понятий объектного подхода составляют наследование и полиморфизм. Понятие полиморфизма может быть интерпретировано, как способность класса принадлежать более чем одному типу Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.
Объектно–ориентированная система изначально строится с учетом ее эволюции. Наследование и полиморфизм обеспечивают возможность определения новой функциональности классов с помощью создания производных классов – потомков базовых классов. Потомки наследуют характеристики родительских классов без изменения их первоначального описания и добавляют при необходимости собственные структуры данных и методы. Определение производных классов, при котором задаются только различия или уточнения, в огромной степени экономит время и усилия при производстве и использовании спецификаций и программного кода.