Где я могу найти диаграммы UML (вместо того, чтобы изобретать велосипед)?

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

  1. Предпринимаются ли попытки стандартизировать моделирование таких обычных вещей? Или даже моделирование конкретных областей (например, автомобилестроение).
  2. Знаете ли вы, существует ли какой-либо репозиторий, содержащий диаграммы UML (диаграммы классов, диаграммы последовательности, диаграммы состояний...)?

person MiniQuark    schedule 28.02.2009    source источник


Ответы (3)


Существует движение за документирование (в отличие от стандартизации) моделей для определенных областей. Это называется шаблоны анализа. Этот термин придумал Мартин Фаулер. На самом деле он написал книгу под названием Шаблоны анализа. Кроме того, на его веб-сайте есть специальный раздел, где он представляет некоторые из этих паттернов в сопровождении по UML-диаграммам.

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

person Ionuț G. Stan    schedule 28.02.2009

Есть много инструментов, которые делают и то, и другое, но они, как правило, не бесплатны! Microsoft Visio делает и то, и другое и является расширяемым. Для артефактов UML они поставляются с автоматическими генераторами в коде шаблона VB/Java, но вы можете изменить их для автоматической генерации любого кода. Многие пользователи Visio создали модели, которые можно использовать в качестве шаблонов.

Artisan Enterprize на сегодняшний день является самым мощным инструментом UML (но недешевым).

Кто-то может возразить, что Rational Rose или RUP — лучший инструмент.

Но для производства автомобилей и других подобных моделей реального мира, безусловно, лучшим инструментом является Mathworks Simulink (не потому, что он один из самых дорогих). Это, безусловно, лучший инструмент, потому что вы можете анимировать модель — вы можете доказать, что модель работает, прежде чем генерировать красивый код (в любой грамматике/языке/других моделях, которые вы хотите использовать)! Вы можете получить студенческую лицензию примерно за 180 фунтов стерлингов; с «настоящей вещью», толкающей 4000 фунтов стерлингов (за артефакты, связанные с автомобилями). Полный продукт со всеми отделками стоит около 15 тысяч фунтов стерлингов. Simulink также расширяется с помощью C-подобного языка, хотя есть надстройка .Net и API для использования множества других языков. И, как и Visio, существует всемирный форум, на котором создаются продаваемые, условно-бесплатные и бесплатные шаблоны моделей реального мира. Многие автопроизводители по всему миру уже используют Simulink.

person Graham    schedule 12.01.2011

Я думаю, что вопрос MiniQuark действительно хорош и рано или поздно будет предоставлен поставщиками, такими как Omondo, Rational IBM и т. д. Пользователям нужны не просто инструменты, им нужны готовые модели, и они просто добавляют свои бизнес-правила в существующая четко определенная архитектура. Зачем разрабатывать с нуля новую архитектуру, если работа уже сделана? В Java мы используем множество фреймворков, существующих методов и т. д., так почему бы не подняться на уровень выше и не использовать архитектуру повторно? Сегодня невозможно предугадать, как будет развиваться проект, каждый день появляются новые требования. Поэтому нам нужна стабильная архитектура, которая была протестирована ранее и является расширяемой. Я видел так много проектов, которые начинались с красивой архитектуры, а затем в середине проекта понимали, что это не самое лучшее, а затем меняли свою архитектуру. Переименование классов, разделение классов, создание пакетов и т.д.... после первой итерации получается настоящий беспорядок. Представляете, что мы нашли после 10 итераций!! полный бардак!! Этого беспорядка можно было бы избежать, если бы использовалась предварительно определенная модель, которая была протестирована ранее, потому что отсутствующий класс или пакет и т. д. уже были бы созданы, и для целей архитектуры было бы достаточно только переименования класса. Добавление методов бизнес-правил завершит этап написания кода перед тестом развертывания.

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

person UML GURU    schedule 27.12.2010
comment
Не путайте с тем, что такое модель. Модель для Omondo — это отдельная модель для каждого проекта, состоящая из нескольких пакетов и диаграмм. Модель не может быть просто диаграммой, потому что диаграмма для меня всего лишь вид модели в определенной конфигурации, а не сама модель. Я видел интересную оппозицию между Эдом (например, EMF) и Владом (Омондо), потому что для Эда моделирование — это взгляд на проблему, а для Влада моделирование охватывает весь проект. Многоразовые модели возможны только в том случае, если модель охватывает весь проект, а не только проблему! - person UML GURU; 27.12.2010