Метамодель для моделецентрического управления требованиями

May 11, 2010 00:59

Набор UML-диаграмм, отражающих контекст и артефакты моделеориентированной инженерии требований и, частично, архитектурного дизайна.

Под катом картинки. )

Leave a comment

109 May 11 2010, 08:19:29 UTC
диграмма 1.

серые стрелочки - это генерализация, я так полагаю? я бы убрал стрелочку от элемента к системе. иначе элемент и подсистема вообще ничем не отличаются.

cardinality. надо как-то определиться, хотим мы её показывать графически (жирным кружком или ромбом) или текстуально [1..n]. если текстуально, то хорошо бы не забыть, что её (cardinality) имеют оба конца.

диграмма 2.

уже иногда появляются [1..n] с обоих концов, что не может не радовать. но вот отношение между, скажем, требованиями и ограничениями симметричное, а стрелка почему-то нет.

дальше лень.

Reply

vvagr May 11 2010, 08:55:38 UTC
Д1. Тут некоторая избыточность - не лишняя, разделение на системы и элементы - вещь субъективная. Это мета-модель для человека, что-то вроде формальной записи для машинной генерации кода - пока очень далека, на данном уровне общности такого не появится.

cardinality 1..1 моделер просто не рисует, если где-то не подписано - там 1. Это UML моделер в составе Papyrus плагина в Ecliplse, кстати. Жирный ромб - это вроде как composite aggregation, к cardinality отношения не имеет.

Д2. Отношение (в данной системе терминов!) совершенно не симметричное. Ограничение - один из видов компонент требования.

Ну лень так лень. И на том спасибо.

Reply

109 May 11 2010, 18:29:57 UTC
> Ограничение - один из видов компонент требования.

правильно, значит "requirement" contains one or more (zero or more?) "constraints". значит отношение 1 -> 1..n или 1 -> 0..n, а нарисовано что?

Reply

vvagr May 11 2010, 19:26:57 UTC
Э нет. Разные стейкхолдеры могут совершенно независимо в свои требования вписать один и тот же constraint.

А вот насчёт 0 - спасибо, надо править.

Reply

109 May 11 2010, 20:55:47 UTC
тогда отношение симметричное, many-to-many. или то, или другое; совокупность, которую вы использовали, не имеет смысла. many-to-many relationship не бывают identifying.

Reply

vvagr May 11 2010, 21:05:24 UTC
Я пытаюсь выразить следующую мысль:

Возможность входит в одно или много Требований
Требование содержит ноль или более Возможностей

Для этого я со стороны Возможности пишу [0..*]
Со стороны Требования [1..*]

Само отношение - агрегация, так как Возможность является частью Требования. но не перестаёт сущенствовать при уничтожении Требования.

Что тут не так?

Reply

109 May 11 2010, 21:54:27 UTC
не так то, что это тогда не агрегация. при агрегации один конец (владельца, в данном случае требования) должен быть или 1..1, или 0..1.

Reply

vvagr May 11 2010, 22:01:11 UTC
Ссылаться на Вики, конечно, дурной тон, но я рискну: http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2

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

Reply

109 May 11 2010, 22:25:39 UTC
ну, значит всё, что я говорил, относится к "strong aggregation", в терминах этой вики - композиция. "weak agregation", которой позволено вести себя так, как вы хотите, ничем не отличается от неспецифицированной "association".

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

короче, я признаю, что вики не запрещает ваш вариант использования понятия "агрегация", но я с таким вариантом по вышеизложенным причинам не согласен.

Reply

vvagr May 11 2010, 22:51:09 UTC
Произвольная ассоциация используется для отражения произвольного отношения. поэтому требует подписания названия этого отношения, что я и делал аккуратно над линиями и стрелочками.

Агрегация и композиция (с ромбиками) изначают один конкретный вид ассоциации (в двух изводах), "is part of", потому в подписях не нуждаются.

То есть ромбик просто позволяет не захламлять диаграмму надписями.

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

Reply

109 May 12 2010, 07:51:33 UTC
это одна точка зрения.

другая точка (моя) заключается в том, что отношение агрегации отличается от ассоциации (я уже объяснил, как). поэтому и обозначается ромбиком, а не просто линией. так же, как отношение генерализации - имеет другие свойства, нежели простая ассоциация, поэтому обозначается по-другому.

Reply


Leave a comment

Up