Файл: Применение объектно-ориентированного подхода при проектировании информационной системы.pdf
Добавлен: 29.04.2023
Просмотров: 319
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. ОСНОВЫ ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
1.1 Этапы проектирования информационных систем
1.2 Основные принципы проектирования информационных систем
1.3 Классификация моделей информационной системы
1.4 CASE-технологии анализа и проектирования
1.5 Основные понятия, используемые в объектно-ориентированном подходе
ГЛАВА 2. ПРОГРАММНЫЕ ПРОДУКТЫ ДЛЯ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
1.5 Основные понятия, используемые в объектно-ориентированном подходе
В объектно-ориентированном подходе основным является следующие механизмы:
- наследование,
- полиморфизм,
- инкапсуляция.
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
В результате изучения вопросов первой главы, связанной с теоретическими аспектами объектно-ориентированного подхода при проектировании информационных системе удалось выделить следующие преимущества такого подхода:
1. Описание системы в виде объектов в большей степени соответствует содержательному смыслу предметной области;
2. Сущности реального мира, как правило, обладают поведением, что для объектно-ориентированного проектирования отражается путем определения методов класса. Данные структурного подхода (атрибуты) и алгоритмы (методы) отделены друг от друга;
3. Объединение атрибутов и методов в объекте класса, благодаря инкапсуляции обеспечивает большую внутреннюю и внешнюю зависимость между компонентами системы. Это облегчает решение следующих проблем:
• помогает адаптировать систему к изменениям в существующих или появление новых требований;
• позволяет повторное использование компонентов;
4. Объектно-ориентированный подход облегчает организацию параллельных вычислений, так как каждый объект имеет свои собственные значения свойств (атрибутов) и поведение;
5. CASE-инструменты, поддерживают объектно-ориентированный подход, основанный на информации об объектах позволяя достичь более высокой степени автоматизации генерации кода.
ГЛАВА 2. ПРОГРАММНЫЕ ПРОДУКТЫ ДЛЯ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
Базовыми составляющими объектно-ориентированного подхода являются:
- Унифицированный процесс;
- Унифицированный язык моделирования;
- шаблоны проектирования.
Унифицированный процесс – это процесс разработки программного обеспечения (ПО), который обеспечивает упорядоченный подход к распределению задач и обязанностей в организации-разработчике [9]. Унифицированный процесс охватывает весь жизненный цикл ПО, начиная с определения требований и заканчивая сопровождением, и представляет собой обобщенный каркас (шаблон, скелет), который может быть применен (специализирован) для разработки и сопровождения широкого круга систем.
Неотъемлемой частью Унифицированного процесса является UML – язык (система обозначений) для определения, визуализации и конструирования моделей системы в виде диаграмм и документов на основе объектно-ориентированного подхода [29]. Следует отметить, что Унифицированный процесс и UML разрабатывались совместно.
На стадиях анализа и проектирования часто используются так называемые шаблоны (паттерны) проектирования. Шаблон – это именованная пара «проблема/решение», содержащая готовое обобщенное решение типичной проблемы [13]. Как правило, шаблон помимо текстового описания содержит также одну или несколько диаграмм UML (например, диаграммы классов, последовательности и/или коммуникации), графически иллюстрирующих состав и структуру классов, а также особенности их взаимодействия при решении поставленной проблемы. Шаблоны разрабатываются опытными профессионалами и являются проверенными, эффективными (порой оптимальными) решениями. Применение шаблонов может резко сократить затраты и повысить качество разработки ПО.
Выделение существенных свойств системы (для конкретной предметной области) построение модели, отображающих эти свойства возможно с UML.
С помощью метода объектно-ориентированного анализа, возможно, описывать сложные реальные системы наиболее подходящим способом. Но при увеличении сложности системы становится необходимо использовать хорошую технологию моделирования.
Для этого стоит воспользоваться "стандартной" технологией унифицированным языком моделирования (Unified Modeling Language, UML), который является графическим языком для визуализации, проектирования, спецификации документирования систем.
С помощью UML разрабатывают подробную модель проектируемой системы, отображающую не только ее концепцию, но и конкретные будущие особенности реализации.
В рамках UML-модели все представления о системе фиксируются в виде специальных графических конструкций, получивших название диаграмм.
Основные понятия UML:
Система - совокупность управляемых взаимосвязанных подсистем, которых объединили с общей целью
Системой – это набор подсистем, описываемых с помощью совокупности моделей и организованных для достижения конкретной цели, возможно, с различных точек зрения.
Подсистема - это совокупность элементов, часть из которых задает спецификацию поведения других элементов.
Подсистема - это система, функционирование которой не зависит от сервисов других подсистем. Программная система представляется в виде совокупности относительно независимых подсистем. Также определяются взаимодействия между подсистемами.
Модель - объект, отображающий наиболее значимые для конкретной задачи характеристики системы. Модели бывают разные – нематериальные и материальные, естественные и искусственные, математические и декоративные.
Диаграмма - графическое представление множества элементов. Чаще всего изображается в виде графа с вершинами (сущностями) и ребрами (отношениями). Примеров диаграмм : блок-схема, и схемы монтажа оборудования, и дерево файлов и каталогов на диске и т.д.. Рисунок воспринимается легче, чем текст...
С помощью диаграмм можно представить информационную систему с различных точек зрения.
Одна из диаграмм, например, может описывать изменение состояний системы в процессе ее работы. Другая - взаимодействие пользователя с системой. Третья - соотношение между собой элементов системы и т. д. Сложную информационную систему нужно представлять в виде набора независимых моделей-диаграмм. Причем ни одна из них не будет достаточной для описания системы и получения полного представления о ней, т.к. каждая будет сфокусирована на каком-то определенном аспекте функционирования системы и выражает разный уровень абстракции. Каждая модель это некоторая определенная, частная точка зрения на проектируемую систему.