MVC Framework с использованием моделирования UML
Этот контроллер модели-представления можно лучше всего описать визуально с помощью анализа надежности в стереотипной нотации UML, которая была впервые предложена Иваром Якобсоном в его отмеченной наградами книге «Объектно-ориентированная разработка программного обеспечения» (см. ссылки ниже) и дополнительно объяснена Дугом Розенбергом и др. . в своей книге «Использование объектного моделирования UML, основанного на прецедентах».
Вот простая и гипотетическая диаграмма последовательности для MVC. На диаграмме выше вы видите, что веб-пользователь инициирует запрос и генерирует событие, которое обрабатывается контроллером для получения необходимой информации от модели, проверки информации и передачи набора результатов обратно в представление.
Сущностные объекты (модель) — это не что иное, как информация или данные, которые ищут ваши граничные объекты. Это могут быть таблицы базы данных, файлы Excel, «временные» сеансы, кэшированные данные или что-то в этом роде.
- Описывать объекты, которые существуют с течением времени и в первую очередь связаны с постоянным состоянием.
- Обычно объекты из модели предметной области
- Вещи, которые нам нужно отслеживать и хранить
Граничные объекты (представление) — это объекты, с которыми акторы (например, пользователи) взаимодействуют в вашей программной системе. Эти объекты могут быть любым окном, экраном, диалоговым окном и меню или другим пользовательским интерфейсом в вашей системе. Вы можете легко определить их при анализе вариантов использования.
- описать связи между системой и средой, которые взаимодействуют.
- Используется акторами при общении с системой
- Только объекты сущностей могут инициировать события
- (обычно основные элементы пользовательского интерфейса, например экраны)
Объекты управления (контроллеры) — это бизнес-объекты или ваши бизнес-веб-сервисы. Здесь вы фиксируете бизнес-правила, которые используются для фильтрации данных, которые должны быть представлены пользователю, что он запрашивает. Таким образом, контроллер фактически контролирует бизнес-логику и преобразование данных.
- описать поведение в конкретном случае использования.
- «Клей» между граничными объектами и объектами-сущностями
- Захват бизнес-правил и политик
- (примечание: часто реализуется как методы других объектов)
Правила подключения в модели MVC
Учтите, что граничные объекты и объекты-сущности — это существительные, а контроллеры — это глаголы.
Вот четыре основных правила подключения.
- Актеры могут взаимодействовать или общаться только с граничными объектами.
- Граничные объекты могут взаимодействовать только с контроллерами и акторами.
- Объекты Entity могут взаимодействовать только с контроллерами.
- Контроллеры могут взаимодействовать с граничными объектами и сущностными объектами, а также с другими контроллерами, но не с акторами.
Помните, что и граничные объекты, и объекты-сущности являются существительными, а контроллеры — глаголами. Существительные не могут разговаривать с другими существительными, но глаголы могут разговаривать с существительными или глаголами.
Краткий обзор диаграммы анализа устойчивости
Предположим, у нас есть следующее простое описание варианта использования в текстовом формате:
На странице сведений о студенте учитель нажимает кнопку «Добавить курсы», и система отображает список курсов. Преподаватель выбирает название курса и нажимает кнопку «Зарегистрироваться». Система регистрирует студента на курс.
Теперь вы можете создать простую диаграмму надежности в соответствии с приведенным выше вариантом использования:
Вы также можете использовать текстовую метку, чтобы прикрепить описание варианта использования в правой части диаграммы устойчивости.
Пять шагов для создания анализа устойчивости
- Вы выполняете анализ надежности варианта использования, просматривая текст варианта использования.
- Одно предложение за раз, рисование действующих лиц, соответствующих границ, сущностных объектов и контроллеров, а также связей между различными элементами диаграммы.
- Вы должны быть в состоянии разместить основной курс и все альтернативные курсы на одной диаграмме.
- Любой, кто просматривает диаграмму надежности, должен быть в состоянии прочитать ход действий в тексте варианта использования, проследить пальцем по ассоциациям на диаграмме и увидеть четкое соответствие между текстом и изображением.
Вам, вероятно, придется переписать текст варианта использования, чтобы устранить двусмысленность и явно ссылаться на граничные объекты и объекты-сущности. Большинство людей не пишут идеальный текст варианта использования в первом черновике. Таким образом, мы можем использовать анализ надежности, чтобы преодолеть разрыв между текстом варианта использования и диаграммой.
Разработка сценария использования с использованием диаграмм последовательности MVC
Основываясь на анализе устойчивости, мы можем разработать сценарии использования (обычные или альтернативные), используя набор связанных диаграмм последовательности в формате MVC. Точно так же диаграмма последовательности MVC имеет объекты интерфейса, объекты контроллера и объекты сущности:
- Сущности — это объекты, представляющие системные данные: Клиент, Товар, Транзакция, Корзина и т. д.
- Границы — это объекты, взаимодействующие с акторами системы: UserInterface, DataBaseGateway, ServerProxy и т. д.
- Элементы управления — это объекты, являющиеся посредниками между границами и сущностями.
Они организуют выполнение команд, исходящих от границы, взаимодействуя с сущностями через граничные объекты. Объект контроллера часто соответствует сценарию варианта использования и часто представлен диаграммой последовательности.
Вы можете использовать стереотипы для линии жизни на диаграмме последовательности MVC, чтобы визуально прояснить, какой тип объектов вы используете в MVC, как на приведенной выше диаграмме анализа устойчивости.
Пример диаграммы последовательности MVC
Предположим, приложение, которое позволяет вам искать людей. Пользовательский интерфейс должен иметь текстовое поле, в котором пользователь может ввести строку поиска, и может иметь кнопку для запуска поиска. Наконец, он должен иметь область, в которой отображаются результаты поиска. В нашем случае это реализовано с помощью компонента списка.
Сценарий варианта использования «Поиск людей»:
- Пользователь вводит строку поиска в текстовое поле
- Пользователь нажимает кнопку поиска.
- Результат поиска отображается в списке результатов.
На приведенной выше диаграмме последовательности показано, как нажатие кнопки пользователем перемещается по приложению до тех пор, пока результат не будет окончательно отображен в компоненте списка.
использованная литература
Эта статья также доступна на Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Việt Nam, 简体中文 and 繁體中文