Файл: ПРОГРАММНЫЕ ПРОДУКТЫ ДЛЯ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ.pdf
Добавлен: 04.04.2023
Просмотров: 196
Скачиваний: 1
2. Инкапсуляция – ограничение доступа – скрытие отдельных элементов реализации не влияющих на его основные характеристики в целом.
Ограничения доступа используются для:
• Реализация – механизмы абстракции внутренней реализации.
• Интерфейс – основные характеристики состояния и поведения;
Ограничивая доступ, таким образом, программист может добиться:
• Простоты внедрения объектов.
• Легкости построения поэтапной системы, независимо от конкретной реализации используемой абстракции;
Инкапсуляция – это сочетание абсолютно всех свойств объекта в одной абстракции, а также возможность ограничения доступа к реализации этих свойств.
3. Иерархия – система ранжирования абстракции.
Иерархия предполагает использование иерархии в разработке программного обеспечения.
Наиболее важным механизмом иерархии [10] общей / частной является наследования. Наследование – отношения между абстракциями, то есть, один из них использует функциональную или структурную часть другой (или простое и множественное наследование).
4. Модульность – разработка программной системы, направленной на ее реализации в виде независимых модулей. Во время разложения системы необходимо объединить логически связанные части, чтобы уменьшить внешние соединения между модулями.
5. Параллелизм – это когда несколько абстракций в одно и то же время находятся в активном состоянии, то есть, выполняют различные операции. Необходимо для ряда задач, где решение требует одновременного осуществления рабочих процессов.
6. Стабильность – способность объекта существовать во времени и адресном пространстве программы, независимо от процесса его породившем.
Основными понятиями, с которыми оперирует объектно-ориентированный подход являются понятия:
- классы
- объекты
Под объектом в ООП – представляется отдельно реализуемая часть предметной области. Программа состоит из объектов взаимодействующих через передачу сообщений.
Объект характеризуется характеристиками конкретных значений из перечня всех возможных свойств данного объекта. Каждый объект, приняв сообщение, обязан определенным образом «среагировать» на них, выполнив определенные действия для сообщения.
Поведение объектов характеризует набор ответов на получаемые сообщения и зависит от состояния объекта.
Набор свойств функционирования не изменяется, а только изменяются конкретные значения свойств.
Если объект обладает некоторым состоянием, то, соответственно, возникает необходимость в получении информации о состоянии. Для приобретения такой информации объекту посылается запрос. В ответ на это сообщение объект должен переслать требуемую информацию. В этом случае говорят, что над объектом проведена операция селекции.
Объекты, обладающие похожим поведением и состоянием, образуют класс. Индивидуальность – свойство объекта, которое отличает его от всех других объектов группы.
Возможные операции над объектами (рис.3) [8]:
Рисунок 3. Типы операций над объектом
- создание – операция над объектом на языке программирования высокого уровня;
- модификация – операция над объектом на языке программирования высокого уровня;
- уничтожение – операция над объектом на языке программирования высокого уровня;
- селекция – это возможность для определения состояния – операция над объектом на языке программирования высокого уровня;
- итерация – возможность прикоснуться к содержимому объекта по частям в определенной последовательности.
Все сообщения воспринимаемые объектом могут вызвать выполнение одной или нескольких операций. А далее выполняя объектную декомпозицию, будут установлены отношения между объектами, которые могут быть:
1. Один объект передает сообщение другому, в этом случае подразумевают, что они находятся в отношении использования (рис.4).
Рисунок 4. Типы отношений между объектами
2. Между объектами может существовать отношение включения – первый объект включает второй (объект является результатом декомпозиции более сложного объекта).
Класс – это тип, описывающий множество возможных структур данных, называемых экземплярами (instances) класса. Экземпляр класса конкретен – это структура данных, размещаемая в памяти компьютера и обрабатываемая программой (рисунок 5).
Основные средства разработки классов (рисунок 6).
Наследование. Базовый класс часто называют родителем, а производный – потомком. Механизм наследования обеспечивает классу-потомку возможность использования полей и методов одного или нескольких родительских классов.
Рисунок 5. Соответствие объекта-абстракции классам объектам-переменным
Простой полиморфизм. Создавая иерархии классов можно обнаружить, что некоторые характеристики объектов, сохраняя название, изменяются по сути. Полиморфизм называют простым, а методы, имеющие одинаковое название – статически полиморфными методами. Объединение полиморфных методов с одним именем для иерархии классов образует единый полиморфный метод иерархии.
Рисунок 6. Иерархия классов при различных видах наследования
Наиболее популярными методологиями, поддерживающими объектно-ориентированный подход, в настоящий момент являются:
- Унифицированный процесс (Unified Process, UP);
- Экстремальное программирование (eXtreme Programming, XP);
- Гибкое моделирование (Agile Modeling, AM).
Базовым средством фиксации (документирования) результатов проектирования систем посредством этих методологий является Унифицированный язык моделирования (Unified Modeling Language, UML).
В результате изучения вопросов первой главы, связанной с теоретическими аспектами объектно-ориентированного подхода при проектировании информационных систем, удалось выделить следующие преимущества такого подхода:
1. Описание системы в виде объектов в большей степени соответствует содержательному смыслу предметной области.
2. Сущности реального мира, как правило, обладают поведением, что для объектно-ориентированного проектирования отражается путем определения методов класса. Данные структурного подхода (атрибуты) и алгоритмы (методы) отделены друг от друга.
3. Объединение атрибутов и методов в объекте класса, благодаря инкапсуляции, обеспечивает большую внутреннюю и внешнюю зависимость между компонентами системы. Это облегчает решение следующих проблем:
• помогает адаптировать систему к изменениям в существующих или появление новых требований;
• позволяет повторное использование компонентов.
4. Объектно-ориентированный подход облегчает организацию параллельных вычислений, так как каждый объект имеет свои собственные значения свойств (атрибутов) и поведение.
5. CASE-инструменты поддерживают объектно-ориентированный подход, основанный на информации об объектах позволяя достичь более высокой степени автоматизации генерации кода.
ГЛАВА 2. ПРОГРАММНЫЕ ПРОДУКТЫ ДЛЯ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
Основными компонентами объектно-ориентированного подхода являются:
- унифицированный процесс;
- унифицированный язык моделирования;
- шаблоны проектирования.
Унифицированный процесс создания информационной системы – это процесс разработки, обеспечивающий упорядоченный подход к распределению задач и обязанностей в организации-разработчике [9]. Унифицированный процесс охватывает весь жизненный цикл информационной системы, начиная с определения требований и заканчивая техническим обслуживанием, и представляет собой обобщенную структуру (шаблон), которую можно применять для разработки и обслуживания широкого спектра информационных систем.
Неотъемлемой частью унифицированного процесса является UML (унифицированный язык моделей) для определения, визуализации и проектирования моделей информационных систем в виде диаграмм на основе объектно-ориентированного подхода [29].
На этапах анализа и проектирования часто используются так называемые шаблоны проектирования. Шаблон – это именованная пара проблема / решение, содержащая готовое обобщенное решение типичной проблемы [13]. Как правило, шаблон помимо текстового описания также содержит одну или несколько диаграмм UML (например, диаграммы классов, последовательности и / или сообщения), графически иллюстрирующих состав и структуру классов, а также особенности их взаимодействия в решении поставленной задачи. Шаблоны разрабатываются опытными специалистами и являются проверенными, эффективными (иногда оптимальными) решениями. Использование шаблонов может значительно сократить расходы и улучшить качество разработки программного обеспечения.
Выделение существенных свойств системы (для конкретной предметной области), а также построение модели, отображающей эти свойства, возможно с использованием языка UML (Unified Modeling Language).
С помощью метода объектно-ориентированного анализа возможно описывать сложные реальные системы наиболее подходящим способом. Но при увеличении сложности системы становится необходимо использовать хорошую технологию моделирования.
Для этого стоит воспользоваться "стандартной" технологией – унифицированным языком моделирования (Unified Modeling Language, UML), который является графическим языком для визуализации, проектирования, спецификации документирования систем.
С помощью UML разрабатывают подробную модель проектируемой системы, отображающую не только ее концепцию, но и конкретные будущие особенности реализации.
В рамках UML-модели все представления о системе фиксируются в виде специальных графических конструкций, получивших название диаграмм.
Система – совокупность управляемых взаимосвязанных подсистем, которых объединили с общей целью.
Система – это набор подсистем, описываемых с помощью совокупности моделей и организованных для достижения конкретной цели, возможно, с различных точек зрения.
Подсистема – это совокупность элементов, часть из которых задает спецификацию поведения других элементов.
Подсистема – это система, функционирование которой не зависит от сервисов других подсистем. Программная система представляется в виде совокупности относительно независимых подсистем. Также определяются взаимодействия между подсистемами.
Модель – объект, отображающий наиболее значимые для конкретной задачи характеристики системы. Модели бывают разные – нематериальные и материальные, естественные и искусственные, математические и декоративные.
Диаграмма – графическое представление множества элементов. Чаще всего изображается в виде графа с вершинами (сущностями) и ребрами (отношениями). Пример диаграмм: блок-схема, схемы монтажа оборудования, дерево файлов и каталогов на диске и т.д.. Рисунок воспринимается легче, чем текст.
С помощью диаграмм можно представить информационную систему с различных точек зрения.
Одна из диаграмм, например, может описывать изменение состояний системы в процессе ее работы. Другая – взаимодействие пользователя с системой. Третья – соотношение между собой элементов системы и т. д. Сложную информационную систему нужно представлять в виде набора независимых моделей-диаграмм. Причем ни одна из них не будет достаточной для описания системы и получения полного представления о ней, т.к. каждая будет сфокусирована на каком-то определенном аспекте функционирования системы и выражать разный уровень абстракции. Каждая модель это некоторая определенная, частная точка зрения на проектируемую систему.
Набор диаграмм будет составлять модель системы и наиболее полно будет ее описывать.
Виды диаграмм:
UML 1.5 определял двенадцать типов диаграмм, разделенных на три группы:
• пять визуализируют поведенческие аспекты системы;
• четыре типа диаграмм изображают статическую структуру приложения;
• три представляют физические аспекты функционирования системы (диаграммы реализации).
Широко применяются следующие виды диаграмм:
• активности;
• классов;
• прецедентов;
• последовательностей;
• объектов;
• состояний;
• взаимодействия;
• развертывания.
Существует много программных продуктов, которые помогают реализовывать визуальное проектирование и поддерживают объектно-ориентированный подход, к ним относятся:
- Rational Rose
- Microsoft Visio
- Sybase PowerDesigner
- Case Complete
- Artiso Visual Case
- Magic Draw
- Sparx Enterprise Architect
Каждый из программных продуктов позволяет разрабатывать различные варианты UML диаграмм, но имеет свои достоинства и недостатки. Остановимся подробно на первых трех программных продуктах.
Rational Rose (рисунок 7) – CASE-средство, разработанное компанией Rational Software Corporation (США). Rational Rose предназначено для автоматизации этапов анализа и проектирования информационных систем, а также выпуска проектной документации [2,3]. Основу Rational Rose составляет объектно-ориентированный анализ и язык UML.