Você está na página 1de 9

Diagramas de Sequncia

Um diagrama de sequncia mostra elementos como eles interagem ao longo do tempo, mostrando uma interao ou instncia de interao. Os diagramas de sequncia so organizados em dois eixos: o eixo horizontal mostra os elementos que esto envolvidos na interao, eo eixo vertical representa o tempo de proceder a pgina para baixo. Os elementos no eixo horizontal pode aparecer em qualquer ordem.

6.4.1 Elementos
Os diagramas de sequncia so constitudos por um nmero de elementos, incluindo funes de classe, objetos especficos, linhas de vida, e ativaes. Todos estes so descritos nas subsees a seguir. 6.4.1.1 Os papis de classe Em um diagrama de sequncia, um papel de classe mostrado usando a notao para uma classe como definido no captulo 3, mas o nome de classe precedido por uma barra, seguido do nome do papel que os objetos devem estar de acordo com a fim de participar no papel, seguido por uma clon. Outras classes podem tambm ser mostrado como necessrio, usando a notao para as classes tal como definidos no Captulo 3. Papis de classe e outras classes so usadas para a especificao de nvel de colaboraes comunicadas utilizando diagramas de sequncia. Figura 6-8 mostra o papel de classe projectOrganization, bem como as classes de projeto e relatrio. Figura 6-8. Um papel de classe e duas classes

6.4.1.2 objetos especficos Em um diagrama de sequncia, um objeto especfico de uma classe em conformidade com um papel de classe mostrado usando a notao para objetos, tal como definidos no Captulo 3, mas o nome do objeto seguido por uma barra, seguido do nome do papel seguido por dois pontos seguido pelo nome da classe, totalmente sublinhado. Outros objetos tambm podem ser mostrados como necessrio usando a notao de objetos, conforme definido no Captulo 3.

Objetos especficos em conformidade com papis de classe e outros objetos so utilizados, por exemplo, nvel de colaboraes comunicadas utilizando diagramas de sequncia. Figura 6-9 mostra que a organizao Andy desempenha o papel de uma organizao que contm um projeto que o tema do relatrio. Figura 6-9 tambm mostra objetos annimos Projeto e Relatrio. Figura 6-9. Um objeto em conformidade com um papel de classe

6.4.1.3 Lifelines Uma linha de vida, mostrada como uma linha tracejada vertical a partir de um elemento, representa a existncia do elemento ao longo do tempo. Figura 6-10 mostra linhas de vida para o papel de classe(projectOrganization) e classes (Projeto e Relatrio) na Figura 6-8. Lifelines tambm pode ser mostrado para os objetos na Figura 6-9. Figura 6-10. Lifelines

6.4.1.4 Ativaes Uma ativao opcional, mostrado como um retngulo, alto e magro em uma tbua de salvao, representa o perodo em que um elemento est realizando uma operao. A parte superior do retngulo alinhado com o tempo de iniciao, e na parte inferior est alinhado com o tempo de concluso. Figura 6-11 mostra as ativaes para os papis de classe na Figura 6-8, onde todos os elementos so simultaneamente a realizao de operaes. Ativaes tambm pode ser mostrado para os objetos na Figura 6-9. Figura 6-11. Ativaes

6.4.2 Comunicao
Em um diagrama de sequncia, uma comunicao, mensagem ou estmulo mostrado como uma seta horizontal slido a partir de o cabo de segurana ou ativao de um emissor para o cabo de segurana ou ativao de um receptor. Na UML, a comunicao descrito usando a sintaxe UML seguinte: [Guarda] * [iterao] sequence_number: return_variable: = operation_name (Argument_list) na qual: guarda opcional e indica uma condio que deve ser satisfeita para a comunicao para ser enviado ou ocorrer. Os colchetes so removidos quando no guarda especificada. iterao opcional e indica o nmero de vezes que a comunicao enviado ou ocorre. Os suportes de asterisco e quadrado so removidos quando nenhuma iterao especificado. sequence_number um nmero inteiro opcional que indica o fim da comunicao. O clon sucesso removido quando nenhum nmero de sequncia especificada. Porque o eixo vertical representa o tempo de proceder a pgina para baixo em um diagrama de sequncia, um nmero de sequncia opcional. return_variable opcional e indica um nome para o valor retornado pela operao. Se voc optar por no mostrar uma varivel de retorno, ou a operao no retorna um valor, voc tambm deve omitir o clon sucesso e sinal de igual. operation_name o nome da operao a ser invocado.

argument_list opcional e uma lista separada por vrgula que indica os argumentos passados para a operao. Cada parmetro pode ser um valor explcito ou uma varivel de retorno a partir de uma comunicao anterior.Se uma operao no necessita de quaisquer argumentos, os parnteses so deixados em branco. Figura 6-12 mostra a comunicao que ocorre entre a classe GenerateProjectStatusReportHandler (que responsvel pela gesto da produo global do relatrio de status do projeto) eo papel de classeprojectOrganization. Figura 6-12. Diagrama de sequncia de comunicaes

Vamos dar uma olhada passo a passo a forma como a notao de comunicao utilizado na Figura 6-12 construdo. Para comear, comunicao invoca uma operao FormatWorkerInfo que formata as informaes de um trabalhador: FormatWorkerInfo Esta operao requer unidades de um trabalhador de trabalho e produtos de trabalho, para que possamos atualizar a comunicao com o seguinte: FormatWorkerInfo (UnitsOfWork e WorkProducts) A operao tambm retorna alguns dados de sada como uma sequncia de texto formatado, por isso, atualizar a comunicao para refletir isso: OutputData: = FormatWorkerInfo (UnitsOfWork e WorkProducts) Em nossa descrio anterior desta interao e colaborao, esta operao ocorre como a comunicao sexta em uma sequncia geral das comunicaes: 6: OutputData: = FormatWorkerInfo (UnitsOfWork e WorkProducts) Um projeto pode envolver mais de um trabalhador, portanto, a operao deve ocorrer uma vez para cada trabalhador: Ns indicamos isso usando a notao de repetio: * [Para cada trabalhador] 6: OutputData: = FormatWorkerInfo (UnitsOfWork e WorkProducts) Finalmente, esta operao deve ocorrer somente se um projeto est ativo, e ns indicamos esta notao guarda usando:

[Project est ativo] * [Para cada trabalhador] 6: OutputData: = FormatWorkerInfo (UnitsOfWork e WorkProducts)

A UML tambm permite que voc mostre a comunicao usando pseudocdigo ou outro idioma. Por exemplo, voc pode usar a sintaxe de Java, C + +, C #, ou alguma outra linguagem de programao. Uma comunicao pode tambm ser descrito na margem esquerda do diagrama de sequncia.
6.4.2.1 comunicao reflexiva Semelhante a uma associao reflexiva ou ligao, tal como discutido no Captulo 3, um elemento pode comunicar com si caso de uma comunicao enviado a partir do elemento para si prprio. Na UML, uma comunicao reflexiva mostrado como uma seta horizontal slido a partir da linha de vida ou ativao de um elemento que circula de volta para a linha de vida mesmo ou a ativao do elemento. Figura 6-13 mostra uma comunicao reflexiva para a etapa 6 da interao do Projeto Gerar relatrio de status e descrio de colaborao, onde os formatos GenerateProject-StatusReportHandler classe da organizao e as informaes do projeto. Figura 6-13. Diagrama de sequncia reflexiva comunicaes

6.4.2.2 Elemento criao e destruio Quando um elemento criada durante um interaco, a comunicao que cria o elemento mostrado com a sua ponta de seta para o elemento. Quando um elemento destrudo durante a interao, a comunicao que destri o elemento mostrado com a sua seta para linha de vida do elemento onde a destruio marcada com um "X" grande smbolo.

Figura 6-14 mostra uma comunicao para a etapa 3 da interao do Projeto Gerar relatrio de status e descrio de colaborao em que a classe GenerateProject-StatusReportHandler cria um relatrio. Este nmero tambm mostra uma comunicao para a etapa 8 da interao do Projeto Gerar relatrio de status e descrio de colaborao onde a classe GenerateProject-StatusReportHandler destri o relatrio. Figura 6-14. Criao de diagrama de sequncia e destruio das comunicaes

6.4.3 Repetio
Em um diagrama de sequncia, a repetio (que consiste em repetir um conjunto de mensagens ou estmulos) dentro de uma interaco forma genrica mostrado como um conjunto de comunicaes encerrados dentro de um retngulo. Uma expresso de iterao podem ser utilizados no topo ou no fundo no interior dentro do retngulo para indicar o nmero de vezes que as comunicaes dentro do retngulo ocorrer. Figura 6-15 mostra passo 6b da interao do Projeto Gerar relatrio de status e descrio colaborao usando uma expresso de iterao na qual a classe GenerateProject-StatusReportHandler recupera unidades de trabalho do trabalho e produtos de trabalho, formatos esta informao, e produz a informao formatada para o reportar elemento. Observe o uso de * [Para cada trabalhador] no canto superior esquerdo, o que indica que as comunicaes apresentadas ocorrer uma vez para cada trabalhador envolvido no projeto. Figura 6-15. Repetio de sequncia diagrama usando uma expresso de iterao dentro de uma interao forma genrica

Alternativamente, uma expresso de guarda pode ser utilizado na parte superior no interior ou no fundo no interior do retngulo para indicar a condio de que deve ser satisfeito a fim de terminar a repetio. Figura 6-16 mostra a Figura 6-15 utilizando uma expresso de guarda para expressar a iterao mesma como na Figura 6-15. Ao invs de especificar explicitamente que o conjunto de comunicaes repetido para cada trabalhador, a expresso de guarda especifica que as comunicaes so para ser repetido at que os trabalhadores no mais permanecem para serem processados. Figura 6-16. Repetio diagrama de sequncia usando uma expresso de guarda dentro de uma interao forma genrica

Repetio dentro de uma interao instncia de formulrio envolve mostrar o conjunto real de mensagens ou estmulos que so repetidas. Figura 6-17 mostra passo 6b da interao do Projeto Gerar relatrio de status e descrio de colaborao (Figura 6-15 e Figura 6-16) para um projeto que contm exatamente trs trabalhadores, cada um com duas unidades de trabalho e um produto de trabalho. Repare que eu tambm descreveu a interao na margem esquerda para fazer o diagrama mais legvel. Figura 6-17. Repetio diagrama de sequncia dentro de uma interao exemplo forma-

6.4.4 Condicionalidade
Em um diagrama de sequncia, a condicionalidade (que envolve a comunicao de um conjunto de mensagens ou estmulos ao invs de um outro conjunto de mensagens ou estmulos) dentro de uma interao forma genrica mostrado como vrias comunicaes que saem de um nico ponto em uma tbua de salvao ou de ativao, com as comunicaes com mutuamente exclusivas expresses de guarda. Uma linha de vida tambm pode dividir em duas ou mais linhas de vida para mostrar como um nico elemento seria lidar com mltiplas comunicaes recebidas, e as linhas de vida, subsequentemente, se fundem novamente. Figura 6-18 mostra as etapas 5 e 6 da interao do Projeto Gerar relatrio de status e descrio de colaborao onde os GenerateProjectStatusReportHandler pedidos de classe que o papel de classeprojectOrganization indicam que o projeto est vazia, se o projeto um projeto recm-criado ou despovoada, e os GenerateProjectStatusReportHandler pedidos de classe que o papel de classeprojectOrganization continuam gerando informaes para o elemento relatrio se o projeto no um projeto recm-criado ou povoados. Nesta figura, apenas a comunicao do primeiro mostrado para realmente gerar o relatrio. Se no houver outros meios de comunicao para realmente gerar o relatrio, a

comunicao GenerateReport pode ir a mesma linha de vida como a comunicao OutputEmptyProject. I utilizar linhas de vida diferentes na figura porque cada linha de vida representa um caminho diferente de execuo. Figura 6-18. Condicionalidade diagrama de sequncia dentro de uma interao forma genrica

Condicionalidade dentro de uma interao instncia de formulrio envolve o conjunto de mensagens ou estmulos que so transmitidos para uma condio especfica. Figura 6-19 mostra a Figura 6-18 para um projeto que est preenchido. Figura 6-19. Condicionalidade diagrama de sequncia dentro de uma interao exemplo forma-