2008-11-09 4 views
4

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

  • Действительно ли это происходит, или я был неверным истолкованием того, что он сказал?
  • Имеет кто-нибудь здесь действительно сделал это?
  • Является ли это более продуктивным?
  • Каковы недостатки?
  • Какие инструменты необходимы при использовании Java?

ответ

9

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

Я думаю, что неплохо иметь диаграмму (или несколько), показывающую своего рода «вертикальный срез» вашего приложения - как каждый слой разговаривает с другим и, возможно, показывает ход запроса/ответа в подходящих случаях , Тем не менее, это не обязательно должно быть на «индивидуальном вызове метода и всегда на 100% точном» уровне - убедитесь, что вы передаете правильное общее впечатление, более важно, предполагая, что читатель сможет погрузиться в настоящий код.

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

4

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

1

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

  1. я могу делать только хорошо, используя схему на английском языке объяснить иерархию вызовов от слоя к слою, когда есть один поток контроль. Стили стилей в MS Word здесь очень хороши.

  2. Мое английское объяснение более подробно и занимает меньше места, чем изображение UML.

  3. С английским я могу объяснить другие детали, такие как условия защиты и петли, лучше, чем диаграмма последовательности.

  4. Я могу написать схему быстрее, чем составлять UML.

Если вам действительно нужна «картина» с этой деталью, возможно, диаграмма активности сделает трюк.

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

Что касается Java, то моя проектная команда действительно любит Jude, так как она может перепроектировать класс иерархии Java-кода Java 5.

0

Диаграмма последовательности покажет взаимодействие, которое обычно представляет собой один путь через ваш код. С другой стороны, ваш код должен определять каждый путь, с каждым условием if-then-else и edge и т. Д. Вы можете указать все это на диаграммах последовательности, но они имеют тенденцию становиться слишком сложными и громоздкими. Я бы рекомендовал вам использовать диаграммы последовательностей, чтобы помочь визуализировать ваш код на этапе разработки, если это вам полезно, но это, насколько вы, вероятно, должны идти.

-4

Последовательные диаграммы работают для процедурных языков. Они не так полезны для языков OO.

+3

Привет, Джим: Я хотел бы прочитать рассуждения, почему вы считаете, что диаграммы последовательности работают только для процедурных языков. – Geo 2009-08-14 13:21:10

0

Последовательные диаграммы имеют свое место. Я никогда не беспокоился о синхронизации диаграммы UML с изменениями кода. Это, как говорится, я большой поклонник использования диаграмм последовательности как инструмент мозгового штурма. Вы хотите, чтобы ваша команда понимала и соглашалась с основным процессом и структурой вызова. Когда вы также отслеживаете аргументы и создание экземпляра, он может выделять дыры в вашем понимании. Если вам нужны данные «x» в качестве аргумента, они либо уже являются локальными, либо должны быть переданы: «Мы запрашиваем данные отчета из базы данных, и нам нужно отправить тип отчета, мы вспомнили, что включили его в качестве входящий параметр, не так ли?

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

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