Файл: Анализ и оценка средств реализации объектно - ориентированного подхода к проектированию экономической информационной системы.pdf

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

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

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

Добавлен: 21.05.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

Основные задачи в процессе выполнения работы:

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

Глава 1. Сущность объектно-ориентированного подхода к построению информационной системы

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

Объектно-ориентированный подход (ООП) использует объектную декомпозицию. При этом структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира [6]. Рассмотрим более подробно ООП.

Понятие "объект" впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой также тесно связаны объектно-ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal. На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования баз данных, в особенности подход "сущность-связь"[6].


Основой ООП является объектная модель. Эта модель состоит из следующих четырех главных элементов:

  1. Абстракция,
  2. Инкапсуляция,
  3. Модульность,
  4. Иерархия.

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

  1. Контроль типов,
  2. Параллелизм,
  3. Персистентность.

Термин «дополнительный элемент» означает полезный, но не существенный компонент объектной модели [1].

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

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

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

Иерархия — это ранжированная или упорядоченная система абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного или нескольких других классов), а иерархии объектов – агрегация [6].


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

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

Персистентность – способность объекта преодолевать временные рамки (т.е. продолжать свое существование после исчезновения своего создателя) или пространственные пределы (т.е. выходить за пределы своего первоначального адресного пространства) [1].

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

Объект определяется как осязаемая реальность (tangible entity) - предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Термины "экземпляр класса" и "объект" являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и наоборот относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность - это свойства объекта, отличающие его от всех других объектов. Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией. Как правило, в объектных и объектно-ориентированных языках операции, выполняемые над данным объектом, называются методами и являются составной частью определения класса.

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

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

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


Важным качеством объектного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Требование согласованности моделей выполняется благодаря возможности применения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы [6].

1.2. Унифицированный язык UML

Модель предметной области может служить основой общего языка для коммуникации в рамках проекта по разработке программного обеспечения. Модель - это набор понятий, существующих в головах у создателей проекта, вместе с названиями (терминами), отношениями и взаимосвязями, отражающими их понимание предмета. Термины и взаимосвязи образуют семантику языка, адаптированного к предметной области, но достаточно точного и для технических нужд разработки. Это та нить, которая соединяет модель с кодом и позволяет ей органично вплетаться в процесс разработки.[5]

Унифицированный язык моделирования UML – язык для определения, визуализации, конструирования и документирования артефактов программных систем, а также для моделирования экономических процессов и других не программных систем. [4]

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


UML это не методология, это унифицированный язык визуального моделирования. Унифицированный процесс (Unified Process, UP) – это методология. Она указывает на исполнителей, действия и артефакты, которые необходимо использовать, осуществить или создать для моделирования программной системы.

UML не привязан к какой-либо конкретной методологии или жизненному циклу. На самом деле он может использоваться со всеми существующими методологиями. UP использует UML в качестве базового синтаксиса визуального моделирования. Следовательно, UP можно рассматривать как предпочтительный метод для UML, поскольку он лучше всего адаптирован к нему. Однако сам UML способен предоставить (и предоставляет) поддержку визуального моделирования другим методам. Конкретным примером сложившегося метода, использующего UML в качестве визуального синтаксиса, является метод OPEN (Object-oriented Process, Environment, and Notation – объектно-ориентированный процесс, среда и нотация).

Неизменная цель UML и UP – способствовать объединению всего лучшего в опыте разработки программного обеспечения последнего десятилетия. Для этого UML и UP унифицируют опыт предшествующих языков визуального моделирования и процессов разработки программного обеспечения наиболее оптимальным образом. [3]

Унификация UML носит не только исторический характер. UML прилагает усилия (и в основном успешно) в унификации нескольких разных областей:

  1. Жизненный цикл разработки: UML предоставляет визуальный синтаксис для моделирования на протяжении всего жизненного цикла разработки программного обеспечения – от постановки требований до реализации.
  2. Области приложений: UML используется для моделирования всех аспектов – от аппаратных встроенных систем реального времени до систем поддержки принятия решений.
  3. Языки реализации и платформы: UML является независимым от языков и платформ. Естественно, он прекрасно поддерживает чистые объектно-ориентированные языки (Smalltalk, Java, C# и др.), но также эффективен и для гибридных объектно-ориентированных языков, таких как C++, и основанных на концепции объектов, таких как Visual Basic. UML также используется для создания моделей, реализуемых на не объектно-ориентированных языках программирования, таких как С.
  4. Процессы разработки: хотя UP и его разновидности, вероятно, являются предпочтительными процессами разработки объектно-ориентированных систем, UML может поддерживать (и поддерживает) множество других процессов разработки ПО.
  5. Собственные внутренние концепции: UML поистине стойко стремится сохранить последовательность и постоянство применения небольшого набора своих внутренних концепций. До сих пор это не всегда удавалось, но в этом направлении наблюдается заметный прогресс по сравнению с предыдущими попытками. [3]