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

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

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

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

Добавлен: 26.06.2023

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

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) - свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).

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

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