2010-09-21 9 views
4

Я видел, как UML упоминал несколько мест за последние несколько лет, но никогда не имел веских оснований использовать его на работе до сих пор. Есть ли ценность в том, чтобы потратить время и силы на его изучение? (Я разработчик Ruby on Rails.)Есть ли смысл изучать UML?

Редактировать: Я также ищу рассказы о том, как UML изменил ваши проекты, чтобы дать мне представление о том, как я могу его использовать.

+0

Там может быть один прямо не отвечать на этот вопрос, рекомендуем удалить его или редактировать его и тикать " сообщество wiki ". Re * «Я также ищу рассказы о том, как UML изменил ваши проекты, чтобы дать мне представление о том, как я могу его использовать». * StackOverflow [не является дискуссионным сайтом] (http: // stackoverflow. com/faq), вам может быть лучше отправиться на один. –

+0

Хорошо. Я сделал это сообщество wiki. – picardo

ответ

7

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

  • Он показывает требования таким образом, чтобы клиенты/клиенты/руководство могли понять.
  • Вы можете перебирать модель и не потерять след, где модель была до
  • показывает, как именно вы получили из точки А в точку Б
  • Это стандартный, так что любой, кто знает UML будет иметь возможность интерпретировать ваши диаграммы
  • «наискорейшего» способ обмена идеями, без необходимости проходить через весь код базы
+0

Как вы думаете, может быть хорошим разработчиком, не зная UML? Я уже несколько лет программирую и стараюсь расти как программист и пытаюсь понять, как думают мастера-программисты. Я никогда не читал программиста, говорят, что они используют UML, но я много читаю об этом в контексте управления проектами. – picardo

+1

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

+0

@picardo - Да, вы можете быть хорошим разработчиком. Знание UML и возможность сопоставить код с ним (и наоборот) позволяют вам учиться архитектуре. Я не говорю, что UML делает вас архитектором, но заставляет вас начинать думать как один. –

3

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

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

+3

Даже изолированный кодер должен изучать UML, если только вы не хотите сидеть в комнате без подключения к внешнему миру :-) –

1

Я думаю, что это вопрос масштаба в двух измерениях: размер проблемы и размер команды.

Когда дизайн попадает на диаграммы определенного размера, они становятся полезными двумя способами: во-первых, они помогают вам рассуждать о проблемах дизайна. во-вторых, они помогают вам сообщать дизайн другим людям.

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

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

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

2

Да и нет.

Да, изучите основы. Быстро посмотрите на different diagram types и т. Д. И получите общую идею. Это поможет вам устранить свое нерешительность, когда кто-то может похвастаться UML.

No, если ваша работа не требует работы с UML, вам не обязательно знать UML, чтобы писать хорошие приложения. Если вам нужно что-то обсудить на белой доске, просто нарисуйте несколько кругов. Это сработает.

Это только помогло мне подготовить документацию для управления, чтобы произвести на них впечатление.Кроме этого, я только нашел deployment diagrams несколько полезным, вот и все.

2

Если вы рассматриваете UML как просто графический язык, вы считаете его очень маленькой частью. Вместо этого вы должны взглянуть на UML в качестве основного языка структуры Model Driven Architecture, которая очень хорошо реализована в Eclipse. В Eclipse UML (правильно) рассматривается как независимый от платформы язык с твердым синтаксисом, определенным MOF (ECORE в Eclipse) и семантикой, определяемой спецификацией UML (http://www.omg.org/spec/UML). В Eclipse есть хорошая реализация двух основных языков, определяемых спецификациями OMG для моделей с текстом и моделью, которые являются соответственно MOFM2T (ACCELEO в Eclipse) и QVT. Также Eclipse обеспечивает реализацию языка ограничения объекта (OCL), который используется как QVT, так и MOFM2T для оценки запросов к моделям. Все это означает, что вы можете легко определить свои преобразования Model to Text и Model to Model в виде плагина Eclipse, превратив ваши модели UML во все, что вам нужно. Теперь я использую это, чтобы автоматически генерировать тысячи LOC, документацию и тесты с впечатляющей отдачей от инвестиций. Однако я знаю, что большинство людей даже не знают, что UML - это язык, но думаю, что это всего лишь маленькие картинки.

Посмотрите на это ссылки для некоторого простого примера

http://lowcoupling.com/post/46522537374/the-model-driven-architecture

http://lowcoupling.com/post/47800863669/qvt-in-place-transformations

http://lowcoupling.com/post/47347056110/models-to-text-transformations-with-mofm2t-and-acceleo

Смежные вопросы