Файл: «Применение объектно-ориентированного подхода при проектировании информационной системы. ».pdf
Добавлен: 26.06.2023
Просмотров: 54
Скачиваний: 3
СОДЕРЖАНИЕ
1.1. Сущность объектно-ориентированного подхода
1.2. Преимущества и недостатки объектно-ориентированного подхода
ГЛАВА 2. АНАЛИЗ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ CASE-СРЕДСТВ
2.1. Характеристика объектно-ориентированных CASE-средств
2.2. Выбор оптимального объектно-ориентированного CASE-средства
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
Методики, используемые при проектировании информационных систем, формировались в течение длительного промежутка времени. Необходимость таких методик проявлялась при разработке сложных программных систем в условиях дефицита времени на разработку.
Первым появился структурный подход, в основе которого лежит алгоритмическая декомпозиция и особое внимание уделяется порядку происходящих событий. Однако, как показала практика, модель, спроектированная в соответствии с данным подходом, адекватно не отражает реальный мир. К тому же сложность систем все возрастала и требования надежности к ним повышались. Для решения данных проблем был разработан новый подход на основе архитектуры взаимодействия объектов.
Цель работы состоит в определении сути объектно-ориентированного подхода при проектировании информационной системы и выборе оптимального объектно-ориентированного CASE-средства.
В соответствии с поставленной целью задачами работы являются:
- определение сущности объектно-ориентированного подхода;
- рассмотрение преимуществ и недостатков объектно-ориентированного подхода;
- определение сущности CASE-средства;
- характеристика объектно-ориентированных CASE-средств;
- выбор оптимального объектно-ориентированного CASE-средства на основе анализа существующих.
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ
Сущность объектно-ориентированного подхода
При проектировании информационной системы может быть использован структурный или объектно-ориентированный подход, между которыми имеются принципиальные отличия в следующих аспектах:
- принцип декомпозиции и структурной организации элементов (компонентов, модулей) системы.
Так при использовании структурного подхода выполняется функциональная (процедурная, алгоритмическая) декомпозиция системы, т. е. система представляется в виде дерева взаимосвязанных функций: на высшем уровне она представляется единым целым с наивысшей степенью абстракции и по мере детализации разбивается на функциональные компоненты с более конкретным содержанием.
При использовании же объектно-ориентированного подхода система разбивается на набор объектов, соответствующих объектам реального мира и взаимодействующих между собой путем посылки сообщений;
- структурная организация внутри модулей системы.
В структурном подходе модуль представляется в виде дерева функций, иерархически связанных между собой отношением композиции, т. е. функция, состоит из подфункций, подфункция из подподфункций и т.д.[1]
В объектно-ориентированном подходе модуль представляется в виде ориентированного графа, т.е. иерархия выстраивается с использованием двух отношений: композиции и наследования, при этом «объект-часть» может включаться сразу в несколько «объектов-целое»;
- место хранения атрибутивных данных и поведения.
В функционально-ориентированных системах функции и данные хранятся отдельно.
В объектно-ориентированных - в объекте объединяются как атрибутивные данные (характеристики, свойства), так и поведение (функции, методы).
Основные отличия существующих подходов к проектированию информационной системы представлены на рисунке 1.1.
Рисунок 1.1. Подходы к проектированию информационной системы
Таким образом, под объектно-ориентированным проектированием понимают методологию проектирования, соединяющую в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
Именно объектно-ориентированная декомпозиция отличает объектно-ориентированное проектирование от структурного, т.е. логическая структура системы при объектно-ориентированном подходе отражается абстракциями в виде классов и объектов, а при структурном - алгоритмами.[2]
Наиболее популярными методологиями, поддерживающими объектно-ориентированный подход являются:
- унифицированный процесс (Unified Process, UP);
- экстремальное программирование (eXtreme Programming, XP);
- гибкое моделирование (Agile Modeling, AM).
Базовым средством документирования результатов проектирования систем посредством этих методологий является Унифицированный язык моделирования – UML, создателями которого являются Гради Буч и Джеймс Рамбо, преследовавшие при его разработке следующие цели:
- предоставить пользователям готовый к использованию выразительный язык визуального моделирования, позволяющий разрабатывать осмысленные модели и обмениваться ими;
- предусмотреть механизмы расширяемости и специализации для расширения базовых концепций;
- обеспечить независимость от конкретных языков программирования и процессов разработки;
- язык должен быть одновременно точным и доступным для понимания.[3]
UML был создан для определения, визуализации, проектирования и документирования программных систем, при этом не является языком программирования, однако на основании UML-моделей возможна генерация кода.
UML содержит стандартный набор диаграмм для моделирования:
- диаграммы вариантов использования – для моделирования бизнес-процессов организации (требований к системе);
- диаграммы классов – для моделирования статической структуры классов системы и связей между ними;
- диаграммы поведения системы;
- диаграммы взаимодействия – для моделирования процесса обмена сообщениями между объектами (диаграммы последовательности; кооперативные диаграммы;
- диаграммы состояний – для моделирования поведения объектов системы при переходе из одного состояния в другое;
- диаграммы деятельностей – для моделирования поведения системы в рамках различных вариантов использования или моделирования деятельностей;
- диаграммы реализации: диаграммы компонентов – для моделирования иерархии компонентов системы;
- диаграммы размещения – для моделирования физической архитектуры системы (рисунок 1.2).
Рисунок 1.2. Канонические диаграммы языка UML[4]
Важным качеством объектно-ориентированного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации, благодаря возможности применения абстрагирования, модульности и полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы.
Концептуальной основой объектно-ориентированного подхода является объектная модель, основными понятиями которой являются: объекты и атрибуты, целое и часть, классы и экземпляры.
Объект представляет собой абстракцию реальной или воображаемой сущности с четко выраженными концептуальными границами, индивидуальностью (идентичностью), состоянием и поведением. В объектно-ориентированном подходе абстракция – это модель сущности, описывающая ее свойства и поведение.
Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими (динамическими) значениями каждого из этих свойств.
Поведение характеризует воздействие объекта на другие объекты и наоборот с точки зрения изменения состояния этих объектов и передачи сообщений, т.е. поведение объекта полностью определяется его действиями.
Для концептуальной группировки однотипных объектов в объектно-ориентированном подходе используется понятие «класс». Класс – это множество объектов, имеющих общую структуру и поведение, т.е. класс представляет собой шаблон, на основе которого генерируются однотипные объекты.
Каждый класс и соответственно объект характеризуются строго определенным набором атрибутов и методов. Текущие значения атрибутов четко определяют текущее состояние объекта. Набор методов и их алгоритмическая реализация определяют поведение объекта.[5]
Операции, выполняемые над объектом, называются методами и являются составной частью определения класса.
Поведение или функционирование объекта определяется как последовательная смена состояний.
Если существует некоторое множество объектов, находящихся во взаимодействии друг с другом, то для каждого из них все прочие объекты из этого множества являются частью внешней среды.
Объекты воздействуют друг на друга посредством обмена сообщениями.
Основными механизмами объектной модели являются:
- абстрагирование (abstraction) - выделение существенных характеристик объекта, отличающих его от всех других видов объектов - четко определяющих его концептуальные границы с точки зрения дальнейшего рассмотрения и анализа;
- инкапсуляция (encapsulation) - отделение друг от друга отдельных элементов объекта, определяющих его устройство и поведение в целях изолирования интерфейса объекта, отражающего его внешнее поведение, от внутренней реализации объекта в целях защиты кода и данных в некоторой сущности: объекте или модуле. Инкапсуляция прямо связана с требованием повышения надежности систем, в противном случае объекты могут произвольно менять данные других объектов.
Следует отметить, абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция - не позволяет объектам-пользователям различать внутреннее устройство объекта;[6]
- наследование (inheritance) - построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов. Целью наследования является упорядочивание типов сущностей, то есть классификация сущностей в системе, передача свойств и структуры суперкласса своим подклассам (что позволяет существенно экономить код), определение направления развития классов (что существенно облегчает разработку иерархии классов);
- полиморфизм (polymorphism) - способность класса принадлежать более чем одному типу, что позволяет определить единственное имя операции или атрибута более чем в одном классе, причем в каждом из них ему могут соответствовать различные реализации, а также устанавливать аналогии между методами различных классов.
Следует отметить, что, как правило, полиморфизм рассматривают как составную часть механизма наследования - считается, что полиморфными могут быть только свойства (методы) подклассов;
- модульность (modularity) - возможность декомпозиции системы на ряд внутренне связных, но слабо связанных между собой модулей;
- иерархия (hierarchy) - ранжированная или упорядоченная система абстракций, расположение их по уровням;
- типизация (typing) - ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов, что позволяет защититься от использования объектов одного класса вместо другого;
- параллелизм (concurrency) - свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой;
- устойчивость (persistence) - свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Таким образом, объектно-ориентированная система строится с учетом ее эволюции. Наследование и полиморфизм обеспечивают возможность определения новой функциональности классов с помощью создания потомков базовых классов, которые наследуют характеристики родительских классов без изменения их первоначального описания и добавляют при необходимости собственные структуры данных и методы.
В объектно-ориентированных системах декомпозиция системы на объекты осуществляется с учетом удобства последующего детального анализа, разработки и внедрения системы, при этом критерием выделения компонентов системы является минимизация числа аппаратно-зависимых ее компонент, что позволяет снизить затраты на адаптацию системы при переносе ее на другую аппаратную платформу, а также уменьшить количество неиспользуемых компонент при работе на конкретной платформе.