2014-11-04 3 views
4

Существует ли формальный язык, который может использоваться для захвата информации, представленной на диаграмме последовательности UML, в текстовый формат, который легко понять людям?Формальный язык для диаграмм последовательности UML

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

ответ

4

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

язык я имею в виду был разработан и реализован Steve Hanov, исчерпывающий перечень примеров можно найти на https://www.websequencediagrams.com/examples.html и я подчеркнул один из примеров ниже, так что вы можете получить представление читаемости:

enter image description here

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

(2,1) Записывая "однозначна текстовое представление требований", например, в форме одобренных клиентом прецедентов, это не простая в использовании или легко обучаемая вещь, и просто изменение языка не улучшит ее. (Смотри, например, Stack Overflow: From user stories to sequence diagram еще несколько указателей)

(2,2) предназначенные аудитории (читателей) для диаграмм последовательности UML не только программисты, но и менее технические заинтересованные стороны, для которых картина может быть стоит тысячи слов. На мой взгляд, предоставление программисту Java псевдо-кода, который может быть даже обратным образом преобразован в диаграмму последовательности UML с помощью инструмента, если необходимо (см. Stack Overflow: how to generate sequence diagram from Java source code или Google: «диаграмма последовательности java» для некоторых других указателей) лучше, чем пытаться найти/изобрести последовательность-схема конкретного языка

(2,3) есть, конечно, инструменты, которые помогают чтение больших конструкций UML с помощью трюков, как масштабирование, гиперссылок, разрушаясь/расширения блоков, настройки отображаемого уровня детализации и есть размеры бумаги, как A3 or A2, который может превратить типичную схему мульти-страницы в одной страницы диаграммы


От Ваше описание кажется, что в вашем месте у вас есть проблемы процесса и вы бы лучше задать вопрос на https://softwareengineering.stackexchange.com/help/on-topic

Какие темы я могу спросить здесь?

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

Если у вас есть вопрос о ...

  • требования к программному обеспечению
  • программная архитектура и дизайн
  • ...
  • методологии и процессы
  • разработки программного обеспечения управления
  • развития ...
+0

Интересный и продуманный ответ на интересный вопрос. – BobRodes

2

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

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

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

Я предпочитаю использовать диаграммы деятельности для описания описаний вариантов использования. Хотя вы можете в значительной степени сделать что-либо с диаграммой последовательности (по крайней мере, версии 2.0), расходящиеся поведения ИМО, деревья решений и параллельное поведение более очевидны в диаграммах деятельности, чем в диаграммах последовательности. Итак, одна диаграмма деятельности для каждого случая использования, а затем одна диаграмма последовательности для каждого отдельного сценария в прецеденте.

В вашем процессе это выглядит так: диаграммы последовательности не сопровождаются официальной документацией сценария использования. Если вы используете «сценарий использования сценария», вы найдете ряд примеров. Однако имейте в виду, что многие примеры действительно документируют то, что я называю «повествованиями».

Я использую терминологию в Tom Pender's Библия UML (Wiley Publishing, 2003). Еще одна замечательная книга: Alistair Cockburn Writing Effective Use Cases: here - образец хорошего размера.

+1

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

+0

@ В этом случае взгляните на [uml-diagrams.org: машинные диаграммы состояния протокола UML] (http://www.uml-diagrams.org/protocol-state-machine-diagrams.html). Я согласен с Бобом, что диаграммы активности UML довольно полезны и, кроме того, [«нет такой вещи, как одна лучшая диаграмма UML, чтобы показать все»] (http://stackoverflow.com/a/23301076/2626313) – xmojmr