У меня вопрос о повторении классов между модулями.
У меня был большой модуль с 24 классами и разделил его на три класса с 8. Но есть класс («пользователи»), который появляется в двух из модулей. Я могу повторить это? И мне нужно поместить атрибуты в оба модуля?
А что такое максимальный идеал для классов в модуле?Class Diagram - повторить класс в модулях?
ответ
Практически говоря: в UML вы можете многократно описывать класс/объект. И вам не нужно показывать всех участников (свойств).
Идеальный способ описания классов & состоит в том, что каждый класс содержится в пакете, но может быть ссылкой (иметь какое-либо отношение) с другими классами, либо в одном пакете, либо в другом пакете.
Следующие диаграммы на практическом плане ok и несколько способов описать одно и то же в U.M.L. Я пытаюсь не путать вас, со многими диаграммами.
Вся идея заключается в том, что в U.M.L у вас может быть несколько вариантов описания или моделирования той же идеи.
Рисунок 1. Пример полностью описанных классов в пределах одной и той же упаковки.
...................................................................................
..+--------------------+...........................................................
..|..Streams...........|...........................................................
..+--------------------+---------------------------------------------------------+.
..|..............................................................................|.
..|.+----------------------------------+....+----------------------------------+.|.
..|.| StreamClass |....| ReaderClass |.|.
..|.+----------------------------------+....+----------------------------------+.|.
..|.| [#] void Read() <<abstract>> |....| [+] void Read() <<override>> |.|.
..|.| [#] void Write() <<abstract>> +<---+ [+] bool CanRead() <<override>> |.|.
..|.| [+] bool CanRead() <<virtual>> |....| [+] bool CanWrite() <<override>> |.|.
..|.| [+] bool CanWrite() <<virtual>> |....| [+] bool CanRead() <<virtual>> |.|.
..|.+----------------------------------+....+----------------------------------+.|.
..|..............................................................................|.
..+------------------------------------------------------------------------------+.
...................................................................................
Рисунок 2. Примеры классов в пределах того же пакета, опуская unnecesary члены
....................................................................................
..+--------------------+............................................................
..|..Streams...........|............................................................
..+--------------------+----------------------------------------------------------+.
..|...............................................................................|.
..|.+----------------------------------+....+----------------------------------+..|.
..|.| StreamClass |....| ReaderClass |..|.
..|.+----------------------------------+....+----------------------------------+..|.
..|.| [#] void Read() <<abstract>> |....| [+] void Read() <<override>> |..|.
..|.| [#] void Write() <<abstract>> +<---+ [+] bool CanRead() <<override>> |..|.
..|.| [+] bool CanRead() <<virtual>> |....| [+] bool CanWrite() <<override>> |..|.
..|.| [+] bool CanWrite() <<virtual>> |....+----------------------------------+..|.
..|.+----------------------------------+..........................................|.
..|...............................................................................|.
..+-------------------------------------------------------------------------------+.
....................................................................................
Рисунок 3. Примеры классов в разных пакетах
...................................................................................
.+--------------------+...................+--------------------+...................
.|..Streams...........|...................|..Readers...........|...................
.+--------------------+-----------------+.+--------------------+-----------------+.
.|......................................|.|..|...................................|.
.|.+----------------------------------+.|.|.+----------------------------------+.|.
.|.| StreamClass |.|.|.| ReaderClass |.|.
.|.+----------------------------------+.|.|.+----------------------------------+.|.
.|.| [#] void Read() <<abstract>> |.|.|.| [+] void Read() <<override>> |.|.
.|.| [#] void Write() <<abstract>> +<----+ [+] bool CanRead() <<override>> |.|.
.|.| [+] bool CanRead() <<virtual>> |.|.|.| [+] bool CanWrite() <<override>> |.|.
.|.| [+] bool CanWrite() <<virtual>> |.|.|.+----------------------------------+.|.
.|.+----------------------------------+.|.|......................................|.
.|......................................|.|......................................|.
.+--------------------------------------+.+--------------------------------------+..
...................................................................................
Иногда, пакеты, опущены в диаграммах классов или считаются включенными в тот же пакет.
Рис. 4. Примеры полностью описанных классов без пакетов.
................................................................................
..+----------------------------------+....+----------------------------------+..
..| StreamClass |....| ReaderClass |..
..+----------------------------------+....+----------------------------------+..
..| [#] void Read() <<abstract>> |....| [+] void Read() <<override>> |..
..| [#] void Write() <<abstract>> +<---+ [+] bool CanRead() <<override>> |..
..| [+] bool CanRead() <<virtual>> |....| [+] bool CanWrite() <<override>> |..
..| [+] bool CanWrite() <<virtual>> |....+----------------------------------+..
..+----------------------------------+..........................................
................................................................................
И, наконец, иногда каждый класс полностью описывается с контейнером упакованного, а также диаграммы, в которой отображаются только отношения. Следующие 3 цифры представляют 3 дополнительные диаграммы.
Fig 5.1 Пример одного класса.
...........................................
..+--------------------+...................
..|..Streams...........|...................
..+--------------------+-----------------+.
..|......................................|.
..|.+----------------------------------+.|.
..|.| StreamClass |.|.
..|.+----------------------------------+.|.
..|.| [#] void Read() <<abstract>> |.|.
..|.| [#] void Write() <<abstract>> |.|.
..|.| [+] bool CanRead() <<virtual>> |.|.
..|.| [+] bool CanWrite() <<virtual>> |.|.
..|.+----------------------------------+.|.
..|......................................|.
..+--------------------------------------+.
...........................................
Рисунок 5.2 Пример одного класса.
...........................................
..+--------------------+...................
..|..Readers...........|...................
..+--------------------+-----------------+.
..|......................................|.
..|.+----------------------------------+.|.
..|.| ReaderClass |.|.
..|.+----------------------------------+.|.
..|.| [#] void Write() <<abstract>> |.|.
..|.| [#] void Read() <<override>> |.|.
..|.| [+] bool CanRead() <<override>> |.|.
..|.| [+] bool CanWrite() <<override>> |.|.
..|.+----------------------------------+.|.
..|......................................|.
..+--------------------------------------+.
...........................................
Рис 5.3 Пример отношений между классами.
................................................................................
..+----------------------------------+....+----------------------------------+..
..| StreamClass +<---+ ReaderClass |..
..+----------------------------------+....+----------------------------------+..
................................................................................
Резюме
Помните, что U.M.L. это руководство, а не строгий путь.
Cheers.
Хороший ответ UMLcat. UML может повторно использовать одни и те же классификаторы в диаграммах более чем одного класса. Я имею в виду, что на протяжении многих лет UML был связан с графическими представлениями, а иногда и внутри одного представления всех классификаторов проектов.
Подход метамоделирования UML состоит в том, чтобы просто создать модель UML, которая синхронизирована в реальном времени с диаграммами. Во многих инструментах у вас есть карты между графическим представлением и моделью. Например, с Eclipse у вас есть графический mapper GMF, который вызывает модель EMP модели, которая затем создает модель UML. Поэтому невозможно синхронизировать представление UML с моделью uml, хранящейся на вашем жестком диске, в формате xmi.
Omondo EclipseUML запустил эту инициативу metamodedl несколько лет назад. Он позволяет создавать столько диаграмм, которые синхронизируются в реальном времени с вашей моделью UML на диске, сохраненном непосредственно в формате XMI UML 2.3. Поэтому вы можете использовать один и тот же классификатор в разных представлениях, потому что вся модельная логика находится в модуле, сохраненном на диске, и синхронизируется в реальном времени.
Техническое обслуживание в оба конца не только между кодом и моделью, но и глубже между моделью и метамодели. Он дает полную мощность UML!
Я проверю Omondo, кажется многообещающим. Я фактически разрабатываю большинство своих ежедневных рабочих моделей в LibreOffice вместо существующих инструментов из-за того, что не позволяет делать много вещей, что U.M.L. suppouse делать ... – umlcat
- 1. UML Class Diagram Android
- 2. VS2013 Class Diagram генератор
- 3. Class Design (UML Class Diagram)
- 4. class diagram java application
- 5. Graph Application UML Class Diagram
- 6. UML Class Diagram - Обобщение
- 7. Android Class Diagram UML
- 8. Java Class Diagram
- 9. C# UML Class diagram
- 10. Class Diagram Aggregation
- 11. Class Diagram MVC pattern codeignign
- 12. Двукратная множественность? - UML Class Diagram
- 13. UML Class Diagram and Generics
- 14. Laravel project UML Class diagram
- 15. Ruby Class Diagram не отображается в меню Diagram RubyMIne
- 16. Visual Studio 2010 Class Diagram
- 17. UML CLASS DIAGRAM: FITNESS TRACKER
- 18. class diagram mvc javascript & C#
- 19. C# Class Diagram Динамическое обновление
- 20. Проверьте мой UML Class Diagram
- 21. UML + Class Diagram - Онлайн прокат фильмов
- 22. UML Class Diagram for Strategy Pattern
- 23. VS 2005 Class Diagram Формат представления
- 24. UML Class Diagram для коллекции MongoDB
- 25. Visual Studio Class Diagram Viewer stand alone
- 26. Visual Studio UML Class Diagram Generator
- 27. VS 2012 - Class Diagram - Свойства из полей?
- 28. поиск Class Diagram вызов для помощи в создании дизайна
- 29. Visual Studio UML Class Diagram не показывает общие ограничения
- 30. Как повторить класс в ArrayList?
UmlCat спасибо за ваше объяснение. Очень полезно. – NakaBr
любите диаграммы! – RobertMS