de_DEen_USfa_IRfr_FRhi_INpl_PLpt_PTru_RUvi

От текста к UML-моделям: Практическое исследование преобразования описаний проблем в диаграммы классов и последовательностей

Введение

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

Используя систему безопасности парковки Saturn International в качестве рабочего примера, мы показываем, как менеджеры продуктов, бизнес-аналитики и архитекторы программного обеспечения могут использовать функцию текстового анализа Visual Paradigm для ускорения выявления требований, снижения неоднозначности и создания поддерживаемых артефактов проектирования. Независимо от того, моделируете ли вы системы контроля доступа, корпоративные рабочие процессы или приложения, ориентированные на клиентов, представленный здесь метод обеспечивает повторяемую основу для преобразования слов в рабочие модели.

Transforming Problem Descriptions into Class and Sequence Diagrams


Описание проблемы

В этом руководстве будет использоваться следующее описание проблемы. Давайте взглянем на него.

Руководство Saturn Int. хочет улучшить меры безопасности как для своего здания, так и на территории. Они хотят предотвратить использование парковки лицами, не являющимися сотрудниками компании.

Saturn Int. решила выдать идентификационные карты всем сотрудникам. Каждая карта содержит имя, отдел и номер сотрудника компании, а также предоставляет доступ к парковке компании. Сотрудников просят носить карты во время пребывания на территории.

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

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

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

Существует еще один тип карт для гостей, который также предоставляет доступ к парковке. Карта содержит номер и текущую дату. Такие карты могут выдаваться заранее или получаться на стойке приема. Все гостевые карты должны быть возвращены на стойку приема при уходе посетителя из Saturn Int.


Выявление классов из текста

Создание текстового анализа

  1. Создайте новый проект. ВыберитеПроект > Новый из главного меню. В окнеНовый проект окно, дайте проекту имяРуководство и нажмитеСоздать пустой проект чтобы подтвердить.

  2. Создайте новый текстовый анализ. ВыберитеДиаграмма > Новая из главного меню.

  3. В окнеНовая диаграмма окно, выберитеТекстовый анализ и нажмите Далее. Введите Улучшение безопасности в качестве имени диаграммы и нажмите ОК.

    Create Textual Analysis

  4. Это открывает редактор текстового анализа. Скопируйте описание проблемы, приведенное выше, и вставьте его в редактор. Вставка может быть выполнена нажатием Ctrl-V или правым щелчком по редактору и выбором Вставить.

    Identify candidate class

Выявление кандидатов на объекты из текста

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

Problem statement pasted

Ниже приведен список кандидатов на класс:

Saturn Int. меры безопасности здание объект
Люди, не являющиеся частью компании Автостоянка Удостоверения личности сотрудники
имя отдел номер Персонал компании
Доступ барьер Читатель карт водитель
Номер карты система сигнал выход
Другой тип карты для гостей регистрация Карты гостей посетитель

До настоящего момента редактор текстового анализа должен выглядеть следующим образом:

Candidate classes identified

Отклонение кандидатских объектов

В этом разделе кандидатские классы будут рассмотрены в соответствии со списком правил отклонения. К концу этого раздела будет получен список моделей классов.

Теперь рассмотрите список кандидатских классов в соответствии с правилами отклонения ниже:

  • Дубликаты: если два или более объекта являются просто разными названиями одного и того же.

  • Нерелевантные: объекты, существующие в области проблемы, но не предназначенные для использования.

  • Неясные: при тщательном рассмотрении слов иногда становится ясно, что они не имеют ценного значения и не могут служить основой для полезного в системе.

  • Общие: значение слишком широкое.

  • Атрибуты: как атрибуты объектов.

  • Ассоциации: на самом деле представляют отношения между объектами.

  • Роли: иногда объекты определяются по той роли, которую они играют в определенной части системы.

В следующей таблице приведены результаты проверки:

Кандидатский класс Принять / Отклонить Причина отклонения
Управление Saturn Int. Отклонить Нерелевантно для системы
Меры безопасности Отклонить неясный
Здание Отклонить Не относящееся к системе
Сайт Отклонить Не относящееся к системе
Люди, которые не являются частью компании Отклонить Не относящееся к системе
Автостоянка Принять
Удостоверения личности Принять
Сотрудники Отклонить Дубликат с «Сотрудники компании»
Имя Отклонить Атрибут
Отдел Отклонить Атрибут
Номер Отклонить Атрибут
Сотрудники компании Отклонить Роль
Доступ Принять
Барьер Принять
Считыватель карт Принять
Водитель Отклонить Роль
Номер карты Отклонить Атрибут
Система Отклонить Слишком общее
Сигнал Принять
Выход Отклонить Не относится к системе
Другой тип карты для гостей Отклонить Дубликаты с картами гостей
Регистрация Отклонить Не относится к системе
Карты гостей Принять
посетитель Отклонить Роль

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

Change highlight color

Теперь оставшийся список классов-кандидатов выглядит следующим образом:

Автостоянка Удостоверения личности Доступ Барьер
Считыватель карт Сигнал Гостевые карты

Переформулировка выявленных классов

Давайте переформулируем принятые кандидаты следующим образом: (1) привести форму существительного к единообразию при использовании единственного и множественного числа и (2) точно отразить смысл извлеченного текста.

Ознакомьтесь с таблицей ниже, чтобы узнать, какие изменения необходимы, и объяснение этих изменений.

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

Соответственно обновите названия классов-кандидатов:

Renaming candidate

Создание элементов модели классов из текста

Вы определили список классов. Чтобы использовать их при построении модели, необходимо преобразовать их из слов в элементы модели.

  1. Выберите семь классов в таблице. Чтобы выполнить множественный выбор, удерживайте нажатой клавишу Ctrl и поочередно щелкайте по строкам.

  2. Щелкните правой кнопкой мыши по выделению и выберите Создать элемент модели из всплывающего меню.

    Create element

  3. Вам предлагается визуализировать созданные элементы на диаграмме. Оставьте выбранной опцию Создать новую диаграмму выбранной. Переименуйте диаграмму классов в Система парковки автомобилей и нажмите Создать.

    Visualize classes into class diagram
    Это создает диаграмму классов.
    Class diagram formed


Разработка модели классов – выявление структурных связей

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

Class diagram updated


Разработка модели взаимодействия – выявление атрибутов и операций

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

  1. Создайте диаграмму последовательности. Выберите Диаграмма > Новая в главном меню.

  2. В окне Новая диаграмма выберите Диаграмма последовательности и нажмите Далее. Выберите Пустая в качестве шаблона и нажмите Далее. Введите Парковка (с пропуском сотрудника) в качестве имени диаграммы и нажмите OK.

    Create sequence diagram

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

    Create actor

  4. Нам нужно показать считыватель как объект. Вместо создания линии жизни давайте создадим экземпляр объекта из класса считыватель карт класса. Существует несколько способов этого добиться. Один из способов — повторное использование класса через Обозреватель модели. Нажмите на Обозреватель модели вкладку, прикрепленную слева от окна приложения (или выберите Вид > Панели > Обозреватель модели если вкладка отсутствует). Затем перетащите класс считыватель карт на диаграмму.

    Drag reader class onto diagram

  5. Выберите Линия жизни для создания, когда вам предложат выбрать тип.

  6. Линия жизни автоматически называется «считыватель карт», следуя имени классификатора. Поскольку имя необязательно, давайте удалим его. Это также упростит чтение диаграммы.

    Card reader lifeline created

  7. Подключите сотрудник с : считыватель карт. Переместите указатель мыши на актера персонал. Нажмите на Каталог ресурсовкнопку и перетащите её на линию жизни : считыватель карт.

    To create sequence message

  8. Отпустите указатель мыши и выберите Сообщение от Каталог ресурсов.

    Selecting sequence message to create

  9. Введите вставьте карту персонала для имени сообщения.

    Sequence message created

  10. Как устройство ввода, считыватель карт принимает карту, а затем запрашивает систему для её проверки. Давайте создадим линию жизни для системы. Поскольку у нас нет такого класса, мы просто создадим линию жизни напрямую. Перетащите Линия жизни с панели инструментов диаграммы на диаграмму. Назовите линию жизни система парковки автомобилей.

    Create car parking system lifeline

  11. Создайте сообщение verify card() от : считыватель карт к система парковки автомобилей.

    Verify card message created

  12. Существует два возможных результата: успех или неудача. Мы будем моделировать оба случая. В диаграмме последовательности UML можно использовать альтернативный комбинированный фрагмент для моделирования нескольких возможных потоков. Создайте альтернативный комбинированный фрагмент, охватывающий актора и линии жизни. Мы будем изменять его размер, чтобы охватить больше линий жизни по мере добавления новых.

    Alternative combined fragment created

  13. Если успех, система загрузит запись карты персонала. Создайте сообщение самому себе load staff(). Для этого переместите указатель мыши на система парковки автомобилей и нажмите на Каталог ресурсов, затем выберите Самосообщение -> Линия жизни из Каталог ресурсов. Введите имя самосообщения.

    Create self message

  14. Следуйте шагу 4, чтобы визуализировать класс карта сотрудника как линию жизни. Снова удалите её имя.

    Staff card class visualized

  15. Предположим, что время последнего доступа будет установлено в записи карты сотрудника. Представьте это с помощью сообщения установки установить время последнего доступа().

    Sequence message created

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

    Create message created

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

    Sequence diagram updated

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

    Barrier class visualized

  19. Наконец, запросите считыватель карты показать сообщение, указывающее на успешную проверку карты сотрудника. Создайте последовательное сообщение «показать сообщение об успехе», которое соединяет система парковки автомобилей и : считыватель карт.

    Show success message

  20. Что произойдет, если карта не может быть проверена? Давайте смоделируем это в нижней части фрагмента альтернативы. Допустим, система запросит считыватель карт показать сообщение об ошибке проверки. Создайте такое сообщение на диаграмме.

    Show fail message

  21. Независимо от успеха или неудачи, карта сотрудника будет выдана после процесса проверки. Давайте создадим последовательное сообщениевыдать карту которое соединяет система парковки автомобилей и : считыватель карт.

    Eject card message created

  22. Наконец, создайте сообщение возврата, возвращаемое считывателем карты из: считыватель карт в актор сотрудника. Для этого создайте сообщение, а затем щелкните правой кнопкой мыши по нему и выберите Тип (неопределенный) > Ответ в контекстном меню.

    Card returned message created

  23. Два компартмента фрагмента альтернативы известны как операнды. Введите условия операндов как ограничения. Щелкните правой кнопкой мыши по метке alt в верхнем левом углу фрагмента и выберите Операнд > Управление операндами в контекстном меню. В всплывающем окне установите ограничения для двух операндов как Карта принята и Карта отклонена соответственно.

Manage operand

  1. Давайте создадим операции из последовательных сообщений. Сначала создайте класс из линии жизни системы парковки автомобилей. Щелкните правой кнопкой мыши по линии жизни и выберите Выбрать Класс > Создать класс «система парковки автомобилей» в контекстном меню.

    Create class from lifeline

  2. См. следующее изображение. Для каждого выделенного соединителя щелкните правой кнопкой мыши по нему и выберите Введите > Вызов > Создать операциюиз всплывающего меню.

    Create operations

  3. Вернитесь к диаграмме классов. Операции автоматически отображаются в модели класса.

    Class model updated

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


Заключение

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

Пример парковки Saturn International иллюстрирует, как даже кажущиеся простыми требования содержат слои сложности: несколько типов участников, условные потоки, взаимодействие с аппаратным обеспечением и управление состоянием. Используя интегрированную среду моделирования Visual Paradigm, специалисты могут обеспечить отслеживаемость от исходного текста до конечного кода, поддерживать согласованность между диаграммами и эффективно взаимодействовать между техническими и нетехническими заинтересованными сторонами.

Ключевые выводы для специалистов:

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

  • Используйте единственное число и единые соглашения об именовании для снижения неоднозначности

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

  • Рассматривайте моделирование как итеративный процесс — каждый сценарий обогащает модель класса

  • Обеспечивайте двустороннюю отслеживаемость между требованиями, моделями и реализацией

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


Ссылки

  1. Функции инструмента UML Visual Paradigm: Полный обзор возможностей моделирования UML в Visual Paradigm, включая поддержку всех 14 типов диаграмм UML 2.x и функций моделирования с использованием ИИ.
  2. Обзор 14 типов диаграмм UML: Подробное руководство, объясняющее структурные и поведенческие диаграммы UML и их соответствующие области применения в проектировании программного обеспечения.
  3. Руководство пользователя Visual Paradigm PDF: Официальная документация, охватывающая установку, навигацию по интерфейсу и основные рабочие процессы моделирования в Visual Paradigm.
  4. Документация по моделированию UML: Пошаговые инструкции по созданию, редактированию и управлению диаграммами UML в среде Visual Paradigm.
  5. Что такое диаграмма UML?: Дружелюбное для новичков введение в концепции UML, типы диаграмм и их роль в архитектуре программного обеспечения и коммуникации при проектировании.
  6. Фиксация требований с помощью случаев использования: Практическое руководство по использованию диаграмм случаев использования и текстового анализа для выявления, документирования и проверки требований к системе.
  7. Генератор диаграмм классов UML с поддержкой ИИ: Обзор функций Visual Paradigm, основанных на ИИ, которые автоматически генерируют диаграммы классов из описаний на естественном языке.
  8. Учебник по преобразованию PlantUML в визуальные диаграммы: Видеоурок, демонстрирующий, как преобразовать скриптовый код PlantUML в интерактивные, редактируемые диаграммы UML в Visual Paradigm.
  9. Что такое UML?: Основное объяснение принципов, истории и важности унифицированного языка моделирования в современных практиках разработки программного обеспечения.
  10. Инструменты инженерии кода: Описание возможностей двухсторонней инженерии, поддерживающих генерацию кода и обратную инженерию для нескольких языков программирования.
  11. Сопоставление баз данных с ORM: Руководство по генерации схем баз данных и слоев сохранения данных из диаграмм классов UML с использованием техник объектно-реляционного сопоставления.
  12. Преимущества инженерии баз данных: Объяснение того, как интегрированное моделирование баз данных улучшает согласованность данных, сокращает время разработки и поддерживает гибкую итерацию.
  13. Галерея Visual Paradigm: Представление образцов проектов, шаблонов диаграмм и примеров моделирования, специфичных для отрасли, созданных с помощью Visual Paradigm.
  14. Установка Visual Paradigm: Официальное руководство по установке, охватывающее требования к системе, активацию лицензии и первоначальные шаги настройки.
  15. Интеграция UML в Eclipse: Документация по встраиванию инструментов моделирования Visual Paradigm непосредственно в среду разработки Eclipse для бесшовных рабочих процессов разработки.
  16. Бесплатные варианты инструментов UML: Сравнение функций бесплатной версии Visual Paradigm с профессиональными возможностями для команд, оценивающих решения моделирования.
  17. Процесс моделирования программного обеспечения UML: Обзор того, как инструменты UML интегрируются в итеративные процессы разработки, включая гибкие, водопадные и гибридные методологии.
  18. Функции инструмента визуального моделирования: Подробный список функций, выделяющий умное повторное использование элементов, проверку синтаксиса и возможности каталога ресурсов, отличающие профессиональные инструменты моделирования.
  19. Инструмент UML для корпоративных решений: Описание, ориентированное на корпоративные нужды, масштабируемости, функций совместной работы и интеграции с инструментами управления требованиями и планирования в гибких методологиях.
  20. Главная страница Visual Paradigm: Основной веб-сайт Visual Paradigm, предлагающий загрузку продуктов, обучающие материалы, форумы сообщества и ресурсы поддержки для специалистов по моделированию.
  21. Сборник обучающих материалов по UML: Подборка пошаговых обучающих материалов, охватывающих базовые и продвинутые методы моделирования UML на различных типах диаграмм.
  22. Руководство по инструменту UML для традиционного китайского языка: Локализованный ресурс, предоставляющий руководство по моделированию UML и информацию о продукте для пользователей и команд, говорящих на традиционном китайском языке.

Эта статья также доступна на Deutsch, English, فارسی, Français, English, Polski, Portuguese and Việt Nam