Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
5/24/13' 1' Diagrama'de'Sequência0 Le#cia'Duboc' IME/DICC'–'UERJ'5'1º'Semestre'2013' ! Bibliografia' FlickrCCByΒethan' • Aula!baseada!em! o Bezerra!E..!Princípios'de'Analise'e'Projeto'de'Sistemas'com'UML.! Editora!Campos.!2007.!Capítulo!6.!! o h;p://www.uml?diagrams.org/sequence! • Leitura!complementar! o Booch!G.,!Rumbauch!J,! Jacobson!I.,!!UML'Guia'do' Usuário.'2ª!Edição.!Editora! Campus.!2005.!Capítulos!19.!! ! 5/24/13' 2' Agenda' • Fases!de!análise!e!de! projeto! • Modelos!dinâmicos! • Modelos!de!interação! • Elementos!do!diagrama!de! sequência! o ParWcipantes! o Mensagens! • Exemplo! Fliker=CC:=By=Jodene' Na=Fase=de=Análise' Diagrama=de=Casos=de=Uso=(UML)' Diagrama=de=Classes=(UML)' Esclarecem'o'problema'a'ser'resolvido0 5/24/13' 3' Deixa=algumas=perguntas...' • Quais!operações!devem!ser! executadas!internamente! no!sistema?! • A!que!classes!essas! operações!pertencem?! • Quais!objetos!parWcipam!da! realização!deste!caso!de! uso?! Diagrama=de=Casos=de=Uso=(UML)' Deixa=outras=perguntas...' • De!que!forma!os!objetos! colaboram?!! • Em!que!ordem!as! mensagens!são!enviadas?! • Que!informações!devem! ser!enviadas?! • Responsabilidade!ou! classes!não!idenWficadas?! Diagrama=de=Classes=(UML)' 5/24/13' 4' Na=Fase=de=Projeto' Define9se'a'solução'do'problema0 define=aspectos=dinâmicos' refina=aspectos=estruturais' define=arquitetura' persistência=dos=dados' projeto=da=interface=gráfica' define=algoritmos' P: PatientInfo ViewInfo (PID) report (Info, PID, UID) authorize (Info, UID) Patient info D: MHCPMS-DB AS: Authorization authorization Error (no access) [authorization OK] [authorization fail] Medical Receptionist alt Aspectos=Dinâmicos' Modelo=de=Interações' Modelo==de=Estados' Modelo=de=Atividades' Confirm detention decision Find secure place Admit to hospital Transfer to police station Transfer to secure hospital Inform next of kin Inform social care Inform patient of rights Update register «system» Admissions system «system» MHC-PMS «system» MHC-PMS Record detention decision [dangerous] [not available] [not dangerous] [available] Full power Enabled do: operate oven Full power Half power Half power Full power Number Door open Door closed Door closed Door open Start do: set power = 600 Half power do: set power = 300 Set time do: get number exit: set time Disabled Operation Cancel Waiting do: display time Waiting do: display time do: display 'Ready' do: display 'Waiting' Timer Timer 5/24/13' 5' Modelagem=de=Interações' • Ajudam!a!entender!e!documentar!os!aspectos!dinâmicos!do! sistema! • Realização!do!caso!de!uso! o mensagens!enviadas!e!recebidas!pelos!objetos!que!fazem!parte!do! caso!de!uso! o descreve!o!comportamento!do!ponto!de!vista!interno!ao!sistema! P: PatientInfo ViewInfo (PID) report (Info, PID, UID) authorize (Info, UID) Patient info D: MHCPMS-DB AS: Authorization authorization Error (no access) [authorization OK] [authorization fail] Medical Receptionist alt P: PatientInfo ViewInfo (PID) report (Info, PID, UID) authorize (Info, UID) Patient info D: MHCPMS-DB AS: Authorization authorization Error (no access) [authorization OK] [authorization fail] Medical Receptionist alt Quantos'modelos'de' interação'' para'cada'caso'de'uso?0 Depende…!! • um!para!o!caso!de!uso!(se!for!simples)! • um!para!cada!cenário! • um!para!parte!de!um!cenário.!!! 5/24/13' 6' Aspectos=Dinâmicos=(1)' Diagrama=de=Sequência' Diagrama=de=' comunicação/colaboração' ênfase=na= ordem= temporal=das= mensagens' ênfase=no= relacionament o=que=há=entre= os=objetos' é=possível= fazer=uma= equivalência' Aspectos=Dinâmicos=(2)' Diagrama=de=visão=geral= da=interação' modulariza=os= outros= diagramas' 5/24/13' 7' Elementos=do=Diagrama=de=Sequência' Participante' Diagrama=de=sequência= é=feito=de=uma=coleção= de=“participantes”=' “Participantes”= interagem=um=com=o= outro=' Linha=de=vida= representa=um= participante= individual=na= interação=' 5/24/13' 8' Atores' • Atores!do!caso!de!uso!podem!ser!representados!no! diagrama!de!sequência! Ator=primário= envia=a= mensagem= que=inicia=a= interação= entre=objetos' ' Objetos' normalmente=quando= precisa=ser=referênciado= em=mais=de=um=lugar' ' objeto' nomeado' objeto' anônimo' objeto=em=uma= coleção' ' nome=da=classe' elemento= seletor' 5/24/13' 9' Coleções=de=Objetos' • É!uma!coleção!de!objetos!de!uma!mesma!classe! • Mensagem!pode!ser!enviada!a!coleção!como!um!todo! o mover!cursor!para!o!primeiro!elemento! o retornar!próximo/i?ésimo!objeto! o adicionar/remover/encontrar!um!objeto! o retornar!número!de!objetos! o retornar!se!há!outros!objetos! representado= por=dois= retângulos= superpostos' ' exemplos=de= mensagens' ' Mensagem' É!uma!solicitação!de!execução!de!uma!operação!! ou!o!envio!e!o!recebimento!de!um!sinal! Remetente' Receptor' mensagem=deve= conter=informações= suficientes=para=que= a=operação=seja= executada' começa= execução' termina= execução' periodo=em=que= executa=uma= unidade=de= comportamento' 5/24/13' 10' Natureza=da=Mensagem=(1)' Síncrona' Assíncrona' Remetente=fica=bloqueado= ate=que=o=receptor= processe=a=mensagem' Remetente=não=espera=a= resposta=para=prosseguir= com=o=processamento' Natureza=da=Mensagem=(2)' de=Retorno' Reflexiva' Especifica=o=retorno=de= uma=mensagem=enviada= anteriormente' Envia=mensagem= a=si=mesmo' 5/24/13' 11' Natureza=da=Mensagem=(3)' de=criação' de=destruição' Como=não=tem=notação= específica,=pode=usar=o= estereotipo=<<destroy>>' Linha=de=vida=inicia= mais=abaixo,=na= posição=em=que=é= criado' Natureza=da=Mensagem=(4)' perdida' encontrada' Origem=está=fora=do= escopo=da=descrição' Interpretada=como= a=mensagem=não= alcançou=seu= destino' 5/24/13' 12' Tipos=de=Mensagens=(Resumo)' Síncrona' Assíncrona' de=Retorno' de=Criação' Reflexiva' Perdida' Encontrada' Sintaxe=da=Mensagem' nome' operação' argumentos' 5/24/13' 13' Sintaxe=da=Mensagem' expressão= sequência' enviada=por=causa=de= uma=msg=anterior' Sintaxe=da=Mensagem' controle/guarda' (cláusulamcondição)' condicionado=a=uma= expressão=lógica' 5/24/13' 14' Sintaxe=da=Mensagem' controle=' (cláusulamiteração)' número=de=vezes=que=a= mensagen=será=emitida' Sintaxe=da=Mensagem' controle=' (cláusulamiteração)' limite=indefinido' 5/24/13' 15' Sintaxe=da=Mensagem' controle' =(cláusulamcondição)' pseudomcódigo' Sintaxe=da=Mensagem' variável=de=retorno' valor=retornável= pela=operação' 5/24/13' 16' Quadros=de=Interação' Encapsula!um!diagrama! de!sequência! Quadros=de=Interação' Dá!nome!ao!diagrama! dentro!do!quadro! Referencia!um!diagrama! definido!separadamente! 5/24/13' 17' = Quadros=de=Interação' sd:!Diagrama!de! Sequencia! Referencia!um!diagrama! definido!separadamente! comm:!Diag.!de!comunicação!! acWvity:!Diag.!de!aWvidade! Quadro=de=Interação' Fragmento!encapsulado! Permite!a!definição!de!uma! lógica!no!diagrama!Operandos!da!Interação! alt:!modela! “se?então? senão”! 5/24/13' 18' Quadro=de=Interação' opt:!modela! se…então! vinculado!a! um!operando! se!a!condição!não!for! verdadeira,!!não! executa!o!operando! Quadro=de=Interação' loop:!operação!deve!ser!realizada! um!número!de!vezes! vinculado!a! um!operando! se!a!condição!não!for! verdadeira,!!não! executa!o!operando! 5/24/13' 19' Exemplo:=Realizar=Inscrição' Exemplo=completo:=Bezerra,=seção.=7.7' 2.=O=sistema=apresenta=as=disciplinas=para=as=quais=o=aluno=tem=prém requisito=(conforme=RN3),=excetuandomse=as=que=já=tinha=cursado' Obter=Disciplinas=Possíveis' Exemplo=completo:=Bezerra,=seção.=7.7' passagem= do=tempo' uma!das!disciplinas!ainda! não!cursada!pelo!aluno! representa!um! grupo!de!objetos! 5/24/13' 20' Considerações' Coesão:=quão= fortemente= relacionadas=e= focada=estão=as= resposabilidades= de=uma=classe' Devemse=buscar=alta=coesão=e=baixo=acoplamento' Coesão:=a=medida= de=quão=fortemente= uma=classe=está= conectada=a=outras' Uma!mensagem!é!uma! dependência!entre! classes!! Construção=do=Modelo' Voltaremos=a=este=tópico=depois=de=estudar= o=diagrama=de=classes=de=projeto.' 5/24/13' 21' Relembrando…' Ummm….' P: PatientInfo ViewInfo (PID) report (Info, PID, UID) authorize (Info, UID) Patient info D: MHCPMS-DB AS: Authorization authorization Error (no access) [authorization OK] [authorization fail] Medical Receptionist alt Entre=os=Modelos=da=Fase=de=Projeto…' Modelo=de=Interações' Modelo==de= Estados' Modelo=de=Atividades' Confirm detention decision Find secure place Admit to hospital Transfer to police station Transfer to secure hospital Inform next of kin Inform social care Inform patient of rights Update register «system» Admissions system «system» MHC-PMS «system» MHC-PMS Record detention decision [dangerous] [not available] [not dangerous] [available] Full power Enabled do: operate oven Full power Half power Half power Full power Number Door open Door closed Door closed Door open Start do: set power = 600 Half power do: set power = 300 Set time do: get number exit: set time Disabled Operation Cancel Waiting do: display time Waiting do: display time do: display 'Ready' do: display 'Waiting' Timer Timer 5/24/13' 22' Linha=de=vida= representa=um= participante= individual=na= interação=' Remetente' Receptor' mensagem' periodo=em=que= executa=uma= unidade=de= comportamento' 5/24/13' 23' Síncrona' Assíncrona' de=Retorno' de=Criação' Reflexiva' Perdida' Encontrada' Leitura=Recomendada' Scos=W.=Ambler' The'Elements'0 of'0 UML'2.0'Style0 (cap.=7)'