top of page

Объектно-ориентированный анализ и проектирование (OOAD) и язык UML

ООАП (OOAD). UML. Визуальное моделирование. Диаграммы. Системная инженерия (системотехника)

Общие понятия

СИСТЕМА (от греч. σύστεμα – целое, составленное из частей, соединение) – совокупность элементов, находящихся в отношениях и связях друг с другом, которая образует определенную целостность, единство. Претерпев длительную историческую эволюцию, понятие «система» с сер. 20 в. становится одним из ключевых философско-методологических и специально-научных понятий. В современном научном и техническом знании разработка проблематики, связанной с исследованием и конструированием систем разного рода, проводится в рамках системного подхода, общей теории систем, различных специальных теорий систем, системном анализе, в кибернетике, системотехнике и т.п.

СИСТЕМНЫЙ АНАЛИЗ – совокупность методов и средств, используемых при исследовании и конструировании сложных и сверхсложных объектов, прежде всего методов выработки, принятия и обоснования решений при проектировании, создании и управлении социальными, экономическими, человеко-машинными и техническими системами.

Системный анализ возник в 1960-х гг. как результат развития исследования операций и системотехники. Теоретическую и методологическую основу системного анализа составляют системный подход и общая теория систем. Системный анализ применяется гл.о. к исследованию искусственных (возникших при участии человека) систем, причем в таких системах важная роль принадлежит деятельности человека. Использование методов системного анализа для решения исследовательских и управленческих проблем необходимо прежде всего потому, что в процессе принятия решений приходится осуществлять выбор в условиях неопределенности, которая связана с наличием факторов, не поддающихся строгой количественной оценке.

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

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

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

Важной особенностью системного анализа является единство используемых в нем формализованных и неформализованных средств и методов исследования.

СИСТЕМНАЯ ИНЖЕНЕРИЯ (Systems Engineering) (СИСТЕМОТЕХНИКА) — это научно-методологическая дисциплина, которая изучает вопросы проектирования, создания и эксплуатации структурно сложных, крупномасштабных, человеко-машинных и социотехнических систем.

Что такое анализ и проектирование

Этап анализа (analysis) состоит в исследовании системных требований и проблемы, а не в поисках путей ее решения. Например, при разработке новой информационной системы для автоматизации торговли необходимо описать способы ее использования и основные функции.

Анализ — это достаточно широкое понятие. Его содержание более точно отражают термины анализ требований (requirements analysis) (т.е. исследование требований к системе) и объектно-ориентированный анализ (object-oriented analysis) (исследование объектов предметной области).

В процессе проектирования (design) основное внимание уделяется концептуальному решению, обеспечивающему выполнение основных требований, но не вопросам его реализации. Например, на этапе проектирования описываются программные объекты или схема базы данных. Идеи проектирования зачастую исключают низкоуровневые или “очевидные” детали — очевидные с точки зрения потенциального пользователя. Конечно же, проектные решения могут быть реализованы в программном коде, и эта реализация должна быть точной и полной.

Как и понятие анализа, этот термин тоже стоит уточнить и говорить об объектно-ориентированном проектировании (object-oriented design) или проектировании базы данных (database design). Анализ и проектирование можно определить как “выполнение правильных действий (анализ) и обеспечение их правильности (проектирование)”.

Визуальное моделирование

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

Графические (визуальные) модели представляют собой средства для визуализации, описания, проектирования и документирования архитектуры системы. Разработка модели информационной системы (ИС) для бизнеса в такой же мере необходима, как и наличие проекта при строительстве большого здания. Это утверждение справедливо как в случае разработки новой системы, так и при адаптации типовых продуктов. Хорошие модели являются основой взаимодействия участников проекта и гарантируют корректность архитектуры.

Объектно-ориентированный анализ и проектирование (ООАП) (Object-Oriented Analysis and Design, OOAD)

Английская поговорка гласит: “Если у вас есть молоток, это еще не значит, что вы архитектор”. Это особенно справедливо по отношению к объектной технологии. Владение объектно-ориентированным языком программирования (например, Java) — это необходимое, но не достаточное условие для создания объектной системы. Очень важно также уметь “мыслить объектами”.

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

Концептуальной основой объектно-ориентированного анализа и проектирования является объектная модель. Ее основные принципы (абстрагирование, инкапсуляция, модульность и иерархия) и понятия (объект, класс, атрибут, операция, интерфейс и др.) наиболее четко сформулированы Гради Бучем в его фундаментальной книге и последующих работах.

Унифицированный язык моделирования UML (Unified Modeling Language)

Большинство современных методов ООАП основаны на использовании языка UML.

Унифицированный язык моделирования UML (Unified Modeling Language) представляет собой язык для определения, представления, проектирования и документирования программных систем, организационно-экономических систем, технических систем и других систем различной природы.

UML содержит стандартный набор диаграмм и нотаций разных видов.

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

В UML-модели есть два аспекта:

  • Статическая структура – описывает, какие типы объектов важны для моделирования системы и как они взаимосвязаны.

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

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

UML — это стандарт системы обозначений для построения диаграмм. Нужно не только освоить эту систему обозначений; гораздо важнее изучить принципы объектно-ориентированного проектирования, научиться “мыслить объектами”.

Главными в разработке UML были следующие цели:

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

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

  • обеспечить независимость от конкретных языков программирования и процессов разработки.

  • обеспечить формальную основу для понимания этого языка моделирования (язык должен быть одновременно точным и доступным для понимания, без лишнего формализма);

  • интегрировать лучший практический опыт.

UML находится в процессе стандартизации, проводимом OMG (Object Management Group) – организацией по стандартизации в области объектно-ориентированных методов и технологий, в настоящее время принят в качестве стандартного языка моделирования и получил широкую поддержку в индустрии построения информационных систем. UML принят на вооружение практически всеми крупнейшими компаниями – производителями ИС (Microsoft, Oracle, IBM, HewletttPackard, Sybase и др.). Кроме того, практически все мировые производители CASE средств, помимо IBM Rational Software, поддерживают UML в своих продуктах (Oracle Designer, AllFusion Component Modeler (Computer Associates), Visual Paradigm, Microsoft Visual Modeler, Magic Draw и др.).

В процессе объектно-ориентированного анализа основное внимание уделяется определению и описанию объектов (или понятий) в терминах предметной области. Например, в случае информационной системы аэропорта среди понятий должны присутствовать Plane (самолет), Flight (рейс) и Pilot (пилот). В процессе объектно-ориентированного проектирования (или просто объектного проектирования) определяются программные объекты и способы их взаимодействия с целью выполнения системных требований. Например, в системе аэропорта программный объект Plane может содержать атрибут tailNumber (бортовой номер) и метод getFlightHistory (получить историю полетов).

Диаграммы UML

Во всех инструментальных средствах UML-моделирования новые сущности или новые отношения при создании добавляются в модель. Модель – это хранилище всех сущностей и отношений, созданных для описания требуемого поведения проектируемой системы.

Диаграммы – это своего рода картины, или представления модели.

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

Диаграмма – это визуальное представление части модели в определенном разрезе или аспекте рассмотрения.

Существуют тринадцать различных типов UML-диаграмм (плюс четырнадцатая – profile diagram – позволяющая расширять метамодель UML для различных предметных областей и платформ).

Please reload

Общие понятия
Что такое анализ и проектирование
Визуальное моделирование
ООАП (OOAD)
Унифицированный язык моделирования (UML)
Диаграммы UML

Типы UML-диаграмм

Use Case Diagram

Диаграммы вариантов использования (прецедентов) (Use Cases Diagram)

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

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

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

Диаграмма вариантов использования является самым общим представлением функциональных требований к системе. Для последующего проектирования системы требуются более конкретные детали, которые описываются в документе, называемом «сценарием варианта использования» или «потоком событий» (flow of events).

Сценарий подробно документирует процесс взаимодействия действующего лица с системой, реализуемого в рамках варианта использования. Основной поток событий описывает нормальный ход событий (при отсутствии ошибок). Альтернативные потоки описывают отклонения от нормального хода событий (ошибочные ситуации) и их обработку.

Достоинства модели вариантов использования заключаются в том, что она:

  • определяет пользователей и границы системы;

  • определяет системный интерфейс;

  • удобна для общения пользователей с разработчиками;

  • используется для написания тестов;

  • является основой для написания пользовательской документации;

  • хорошо вписывается в любые методы проектирования (как объектно-ориентированнные, так и структурные)

Диаграммы взаимодействия (Interaction Diagram)

Диаграммы взаимодействия описывают поведение взаимодействующих групп объектов (в рамках варианта использования или некоторой операции класса). Часто диаграмма взаимодействия охватывает поведение объектов в рамках только одного потока событий варианта использования. На такой диаграмме отображается ряд объектов и те сообщения, которыми они обмениваются между собой.

Существует два вида диаграмм взаимодействия:

  • диаграммы последовательности (Sequence diagram)

  • коммуникационные диаграммы (Communication diagram).

Диаграммы последовательности отражают временную последовательность событий, происходящих в рамках варианта использования, а диаграммы коммуникации (в более ранних версиях UML назывались диаграммами кооперации – Collaboration Diagrams) концентрируют внимание на связях между объектами.

Диаграммы классов (Class Diagram)

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

Диаграммы состояний (State Machine Diagram)

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

Диаграммы деятельности (Activity Diagram)

Диаграммы деятельности, в отличие от большинства других средств UML, заимствуют идеи из нескольких различных методов, в частности, метода моделирования состояний SDL и сетей Петри. Эти диаграммы особенно полезны в описании поведения, включающего большое количество параллельных процессов.

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

Диаграммы компонентов (Component Diagram)

Диаграммы компонентов моделируют физический уровень системы. На них изображаются компоненты ПО и связи между ними.

Диаграммы размещения (Deployment Diagram)

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

Другие диаграммы UML

Существуют еще ряд диаграмм UML: Object Diagrams, Composite Structure Diagrams, Package Diagrams и др.

Please reload

Interaction Diagram
Class Diagram
State Machine Diagram
Activity Diagram
Component Diagram
Delpoyment Diagram
Другие диаграммы UML
bottom of page