Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Сравнительный анализ программных продуктов, реализующих объектно-ориентированный подход).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

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

- разработка диаграмм объектов, показывающие взаимосвязи с другими объектами;

- разработка внутренней структуры программного продукта .

Базовыми составляющими объектно-ориентированного подхода являются:

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

- унифицированный язык моделирования – UML, созданный Гради Бучем, Джеймсом Рамбо и Айваром Якобсоном в 1997 году, – язык для визуализации, спецификации, конструирования и документирования программных систем[20].

Словарь UML включает три вида строительных блоков: диаграммы, сущности и связи.

Сущности – это абстракции, которые являются основными элементами модели, связи соединяют их между собой, а диаграммы группируют представляющие интерес наборы сущностей[21].

Следует отметить, что UML не является языком программирования, однако на основании UML-моделей возможна генерация кода[22].

UML содержит стандартный набор диаграмм для моделирования:

- диаграммы классов – для моделирования статической структуры классов системы и связей между ними (Приложение 1);

- диаграммы взаимодействия – для моделирования процесса обмена сообщениями между объектами: диаграммы последовательности; диаграммы кооперации, диаграммы деятельности (Приложение 2);

- диаграммы состояний – для моделирования поведения объектов системы при переходе из одного состояния в другое;

- диаграммы вариантов использования – для моделирования бизнес-процессов организации (требований к системе);

- диаграммы поведения системы;

- диаграммы компонентов – для моделирования иерархии компонентов системы;

- диаграммы размещения – для моделирования физической архитектуры системы (рисунок 4).

Рисунок 4. Статическое и динамическое представление модели информационной системы в диаграммах UML[23]

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


Преимущества и недостатки объектно-ориентированного подхода

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

Так среди преимуществ следует выделить:

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

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

- объектная модель ориентирована на человеческое восприятие реальности, а не на компьютерную реализацию;

- объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно-ориентированных языков программирования[25];

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

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

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

- локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения;

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

- объектно-ориентированный подход позволяет легче организовать параллельные вычисления, поскольку каждый объект обладает собственными значениями характеристик (атрибутов) и поведением, за счет чего можно добиться его автономной работы[28];


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

К недостаткам объектно-ориентированного подхода относятся следующие:

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

- объектно-ориентированные проекты и их программная реализация на объектно-ориентированном языке требуют больших временных затрат и приводят к построению более сложной и требовательной к ресурсам программы;

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

- сложность проектирования и документирование классов – задача более трудная, в отличие от процедур и модулей;

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

- обработка сообщения требует не одного, а многих методов, которые могут быть описаны в разных классах;

- язык UML включает более 100 различных условных обозначений, что требует наличие определенного уровня квалификации у специалистов[30];

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

- некоторое снижение производительности функционирования программного обеспечения и высокие начальные затраты[31].

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


ГЛАВА 2. АНАЛИЗ СРЕДСТВ РЕАЛИЗАЦИИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА

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

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

CASE-средства в зависимости от типа используемой модели делятся на:

- структурные, основанные на методах структурного и модульного программирования;

- объектно-ориентированные;

- комбинированные, поддерживающие одновременно обе модели[33].

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

Среди средств реализации объектно-ориентированного подхода, т.е. CASE-средств для построения диаграмм UML в данной работе будут рассмотрены следующие:

- StarUML;

- Microsoft Visio;

- Rational Rhapsody;

- Flexberry Designer;

- MagicDraw.

StarUML - программный инструмент моделирования, который ориентирован на UML версии 1.4 и поддерживает одиннадцать различных типов диаграмм, принятых в нотации UML 2.0[34]. Это пакет с открытым программным кодом, написанный на Delphi и работающий под управлением Windows.

Среда разработки StarUML превосходно настраивается в соответствии с требованиями пользователя и имеет высокую степень расширяемости, особенно в области своих функциональных возможностей[35].

StarUML имеет следующие возможности.

- точное соответствие стандарту UML, строго придерживается спецификации UML, разработанной OMG для моделирования программ;

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

- истинная поддержка MDA (модельно-настраиваемая архитектура) - действительно поддерживает профили UML, что максимизирует расширяемость UML, делая моделирование на UML применимым даже в области финансов, обороны, электронной коммерции, страховании и аэронавтике. Имеется возможность создавать платформенно независимые модели (PIM), а платформенно зависимые модели (PSM) и исполняемые коды могут быть всегда автоматически сгенерированы на их основе;


- использует концептуальный подход, который применим к любым методологиям/процессам;

- превосходная расширяемость - все функции StarUML реализованы в соответствии с Microsoft COM. Любой язык, который поддерживает COM, может использоваться, чтобы вызывать StarUML или разрабатывать интегрированные дополнения;

- программную функцию проверки модели;

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

StarUML имеет удобный и интуитивно понятный интерфейс, который однако не может похвастаться красивыми разноцветными "пластмассовыми" элементами управления, как java-программы (рисунок 5).

Рисунок 5. Интерфейс StarUML[37]

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

Microsoft Visio обеспечивает следующие возможности:

- создание быстро и просто понятных и информативных диаграмм, используя предопределенные фигуры Visio Professional, drag-and-drop и мастера;

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

- проектирование, документирование и анализ бизнес-процессов, используя шаблоны, поддерживающие управление бизнес-процессами (BPM);

- интеграция с Microsoft Office Project, что позволяет, например, импортировать оттуда задачи для членов команды;

- создание UML-диаграммы статической структуры программного обеспечения и проведение обратного проектирования;

- документирование структуры существующих веб-сайтов, помогая таким образом в разработке, реализации или интеграции веб-приложений;

- создание отчетов;

- совместная работа и командное создание проектов, отслеживание комментариев членов команды;

- связывание диаграммы с данными и обновление их в реальном времени.

- возможно форматирование, масштабирование, вращение диаграмм и ассоциирование их с записями;

- создание диаграмм баз данных, инженерных диаграмм, сетевых, диаграмм разработки программного обеспечения и веб-приложений;

- поддержка множества локальных языков;