Сценарий действий 3: Диаграммы последовательности для обработки событий

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

Когда дело доходит до иллюстрации Eventlisteners и dispatchEvent-функции, я немного запутался, как это сделать. Я много гуглил, но не мог найти подсказку :(

Или диаграмма последовательности не является хорошим выбором для объяснения обработки событий?

Спасибо за вашу помощь!


person thomas    schedule 07.01.2011    source источник


Ответы (2)


На ваш вопрос нет однозначного ответа, ведь создание полезных диаграмм во многом зависит от того, какую информацию вы хотите донести до читателя. Мой совет: вы никогда не сможете показать все функциональные возможности вашей программы только на одной диаграмме; обработка событий часто бывает слишком сложной и уродливой — попробуйте разбить ее на более мелкие части и решить индивидуально, какая диаграмма полезна для каких аспектов, которые вы хотите показать.

В каждом из них ваше внимание всегда должно быть сосредоточено на читателе: что вы хотите, чтобы он или она поняли?

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

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

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

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

person weltraumpirat    schedule 07.01.2011
comment
есть ли у вас ссылка/пример на блок-схемы для проектов/приложений actionscript 3, т.е. базовая программа обработки событий - person Aditya P; 28.03.2012
comment
Что бы вы назвали базовой программой обработки событий? Почти любая даже отдаленно продвинутая программа AS3 будет использовать обработку событий. Кроме того, вероятно, не будет единой блок-схемы для всего приложения, а будет несколько диаграмм, описывающих основные шаблоны и/или используемые концепции. Вы хоть читали мой ответ? - person weltraumpirat; 28.03.2012
comment
да, я прочитал ваш ответ, я использовал блочную диаграмму для представления основных концепций в классе, который я мог бы представить, но без фактического потока между ними, за исключением конкретных ситуаций предварительного создания экземпляра класса. то есть так, как вы сказали это на первом шаге. то, что я ищу лучший способ представить, это следующий шаг, который вы упомянули - person Aditya P; 01.04.2012
comment
Внутренний поток событий и состояния объекта легко представить в виде блок-схемы — то есть, по сути, конечного автомата: en.wikipedia.org/wiki/Finite-state_machine . Событие запускает переход между состояниями. Возможно, это поможет вам в пути. - person weltraumpirat; 01.04.2012

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

person 341008    schedule 07.01.2011
comment
Большое спасибо. Обе статьи кажутся очень интересными! Я прочитаю их. - person thomas; 07.01.2011