Общее использование UML

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

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

5
задан Steve B. 14 January 2010 в 17:43
поделиться

6 ответов

возможно из-за замены/резервирования памяти, основываясь на определении ps:

RSS: resident set size, the non-swapped physical memory
     that a task has used (in kiloBytes).

VSZ: virtual memory usage of entire process.
     vm_lib + vm_exe + vm_data + vm_stack

это может быть немного запутанным, 4 различных метрики размера можно видеть с:

# ps -eo pid,vsz,rss,sz,size,cmd|egrep python

PID    VSZ   RSS   SZ    SZ    CMD
23801  4920  2896  1230  1100  python

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

Некоторые дополнительные инструменты для исследования производительности памяти:

хорошее руководство по отслеживанию утечек памяти у питона с помощью pdb и objgraph:

http://www.lshift.net/blog/2008/11/14/tracing-python-memory-leaks

-121-1918199-

Помощник или метод расширения будут работать нормально при запросе объектов в памяти. Но в базе данных SQL код LINQ будет скомпилирован в дерево выражений, проанализирован и преобразован в команду SQL. Эта функциональность не имеет понятия пользовательских методов расширения или методов других объектов, таких как .Контейны (...) .

Однако корпорация Майкрософт может легко внедрить его в стандартную функциональность LINQ-To-SQL. Но пока они не хотят, мы беспомощны, пока это не функция с открытым исходным кодом.

Все, что вы можете сделать, это создать собственный поставщик запросов, который противоречит базе данных SQL. Но это будет трудно, и это будет только для той одной функции в , которая отсутствует.

Однако, если вы действительно хотите пройти этот маршрут, развлекайтесь: LINQ: BUILDING AN IQUERYABLE PROVIDER SERIES

-121--2675135-

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

1
ответ дан 14 December 2019 в 13:36
поделиться

Базовый алгоритм:

  1. Найти номер образцов, чтобы вписаться в бессоветую
  2. Определите, сколько образцов должно быть представлено каждым пикселем
  3. . Рассчитать RMS (или пик ) Значение для каждого пикселя из блока образца. Усреднение не работает для аудиосигналов.
  4. Нарисуйте значения.

Давайте предположим, что N (количество образцов) = 44100, W (ширина) = 100 пикселей:

, затем каждый пиксель должен представлять 44100/100 == 441 образцы (блокируют)

for (x = 0; x < w; x++)
    draw_pixel(x_offset + x,
               y_baseline - rms(&mono_samples[x * blocksize], blocksize));

вещи, чтобы попробовать для разных визуальных Появляются:

  • RMS VS Max Value из блока
  • Перекрывающиеся блоки (блокирует х, но аванс х / 2 для каждого пикселя и т. Д.)

Передача не будет работать, как вы потеряете информацию.

-121--3274142-

UML (единый язык моделирования) гибкий. Не нужно все время использовать «полный» UML.

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

Некоторые из этих целей были за пределами «очевидного» использования диаграммы. Например, я использовал диаграммы развертывания к документу наборов виртуальных машин. Поскольку элемент узла представляет собой UML «классификатор», его можно использовать с наследством. Я использовал это, чтобы показать, как специализирована базовая виртуальная машина. Например, база - это просто Windows Server 2008, но специализация этого имеет установленную SQL Server, и специализация этого используется в качестве сервера базы данных.

3
ответ дан 14 December 2019 в 13:36
поделиться

Я видел использование диаграмм класса UML для автоматического генерации кода. Поток был что-то подобное, архитектор предприятия использовали для генерации XML-схемы из диаграммы классов. Эта схема затем использовалась в качестве входа для JAXB для генерации генерации классов Java, которые предоставляют программный доступ к данным, представленным в модели UML.

1
ответ дан 14 December 2019 в 13:36
поделиться

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

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

0
ответ дан 14 December 2019 в 13:36
поделиться

Я нашел диаграмму класса UML, чтобы быть гораздо более полезной для выполнения логической модели данных или модели домена, чем диаграмма отношений на объекте. Это более выразительно, имея обобщение (то есть наследство) и специфические отношения N-до-N. Попробуйте моделировать это в диаграмме ER:)

alt text

0
ответ дан 14 December 2019 в 13:36
поделиться

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

Из темы: Использование моделей в процессе разработки на http://msdn.microsoft.com/en-us/library/dd409423%28VS.100%29.aspx

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

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

Как научиться "хорошему дизайну/архитектуре программного обеспечения"? на https://stackoverflow.com/questions/268231/how-to-learn-good-software-design-architecture/2293489#2293489

1
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: