Home
ANÁLISE E PROJETO OO & UML 2.0
Contents
1. ccccceeiin enero rece rer ereta 62 3 3 Qualidade de uma classifica o eeeeeeenn eee era rrenan era eda 62 3A Heran a Multipla sree disease data p a a h 63 4 EXERCICIOS iss cessuaso costa catar ENAA ANEAN ANEAN cr en sais epi casa ASTANA NAANA RASANEN ANNA 63 VII PROJETO DE CASOS DE USO assscensssrarassrntnsss penso EEEIEE EE EO EEEE EO EEEE EES 65 1 PROJETO aii ENANSAR AAN ANAAO ENAERE scans nessas 65 2 CLASSES DE PROJETO casi sssessssesnecsa cesnecis ENNEK EEEN RENNA ANAONA AANE KAANAA AAE 65 3 ESTUDO DA INTERA O ENTRE OBJETOS sssesesessesesesessesseoseseseseereseseseeresese 66 3 1 Realiza o Converter Celsius Fahrenheit desktop sssssssssssssseseesessssssseseeeeee 66 4 REFINAR O DIAGRAMA DE CLASSES eeceeeceeees erre ecr erre ee rec rrcr res ceanenda 68 41 Depend ncias erreia en en tacos qo a cn a Lacan U T O Doo ada ci NPe An AE SANA O aaa ad SOR 68 4 2 Implementa o de associa es e agrega es sssssssseesssssssssseeseesssssssseeee 69 3 SUBSISTEMAS sacas sesnacsss cernscas aan AESSR umas ANEREN AA AAA 74 6 COMPORTAMENTOS ASSOCIADOS A PERSISTENCIA passas ras esensi iire 75 7 EXERCICIOS sc soneran KEREKE AKINE NEARE VANERNE KEARE RESA Cups bas ban Ca ECA Cuica AA KENA KIARA RA 75 VII DIAGRAMA DE ESTADOS casas eu eres ess rane rasuras a 79 1 ELEMENTOS B SICOS iso nte iu sido cs nadas i e db E De Ci E O Ca dd S 79 1f Rotacio basica une
2. NOME Abastecer ve culo caso concreto DESCRI O Especializa o caso de uso realizar transa o para permitir ao cliente obter combust vel de uma bomba debitando o valor de sua conta PR CONDI ES e o cliente possui um cart o banc rio a conex o com o banco est ativa a bomba tem combust vel P s CONDI ES ou O terminal retornou o cart o banc rio ao cliente liberou o combust vel ao cliente e debitou o valor de sua conta O terminal retornou o cart o banc rio ao cliente n o liberou combust vel e nenhum valor foi debitado da sua conta FLUXO B SICO DE EVENTOS Em Cliente realiza transa o 1 O sistema solicita ao cliente para tirar o bico de abastecimento e libera o fornecimento de combust vel 2 O cliente enche o tanque at atingir o valor informado ou at que o tanque esteja cheio 3 O cliente recoloca o bico na bomba 4 Retoma se o caso de uso abstrato em Cliente realiza transa o O diagrama de casos de uso correspondente aos casos acima ilustrado na figura 21 Realizar transa o cliente sistema banc rio Abastecer ve culo Figura 21 generaliza o especializa o de casos de uso Ressalta se que nesta situa o s o executados os casos de usos especializados Eles apenas reusam partes do caso geral A tabela 3 mostra as diferen as entre especializa o e extens o de casos de uso TABELA 3 COMPARATIVO ENTRE ESPECIALIZA O E EXTENS O
3. 2 Desenhe o diagrama de comunica o equivalente ao diagrama de seq ncia anterior 3 Fa a um diagrama de seq ncia para representar um cliente que efetua uma retirada R 50 00 em um caixa autom tico A retirada deve ser debitada da conta corrente do cliente 4 Complete o exerc cio anterior para permitir saques somente quando h saldo na conta corrente e se o valor do saque for inferior a R 1 000 00 5 Um casal tem tr s filhos Cada filho tem seu quarto Para facilitar as tarefas matinais o casal disp e de um rel gio no quarto capaz de enviar sinais de r dio aos rel gios dos filhos mas n o de receber Ao anoitecer o casal seta no rel gio deles o hor rio para despertar id ntico para todos os filhos Ao amanhecer na hora marcada o rel gio do casal envia o sinal de despertar para cada um dos rel gios dos filhos Desenhe o diagrama de seq ncia 6 Suponha o caso de uso apresentado em seguida resultante da fase de an lise de requisitos Na fase de an lise realiza o dos casos de uso sua descri o pode ser detalhada sem se preocupar profundamente com a implementa o Descreva a realiza o do mesmo fazendo os itens abaixo a Detalhe a descri o do caso de uso considerando que ele ser voltado a funcionar na web Os clientes devem ter meios de realizar reservas on line i Podem escolher a categoria de ve culo ao inv s de visualizar todos passo 5 ii Podem participar de um programa de fidelida
4. Multiplicidade 1 1 e varia es Associa es unidirecionais de multiplicidade 1 1 s o de simples implementa o basta colocar um atributo na classe origem da rela o Se a rela o for bidirecional coloca se um atributo em cada uma das classes que participam da associa o class Classe 7 Figura 72 Implementa o de uma associa o unidirecional de multiplicidade 1 1 O c digo abaixo ilustra uma implementa o poss vel para a associa o da figura 72 1 class ClasseA Private ClasseB objB new ClasseB pode ser instanciado em outro local outros atributos m todos w N as Nao O c digo abaixo ilustra uma implementa o para uma associa o bidirecional de multiplicidade 1 1 L class ClasseA 2 Private ClasseB objB new ClasseB pode ser instanciado em outro local 3 outros atributos 4 m todos 5 6 class ClasseB 7 Private Classe objA new ClasseA pode ser instanciado em outro local 8 outros atributos 9 m todos 69 10 Multiplicidade 1 e varia es Quando a multiplicidade m xima menor que infinito e n o muito grande pode se alocar espa o na instancia o do objeto do lado 1 e povoar o vetor neste instante ou posteriormente J class Professor Professor leciona 2X Disciplina Figura 73 associa o de multiplicidade 0 1 0 5 Por exemplo para a associa o re
5. deployment Projeto execution environ execution environ execution environ cliente Nav egador App Server BD Coorp ODBC HTTP ODBC LAN device Impressora Figura 100 Exemplo de diagrama de implanta o O diagrama de implanta o pode ser associado ao de componentes para representar a distribui o dos componentes Pode ser importante para analisar o sistema quanto distribui o de carga de trabalho O diagrama de componentes da figura 101 pode ser associado ao diagrama de implanta o da figura 100 resultando naquele ilustrado pela figura 101 cmp Projeto zQ executable executable Alunos Alunos SGBD executable Lan amento de executable Professores Notas mt executable Turmas ITurmas Figura 101 Exemplo de diagrama de componentes 95 deployment Projeto 7 execution environm cliente Nav egador 5 executable Lan amento de Notas LAN device Impressora HTTP NN execution environment App Server executable Alunos a executable Professores a executable iTurmas ODBC execution environment BD Coorp executable SGBD Persist ncia Figura 102 Exemplo de diagrama de componentes 96 XI REFER NCIAS BIBLI
6. deve fornecer tamb m informa es sobre a parte contr ria pessoa f sica ou jur dica que est processando ou sendo processada pelo cliente que dever ser registrada caso ainda n o esteja Observe que uma mesma pessoa f sica ou jur dica pode ser tanto um cliente como uma parte contr ria em processos diferentes obviamente Um processo deve tramitar em um determinado tribunal e em uma determinada vara no entanto um tribunal pode julgar muitos processos e uma vara pode possuir diversos processos tramitando nela Um tribunal pode possuir diversas varas por m um processo julgado por um tribunal s pode tramitar em varas pertencentes ao mesmo O advogado pode achar necess rio emitir relat rios de todos os processos em andamento em um tribunal e tramitando em uma vara Cada processo possui no m nimo uma audi ncia cada audi ncia relativa a um determinado processo deve conter sua data e a recomenda o do tribunal Para fins de hist rico do processo cada audi ncia deve ser registrada Um processo pode gerar custas c pias viagens etc Cada custa deve ser armazenada de forma a ser cobrada da forma contr ria caso o processo seja ganho Este sistema deve estar integrado a um sistema de contas a pagar receber cada custa gera uma conta a pagar Caso o processo seja ganho ele gerar uma ou mais contas a receber dependendo da negocia o com a parte contr ria 32 IV AN LISE DOS CASOS DE USO Este cap tulo in
7. MVC Model View and Controller um padr o de arquitetura de software No contexto da engenharia de software um padr o uma solu o comprovada a um problema recorrente Segundo Gamma e co autores 1995 padr es especificam abstra es que est o acima do n vel de classes objetos isolados ou de componentes As vantagens ao se utilizar padr es de projeto s o ter um vocabul rio comum para a discuss o de problemas e solu es de projeto Gamma et al 1995 facilitar documenta o e manuten o da arquitetura do software Buschmann et al 1996 auxiliar o projeto de uma arquitetura com determinadas propriedades Buschmann et al 1996 A id ia do padr o MVC desacoplar ao m ximo a apresenta o da aplica o view da l gica do neg cio business model Muitos sistemas tornam se complexos pois misturam c digo da apresenta o com o c digo da l gica do neg cio Qualquer mudan a requerida pelo usu rio na forma de apresenta o das informa es exige tamb m mudan a na l gica do neg cio A camada de apresenta o envolve interfaces e tamb m relat rios Atualmente frequente a utiliza o de diversas interfaces para um mesmo neg cio em fun o do tipo de usu rio ou do tipo de dispositivo de sa da Se para cada tipo de usu rio tipo de dispositivo de sa da fizermos uma l gica de neg cio diferente estaremos replicando c digo desnecessariamente Por exemplo uma aplica o que
8. Casos de uso auxiliares s o frequentemente esquecidos pois n o s o essenciais funcionalidade do sistema Por m esquec los completamente pode conduzir a um sistema dif cil de ser utilizado Lembrar de colocar casos de uso para executar manter e configurar o sistema tais como lan ar e parar o sistema incluir novos usu rios fazer backup das informa es incluir novos relat rios e realizar configura es Decomposi o funcional N o necess rio detalhar em excesso os casos de uso Muitos detalhes levam a decomposi o dos casos em fun es O objetivo compreender o sistema atrav s de cen rios de utiliza o Casos de uso n o s o feitos para analisar no sentido de decompor os requisitos em requisitos menores E um processo de s ntese ou elabora o e n o de an lise no qual o problema n o 29 totalmente conhecido Quebr lo em partes menores an lise dificulta a obten o de uma vis o geral Em equipes com forte compet ncia em an lise estruturada h tend ncia em encontrar fun es ao inv s de casos de uso Por exemplo fazer pedido revisar pedido cancelar pedido e atender pedido podem parecer bons casos de uso No fundo todas estas fun es est o relacionadas ao caso de uso realizar pedido Decomposi o funcional pode levar a um n mero intrat vel de casos mesmo para pequenos sistemas e perda de foco no que realmente importante no sistema o que traz val
9. identificando rela es entre classes seus m todos e atributos A figura 5 mostra um cen rio onde o usu rio fornece uma express o aritm tica sintaticamente correta 11 sd Express o Aritm tica Correta T CtriCalc usu rio IlUCalc 1 sadia 2 Calculadora Pos aa 3 ObterExpressao 4 express o 5 exp 6 exp 7 calcular exp 8 avaliar l l l l l l l l 9 calcular l 12 resultado D Figura 5 Diagrama de seq ncia para a calculadora 11 mostrarResultado res lt 3 2 Refinamento do Diagrama de Classes A partir das informa es do diagrama de seq ncia poss vel identificar m todos associados s classes Por exemplo a classe IUCalculadora deve ter um m todo mostrarResultado lt resultado gt identificar as rela es entre classes Pelo diagrama de seq ncia fica clara a exist ncia de uma rela o de depend ncia entre a classe de controle e as duas outras como ilustra a figura 6 1 I x I g lt instantiate gt gt j 1 lt lt entity gt gt Calculadora lt lt instantiate gt gt Figura 6 Diagrama de classes 3 3 Definir o Comportamento das Classes Nem todas as classes de um sistema possuem mais de um estado Para as classes mais complexas podemos especificar seus comportamentos utilizando m quinas de estado A figura 7 mostra uma poss vel m quina de estados para a calcula
10. Decis o Paralelismo ou bifurca o fork Sincroniza o ou uni o join Raias Actnty Transtion Decidon Synchronization Bas Figura 97 Elementos b sicos do diagrama de atividades A figura 98 ilustra um caso de uso de oferta de disciplinas em uma universidade Professores escolhem as disciplinas e hor rios que formam as turmas os alunos recebem uma notifica o e tamb m uma c pia do cat logo impressa As seguintes atividades est o representadas Criar turmas entrar com as informa es das turmas para o semestre Escolher turmas professor escolhe turmas Associar professor s turmas Criar cat logo de disciplinas na verdade das turmas As transi es entre as atividades representam o fluxo de controle do caso de uso H atividades sequenciais pontos de decis o barras de paralelismo e de sincroniza o raias que identificam os respons veis pelas atividades e atividades inicial e final 92 Use Case View PRI RO O gt criarturmas 4 escolher N associar prof N gt E turma j Todos profs escolheram Sim turmas a j criar Y catalogo r In cio de paralelismo 7 4 Nm Enviar catalog Email catalog livraria j prestudantes 7 j i f Barra de sincroniza o o O abrir JO matriculas e Figura 98 Exemplo de diagrama de atividades 2 EXERC CIOS Representar por meio de um
11. diversas raz es e por consegii ncia formas ligeiramente diferentes de se representar estados compostos 4 Para representar decomposi o de um estado pode se fazer um estado composto com uma nica regi o com subestados diretos onde somente um deles est ativo por vez Para representar concorr ncia entre estados isto o fato de dois estados estarem ativos ao mesmo tempo preciso representar dividir o estado composto em duas ou mais regi es cada qual ter um estado ativo Para representar uma subm quina ou seja um estado que referencia outra m quina de estados que conceitualmente substitui o estado em quest o Para exemplificar a situa o imaginar um aparelho de fax capaz de enviar e transmitir simultaneamente A representa o id ntica utilizada no caso de multithreading ilustrada na figura 94 O estado composto Processando dividido em duas regi es concorrentes a superior respons vel pela recep o de fax e a inferior pelo envio Em um dado momento o aparelho de fax pode estar com os subestados transmitindo e recebendo ativos 86 Processando erroAmprimirRelatorio Dea NES mm So recolocar fone retirarFone fimTransmiss o lt Oo J mw A Figura 94 Estado composto Processando com duas regi es concorrentes Na figura 94 poss vel observar um pequeno s mbolo na parte inferior do subestado Recebendo que indica ser um estado composto Sua decomposi o est detalha
12. error int final static imageUpdate Boolean lt lt interface gt gt fr ImageObserver image java componente java Figura 99 Exemplo de componentes e de suas rela es A UML define tr s tipos de componentes Bezerra 2004 De execu o existem em tempo de execu o por exemplo processos threads etc De instala o por exemplo arquivos execut veis controles Active X DLLs etc De trabalho s o aqueles a partir dos quais os componentes de instala o s o criados tais como documentos fontes bibliotecas est ticas etc H v rios estere tipos para componentes Execut vel Biblioteca bibliotecas de classes ou fun es Tabela reposit rio de dados Documento arquivos texto help manual do usu rio Arquivo c digo fonte ou outro arquivo qualquer Extra do de http paginas fe up pt jpf teach POO componentes pdf 94 2 DIAGRAMA DE IMPLANTA O O diagrama de implanta o deployement representa a arquitetura f sica do sistema e opcionalmente os componentes que existem em tempo de execu o Os elementos b sicos s o N s representa um recurso computacional processadores dispositivos sensores roteadores Conex es ligam os n s normalmente s o meios f sicos de comunica o fibra tica cabo coaxial ou protocolos de comunica o TCP IP HTTP UDP A figura 100 mostra um exemplo de diagrama de implanta o
13. if evento compareToIgnoreCase o 0 estado 3 abrirCompartimento System out println ABERTO break case 2 tocando if evento compareToIgnoreCase 1 0 estado 0 pararCD desligar System out println CD DESLIGADO j else if evento compareToIgnoreCase o 0 estado 3 pararCDabrirCompartimento System out println ABERTO if evento compareToIgnoreCase s 0 estado 1 pararCD System out println CD LIGADO break case 3 aberto if evento compareToIgnoreCase 1 0 estado 0 fecharCompartimento System out println CD DESLIGADO J else if evento compareToIgnoreCase p 0 estado 2 fecharCompartimentoTocarCD System out println TOCANDO else if evento compareToIgnoreCase c 0 estado 1 fecharCompartimento System out println LIGADO break static public void main String args BufferedReader rdr new BufferedReader new InputStreamReader System in String evento System out println CD DESLIGADO do System out printlin L iga desliga P lay S top O pen C lose F im try 89 113 evento rdr readLine 114 mudarEstado evento 115 catch IOException e 116 System out println Erro leitura 117 118 while evento compareToIgnoreCase f 0 119 120 3 Refazer o exerc cio acima mostr
14. o Mostra o resultado Informa o resultado da express o Fim Fim do caso de uso Fluxos alternativos Se o usu rio fornecer uma express o sintaticamente Al em Valida express o incorreta inform lo sobre o erro e retomar o fluxo b sico em Solicita express o O usu rio pode decidir encerrar o caso de uso sem A2 em Solicita express o fornecer uma express o Nesse caso retomar o fluxo b sico em Fim Portanto a sa da da fase de an lise de requisitos composta por lista de requisitos funcionais e n o funcionais diagrama de casos de uso e defini es textuais dos casos 3 AN LISE E PROJETO An lise a solu o conceitual dada ao problema Marca o in cio da defini o inform tica mas sem levar em conta detalhes da implementa o tais como a linguagem a ser utilizada e o sistema gerenciador de banco de dados Preocupa se principalmente com as classes do dom nio do problema e suas rela es e tamb m com os casos de uso Projeto a solu o inform tica dada ao problema A separa o entre an lise e projeto t nue pois o projeto acaba sendo o resultado de sucessivos refinamentos do modelo conceitual de an lise 3 1 Diagramas de Intera o H v rios tipos de diagramas de intera o na UML Exemplifica se o uso do diagrama de segii ncia cuja utilidade estudar as intera es entre os objetos com o objetivo de refinar o diagrama de classes
15. o realizada Fluxo B sico Ator Sistema Solicitar convers o de uma temperatura em graus Celsius Obter valor 40 Solicita o valor a ser convertido Fornece valor a ser convertido Obt m o valor Validade valor entrada Realizar a convers o Executar subfluxo Atualizar Hist rico Mostrar temperatura em Fahrenheit Se o usu rio deseja continuar voltar ao ponto Obter valor se n o o caso de uso termina Fluxos alternativos e subfluxos Al em Validade valor entrada Se temperatura n o for num rica voltar ao ponto Obter valor S1 Atualizar Hist rico Armazena uma convers o de Celsius para Fahrenheit incluindo o valor em Celsius o equivalente em Fahrenheit data e hora da convets o TABELA 6 DESCRI O DO CASO DE USO CONSULTAR HIST RICO Nome do caso de uso Consultar Hist rico Descri o Permite ao usu rio visualizar as dez ltimas convers es realizadas Ator Envolvido Meteorologista Pr condi es Sess o iniciada P s condi es Hist rico mostrado ao meteorologista Fluxo b sico Ator Sistema Solicitar visualiza o nenhuma convers o realizada Sistema busca as ltimas dez convers es realizadas ou as existentes Mostra o hist rico de convers o fim O caso de uso termina Fluxos alternativos A1 em nenhuma convers o realizada
16. ou seja foi criado apenas para possibilitar a elabora o de um bom projeto n o h realiza o de casos de uso na an lise Neste caso a realiza o do caso de uso ocorrer somente no projeto As realiza es de casos de uso de projeto podem ser diretamente conectadas ao modelo de caso de uso por uma rela o de depend ncia lt lt trace gt gt ao inv s de estarem ligadas realiza o do caso de uso de an lise conforme ilustra a Figura 24 lt lt trace gt gt pad gt lt lt trace gt aas SR 4 N vaaia De RRE e RS vinia gisk I ue id o s Ed g Modelo de Realiza o do Realiza o do casos de uso caso de uso caso de uso an lise projeto lt lt trace gt gt lt lt trace gt gt AETIA ESS TS x 4 t 4 1 Modelo de Realiza o do casos de uso caso de uso projeto Figura 24 realiza o dos casos de uso an lise e projeto ou somente no projeto M todo de An lise De acordo com o RUP a an lise de casos de uso composta por Para cada caso de uso considerado em uma itera o Criar uma realiza o de caso de uso Complementar a descri o do caso de uso Levantar as classes de an lise examinando o comportamento do caso de uso Distribuir o comportamento do caso de uso entre as classes de an lise Para cada classe de an lise Descrever as responsabilidades da classe 34 Definir atributos Definir rela es entre classes 2 PADR O MVC
17. todos deixando somente os compartimentos lt lt estere tipo gt gt Classe atributos m todos Figura 2 Nota o UML para classe 5 EXERC CIOS 1 Um usu rio deseja uma calculadora que efetue as quatro opera es b sicas As express es permitidas s o bin rias envolvendo apenas dois n meros por exemplo 2 3 5 ou 3 3 2 Identifique os objetos seus m todos e atributos 2 Seguindo a abordagem de orienta o a objetos identificar no enunciado abaixo os objetos e usu rios do sistema Liste os nomes dos objetos seus atributos e os usu rios do sistema Fa a o mesmo para a an lise e projeto estruturados identificando as grandes fun es e suas decomposi es UMA LOCADORA de ve culos necessita de um sistema para facilitar o atendimento a seus clientes Os carros s o classificados por tipo popular luxo e utilit rio As informa es que interessam locadora sobre cada um dos ve culos s o placa do carro tipo e valor di rio do aluguel Os funcion rios da locadora s o respons veis pelo cadastro dos clientes e dos ve culos Eles tamb m fazem as loca es e encerram as mesmas H clientes especiais e comuns Os especiais t m direito a uma taxa de desconto e um valor de quilometragem extra nas suas loca es Um cliente identificado pelo nome n mero do cart o de cr dito e data de expira o Il NO O GERAL DE AN LISE E PROJETO OO O objetivo deste cap tulo apre
18. DE CASOS DE USO Especializa o Extens o O caso de uso especializado executado O caso de uso base executado O caso de uso base n o precisa ser O caso de uso base deve ser completo e com completo e com sentido H v rias sentido lacunas preenchidas somente nas especializa es O comportamento de uma execu o O comportamento de uma execu o depende unicamente do caso espec fico depende do caso de uso base e de todas as 28 extens es que s o executadas Ator x Ator Especializa o de atores representa que um conjunto deles possui responsabilidades ou caracter sticas em comum Algumas dicas para evitar modelagens desnecess rias N o utilizar atores para representar permiss es de acesso N o utilizar atores para representar organogramas hierarquias de cargos de uma empresa Utilizar atores somente para definir pap is em rela o ao sistema Por exemplo se num sistema de matr culas de uma universidade h casos de uso especiais para alunos de ci ncias exatas e para alunos de humanas ent o sinal que estes alunos s o especializa es de um ator gen rico aluno A figura 22 ilustra a nota o UML para este caso Observar que alunos de ci ncias exatas e de humanas herdam todas as associa es do ator aluno ae Aluno POS Aluno C Exatas AlunoHumanas Figura 22 Especializa o de atores 5 MODELAGEM 5 1 Dicas Casos de uso auxiliares
19. Escolher produtos e Processar pedido 3 2 4 Fluxo Alternativo Um fluxo alternativo apresenta um comportamento opcional de outra forma que n o parte do comportamento normal de um caso de uso Fluxos alternativos s o utilizados para representar tratamento de exce es ou um comportamento alternativo complexo que tornaria o fluxo b sico muito longo ou de dif cil compreens o Fluxos alternativos sempre s o dependentes da exist ncia de uma condi o que ocorre em um ponto de extens o de outro fluxo de eventos H tr s tipos de fluxos alternativos 1 Espec fico iniciam num ponto de extens o 2 Regional podem ocorrer entre dois pontos de extens o 3 Geral podem ocorrer em qualquer ponto do caso de uso No exemplo Buscar produtos e fazer pedido os fluxos alternativos seguintes s o encontrados Tratar produto esgotado espec fico e pesquisar por palavras chaves regional A2 Tratar produto esgotado Em Produto esgotado quando n o h a quantidade requisitada do produto em estoque 1 O sistema informa que o pedido n o pode ser completamente satisfeito 2 a descri o deste fluxo continua com oferta de quantidades e produtos alternativos ao cliente 3 O fluxo de eventos b sico retomado no ponto onde foi interrompido A1 Pesquisar por palavras chaves Entre Mostrar cat logo de produtos e Escolher produto quando o cliente escolhe realizar uma pesquisa por palavras chaves 1 O sistema p
20. O E um diagrama utilizado na an lise de requisitos com objetivos claros 1 2 Compreender o problema Delimitar o sistema quem est no entorno Definir as funcionalidades oferecidas ao usu rio n o h preocupa o com a implementa o Diagrama de casos de uso uma ferramenta de comunica o entre clientes usu rios e desenvolvedores para discutirem e definirem as funcionalidades que devem ser realizadas pelo sistema Os elementos b sicos de um diagrama de casos de uso s o gt gt gt atores casos de uso e rela es entre os mesmos ATORES Representam pap is desempenhados por usu rios ou qualquer outra entidade externa ao sistema ex hardware outros sistemas Podem iniciar casos de uso Podem prover e ou receber informa es dos casos de uso A AA nte ContasReceber Scanner Figura 12 Nota o UML para ator Como encontrar atores de um sistema O SS SOS Examinar o problema procurando por pessoas ou sistemas do entorno Quais as pessoas ou departamentos interessados num determinado requisito funcional Quem ir suprir o sistema com informa es e quem ir receber informa es do sistema Quais os recursos externos utilizados pelo sistema Uma pessoa desempenha diferentes pap is O sistema interage com outros sistemas j existentes 16 Como saber se um ator foi bem escolhido E um processo iterativo a primeira tentativa dificilmente ser a definitiva Por
21. Pode se chamar um m todo da pr pria classe ou de outra classe Por exemplo a partir do diagrama de segii ncia figura 69 pg 67 da realiza o do caso de uso Converter Celsius Fahreneheit pode se identificar que a classe CtrlConvers o possui um estado inicial onde instancia a interface e hist rico e passa automaticamente ao estado Aguarda entrada onde executa a a o associada entry Esta a o produz um evento de chamada na classe UConversao que faz com que a m quina correspondente passe do estado Aguarda cmdo controle 83 para Aguarda entrada do usu rio Observar que do ponto de vista do CtrlConversao solicitarCelsius uma a o e de IUConversao um evento de chamada Embora n o esteja representado e n o preciso representar todos os detalhes fica subentendido que quando o usu rio fornece um valor de entrada ao objeto da classe IUConversao gera se o evento valor fornecido no CtrlConversao equivale resposta ao evento de chamada solicitarCelsius stm CtrlConversao ME linstancia Historico e IUConversao Aguarda entrada entry MUConversao solicitarCelsius Inicial fornecido falso ConversaoCF v UConversao mostrar f stm IUConversao ME mostrar f verdadeiro mostrar f writeObject Aguarda cmdo controle Initial solicitarCelsius valor fomecido num rico ou fim Aguarda entrada usu rio valor fornecido fim amp nu
22. cesar a 37 AMA ALIID LOS asa na ain Lea ne ana aj EEE EEEE Due nda Te ocaso sd ea 37 AE CMETOdOS EEEE EIEE A RE E AETA E AEA NE 38 1 3 2ESTErCOLIPOS nee an eaea rae Ea a E E da EUAN A E Ea DA GRE DAR So 38 4 2 Linhas Mestras isee ike E oE ul casi ERE ENE ENIES ERTE fava 40 5 EXEMPLO a casis con sasi seria taco ANAA ANA AANA ANANA ada E Gal de ain a NO Eau anal nana debates 40 6 EXERC CIOS carnassa aisar cao is dani O ana oia Son dep d So nba 42 V ESTUDO DA INTERA O ENTRE OBJETOS eecceceseeseeereereenerencencenaso 43 T DIAGRAMA DE SEQUENCIA p is s0n5piaip asa paabdacaoos cupaaoa dad csaort kinadai asaayan 43 1 1 Tipos de mensagem cc use ses ue as ago reiri aguas Las datas gas padrao SENSU Ls PESA dC Dea se cana 44 1 2 Einharda Vida ssescesasresu damas vesepera o ki nE ata EENE Caetano deu ss mapear aim cara e cares Sho 45 p Pe ATIVA O ooo anota atores mio Sis arara eis aa ATA a A ora ra an o nG A T A 45 1 47 AE o side stone mis cao ada ps Delas De Sonda a qnd Enf CERA a ada pasa Si aa DAS Dona GRE peca da saio d 45 17 AOpta ias soa icanacasis E sa sa Gunn CRS Ragusa aaa Den Dias dede nd apa 6 da da da aaa 46 1 60 LOOP sms pacan panda Sonda oa aa pais Dona E CNA T Eca dra aa E RSS da quad 46 Tu O ROS Same cam suriue sda Eddie SD eg quina dio aaa Seia Sa Sa cia SEDA UA PSD O E RG aa E urina G 47 1 8 Criar edestu mesran ee hos Tiga a ERE RE ais ANART NE EROT demais 48 1 9 Einhas MestraS ocaso itosi eroaa
23. de projeto 67 class classes converter J boundary IUConversao control CtrlConversao mostrar float void solicitarCelsius float instantiate 1 Es 1 n 1 1 1 1 1 1 i instantiate 4 interface Serializable 1 1 il entity entity ConversaoCF Historico gaes float adicionar ConversaoCF void Horario Date 0 10 fordered 1 writeObject void getFahr float Figura 70 Diagrama de classes de projeto converter Celsius Fahrenheit textual Observar que as associa es entre CtrlConversao e as demais classes foram transformadas em depend ncias Deixou se claro que Hist rico implementa realiza uma classe de interface serializ vel Hist rico uma cole o ordenada de objetos ConversaoCF Os atributos e opera es tamb m possuem tipos de dados compat veis com Java a suposta linguagem de implementa o e visibilidades importante notar que as mensagens que chegam num objeto s o transformadas em opera es ex solicitarCelsius transformada numa opera o em IUConversao Neste exemplo did tico as classes de an lise n o sofreram grandes modifica es Tamb m n o houve necessidade de dividir o sistema em subsistemas ou pacotes 4 REFINAR O DIAGRAMA DE CLASSES A partir dos diagramas de sequ ncia de projeto detalham se as rela es do diagrama de classes Alguns refinamentos no diagr
24. de seq ncia equivalente 49 3 EXEMPLO Retoma se o exemplo do conversor de graus Celsius para Fahrenheit O cen rio fluxo b sico subfluxo atualizar hist rico mostrado na figura 45 Observar que o diagrama bastante informal sem preocupa o com argumentos de m todos cria o e destrui o de objetos armazenamento em banco de dados ou sistema de arquivos e se h lugar ou n o no hist rico para guardar uma nova convers o sd an lise casos de uso i meteorologista JUConversao CtrlConversao Historico Conv ersaoCF dUConversao iCtriConv ersao Historico ConversaoCF i i 1 1 1 solicitarvalor Celsius valor Celsius converter valor c a guardar conversao valor Fahrenheit mostrar valor convertido valor Fahrenheit Figura 45 diagrama de seqii ncia para o caso realizar convers o C gt F 4 PACOTES A estrutura de uma aplica o dada pelas classes e suas rela es Classes podem ser agrupadas em pacotes de an lise para facilitar o manuseio do modelo de an lise lidar com partes menores ou medida que o modelo de an lise aumenta e precisa ser decomposto Al m de identificar os pacotes de an lise preciso definir os servi os que cada um deles fornece 50 5 EXERC CIOS 1 No diagrama de segii ncia abaixo qual a ordem das mensagens enviadas m1 e m2 sd Exerc cio 7 3 1 li 1 2 m0 3 1 1 i 1 8 m2
25. es dos tr s aparelhos s o do tipo liga desliga o mesmo bot o realiza as duas fun es 9 Suponha um editor de textos capaz de manipular tr s tipos diferentes de objetos textos imagens e desenhos Este programa manipula somente um tipo de objeto por vez de acordo com a sele o corrente do usu rio Quando o usu rio seleciona um texto o editor mostra um menu pop up com as op es de edi o textuais o mesmo ocorre quando da sele o de uma imagem ou de um 90 desenho Fa a o diagrama de estados representado este comportamento e o pseudoc digo que implementa o diagrama de estados 91 IX DIAGRAMA DE ATIVIDADES O diagrama de atividades utilizado para representar a din mica do neg cio dos casos de uso ou para detalhar uma opera o de uma classe Em rela o aos casos de uso pode tanto representar o fluxo b sico como um cen rio particular de execu o importante ressaltar que diagramas de atividade n o devem tomar o lugar dos diagramas de estado nem dos diagramas de intera o pois ele n o detalha como os objetos se comportam nem como interagem Normalmente utilizado na fase de inicializa o para descrever os fluxos dos casos de uso amadurecendo na fase de elabora o Posteriormente pode ser utilizado para representar o fluxograma para uma opera o ELEMENTOS B SICOS A o realizada de forma instant nea Atividade demora certo tempo para ser realizada 1 Transi o
26. exemplo um aluno calouro diferente de um veterano s o atores diferentes SIM se eles utilizam o sistema de maneiras diferentes e N O caso contr rio 3 CASOS DE USO A cole o de casos de uso representa todos os modos de execu o do sistema do ponto de vista do usu rio Um caso de uso uma sequ ncia de a es que produz um resultado significativo com valor para um ator Quais s o as tarefas de cada ator Que informa es o ator obt m do sistema Quem as fornece Quem as captura Algum ator precisa ser informado sobre eventos produzidos pelo sistema Sim gt casos de uso de registro e notifica o H eventos externos que devem ser notificados ao sistema Sim gt devem haver casos para que os atores possam notificar o sistema 3 1 Descri o N o h descri o padr o definida pela UML Em geral o diagrama bastante informal e sua estrutura o rela o entre casos n o deve ser levada ao extremo importante ressaltar que o diagrama de casos de uso uma forma de visualizar os casos e n o de descrev los detalhadamente Portanto o diagrama por si s n o suficiente Os casos de uso s o descritos normalmente pelos seguintes elementos nome descri o requisitos requirements s o os requisitos funcionais providos pelo caso de uso gt restri es constraints tais como pr e p s condi es e condi es invariantes Pr condi es define o que
27. ga aa E E ESR AE EE GTS EREE E 48 2 DIAGRAMA DE COMUNICA O esesesesseeseeseseseseeseseseseeresssoreseseseeresesessereseso 49 3 EXEMPLO EE E NA EE O AE E EEA 50 4 PACOTES ossssssrssesosasoossrssnrssssoiasnssrresisessaoesssirsosasoisosavosnirssarossrossrressnsraves 50 D EXERCICIOS c aqns sia soma siina nanana a Nan SAKANA dai saca sado SASA dida a dino ARSA SANAAA 51 VI RELA ES ENTRE CLASSES DE AN LISE asss sasa i 53 T sASSOCIA O neia aea Ee AE A AEE Arae DS na 53 1 1 Associa o reflexivas i oaeiio ane eneit testte k sE K ECESE des Peres devera ci sine IKEE ENa 55 1 2 Classes associativas neioii ue E Ea SEE E E E EEE Ea 55 1 3 Rela es Tern riaS s cerinte kasya r durd yine LENAN AE E OENE AAS aguda AEN EIE eNi 56 1 4 Levantamento das associa esS sessesssrserorisrsesesssosssnessesosssessrnersrdessesresses 57 2 AGREGA O o eruan aaeeei s E e a aa ains s inai 58 Zoti NotacaOns esenee e ae EEE VN EE EENE A OT E EEA ESO EERS 58 2 2 M ltiplicidade esis quo sas rare aena EE AEE EA EEEN ea KENEEN phi POEA EiS 58 2 3 Tipos de asresa es erii oiris ti ripia ET ses NE enredos sos sda edu ES KOSER EEA DEVa EEEN e 59 ZA Levantamentos sonsa picos EEE a EE EE E E E EATE ade a S E EE 60 3 GENERALIZA O saias sas t copraressapee ts pias OEE da CU a CASCAS ECETES EURAN 60 3 1 gt Hierarquia de classes au sus ai es meregasa grs te mes na cet i a EE EGO AMT Ra cad MPa a sad dr 61 3 2 Levantamento de generaliza es
28. lise pode fornecer uma vis o conceitual do sistema independente das tecnologias empregadas Por exemplo um cliente pode querer que duas fornecedoras de software fa am uma proposta baseando se em uma especifica o Outro caso seria a necessidade de implementar parte de um sistema em plataformas ou linguagens diferentes devido infra estrutura existente em filiais distintas por exemplo plataformas diferentes Ainda sistemas 33 cr ticos controle de aeronaves linhas de trem podem necessitar de programas que realizam c lculos empregando diferentes m todos para que decis es cr ticas s sejam tomadas quando os dois m todos produzem resultados equivalentes An lise ou n o Em rela o aos modelos de an lise pode se dizer que h tr s abordagens poss veis Mant lo atualizado durante todo o ciclo de vida do sistema Consider lo como um resultado intermedi rio e uma vez que o projeto esteja feito atualizar o modelo de projeto Fazer an lise e projeto integrados recomend vel apenas para sistemas extremamente simples h duas possibilidades requisitos s o analisados durante o levantamento ou captura exige mais formalismo no modelo de casos de uso requisitos s o analisados durante o projeto se os requisitos forem simples e ou bem conhecidos Realiza o dos casos de uso Segundo Jacobson e co autores 1999 pg 221 se o modelo de an lise n o atualizado durante o ciclo de vida do software
29. mostra o extrato banc rio de uma conta corrente em diversos tipos de dispositivo tais como PC caixa autom tico Palm e celular A l gica do neg cio sempre a mesma juntar as transa es executadas em uma conta em um per odo mudando apenas a forma de mostrar os dados O padr o MVC prop e a divis o da aplica o em tr s partes ou camadas Modelo do neg cio model cont m os dados do neg cio e as regras do neg cio que ditam o acesso e a modifica o dos dados De forma mais pr tica encapsula os dados e os comportamentos do neg cio e salva os mesmos sem se preocupar em como ser o mostrados Vis o view respons vel pela intera o com o usu rio e por apresentar as diversas vis es que dos dados do neg cio N o se preocupa em como os dados foram obtidos apenas em apresent los Controle controller comanda o fluxo de obten o encaminhamento e apresenta o das informa es fazendo a intermedia o entre as camadas de vis o e de modelo A Figura 25 ilustra o modelo MVC H duas formas b sicas na primeira a os eventos respostas da interface s o tratados diretamente pela camada de vis o e na segunda pelo controle que ent o seleciona a vis o apropriada O controle interpreta os eventos e informa es fornecidas pelo usu rio e chama as a es que poder o mudar o estado do modelo do neg cio Em seguida as altera es do modelo s o retratadas pela camada da vis o podendo ter o control
30. n portas placa class CCarro public CAutomovel public CBemMovel E n int n portas DefineCar int placa char char char int int int Figura 68 Exemplo de heran a m ltipla extra da da apostila do Paulo 4 EXERC CIOS 1 Em rela o aos relacionamentos abaixo responda a Qual a representa o mais correta a primeira ou a segunda rela o Por qu b O que preciso mudar na segunda rela o para representar que uma casa possui diversos propriet rios ao longo do tempo propriedade Pessoa 0 1 Esse Pessoa propriet rio 63 2 Quala diferen a de interpreta o entre as duas representa es Qual seria mais indicada para um tribunal regional eleitoral eleitor om eleitor 0 vota gt vota gt candidatoPresidente candidatoPresidente 0 1 0 1 3 Represente um e mail na forma de um diagrama de classes Identifique os componentes destinat rio assunto etc e suas rela es fazer o diagrama no editor 4 Quala diferen a de interpreta o entre os relacionamentos livro sobrecapa e livro p ginas 5 Todo aluno matriculado em trabalho de diploma o ser orientado por um professor Alguns professores orientam v rios alunos e outros nenhum Qual dos diagramas melhor representa esta rela o 6 Construa uma hierarquia de classes para os seguintes tipos de obra romance livro de fic o livro de auto ajuda gibi rock MPB filme
31. nesta estradinha asfaltada por 1 km no entroncamento pegue a estrada de terra direita ande cerca de 500m voc ver um grande eucalipto e uma arauc ria A entrada da ch cara entre os dois N o se esque a de trazer o pinh o prim rio Se estiver chovendo muito os 500m na terra podem ser bem dif ceis porque o barro mole Neste caso siga reto no entroncamento ao inv s de virar direita e na pr xima a direita pegue a rua de paralelep pedos Ande cerca de 1 km e depois vire na segunda a direita que vai desembocar na frente da ch cara alternativo 1 Se voc for comprar o pinh o no caminho logo depois de fazer o retorno da BR tem uma venda Se estiver fechada um pouco mais a frente tem um senhor da ch cara Pinhais que tamb m vende Se n o encontrar pinh o n o tem problema alternativo 2 Fluxos documentam as responsabilidades ou seja como as responsabilidades especificadas nos casos de uso s o divididas entre sistema e atores No desenrolar do projeto as responsabilidades atribu das ao sistema devem ser distribu das entre os objetos que comp em o sistema Nas fases iniciais de an lise bom concentrar se nos fluxos b sicos cerca de 80 do tempo de execu o de um sistema ocupado pelos casos prim rios e somente identificar os casos secund rios 3 2 1 Fluxo B sico Um fluxo b sico representa o que ocorre normalmente quando o caso de uso executado A descri o do fluxo b
32. o uma rela o que indica que uma classe realiza ou segue o contrato definido por uma classe de interface no sentido Java No diagrama de classes do conversor de Celsius Fahrenheit a classe Hist rico realiza a interface Serializable implements 73 interface Serializable entity Historico adicionar ConversaoCF void writeObject void Figura 80 Rela o de realiza o A implementa o em Java de uma realiza o mostrada em seguida public interface Serializable WNE public class Hist rico implements Serializable WNE 5 SUBSISTEMAS Ap s estudar em detalhes a intera o entre objetos e refinar o diagrama de classes poss vel identificar subsistemas Uma forma de identificar subsistemas observar comportamentos repetidos nos diagramas de seq ncia Subsistemas podem conter outros elementos de modelagem ex classes pacotes e apresentam comportamento definido pelas interfaces que realiza Em UML subsistemas s o representados como pacotes por m com um estere tipo lt lt subsistema gt gt Considere o exemplo onde durante a an lise foi identificada uma classe de an lise lt lt fronteira gt gt com um sistema de faturamento No projeto esta classe se mostrou muito complexa e foi transformada num subsistema onde v rias classes colaboram para realizar as responsabilidades previstas 74 class subsistema A interface Faturamen
33. o tipo mais comum de rela o Pode ser utilizada entre dois atores ou entre um ator e um caso de uso S o representadas por uma linha cheia com ou sem dire o Ator x Ator Rela es associativas podem conectar atores para representar comunica o entre atores A rela o pode receber um nome que identifica o conte do da mensagem documento ou objeto que trafega entre os atores A figura 16 mostra uma associa o entre o ator usu rio de biblioteca que passa o livro ao atendente que realiza o empr stimo ou a devolu o Como n o h flechas assume se que o atendente devolve algo ao usu rio da biblioteca provavelmente um comprovante n o representado no diagrama N o recomend vel colocar este tipo de rela o no diagrama de casos de uso RealizarEmpr stimo livro od Reali arDevolu o usu rio biblioteca Atendent Figura 16 Exemplo de associa o entre atores Ator x Caso H v rios usos para associa es entre atores e casos de uso 1 indica quem inicia a comunica o o ator ou o caso de uso sistema 2 indica o fluxo de informa es ou seja quem fornece informa es a quem Para documentar a escolha pode se atribuir um nome associa o Na figura 16 h uma associa o entre o atendente e o caso de uso realizar empr stimo Observar que bidirecional portanto o atendente inicia a execu o do caso fornece e recebe informa es do mesmo Associa es unidirecionais deixam os diag
34. outro fluxo usar a nota o executar lt nome subfluxo gt No exemplo Buscar produtos e fazer pedido os subfluxos seguintes s o encontrados S1 Validar informa es de pagamento S2 Validar informa es de envio S3 Efetuar transa o financeira Estes subfluxos podem ser detalhados da mesma maneira que um fluxo b sico por m deve se evitar muitas decomposi es sob o risco de perder a vis o geral do caso de uso 3 2 3 Pontos de extens o S o pontos precisos num fluxo de eventos que servem para inserir comportamentos adicionais Pontos de extens o podem ser privados ou p blicos S o privados se vis veis somente dentro do caso onde foram definidos ou p blicos se vis veis nos casos que estendem o caso onde foram definidos No exemplo Buscar produtos e fazer pedido os pontos de extens o seguintes s o encontrados Mostrar cat logo de produtos Escolher produto 19 Produto esgotado Processar pedido Informa es de pagamento n o v lidas Informa es de envio n o v lidas Um ponto de extens o pode definir uma localiza o nico dentro do fluxo por exemplo Mostrar cat logo de produtos Escolher produtos e Processar pedido um conjunto de localiza es que representam um certo estado do caso de uso por exemplo Produto esgotado que poderia aparecer em v rios pontos do fluxo de eventos uma regi o entre dois pontos de extens o por exemplo
35. verde e 5s no amarelo After 45s After 45s After 5s Figura 92 Exemplo de evento temporal em m quina de estados 2 4 De mudan a uma condi o avaliada continuamente disparando um evento toda vez que se torna verdadeira representada frequentemente por meio do evento When Difere de uma condi o de guarda que avaliada somente uma vez quando o evento ao qual est associada ocorre A figura 93 ilustra a diferen a entre um evento de mudan a e uma condi o de guarda Parte superior da figura encher o tanque e parar quando volume 25 litros Parte inferior da figura uma vez o tanque cheio se o volume for maior ou igual a 25 ganha ducha caso contr rio n o ganha TanqueAberto ApertouGatilhoBomba Abastecendo Winen volume 25L O FimAbastecimento vol lt 25 ApertouGatilhoBomba TanqueAbe Abastecendo FimAbastecimento vol lt 25 LavarCarro Figura 93 diferen a entre condi o de guarda e evento de mudan a 85 Exerc cio Refa a o exemplo do sem foro para acomodar a seguinte situa o da meia noite s 5h00 o sinal fica no estado alerta piscando amarelo Wihen 05h00 00 After 45s h 00h00 00 and h lt 5h After 45s h gt 5h and h lt 23h59 59 Atter 45s After s 3 ESTADO COMPOSTO Um estado composto pode ser decomposto em um conjunto de regi es cada uma delas com v rios subestados H
36. 2 int void entity instantiate gual endereco estadoFederecao IDFilial popular int void preencher regDB void validar Date 2 booleani acessorio categoriaVeic estado preencher regDB void Pede se Fa a o diagrama de seq ncia que mostre a efetiva o da reserva por parte do usu rio Fa a as mudan as necess rias no diagrama de classes arquivo dispon vel na p gina do curso formato Enterprise Architect 78 VIII DIAGRAMA DE ESTADOS 1 ELEMENTOS B SICOS Casos de uso e cen rios diagramas de intera o sequ ncia e comunica o s o utilizados para descrever o comportamento do sistema Frequentemente necess rio descrever o comportamento interno de uma classe de objetos N o necess rio fazer diagramas de estado para todas as classes do sistema somente para as mais complexas onde o comportamento dos objetos modificado pelos diferentes estados Um diagrama de estados mostra os eventos que causam as transi es de estados e as a es atividades tomadas em consegii ncia da transi o Condi es de guarda podem ser associadas aos eventos neste caso a ocorr ncia do evento n o garante a ocorr ncia da transi o preciso que a condi o de guarda seja satisfeita para que ela ocorra Estado a situa o na qual se encontra o objeto Ao longo da sua vida um objeto criado no estado inicial passa por estados inter
37. 4 1 2 M todos Sintaxe para declara o de um m todo em UML lt visibilidade gt lt nome gt lt lista argumentos gt lt retorno gt lt visibilidade gt p blico todas as classes t m acesso privada somente m todos definidos na classe podem v lo protegido m todos definidos na classe e nas classes derivadas podem v lo pacote vis vel dentro das classes de um pacote lt nome gt nome do m todo lt lista de argumentos gt nome argumento gt lt tipo gt lt nome argumento gt lt tipo gt Por exemplo nome String idade int lt retorno gt tipo do dado retornado Pode se utilizar os tipos da linguagem de implementa o Por exemplo char float ou int Exemplos calcularIdadeEmMeses Data dataNasc int moverPara x int y int void 4 1 3 Categorias de responsabilidades estere tipos De maneira geral um estere tipo deixa clara a fun o de um componente em um diagrama poss vel definir seus pr prios estere tipos o que permite estender a UML No diagrama de classes h tr s estere tipos bastante utilizados que designam a responsabilidade das classes lt lt entidade gt gt ou lt lt entity gt gt lt lt controle gt gt ou lt lt control gt gt lt lt fronteira gt gt ou lt lt boundary gt gt Estes estere tipos s o oriundo do trabalho de Ivar Jacobson 1992 sobre An lise de Robustez Basicamente a an lise de robuste
38. 47 sd Verificar x int x Resultado C E 1 msg1 alt trata x x lt 0 setTo NEGATIVO setTo POSITIVO setTo ZERO Figura 41 exemplo de diagrama referenciado 1 8 Criar e destruir E poss vel mostrar a cria o e a destrui o de objetos num diagrama de seq ncia Objetos que s o criados e destru dos s o chamados de transientes sd Example Diagram Shopping Cart Cart Item createltem additem Figura 42 exemplo de objeto transiente CartItem 1 9 Linhas Mestras Um diagrama de segii ncia deve ter certa dist ncia do c digo fonte n o preciso representar todos os detalhes do cen rio Algumas dicas mant lo simples condi es de guarda se forem poucas devem ser colocadas em um s diagrama caso contr rio fazer um novo diagrama s para mostr las os diagramas podem ser ligados entre si ref Em algumas ferramentas poss vel gerar automaticamente a primeira vers o do diagrama de seqii ncia Por exemplo no Rational Rose se o fluxo de evento foi definido basta clicar com o bot o da direita em cima do caso de uso e escolher generate sequence diagram 48 2 DIAGRAMA DE COMUNICA O Diagrama de comunica o antes da vers o 2 0 era chamado colabora o outra forma de representar um cen rio cont m as mesmas informa es que o diagrama de sequ ncia mas n o considera a dimens o temporal Alguns au
39. A o g 2 3 a o ds pasa ARA ASARAS HEA A SA A FARA AnA Ann 5 o EN lt E Bi S a SA 3 o D 9 ir fa gt A 2 gt e e A 4 T E 1 g S E p B i 2 5 q Bo o 5 a 8 E 3 e 3 Fo E E e BE eder E dose dado das ai D c o T 5 92 B vB e 2 is 3 q o Za c 1 1 w u o 1 o 1 o o g gt E i p i gs a ed is Poda ii fd a ido a inina prea 0 CRESsPSESSCss sas sesscestensas T Eo o 1 H iE I o gt T 1 1 T 1 o E S 1 1 1 o ir H 1 E 8 E i 1 g xi 1 a Ee o 1 E fe o 1 1 o D 1 S g 1 1 1 q B 1 5 2l 1 s 1 o S i 2 Sl i 2 1 E E i 8 2 y i o Vos e L A L Q mostrar invent rio verifica se a filial estar aberta nos dias e hor rios POST veic IDFilial e datas solicitados p g de reserva ve c IDFilial e datas A partir do diagrama de seq ncia refinou se o diagrama de classes A figura seguinte mostra apenas es foram adicionadas lise Note que opera a tais como as p ginas JSP as modifica es em rela o ao diagrama de classes de an e outras classes dependentes da arquitetura escolhid 77 class Classes projeto delta D jsp page IUReserva a P jsp page go Mostralnv entario DataAccess buscarFilial int regDB buscarVeiculos Inventario regDB KS entity Inventario adicionar Veiculo void popular int Date
40. IFPR UNIVERSIDADE TECNOL GICA FEDERAL DO PARAN AN LISE E PROJETO OO amp UML 2 0 Cesar Augusto Tacla Departamento Acad mico de Inform tica http www dainf cefetpr br tacla O uso e reprodu o desta apostila requerem autoriza o expressa do autor SUM RIO E INTRODU O anna ea 5 T MODELO iss ssa sait use carte miss tanto secante puasas ONNEEN KIRARA EARNAN KIKARA Penas css nie suada Ts 5 2 UML I IEE IEE E ricas nado s SCI ET E da as asas air dicas Lidos aaa 5 Dil Breve hIstOrICO sais ssaba inca ortine a EUR PP NR a ERE 5 3 ANALISE E PROJETO ORIENTADOS A OBJETOS ee eeeseees sore ersrereeea 6 3 1 An lise e projeto estruturados sssseeeeeeeeeesssssssssssossoeerereeeessesssessessoree 6 3 2 An lise e projeto orientados a objetos ssessssssssssssossorecereeeessesssssssssoree 7 4 OBJETO E CLASSE vorir yrrir eisti na anin KNAPIK RASA ass ia dosad onde KARTAR SA SARA nto h anus e ARINEN 7 7 P RE o 11 O IEEE A S E Ee DU TE ELISA de beta 7 e AI A E E E E E E rbd ruas nato 7 S EXERCICIOS e e AEAN A T RESTES KANAAN RENTEA N ERANT TA N INS 8 Il NO O GERAL DE AN LISE E PROJETO OO sosssssssessessososeoseseoseseesosesseseseesese 9 T VIS O GERAL sito ss casta cassa nai anda so datas nd sa asia AOE ni SO OR 9 2 ANALISE DE REQUISITOS ces acca tata sei dar aaa Cas Ce a ari dead ad 9 2 1 Papel dos Casos de Uso na An lise de Requisitos ccccccccceeceeeeeereer
41. Matricula Figura 30 cone alternativo para classes lt lt fronteira gt gt Estere tipo de controle utilizado em classes que encapsulam o controle l gica de um caso de uso ou seja aquelas que comandam a execu o de um caso de uso fazendo a liga o das classes de fronteira com as de entidade Normalmente s o dependentes da aplica o Classes com este estere tipo podem ser representadas pelo cone da figura 31 Em alguns casos a l gica do caso de uso pode ser muito complexa e exigir mais de uma classe de controle Em outros a l gica comanda pelo ator e neste caso a classe de controle e de fronteira podem ser unificadas como fronteira CtriMatr cula Figura 31 cone alternativo para classes lt lt controle gt gt Robustness Analysis Icon 39 4 2 Linhas Mestras Para identificar as classes candidatas seguindo o padr o de projeto MVC executar os passos seguintes Definir uma classe de fronteira para cada par ator caso de uso Definir uma classe de controle para cada caso de uso Definir classes de entidade procurar substantivos nos casos de uso e pontos onde h um conjunto de dados que possuem unidade objeto Estas linhas s o extremamente gerais e portanto sujeitas a adapta es em fun o do problema em m os Por exemplo se a fronteira com um ator for extremamente simples pode se conjugar controle e fronteira Se o controle para todos os casos de uso for extremamente simple
42. OGR FICAS BOOCH G RUMBAUGH J JACOBSON I UML guia do usu rio Rio de Janeiro Campus c2000 472p ISBN 85 352 0562 4 BEZERRA E Princ pios de An lise e Projeto de Sistemas com UML Rio de Janeiro Elsevier 2002 286p ISBN 85 352 1032 6 FOWLER M SCOTT K UML essencial um breve guia para a linguagem padr o de modelagem de objetos 2 ed Porto Alegre Bookman 2000 169 p ISBN 8573077298 FOWLER M Padr es de Arquitetura de Aplica es Corporativas Bookman ed 494p GUEDES G T A UML Uma Abordagem Pr tica Inovatec 319p 2004 OMG Unified Modeling Language 2 1 1 732p Fevereiro 2007 Dispon vel em http www omg org cgi bin apps doc formal 07 02 05 pdf acesso em 16 04 2007 PRESSMAN R S Engenharia de software S o Paulo Makron 1995 1056 p ISBN 85 346 0237 9 RUMBAUGH J JACOBSON I BOOCH G The Unified Modeling Language Reference Manual 2ed Pearson Education 2005 ISBN 0 321 24562 8 QUATRANI T Visual Modelling with Rational Rose 2000 Addison Wesley 2 edi o 1999 288p 97
43. OMPORTAMENTAL Com esta r pida introdu o UML poss vel observar que alguns diagramas s o mais indicados para modelar a estrutura do sistema e outros o comportamento A figura 11 mostra esta divis o 14 Diagramas UML Estrutural Comportamental Classes Casos de Uso Pacotes Atividades Objetos M quina de Estados H Componentes Intera o H Implanta o Sequ ncia Estrutura Comunica o Composta SA Tempo Geral de Intera o Figura 11 Diagramas estruturais e comportamentais da UML Segue uma breve descri o dos diagramas UML ainda n o descritos neste documento Pacotes representa uma cole o de classes que juntas formam uma unidade Tamb m pode servir para agrupar um conjunto de casos de uso com similaridades funcionais Os pacotes podem apresentar rela es por exemplo um pacote de classes pode depender de outro para executar suas fun es Objetos E um instant neo da execu o do sistema retrata os objetos instanciados e suas rela es em um dado momento Componentes segundo a defini o de OMG 2007 pg 146 um componente um m dulo ou parte de um sistema que encapsula seu conte do comportamento e dados Um componente exibe seu comportamento atrav s de interfaces bem definidas e pode depender de outros componentes Deployement Implanta o ou Distribui o para representar a arquitetura f sica do
44. Se n o houver convers es no hist rico mostrar mensagem nenhuma convers o realizada at o momento e ir para o ponto fim Ap s a elabora o do diagrama de casos de uso fez se uma primeira tentativa de identificar classes de an lise seguindo as linhas mestras Na figura 33 as linhas mestras foram seguidas risca 41 class Classes de an lise levantamento IUConversao CtrlConversao Historico CtrlHistorico ConversaoCF IUHistorico Figura 33 Levantamento das classes de an lise 6 EXERC CIOS 1 Considere um caso de uso chamado efetuar opera es aritm ticas para uma calculadora Analise as responsabilidades e o comportamento de uma classe de controle para este caso de uso frente a duas implementa es para a classe lt lt entidade gt gt calculadora cujo comportamento descrito abaixo a capaz de efetuar opera es bin rias por exemplo somar 2 3 subtrair 5 4 etc b capaz de avaliar sintaticamente e executar express es aritm ticas por exemplo 2 3 5 2 Qualo aux lio trazido pelo padr o observador ao modelo MVC 3 Fazer o levantamento das classes candidatas para os exerc cios do cap tulo anterior pg 31 a Biblioteca b Jogo da forca e da velha c Escrit rio de advocacia 42 V ESTUDO DA INTERA O ENTRE OBJETOS O projeto de um sistema pode ser visto como sucessivos refinamentos de divis o de responsabilidades Nos casos de uso s o identificad
45. a es muitas vezes conflitantes entre si Dentre estes os mais conhecidos eram OMT Object Modelling Technique de Rumbaugh M todo de Booch OOSE Object Oriented Software Engineering de Jacobson Inicialmente Rumbaugh OMT e Booch fundiram seus m todos e nota es resultando no M todo Unificado em 1995 quando trabalhavam juntos na Rational Software atualmente uma divis o da IBM Jacobson juntou se a eles mais tarde e seu m todo OOSE foi incorporado nova metodologia RUP Salienta se que al m do m todo eles unificaram a nota o de projeto e a chamaram UML Ent o UML representa a unifica o das nota es de Booch OMT e Jacobson Tamb m agrega as id ias de in meros autores tais como Harel e seu diagramas de estados Shlaer Mellor e o ciclo de vida dos objetos Em suma UML uma tentativa de padronizar os artefatos de an lise e projeto modelos sem nticos sintaxe de nota o e diagramas Na d cada de 90 surge uma organiza o importante no mundo dos objetos a OMG Object Management Group uma entidade sem fins lucrativos onde participam empresas e acad micos para definirem padr es de tecnologias OO Outubro de 1995 primeira vers o rascunho vers o 0 8 draft Julho de 1996 revis o devido ao ingresso de Jacobson vers o 0 9 draft Parceiros UML HP IBM Microsoft Oracle e Rational Software desenvolveram a vers o 1 1 e a propuseram OMG A OMG aceita a proposta em novembr
46. a dos casos de uso e portanto apenas um dos componentes do modelo de casos de uso A descri o textual dos mesmos a parte mais importante do modelo S o elementos do modelo de casos de uso gloss rio modelo do dom nio e diagramas de atividades Um gloss rio e um modelo do dom nio podem evitar o excesso de detalhes nas descri es dos casos de uso Por exemplo ao inv s de descrever a valida o da entrada de dados os campos podem ser definidos no gloss rio com os respectivos valores poss veis Um modelo do dom nio ajuda a entender as rela es existentes entre as entidades do dominio e as restri es sobre as rela es 5 2 Passos Para elaborar um modelo de casos de uso os seguintes passos podem ser seguidos gt gt Recapitular a vis o do sistema estudo de viabilidade aos envolvidos Elaborar se necess rio um diagrama de contexto para definir os limites do sistema o que est dentro e o que est fora Identificar os atores do sistema Identificar os casos de uso descrev los e rascunhar o fluxo de eventos N o se preocupe com fluxos alternativos N o gaste mais do que 10 minutos para descrever cada caso de uso Esbo ar o diagrama de casos de uso mostrando associa es entre atores e casos de uso 30 o 6 Verificar os casos de uso H casos de uso sem conex o com requisitos funcionais Caso haja pode haver casos em excesso ou requisitos que n o foram identificados H requisitos fu
47. a para a data e hor rios escolhidos 6 O cliente escolhe um ve culo para locar 7 O sistema solicita informa es de identifica o ao cliente nome completo telefone e mail bandeira do cart o de cr dito data de expira o etc 8 O cliente fornece as informa es de identifica o solicitadas 9 O sistema apresenta informa es sobre seguros e prote es e pergunta ao cliente para aceitar ou rejeitar cada oferta 10 0 cliente informa suas escolhas 11 0 sistema solicita confirma o da reserva 12 0 cliente aceita a reserva 52 VI RELA ES ENTRE CLASSES DE AN LISE O diagrama de classes um dos principais diagramas da UML representa a estrutura do sistema elementos que foram selecionados para fazer parte do sistema A partir dele por exemplo o esqueleto do c digo fonte pode ser gerado automaticamente Neste cap tulo s o apresentadas as rela es mais usuais para a fase de an lise Posteriormente apresentam se rela es mais pr ximas da implementa o e portanto mais adequadas fase de projeto O comportamento requerido do sistema alcan ado pela colabora o entre objetos O diagrama de classes fornece uma representa o est tica da colabora o por meio de relacionamentos Os relacionamentos s o utilizados no diagrama de classes que refinado incrementalmente modelo do dom nio an lise e posteriormente no projeto S o apresentadas as seguintes rela es
48. ados inline Na Figura 39 est representado que a mensagem msg1 enviada v rias vezes enquanto x for maior ou igual a zero Ao fazer a chamada msg o objeto da classe A recebe como resposta um inteiro e o armazena na vari vel x sd Loop in line p A usu rio x gt 0 x msg1 int Figura 39 exemplo de loop inline A sintaxe especificada no UML Superstructure 7 2 2005 para loop definida como Toopl lt minint gt lt maxint gt 9 lt minint gt natural n o negativo lt maxint gt natural n o negativo maior ou igual lt minint gt significa infinito Se somente lt minint gt for definido significa que lt minint gt lt maxint gt lt inteiro gt Se somente loop for definido ent o representa um la o com limite superior infinito e limite inferior igual a zero Exemplo loop 0 10 define um la o com 11 repeti es 1 7 Ref Permite fazer refer ncias a outros diagramas Observar no diagrama referenciado que o resultado retornado foi representado como um objeto Para fazer refer ncia ao diagrama em quest o basta colocar um fragmento ref inline O fragmento ref substitu do por uma r plica do diagrama referenciado onde os argumentos substituem os par metros usu rio sd Refer ncia Verificar X x Resultado l l l l r l l l l l l l l l l 1 Figura 40 exemplo de refer ncia a outro diagrama ver figura 41
49. ama de classes podem ser feitos em fun o da implementa o desejada 4 1 Depend ncia Uma rela o de depend ncia indica que uma classe depende do aux lio de outra classe para implementar seus comportamentos E um relacionamento utilizado prioritariamente na fase de projeto Dadas duas classes A e B as depend ncias poss veis entre elas podem ser assim resumidas Vari vel local Classe A utiliza em alguma opera o uma vari vel de tipo B Par metro de opera o Classe A utiliza como par metro de alguma opera o cujo tipo B Instancia o a Classe A instancia um objeto de B Para representar os tipos de depend ncia ilustrados estere tipos podem ser utilizados figura 71 68 class Depend ncia ClasseA ClasseB operacao ClasseC void 777777 E GE IE ClasseD Figura 71 Alguns tipos de depend ncia 4 2 Implementa o de associa es e agrega es N o h diferen a entre a implementa o de uma associa o e uma agrega o Portanto o texto que segue serve indistintamente para os dois tipos de rela es Tamb m n o h diferen as significativas entre uma agrega o por associa o e uma agrega o por composi o Nesta ltima a l gica da classe todo deve garantir que os comportamentos se propagam em dire o s partes sempre que necess rio Em uma composi o uma parte exclusiva do todo e portanto n o deve participar de outras agrega es
50. ando como colocar a es nos estados entry e exit 4 Refazer o diagrama de estados abaixo utilizando um estado composto Inserir cart o Ler cart o Valida o do cart o Sele o opera o Fazer Fim impress o ejetar cart o x Impress o 5 Fa a um diagrama de estados para uma classe que implemente um jogo de xadrez Voc pode usar por exemplo os eventos seguintes branca move preta move branca desiste preta desiste xeque mate Represente nos estados o jogador da vez brancas ou pretas 6 Fa a o diagrama de estados para um despertador O despertador pode estar em um dos estados seguintes desarmado esperando e despertando O despertador inicia no estado desarmado Para passar ao estado esperando ele deve ser armado para disparar num determinado hor rio No estado despertando ele soa por 30 segundos Se o usu rio deslig lo ele volta ao estado desarmado Caso o usu rio n o desligue o despertador volta a soar em 2 minutos at 3 vezes Se ao cabo destas 3 vezes o usu rio n o desligou o ent o o despertador volta ao estado desarmado 7 Desenhe o diagrama de estados correspondente ao algoritmo do fatorial de n 0 1 1 1 n sen gt 1 n n 1 8 Represente em 3 diagramas de estado uma televis o que pode estar ligada ou desligada um DVD player que tamb m pode estar ligado ou desligado e um controle remoto que tem dois modos de funcionamento ora liga desliga a televis o e ora liga desliga o DVD player Os bot
51. ao comportamento normal do sistema por exemplo m dulos que podem ser comprados do desenvolvedor ou de terceiros Descri es de tratamento de erros e exce es complexos estes tratamentos podem ser extremamente longos e ofuscar o fluxo b sico Customiza o fluxos alternativos que especificam como diferentes clientes tratam certas situa es no dentro do mesmo caso de uso base Administra o de escopo e de release comportamentos que ser o inclu dos futuramente importante ressaltar que Um caso de uso de extens o n o requer modifica es no caso base aquele que estendido O comportamento b sico do caso base permanece intacto Um caso de uso que estende um caso base conhece este ltimo n o muito comum um caso de uso estender mais de um caso base Uma extens o nasce como um fluxo alternativo mas nem todo fluxo alternativo vira uma extens o Casos de uso que estendem assumem o controle no ponto de extens o e quando terminam devolvem o controle no mesmo ponto Aqui cabe uma distin o entre fluxos alternativos e casos de uso que estendem outros Fluxos alternativos s o parte do caso de uso base e t m acesso ao seu estado pr condi es outros fluxos existentes e pontos de extens o al m daquele onde se inserem Casos de uso que estendem conhecem apenas o ponto de extens o onde se inserem no caso estendido Para saber se um fluxo alternativo candidato a ser uma extens o dev
52. as as funcionalidades do sistema separando as do que externo ao mesmo Em seguida s o levantadas as classes de an lise o que representa uma primeira tentativa de identificar quem dentro do sistema far o qu para que os casos de uso se concretizem Os diagramas de intera o constituem um passo importante nesta divis o pois detalham como os objetos das classes de an lise e por consequ ncia quais opera es cada um deve realizar Se um caso de uso possui v rios fluxos pode ser til criar um diagrama de intera o para cada cen rio Os diagramas de intera o mais utilizados s o o de sequ ncia e o de comunica o ex colabora o Diagramas de intera o s o usados tanto na an lise quanto no projeto Na an lise as comunica es entre objetos s o mais abstratas n o importando muito os argumentos e valores retornados No projeto o detalhamento maior 1 DIAGRAMA DE SEQU NCIA Relembra se que cada caso de uso representa uma funcionalidade do sistema vista da perspectiva de um ator Um caso de uso pode apresentar diversas possibilidades de execu o visto que h fluxos prim rios fluxo normal de eventos e alternativos o que fazer se Estes fluxos s o documentados textualmente ou na forma de uma tabela ator x sistema Cen rios s o utilizados para identificar como uma sociedade de objetos interage para realizar um caso de uso Cen rios documentam as responsabilidades ou seja como as responsabilidades especifica
53. associa o mais comum agrega o um tipo de associa o generaliza o especializa o 1 ASSOCIA O E uma rela o entre duas classes significando que os objetos destas classes possuem uma liga o Por exemplo a figura 46 representa um professor leciona uma disciplina leciona Figura 46 Exemplo de associa o poss vel designar que uma quantidade objetos de uma classe se relacionam com uma quantidade de objetos de outra classe por meio da nota o de multiplicidade tabela 7 As multiplicidades s o colocadas nos extremos das linhas que representam as rela es TABELA 7 MULTIPLICIDADE DE RELA ES Significado Exatamente uma Zero ou mais Zero ou mais Uma ou mais Zero ou uma Intervalo espec fico 5 6 7 or 8 Combina o 4 5 6 7 or 9 Por exemplo a figura 53 interpretada como um professor leciona uma ou mais disciplinas sendo ilimitado o n mero m ximo de disciplinas Observar que no lado do Professor a multiplicidade iguala 1 ent o a participa o de objetos Professor no relacionamento leciona obrigat ria ou seja um professor s pode existir se estiver associado a uma disciplina 53 Professor Disciplina 1 leciona 1 Figura 47 Exemplo de multiplicidade em associa o Navegabilidade As associa es podem opcionalmente direcionadas No exemplo abaixo a partir de um professor pode se chegar a uma disciplina mas
54. b diferentes perspectivas e graus de abstra o representando os por meio de uma nota o precisa refinando os sucessivamente at transform los em algo pr ximo da implementa o lembrando sempre de verificar se os requisitos s o satisfeitos A modelagem visual com aux lio de diagramas ajuda a manter a consist ncia entre os artefatos produtos ligados ao desenvolvimento de um sistema requisitos projeto e implementa o Resumidamente a modelagem visual pode melhorar a capacidade de uma equipe a gerenciar a complexidade de software 2 UML UML significa Unified Modeling Language ou Linguagem de Modelagem Unificada de projetos orientados a objetos Como o pr prio nome diz UML uma linguagem e n o um m todo A UML uma linguagem padr o de nota o de projetos Por nota o entende se especificar visualizar e documentar os elementos de um sistema OO A UML importante pois serve como linguagem para expressar decis es de projeto que n o s o bvias ou que n o podem ser deduzidas do c digo prov uma sem ntica que permite capturar as decis es estrat gicas e t ticas prov uma forma concreta o suficiente para a compreens o das pessoas e para ser manipulada pelas m quinas o independente das linguagens de programa o e dos m todos de desenvolvimento 2 1 Breve hist rico Nos anos 90 conhecida como a poca da guerra dos m todos v rios m todos coexistiam com not
55. cipacao cargaHoraria int dataEntrada Date dataSaida Date Figura 77 Classe associativa O diagrama anterior poderia ser representado da seguinte forma class classe associativa proj participa cargaHoraria int dataEntrada Date dataSaida Date Pessoa Figura 78 Classe associativa transformada em classe normal A implementa o correspondente ao diagrama da figura 78 ficaria public class Projeto WNE public class Pessoa Go S j public class Participacao private int cargaHoraria private Date dataEntrada private Date dataSaida public Projeto projeto Public Pessoa pessoa A Us win co public Vector lt Participacao gt m Participacao public Vector lt Participacao gt m Participacao se rela o for bidirecional se rela o for bidirecional Agrega o por composi o uma agrega o de fato a cria o aloca o de um objeto feita dentro de outro Existe uma rela o forte pois quando todo destru do as partes tamb m o ser o ou seja a elimina o do todo se propaga para as partes O todo e as partes agregado t m tempos de vida semelhantes 72 class agrega o por composi o HistoricoPagsWeb URLVisitada 1 Oo URL String Figura 79 Agrega o por composi o A seguir duas implementa es poss veis para a composi o da fig
56. da na figura 95 fimRecep o cabe alho recebido LimpandoMem a C Cm Figura 95 Detalhamento do estado Recebendo 3 1 Hist rico O pseudo estado hist rico denotado por H utilizado para memorizar o ltimo estado ativo quando se deixou um estado composto A flecha do H aponta para o estado default ou seja o subestado que ativado na primeira vez em que o estado composto alcan ado Por exemplo a Figura 96 mostra um lava car que inicia no estado composto subestado lavagem Caso ocorra o evento parada de urg ncia durante o estado enxaguar retorna se ao estado enxaguar ap s a ocorr ncia do evento retomada gra as ao s mbolo hist rico 87 hist rico v lavagem ji after 2 min espera A parada de urg ncia after 2 min vi enxaguar after 4 min Z secagem after 2 min 6 parada de urg Figura 96 Memoriza o do ltimo estado visitado hist rico 4 EXERC CIOS 1 Fazer um diagrama de estados para as esta es do ano Fazer o diagrama de estados no editor UML e codificar a classe em JAVA 2 An lise o c digo abaixo CD Player e construa a m quina de estados equivalente ao comportamento apresentado Utilize condi es de guarda e a es nas transi es import java io class CDPlayer 1 2 3 static private int estado 0 4 5 A ES 6 static private void desligar 7 System out println cortar fonte de ene
57. das nos casos de uso s o divididas entre os objetos do sistema Portanto um cen rio uma inst ncia de um caso de uso um caminho entre os muitos poss veis Cen rios podem ser representados por diagramas de seq ncia e pelos diagramas de colabora o Um diagrama de sequ ncia representa os atores e objetos envolvidos num cen rio e a sequ ncia de troca de mensagens ao longo do tempo para realizar o cen rio Um diagrama de segii ncia permite identificar os m todos e atributos de cada classe assim como as responsabilidades de cada classe na realiza o de um caso de uso Os elementos b sicos de um diagrama se seq ncia s o Atores Objetos Linha do tempo uma para cada objeto e ator Comunica o entre ator e objeto ou entre objetos Interpreta o das mensagens por exemplo evento do sistema operacional ou de uma interface envio de mensagem ou chamada de m todo 43 x Intera o y perese bjeto A usu rio s ncrona X o resposta ass ncrona Linha da vid 4 Figura 34 exemplo de diagrama de seq ncia 1 1 Tipos de mensagem H v rios tipos de mensagem que podem ser utilizados num diagrama se seq ncia sendo os mais comuns os seguintes figura 34 Simples quando o tipo de mensagem irrelevante ou ainda n o foi definido S ncrona quando enviada o emissor f
58. de e neste caso informa es de cadastro ou perfil s o utilizadas para pr popular os formul rios iii Ao confirmar a reserva o sistema deve mostrar os dados da mesma iv Se o usu rio informou um endere o de e mail v lido o sistema envia lhe a confirma o por email b Identifique as classes de an lise candidatas c Filtre as classes de an lise reduzindo possivelmente o n mero de classes candidatas d Identifique e descreva as responsabilidades de cada classe e poss veis relacionamentos entre elas e Estude a intera o entre os objetos das classes f Identifique poss veis atributos para as classes 51 Sistema para loca o de carros on line web NOME Reservar ve culo DESCRI O Este caso descreve como um cliente usa o sistema para reservar um ve culo PR CONDI ES o cliente est conectado ao sistema P s CONDI ES o cliente realiza uma reserva ou n o REQUISITOS N O FUNCIONAIS servi o acess vel pela WEB FLUXO B SICO DE EVENTOS 1 O caso de uso inicia quando o ator cliente escolhe a op o de reservar ve culo 2 O sistema solicita ao usu rio os locais datas e hor rios de retirada e de devolu o do ve culo 3 O cliente informa os locais datas e hor rios de retirada e de devolu o do ve culo 4 O sistema pergunta ao usu rio qual o tipo de ve culo desejado 5 O sistema apresenta todas as op es de tipos de ve culo dispon veis no local de retirad
59. destruir Initial 0 Final bot o min f pressionado bot o rest pressionado minimizar restaurar JanelaMinimizada Figura 83 Diagrama de estados para uma janela original minimizada 1 2 A o nos estados entry e exit A es podem ser representadas nos eventos ou nos estados Normalmente a representa o nos estados permite simplificar o diagrama Observar na figura 84 que toda vez que o Livro passa ao estado Dispon vel a a o de NotificarInteressados executada Ao inv s de repetir a a o em cada transi o pode se coloc la no interior do estado associada palavra chave entry figura 85 Cada vez que o estado Dispon vel alcan ado executa se a a o NotificarInteressados stm Livro a es nas transi es reparado comprado Notificarinteressados Notificarinteressados Dispon vel Em reparo Colocado em reparo Initial Empredado devolvido Notificarinteressados Emprestado retirado do acervo Final Figura 84 A es nas transi es que levam ao estado Dispon vel 80 stm Livro a es no estado Dispon vel colocado em reparo Em reparo reparado entry Notificarinteressados Initial emprestado devolvido Emprestado retirado do acervo Final Figura 85 A o no estado Dispon vel De forma similar pode se utilizar a declara o exi
60. deve ser verdadeiro para que o caso de uso seja iniciado Por exemplo num sistema banc rio para o caso de uso Abrir conta corrente uma pr condi o apresentar CPF sem restri es aprova o do pedido P s condi es o que se torna verdadeiro pela execu o do caso de uso No mesmo caso de uso acima o sistema pode se encontrar em um dos seguintes estados conta aberta e com um dep sito inicial ou conta n o aberta por reprova o do CPF Invariantes condi es que s o verdadeiras durante a execu o do caso de uso fluxos de eventos descri o de intera es entre atores e sistema que ocorrem durante a execu o do caso de uso outras informa es data autor etc 3 2 Fluxo de Eventos Um fluxo de evento descreve i como o sistema e os atores colaboram para produzir algo de valor aos atores e ii o que pode impedir sua obten o Um fluxo descreve um caminho entre muitos poss veis visto que um caso de uso pode ser executado de v rios modos 17 H fluxos prim rios ou b sicos fluxo normal de eventos e alternativos o que fazer se Para descrev los poss vel se inspirar na situa o em que uma pessoa explica um caminho outra Primeiro o fluxo b sico explicado depois as alternativas Para ir ao churrasco pegue a BR116 na dire o S o Paulo Logo ap s o clube Santa M nica tem um retorno por baixo da pista Fa a o retorno e continue reto n o retorne BR Continue
61. diagrama de atividades a regra de neg cio de um sistema de controle de notas escolares que determina se um aluno foi aprovado ou reprovado em fun o de O aluno de v ter frequ ncia igual ou maior a 75 caso contr rio estar reprovado por faltas Em rela o m dia das notas parciais n1 e n2 se superior ou igual a 7 0 aprovado por m dia se superior ou igual 5 O e inferior a 7 0 em final se inferior a 5 0 reprovado por nota Se aluno em final realiza uma terceira prova O SO O Ss Se m dia final 2 for maior ou igual a 5 0 aprovado caso contr rio reprovado por nota 93 X DIAGRAMA DE COMPONENTES E IMPLANTA O 1 DIAGRAMA DE COMPONENTES Quando um classificador classe pacote subsistema componente realiza uma interface significa que ele implementa uma ou mais opera es especificadas pela mesma Uma interface define portanto uma cole o de servi os que devem ser implementados em algum ponto do sistema Um componente uma parte f sica do sistema como um arquivo execut vel que realiza uma interface e portanto substitu vel por outro componente que realize a mesma interface A figura 99 ilustra um componente java que realiza a interface ImageObserver e um outro image java que depende da interface e n o da implementa o da mesma image java componente java ImageObserver ou com mais detalhe depend ncia interface concretiza o abort int final static EEN
62. diversas exce es como o exemplo da figura 59 Nela representa se que um time composto por v rios jogadores inclusive por nenhum e que um jogador pode participar de v rios 58 times Observar tamb m a representa o da navegabilidade do todo poss vel alcan ar todas as partes e de cada uma das partes poss vel alcan ar o todo class Classe 7 Jogador Figura 59 Exemplo de agrega o com multiplicidade 2 3 Tipos de agrega es Nos exemplos anteriores foram utilizados dois tipos de agrega es de composi o e de associa o representadas respectivamente por losangos preenchidos e vazios Composi o composite aggregation uma agrega o de fato o todo composto pelas partes Existe uma rela o forte entre o todo e as partes pois quando o todo destru do as partes tamb m o ser o ou seja a elimina o do todo se propaga para as partes De outra forma o todo e as partes t m tempos de vida semelhantes Associa o uma forma mais branda de agrega o embora exista uma rela o de composi o os todos os comportamentos s o propagados para as partes Por exemplo uma equipe de futebol composta por v rios jogadores pode deixar de existir mas os jogadores continuam A figura 60 mostra um exemplo similar onde uma turma composta por alunos de 0 a 45 A turma pode ser destru da sem afetar a exist ncia dos objetos alunos dentro do sistema Ne Q Fig
63. dora 12 exp okJfim avalia o efetuar calcular exp lt lt finalize gt gt exp ok fim avalia o sinalizar erro embora a avalia o n o tome um tempo consider vel foi representada como um estado para decidir se a express o efetuada ou n o Figura 7 M quina de estados para calculadora Os m todos de uma classe podem ainda ser detalhados por meio de um diagrama de atividades como ilustra figura 8 M todo para verificar a validade de uma express o aritm tica sem par nteses do tipo 2 3 5 4 fim express o a erro num rico fim express o express o ok num rico Inum ric o erro num rico amp amp 1 erro Figura 8 diagrama de atividades detalhe de um m todo para verificar a sintaxe de express o aritm tica 3 4 Implanta o O diagrama de implanta o representa as necessidades de hardware e sofware b sico ex servidores Para tornar o diagrama mais realista a figura 9 sup e que a calculadora um servi o ofertado por um servidor de aplica es Web 13 Figura 9 diagrama de implanta o deployement 3 5 Componentes do Sistema O objetivo documentar os componentes do sistema fontes bibliotecas e suas rela es A figura 10 ilustra o diagrama de componentes para a calculadora e mostra a depend ncia entre seus componentes Figura 10 diagrama de componentes para a calculadora 4 MODELAGEM ESTRUTURAL E C
64. e E E A INEA NENANA TO EAN E a Dee E 79 1 2 A o nos estados entry e exit a s sssssssssssesrsesessesesesossresrescessssssrencsersseedsosess 80 1 3 Atividade nos estados do sesenssseeossesossssosssesosssssossesesssecosescossseeosees 81 1 4 Autotrans aO s e E E E EEES EENE EEA EEE NS D EE Date Soa 81 1497 Transi o interNa tasa faso aE e ORE Tas EE SO ONE DAER ASES DI CESENA 82 1 6 Ordem de execu o de a es e atividades ssssssssssssssssssserssssssssssseeeeee 82 1 17 Condi ao de SUarda ess essas made ana pau cb ia aa o mada E A Rear aaa 83 2 TIPOS DE EVENTOS ass cunsssas iscas caso scan sans oras coab sta cravo cal Crab EEEa al SEE Ss ab scale sans dnas 83 2 17 Dechamada s cacmmnes sima ensaio tados coa Ea FRUTA TAEA ade Ra Gava TUR ea qdo e 83 D Deisihala e serem pers asiiiore a pagando Ti Lada DEL TN e SS Da ada OS E O Tea pata aa 84 Z 3 Temporal aiii diana a a sena Ud SUR GT RP ia dia a GS 85 2 4 De mudaga ni seeren iisas er Es roS EOKA TAE TAEAKE RESIA ENEAS ATE EEEE NA 85 3 ESTADO COMPOSTO iai sais neteess sn RAAKAA d ee sos NA INSARA NAIN AARAA AINAN KARAN SAKARIAS RTG 86 del n o LE E AE A E 87 A EXERC CIOS aucescnisaia ama enaias cassia ata oia OARENIEN EERENS R ARASEN IEAA senso dee 88 IX DIAGRAMA DEVATIVIDADES sssesssesssssesersssssscsse cases case sue ossec secs sa casos ass ssa dss 92 1 ELEMENTOS B SICOS una adidas 92 2 EXERC CIOS sos sinos om as css siaran san i oa uta
65. e como intermedi rio ou n o Normalmente h um controlador para cada caso de uso do modelo do neg cio 35 Eventos de interface P a entrada de informa es a es Estado modelo Modelo do neg cio Vis o Controle Eventos e respostas gerados pelo modelo b Eventos de interface entrada de informa es a es Controle Modelo do neg cio Estado modelo Vis o selecionada Eventos e respostas gerados pelo modelo Figura 25 Modelo MVC nas duas formas poss veis O modelo MVC bastante utilizado em aplica es WEB Um servi o pode ser chamado a partir de diferentes clientes tais como celulares PCs e Palms A l gica do neg cio no entanto permanece a mesma independente do cliente Normalmente nas aplica es WEB o servidor escolhe a vis o mais apropriada como mostra a Figura 26 Observar que os servidores n o s o necessariamente m quinas distintas Existe um framework chamado Struts que diminui o esfor o de desenvolver uma aplica o Web segundo o padr o MVC Framework uma cole o de interfaces e classes para auxiliar o desenvolvimento e manuten o de aplica es 4 Servidor de aplica o Cliente Celular Cliente Palm Controlador A Modelo do neg cio Figura 26 Padr o MVC numa aplica o WEB 36 3 PADR O OBSERVADOR O objetivo do padr o observador Gamma e co autores 1995 pg 294 reduzir o ac
66. e generaliza o especializa o pode ocorrer entre casos de uso ou entre atores Caso x Caso Generaliza o permite especificar comportamentos gen ricos que podem ser especializados para atenderem necessidades espec ficas Normalmente utilizado quando se quer descrever fam lias de sistemas Por exemplo uma empresa que desenvolve software pare terminais banc rios de auto atendimento quer expandir seus neg cios para outras reas tais como pagamento direto em bombas de gasolina NOME Realizar transa o caso abstrato DESCRI O Permite ao usu rio comprar mercadorias de um terminal autom tico sendo que o valor das mercadorias descontado de uma conta banc ria 26 PR CONDI ES e o cliente possui um cart o banc rio a conex o com o banco est ativa o terminal deve ter mercadoria P s CONDI ES ou O terminal retornou o cart o banc rio ao cliente entregou a mercadoria ao cliente e debitou o valor de sua conta O terminal retornou o cart o banc rio ao cliente n o entregou nenhuma mercadoria e nenhum valor foi debitado da sua conta FLUXO B SICO DE EVENTOS 1 O ator cliente insere o cart o banc rio no terminal 2 O sistema l as informa es da conta do cliente no cart o banc rio 3 O sistema solicita ao cliente a senha 4 O cliente fornece a senha 5 O sistema verifica se a senha fornecida pelo cliente id ntica lida do cart o banc rio 6 O sistema contata co
67. e responder positivamente quest o o sistema pode ser entregue sem a extens o Na figura 19 a emiss o de hist rico escolar estendida pelo caso imprimir comprovante de t rmino quando o aluno solicitante for formado Observa se que um comportamento opcional que pode n o ser oferecido sem preju zo ao comportamento b sico emitir hist rico escolar 25 EmitirHistoricoEscolar values aluno formado aluno aluno formado e um ponto de extensao lt lt extend gt gt Para ver a palete con ga elementos do diagrama Window gt Palette ImprimirComprovanteTermino Figura 19 exemplo de rela o de extens o entre casos de uso Nota se na o ponto de extens o p blico denominado aluno formado onde o comportamento opcional imprimir comprovante t rmino inserido prov vel que existam outros pontos de extens o privados definidos nos fluxos de emitir hist rico escolar por m no diagrama s os usados pelas extens es s o listados A figura 20 ilustra o diagrama de casos de uso para o exemplo buscar produto e fazer pedido Buscar produtos e fazer pedido Extension Points Mostrar cat logo de produto Produto esgotado cliente lt aExtend gt gt I i Pesquisar prod palavras chave lt 4Extend gt gt I Tratar produto esgotado Figura 20 pontos de extens o para o caso buscar produtos e fazer pedido 4 4 Generaliza o Especializa o A rela o d
68. e ser empregado para representar os fluxos de eventos de um caso de uso Sua utiliza o n o suprime a descri o textual pelo contr rio ele deve ser visto como uma ilustra o simplificada da descri o textual Se todos os detalhes da descri o textual forem colocados no diagrama este ficar extremamente polu do e perder sua utilidade tornar o caso de uso mais compreens vel aos leitores cliente seleciona op o de pesquisar por palavras chaves Mostrar cat logo de produtos y Selecionar produtos Processar pedido cliente deseja mais produtos O Figura 13 Exemplo de diagrama de atividades 3 2 6 Cen rios Cen rios s o inst ncias de execu o dos casos de uso Os fluxos alternativos representam as possibilidades de execu o de um caso de uso No exemplo buscar produtos e realizar pedido o fluxo alternativo pesquisar produtos por palavras chaves uma alternativa simples visualiza o do cat logo 21 de produtos logo h pelo menos dois caminhos poss veis de execu o Um cen rio representa um desses caminhos figura 14 Fluxo cen rio alternativo Fluxo b sico Figura 14 Representa o esquem tica de um cen rio Cen rios s o importantes para definir casos de teste e para desenvolvedores pensarem sobre como o sistema ser utilizado Podem ser documentada adicionando se informa o s descri es dos casos de uso ou como parte da descri o dos test
69. ealizadas daquele momento em diante O diagrama de sequ ncia parcial mostrado em seguida Complete o diagrama de seq ncia e refine o diagrama de classes 75 sd projeto casos de uso web 7 7 jsp page servlet IUConversao CtrlConversao meteorologista i i t p g convers o POST celsius ConversaoCF ConversaoCF 2 Para o sistema de loca o de ve culos caso de uso Reservar Ve culo supor que na fase de projeto o arquiteto de software decidiu por uma arquitetura Web como mostra o diagrama de implanta o Al m disso o arquiteto de software optou por utilizar o conhecimento da equipe desenvolvedora em Java Java ServerPages servlets e Java Script L Servidor WEB http ES E http m Navegador N deployment projeto casos de uso http http Navegador 1 ttp R L L 7 Navegador 2 Navegador N 1 Com estas decis es o diagrama de seq ncia reservar ve culo foi parcialmente refinado ou seja somente a parte de sele o de ve culo por parte do cliente em um cen rio onde tudo funciona como mostra a figura seguinte N o est inclu do o tratamento do perfil do cliente 76 J sd Reservar Ve culo prj 8 D Q o L S S Y a servlet Ctrl Reserva o E a c D O Tv gt a c e s 0 TO jsp page IUReserva v oK 8 6 3 E
70. el de gerente n o precisam estar associados a subordinados No sentido contr rio todo empregado est associado a exatamente um gerente Neste caso define se que um gerente subordinado a ele mesmo no n vel mais alto da hierarquia por isso podemos deixar multiplicidade igual a 1 no lado gerente 1 2 Classes associativas Quando uma rela o associativa possui atributos pr prios pode se criar uma classe associativa Estas classes s o teis quando queremos armazenar o hist rico de uma associa o relacionamentos que ocorrem e interessam serem salvos No exemplo abaixo figura 53 quando existir uma associa o entre uma inst ncia de aluno e uma de turma haver tamb m uma inst ncia de inscri o para armazenar o resultado escolar 55 Turma Inscri o semestre int ano int nota final float Figura 53 Exemplo de classe associativa Algumas caracter sticas das classes associativas Classes associativas s o comuns em rela es de multiplicidade embora n o seja uma regra definitiva A linha que representa a associa o n o nomeada o nome da classe associativa deve ser suficiente para identificar a rela o Classes associativas podem estar relacionadas a outras classes 1 3 Rela es Tern rias E poss vel representar em UML rela es entre objetos de tr s ou mais classes No exemplo abaixo est representado o fato de um professor lecionar numa sala para v rios alunos o
71. empregador empregado Figura 51 Pap is nas rela es 1 1 Associa o reflexiva Os objetos de uma classe podem se relacionar com objetos da mesma classe Por exemplo uma rela o do tipo pai filho ou chefe empregado cada objeto desempenha um papel diferente Neste tipo de associa o frequente a utiliza o de pap is ao inv s de nome de associa o para evitar ambig idades na leitura Na associa o reflexiva da classe Pessoa figura 52 a interpreta o a seguinte uma pessoa tem zero ou um pai e uma pessoa pode ser pai de v rios filhos A multiplicidade zero no papel filho permite que mulheres e homens sem filhos n o participem desta associa o A multiplicidade zero no papel pai pode parecer estranha pois todo filho tem um pai por m se colocarmos 1 na multiplicidade todos os pais do mundo teriam que ser representados no sistema Pessoa filho Empregado 0 pe fo gerente Figura 52 Exemplos de associa es reflexivas subordinado Na associa o reflexiva da classe Empregado figura 52 a interpreta o a seguinte um empregado que desempenha o papel de gerente tem zero ou mais subordinados Pode parecer estranho um gerente sem subordinados mas se coloc ssemos 1 ao inv s de zero na multiplicidade no lado do papel subordinado todo empregado teria que ter ao menos um subordinado Portanto este zero significa que empregados que n o desempenham o pap
72. erereeree 10 2 2 Casos dEUS nnan e E AE E E A A E E ER 10 3 ANALISE E PROJETO erersrissir asarana ear NAAA AAAA AANE AAAA NAREN ARAN AAAA 11 3 1 Diagramas deIntera o on roiuri inae AEE EETA EANNA E aeee a aa s 11 3 2 Refinamento do Diagrama de Classes nessesesssossssesessersssseessseresseressseeess 12 3 3 Definir o Comportamento das Classes sesssssssessssseessseressseessseresseressseees 12 3 4 Implanta o seas ep riria einsi a ERENER E EROSEN ER EE ni 13 3 5 Componentes do SisteManeesse erpinen naea nai n nae e ia n 14 4 Modelagem Estrutural e Comportamental ssssosessessoosoosssssessoosesssessooeseoe 14 Ill MODELO DE CASOS DE USO ss esses ssssnesess rasas assessor esses case casas cases cusuds 16 T DEFINI O assis gs as E E O SAS SUS 16 2 ATORES orsina decano sacia nessa en nadas ses ne aan amas ds oi nine AAA Goi pensas ai dads 16 3 CASOS DE USO rinier aA ais KINAEN KERANA a isa desc RRAS SA RIRIN IARTA ANNAA KARNEKA tania aids 17 3 17 DESCHICAO So rr re ia ee r nas a e e a a A OA EE e A N I O EE ESA a 17 3 2 Fluxo de EyentoS eesriie renit nseni eE EE EES DETERE DEAETE dna das 17 3 2 1 1FluxO BASICO AO EEE N IA S E E da pago 18 3 2 2 SUDTIUXO eiiean nan E e E ae E E A E eaaa e iei 19 3 2 3 Pontos de extens o sssri ooir ie aee EE ANEAN O E EREE EEG 19 3 2 4 Fluxo Alternativo secs esse nes sewsas e ssiri et Enans EENES EEE R ESETE EEEE Ea 20 3 2 5 Diagrama de atividade nseses
73. ergunta ao cliente pelos crit rios de busca do produto 2 O cliente fornece os crit rios de busca de produto tw a descri o deste fluxo continua 4 O fluxo de eventos b sico retomado em Escolher produto N o h fluxo geral para o exemplo mas poderia ser definido da seguinte maneira em qualquer ponto do caso de uso Buscar produtos e fazer pedido 20 Por que representar um fluxo alternativo separadamente do fluxo b sico se poss vel represent lo com um se if no fluxo b sico Fluxos alternativos s o opcionais e descrevem comportamentos que est o fora do comportamento normal esperado Nem todos os fluxos alternativos representam funcionalidades essenciais muitos deles podem n o ser necess rios podem ser muito caros ou n o prover funcionalidades importantes o suficiente para disp ndio de esfor os de desenvolvimento Fluxos alternativos permitem adicionar funcionalidade ao fluxo b sico de maneira incremental ou remover funcionalidade medida que tempo e dinheiro se esgotam Por exemplo qual a import ncia de realizar pesquisas por palavras chaves no exemplo em uso Se for apenas uma das alternativas de busca n o inviabiliza a funcionalidade do fluxo b sico como um todo Agora se algu m perguntar qual a import ncia do fluxo b sico buscar produtos e realizar pedido f cil ver que n o pode ser deixado de fora 3 2 5 Diagrama de atividade Um diagrama de atividade pod
74. es N o h necessidade de descrev los detalhadamente basta nome los e descrever o caminho a ser percorrido por exemplo fluxo b sico fluxo alternativo al fluxo b sico 3 2 7 Realiza es de Casos de Uso Um caso de uso pode ser realizado projetado e implementado de diferentes modos Em UML h uma representa o para realiza o de caso de uso como ilustra a figura 15 O intuito dessa representa o fazer uma ponte entre as descri es do sistema utilizadas pelas pessoas envolvidas na sua constru o mas que n o participam do desenvolvimento em si e as descri es do sistema utilizadas pela equipe de desenvolvimento Buscar produtos e fazer pedido Modelo de casos de uso Modelo de an lise e projeto diagramas de comunica o N especificam as realiza es Figura 15 Realiza o de um caso de uso Diagramas de intera o podem ser associados s realiza es de casos de uso para especificar o fluxo de informa es entre objetos que concretizam o caso Por m a representa o de realiza o de caso n o muito utilizada 4 RELA ES H v rios tipos de rela es poss veis num diagrama de casos de uso por m importante salientar que as rela es 1 n o representam a ordem de execu o dos casos 2 devem melhorar a compreens o do que o sistema deve fazer e n o como projet lo Em seguida apresentam se as rela es mais comuns 22 4 1 Associa o Associa o
75. fic o e com dia 7 Um cliente pode fazer diversos contratos de loca o de carros numa locadora de ve culos A locadora aluga caminh es carros de passeio categoria A Be C e motos Os contratos diferem em valor e imposto segundo o tipo de ve culo locado Construa um diagrama de classes para representar as classes e seus relacionamentos 8 Retoma as classes de an lise e o diagrama de sequ ncia do exerc cio 6 pg 51 e defina as rela es entre as classes de an lise arquivo dispon vel na p gina do curso vers o Enterprise Architect 64 VII PROJETO DE CASOS DE USO De forma geral a atividade de projeto de casos de uso a transforma o das classes de an lise em uma ou mais classes de projeto A representa o das classes na atividade de projeto muito mais pr xima da implementa o ou seja leva em conta as tecnologias que s o utilizadas na implementa o do sistema 1 PROJETO Resultados Os resultados da atividade de projeto de casos de uso s o Classes de projeto Opera es e atributos de cada classe Diagramas de intera o para mostrar como as classes de projeto colaboram para realizar os processos do neg cio capturados nos casos de uso Arquitetura de software SAD Software Architecture Document Interfaces com subsistemas espec ficos ou software de terceiros Subsistemas M todo Criar realiza es de casos de uso na an lise as realiza es cont m classes de an l
76. i o em m quina de estado 1 5 Transi o interna poss vel representar a ocorr ncia de um evento que n o provoca uma mudan a de estado somente a execu o de uma a o Estes eventos s o chamados de eventos internos e s o representados no interior dos estados A resposta a um evento interno difere daquela da auto transi o pois n o se deixa o estado para reentrar em seguida Portanto as a es associadas s palavras chaves entry e exit n o s o executadas e a atividade porventura em execu o n o interrompida No exemplo seguinda Figura 88 h uma transi o interna disparada pela tecla F1 Neste caso a a o mostrar help ser executada por m a a o num n o ser executada stm Conta letras letra teclada Contando letras int num Fi1 mostrar help entry num Initial Figura 88 Exemplo de transi o interna 1 6 Ordem de execu o de a es e atividades A ordem de execu o das a es e atividades a seguinte supondo se que a m quina j se encontra num estado A e passa ao estado B pela ocorr ncia de um evento AB 1 se existe uma atividade em execu o em A ela interrompida 2 executa se a a o exit do estado A 3 executa se a a o associada ao evento AB 4 executa se a a o entry do estado B 5 executa se a atividade do em B se existir No exemplo da figura 89 sup e se a seguinte segii ncia de eventos i
77. ica bloqueado aguardando a resposta Ass ncrona o emissor n o bloqueia at que o receptor enviar resposta para continuar seu processamento Retorno ou resposta resposta mensagem s ncrona pode ser omitida Uma mensagem definida sintaticamente por express o segii ncia recorr ncia v mensagem Express o seqii ncia um n mero sequencial de envio das mensagens Por exemplo 1 msgl 2 msg2 representando que a mensagem msg1 precede a msg2 Pode se utilizar n veis 1 1 msgl 1 2 msg2 representando que msg1 e msg2 foram enviadas ap s recebimento de uma mensagem 1 Para representar mensagens concorrentes pode se utilizar letras 1 1a msg1 1 1b msg significando que msg1 e msg2 s o enviadas concorrentemente Recorr ncia indica um envio condicional ou uma repeti o Zero ou mais mensagens s o enviadas dependendo da condi o envolvida As op es s o cl usula itera o ou guarda N o h sintaxe r gida definida pela UML a cl usula de intera o e a condi o de guarda podem ser especificadas em pseudoc digo ou na linguagem alvo Exemplos 44 x gt y msg mensagem msg enviada somente sex gt y 1 1 10 msg mensagem msg enviada 10 vezes x gt 0 msg enquanto x for maior que zero enviar mensagem msg Receber valor de retorno poss vel receber um valor de retorno e atribu lo a uma vari vel x obter 1 2 Linha da Vida S o linhas verticais
78. icia com uma breve apresenta o do padr o de projeto MVC e do padr o observador que servem de ponto de partida na escolha das classes que fazem parte de um sistema classes de an lise Em seguida apresenta se o levantamento das classes de an lise a partir dos casos de uso 1 AN LISE O levantamento das classes de an lise marca o in cio da constru o do modelo da an lise RUP Ocorre uma mudan a na linguagem enquanto no modelo de casos de uso a descri o do sistema era feita na linguagem do cliente usu rio na an lise emprega se a linguagem dos desenvolvedores A tabela 4 ilustra as diferen as entre o modelo de casos de uso e o modelo de an lise segundo Jacobson e co autores 1999 TABELA 4 COMPARA O ENTRE MODELO DE CASOS DE USO E DE AN LISE JACOBSON E CO AUTORES 1999 Modelo de casos de uso Modelo de an lise Linguagem do cliente usu rio Linguagem dos desenvolvedores Vis o externa do sistema Vis o interna do sistema Estruturado pelos casos de uso Estruturado por classes estereotipadas e pacotes Contrato entre cliente e desenvolvedores sobre o que o sistema deve e n o deve fazer Utilizado pelos desenvolvedores para entender qual a forma do sistema i e como deve ser projetado e implementado Pode haver redund ncias e inconsist ncias nos requisitos N o deve haver redund ncias e inconsist ncias nos requisitos Captura a funcionalidade do sistema Rascunha com
79. ise da figura 57 Observar que as associa es que envolvem classes de controle e de fronteira n o s o nomeados pois apresentam uma mesma sem ntica comunica o 57 class Classes de an lise associa es 1 1 1 1 IUConversao CtrlConversao ConversaoCF 0 10 pertence 1 1 1 IUHistorico CtrlHistorico Historico Figura 57 classes de an lise do conversor Celsius Fahrenheit com associa es 2 AGREGA O um caso especial de associa o utilizada para representar relacionamentos de pertin ncia parte de Permite representar o fato que um objeto ou mais objetos de uma classe fazem parte de um objeto de outra classe Um exemplo t pico uma janela de interface com o usu rio composta por diversos bot es campos texto scrolls bars etc A agrega o representa uma liga o entre o objeto o todo a janela e as partes Bot o ComboBox ScrollBar Um comportamento que se aplica ao todo se propaga as partes por exemplo ao movimentar a janela todos seus elementos de deslocam tamb m J class Classe Janela Bot o ComboBox ScrollBar Figura 58 exemplo de agrega o 2 1 Nota o Podem se incluir nomes pap is multiplicidades e navegabilidades enfim aceita todos os adornos de uma rela o de associa o 2 2 Multiplicidade Frequentemente ser 1 do lado da classe todo visto que um objeto normalmente parte de um s objeto Por m h
80. ise e objetos que aparecem em diagramas de classes e de intera o No projeto s o utilizados praticamente os mesmos diagramas a diferen a que as informa es s o mais pr ximas da implementa o Descrever intera es entre objetos e refinar diagrama de classes Simplificar diagramas de seq ncia utilizando subsistemas opcional Descrever comportamentos associados persist ncia 2 CLASSES DE PROJETO Na atividade de an lise ao construir os diagramas de intera o sequ ncia e comunica o considerou se que os objetos estavam dispon veis e persistidos n o havia preocupa o com a cria o e destrui o dos mesmos e nem em acess los e associ los a outros objetos Na atividade de projeto estas quest es devem ser levadas em conta Al m disso classes de an lise podem ser transformadas em v rias classes de projeto reduzidas a um m todo de uma classe de projeto suprimidas etc Classes de An lise x Projeto Qual a diferen a entre uma classe de an lise e uma de projeto Uma classe de projeto especificada na linguagem de programa o alvo tipos de dados opera es atributos s o definidos utilizando se a sintaxe da linguagem de programa o As visibilidades dos atributos e opera es de uma classe de projeto s o especificadas na maior parte das vezes 65 amp As rela es entre classes num diagrama de classes de projeto influenciam diretamente na implementa o destas cla
81. ista de servi os que o sistema deve oferecer ao usu rio N o funcionais propriedades e caracter sticas desejadas do sistema relativas capacidade de armazenamento tempo de resposta configura o uso ex uso intuitivo confiabilidade etc Requisitos n o funcionais Produto Externos Confiabilidade Entrega Interoperabilidade Portabilidade Implementa o ticos Usabilidade Padr es Efici ncia Seguran a Privacidade Desempenho Espa o Figura 3 Taxonomia de requisitos n o funcionais extra da de http www csc liv ac uk igor COMP201 files SE L4 ppt 289 15 Non functional requirement types 2 1 Papel dos Casos de Uso na An lise de Requisitos Casos de uso representam funcionalidades completas para o usu rio e n o funcionalidades internas do sistema Outro ponto importante que o diagrama de casos de uso um artefato de comunica o entre cliente usu rios e desenvolvedores Por ser extremamente simples e consequentemente de f cil compreens o incentiva a participa o do cliente e usu rios no processo de desenvolvimento Tamb m serve como um contrato entre a equipe empresa desenvolvedora e o cliente 2 2 Casos de Uso A cole o de casos de uso representa todos os modos pelos quais o sistema pode ser utilizado pelos atores envolvidos Um caso de uso uma segii ncia de a es realizadas colaborativamente pelos atores envolvidos e pe
82. lo sistema que produz um resultado significativo com valor para os atores Um ator pode ser um usu rio ou outro sistema Para uma calculadora de linha de comando cujo objetivo executar express es aritm ticas ex 2 3 5 O diagrama de casos da figura 4 pode ser considerado adequado Resolver express es aritm ticas b sicas usu rio Figura 4 Diagrama de casos de uso para a calculadora O diagrama de casos de uso apenas um panorama visual das funcionalidades do sistema necess ria uma descri o textual para detalhar os casos de uso A tabela 1 ilustra esta documenta o para o caso de uso resolver express es aritm ticas TABELA 1 DOCUMENTA O PARA O CASO DE USO RESOLVER EXPRESS ES ARITM TICAS B SICAS Nome do caso de uso Efetuar express es aritm ticas b sicas 10 Permite resolver express es envolvendo n meros inteiros e Descri o reais e as opera es b sicas de soma subtra o multiplica o e divis o sem par nteses Ator Envolvido Usu rio Sistema deve estar em execu o aguardando por uma Pr condi es x expressao Express o aritm tica resolvida ou abandono da express o pelo usu rio P s condi es Fluxo b sico Usu rio Sistema Solicita express o Solicita a express o A2 Fornece a express o Valida express o Avalia se a express o sintaticamente correta A1 Calcula valor Calcula o valor da express
83. ltimo compartilhado com o caso Efetuar inscri o curso opcional e portanto deve ser representado no diagrama Um erro comum que adiciona complexidade ao diagrama incluir os subfluxos escolher disciplinas e alocar alunos s turmas no diagrama Efetuarlnscri oCursoOpcional lt Include gt gt I I 1 I U Emitir Boleto AA I 1 Aluno lt lt includa gt gt I EfetuarMatr cula Figura 18 exemplo de inclus o de casos 24 importante ressaltar que um caso de uso nunca deve ser inclu do apenas por um caso ou seja n o utilizar lt lt include gt gt para decompor o diagrama em partes um caso de uso que inclu do por v rios outros n o tem conhecimento sobre quem o inclui portanto podem ser inclu dos por qualquer caso sem sofrer modifica es n o utilizar a rela o de inclus o para representar op es de menu pois o caso que faz a inclus o seria um simples despachante todo o comportamento estaria fragmentado nos casos inclu dos Enfim inclus o deve ser utilizada para administrar comportamentos comuns e n o para estruturar funcionalmente o diagrama 4 3 Extens o Um caso pode estender outro quando se deseja inserir um comportamento opcional ou excepcional disparado por alguma condi o ex um alarme ou condi o especial de algum objeto Situa es que podem levar ao uso da rela o de extens o Bittner e Spencer 2003 Descri es opcionais
84. m rico Figura 91 diagrama de estados para a classe CtrlConversao e IUConversao Quando um objeto envia um evento de chamada a outro objeto ele passa o controle da execu o ao receptor Uma vez que o objeto receptor processa o evento disparando uma transi o se houver o controle retorna ao invocador Por m contrariamente a chamada de um m todo uma m quina de estados que recebe um evento de chamada pode continuar sua execu o em paralelo ap s retorno do controle com o objeto invocador 2 2 Desinal S o eventos ass ncronos que portanto n o bloqueiam o emissor tal como um sinal enviado pela rede de comunica o de um processo a outro ou vindo da pr pria interface do usu rio Para ilustrar este tipo de sinal considerar um servidor de p ginas WEB O funcionamento t pico o seguinte o servidor aguarda mensagens que podem chegar a qualquer momento Quando chega uma mensagem o servidor a trata e envia uma resposta de forma ass ncrona sem se preocupar se a mensagem chegou ou n o 84 FimServi o AquardandoCmdo BuscarURL ur ServindoP gina Execute script Satit FimExecu oScript ExecutandoScript 2 3 Temporal Tipicamente s o utilizados eventos nomeados por After 30seg ou when data 1 2 2004 para indicar respectivamente um intervalo de tempo relativo ou um momento preciso no tempo Por exemplo um sem foro passa pelos estados vermelho verde e amarelo sendo 45s no vermelho 45s no
85. m do fluxo de dados DFD modelos de dados diagrama entidade e relacionamento DER e modelo entidade relacionamento MER i http www omg org technology documents formal uml htm 3 2 An lise e projeto orientados a objetos An lise projeto e programa o orientados a objetos Coad e Yourdon 1979 Rumbaugh 1991 Grady Booch 1991 Jacobson 1992 Diferentemente da an lise e projeto estruturados na orienta o a objetos o processo a ser informatizado visto como um conjunto de objetos que interagem para realizar as fun es As vantagens do modelo OO s o maior grau de abstra o maior encapsulamento modelos apoiados em conceitos do mundo real reutiliza o reusabilidade Neste curso n o abordado o ciclo de vida de desenvolvimento de software que s o in meros cascata iterativo incremental gil extremo e outros No entanto as fases cl ssicas do ciclo de vida s o utilizadas engenharia de requisitos an lise projeto implementa o testes manuten o e opera o 4 OBJETO E CLASSE Apresenta se uma breve revis o de objeto e classes de objeto assim como a nota o UML de ambos 4 1 Objeto uma abstra o que representa uma entidade do mundo real pode ser algo concreto computador carro ou abstrato transa o banc ria hist rico taxa de juros Um objeto num sistema possui tr s propriedades estado comportamento e identidade Estado definido pelo conjunto de p
86. m o Sistema Banc rio para verificar se as informa es da conta do cliente s o v lidas 7 O sistema solicita o valor da transa o 8 O sistema contata o Sistema Banc rio para verificar se o cliente tem saldo para cobrir a solicita o Cliente realiza a transa o 9 O sistema registra o valor da transa o 10 0 sistema comunica ao Sistema Banc rio que a transa o foi efetuada 11 0 sistema grava no log os dados da transa o data hora valor e conta 12 T rmino do caso de uso NOME Sacar caso concreto DESCRI O Especializa o caso de uso realizar transa o para permitir ao cliente retirar dinheiro de um terminal de auto atendimento banc rio PR CONDI ES e o cliente possui um cart o banc rio a conex o com o banco est ativa o terminal deve ter dinheiro P s CONDI ES ou O terminal retornou o cart o banc rio ao cliente entregou o dinheiro ao cliente e debitou o valor de sua conta O terminal retornou o cart o banc rio ao cliente n o entregou dinheiro e nenhum valor foi debitado da sua conta FLUXO B SICO DE EVENTOS Em Cliente realiza transa o 1 O sistema verifica se tem dinheiro suficiente em rela o ao montante solicitado pelo cliente 2 O sistema entrega o montante solicitado 3 O sistema solicita que retire o dinheiro do terminal 4 O cliente pega o dinheiro 27 5 Retoma se o caso de uso abstrato em Cliente realiza transa o
87. medi rios e morre no estado final Estados recebem nomes no partic pio ou ger ndio Por exemplo um objeto pode estar emprestado ou dispon vel Evento trigger event algo que ocorre de forma instant nea no tempo e pode ocasionar uma transi o de estado em um objeto A o uma a o algo executado de forma imediata e at mica ou seja o tempo de execu o muito pequeno e a a o n o pode ser interrompida Est frequentemente associada a uma transi o embora possa aparecer dentro de um estado relacionada s palavras chave entry e exit ou a transi es internas a um estado Atividade similar a uma a o por m pode ser interrompida E associada a um estado por meio da palavra chave do Condi o de guarda express o l gica que deve ser verdadeira na ocorr ncia do evento para que a transi o ocorra 1 1 Nota o b sica Diagrama de estados um grafo dirigido onde os nodos s o os estados e os arcos transi es entre estados como ilustra a figura seguinte stm Abstrato estado inicial Transi o externa transi o evento guarda a o o Final Figura 82 elementos b sicos de um diagrama de estados A Figura 83 mostra o comportamento de uma janela que inicia no tamanho original e pode ser minimizada podendo trocar de estados v rias vezes at ser fechada 79 class Esta es do ano 7 JanelaOriginal bot o fechar pressionado
88. n cio ev AB ev interno ev Be ev FIM Para esta sequ ncia as a es s o executadas na seguinte ordem in cio AO Al A2 A3 ev AB AB A5 A6 ev interno A7 sem matar A6 ev B interrompe A6 A8 A4 A5 A6 ev FIM A8 A9 82 stm Ordem exec Bi Estado A entry Al do A2 exit A3 Initial ev AB AB Estado B entry A5 do A6 ev interno A7 exit A8 ev FIM A9 ev B A4 Figura 89 Ordem de execu o das a es e atividades 1 7 Condi o de guarda Condi o de guarda uma express o l gica que deve ser satisfeita na ocorr ncia de um evento para que a transi o correspondente ocorra Por exemplo na Figura 90 quando ocorrer o evento userInput h tr s op es mutuamente exclusivas dadas pelas condi es de guarda 1 op o OK a auto transi o sem a o associada ser executada 2 op o NOK a auto transi o com a a o mostrarMsg ser executada 3 op o fim o objeto ser destru do userlnput op o OK userlnput fim userinput op o NOK imostrarMisg Figura 90 Condi o de guarda A condi o de guarda importante para evitar conflitos entre transi es Se pela ocorr ncia de um evento mais de uma transi o pode ser disparada ent o a m quina de estados n o determin stica 2 TIPOS DE EVENTOS 2 1 De chamada um evento s ncrono tipicamente uma chamada de m todo
89. nal Essas asas o sata sueco sous sia scetenadas Sisri iE e 93 X DIAGRAMA DE COMPONENTES E IMPLANTA O ecceccecereereerersencenceneeso 94 1 DIAGRAMA DE COMPONENTES eeeeeceeeeeeeese erre c erre e rece c rec cera ceaaeada 94 2 DIAGRAMA DE IMPLANTA O eccccceeeerereereercercercencenenceneer cancer cerca seeseenenna 95 XI REFERENCIAS BIBLIOGR FICAS ce ai in EEEN EEEN EEEREN aKa 97 INTRODU O Neste cap tulo s o apresentados os conceitos fundamentais do curso modelo UML an lise e projeto orientado a objetos objeto e classes de objetos 1 MODELO Antes de entrar nos detalhes de UML preciso ater se ao conceito de modelo Um modelo uma simplifica o da realidade que descreve um sistema de um ponto de vista particular Por exemplo um projeto arquitet nico feito segundo diversas perspectivas do arquiteto projeto arquitet nico em si do engenheiro eletricista projeto el trico do engenheiro civil projeto hidr ulico e estrutural Constru mos modelos de sistemas complexos para melhor compreend los Abstrair e refinar incrementalmente s o palavras chaves Em certos momentos o projetista deve focalizar na intera o entre componentes do sistema sem se preocupar com seus detalhes internos de funcionamento ent o ele abstrai estes detalhes Em outros momentos preciso detalhar o comportamento dos componentes Enfim projetar um sistema significa fazer modelos so
90. ncionais sem casos Alguns casos podem ter sido esquecidos Todos os requisitos n o funcionais foram tratados associados aos casos de uso quando s o espec ficos Todos os tipos de usu rios foram mapeados para um ator ao menos Descrever os casos detalhadamente Representar os subfluxos lt lt include gt gt e fluxos alternativos lt lt extend gt gt considerados importantes no diagrama Verific los E poss vel eliminar os casos inclu dos ou as extens es e ainda ser capaz de entender o que o sistema faz para as partes interessadas EXERC CIOS 1 Um aluno de uma universidade particular deve escolher disciplinas do semestre Em seguida ele alocado s turmas para ent o receber uma fatura emitida pelo sistema de faturamento com o valor a ser pago em fun o do n mero de turmas em que conseguiu vaga Quais s o os atores e casos de uso 2 A secretaria de uma universidade deve cadastrar turmas apag las e modific las e envi las aos departamentos acad micos Quais s o os atores e casos de uso 3 Construir o diagrama de casos de uso e especificar os fluxos de eventos b sico Um cliente deseja um sistema que permite jogar jogo da velha e forca O sistema destinado a um usu rio e deve armazenar as estat sticas de uma sess o do lan amento ao t rmino do sistema Em uma sess o o usu rio pode jogar diversas vezes cada um dos jogos Ao t rmino de cada jogo atualizam se as estat stica
91. o caminho inverso n o poss vel o que indicado pelo X sobre a associa o Professor leciona Disciplina Figura 48 associa o unidirecional Para representar uma associa o bidirecional naveg vel nos dois sentidos utiliza se uma flecha bidirecional Para facilitar a leitura pode se indicar a dire o da mesma tri ngulo ao lado do nome da associa o Professor leciona E Figura 49 associa o bidirecional Se n o h defini o sobre a navegabilidade pode se deix la n o especificada Neste caso n o se deve utilizar flechas Por exemplo a figura 50 representa uma associa o 1 1 de navegabilidade n o especificada Figura 50 associa o n o especificada leciona Pap is Podemos associar pap is s associa es para clarificar as responsabilidades dos objetos participantes A figura 51 ilustra uma associa o entre Empresa e pessoa Para evitar um nome amb guo de associa o pela utiliza o de pap is Por exemplo o nome trabalha pode ser interpretado como pessoa trabalha para Empresa empresa trabalha presta um servi o para Pessoa O nome emprega pode ser interpretado como empresa emprega Pessoa pessoa emprega contrata Empresa Assim para representar os dois primeiros itens pode se utilizar pap is a Empresa desempenha o papel de empregador de Pessoa e Pessoa empregado 54 Tisbali ou enpragad Pessoa Empresa
92. o de 1997 e assume a responsabilidade de realizar manuten o revis o da UML Em mar o de 2003 a OMG lan ou a vers o 1 5 Em outubro de 2004 a OMG lan ou vers o 2 0 adotada 3 AN LISE E PROJETO ORIENTADOS A OBJETOS H v rios m todos de desenvolvimento de software Na d cada de 80 houve preponder ncia dos m todos estruturados Atualmente o paradigma OO mais forte e por isso importante diferenciar an lise e projeto estruturado e orientado a objetos 3 1 An lise e projeto estruturados V rios autores participam da corrente de an lise projeto e programa o estruturados 1979 Tom DeMarco An lise estruturada DEMARCO 1989 1982 Gane e Sarson An lise estruturada GANE amp SARSON 1983 1985 Ward e Mellor An lise estruturada para sistemas tempo real WARD amp MELLOR 1986 1989 Yourdon An lise estruturada moderna YOURDON 1990 Na an lise e projeto estruturados o processo a ser informatizado visto como um conjunto de fun es com dados de entrada processamento e dados de sa da ou seja a nfase esta em fun es que agem sobre dados Estas fun es podem ser decompostas em subfun es decomposi o funcional As principais caracter sticas s o preocupa o com a modularidade e coes o desenvolvimento em diferentes n veis de abstra o top down Os principais diagramas empregados nas diversas metodologias estruturadas s o dicion rios de dados modelage
93. o de generaliza o especializa o com reescrita de m todo 3 1 Hierarquia de classes Nas classes base colocamos os atributos e opera es que s o comuns a todas as classes derivadas evita se redund ncia e facilita se reutiliza o A figura 66 ilustra uma situa o onde atributos e opera es comuns s classes Aluno e Professor foram colocados na classe base Pessoa desta forma n o preciso redeclar las em cada uma das especializa es 61 Pessoa nome string ataNascimento Data Pessoa string Data etNome string etDataNascimento Data etldade int etNome string void etDataNascimento Data void mprime void EBestegoria string uno strng nm Data string crs rofessor string nm Data string ctg etCurso string etCategoria string tCurso strng vod etCategoria string void imprime void mprime void Aluno urso string AlunoDoutoramento Figura 66 Exemplo de hierarquia de classes 3 2 Levantamento de generaliza es Basicamente h duas maneiras de se identificar generaliza es Identifica o de partes comuns a partir de classes espec ficas tenta se estabelecer classes gen ricas Sintese de classes base pode se iniciar a concep o a partir de classes abstratas tentando especializ las 3 3 Qualidade de uma classifica o Uma boa classifica o est vel e extens vel Est vel os crit rios de classifica
94. o n o mudam ao longo do tempo Extens vel f cil de incluir novas classes derivadas na hierarquia N o classificar os objetos em fun o de crit rios que caracterizam seus estados ou crit rios muito vagos como ilustra a figura 67 Ao tentar estender a hierarquia desta figura com uma janela do tipo Dialog torna se evidente que o crit rio de classifica o n o foi bem escolhido A JanelaAberta JanelaFechada Figura 67 exemplo de taxonomia em fun o de estados 62 Dica Uma boa rela o de heran a deve respeitar o princ pio da substitui o qualquer inst ncia da classe base pode ser substitu da por uma inst ncia de uma classe derivada sem alterar a sem ntica de um programa escrito para em fun o da a classe base 3 4 Heran a m ltipla Uma classe derivada de mais de uma classe base Ocorre perda conceitua l pois uma classe base n o representa um caso geral completo da classe derivada ela representa uma parte do conceito representado na classe derivada No exemplo abaixo Cautomovel n o uma generaliza o completa modelo numPatrimonio fabricante preco ano depreciacao cor anoCompra DefineAuto A de Ccarro pois n o leva em conta aspectos do carro ligados ao patrim nio CAutomovel fabricante 30 ano cor DefineBem A class CBemMovel int numPatrimonio float preco int depreciacao int anoCompra nt int
95. o realizar a funcionalidade Define casos de uso que s o analisados no Define realiza es de casos de uso cada uma modelo de an lise representando a an lise de um caso de uso Por que fazer an lise Uma pergunta recorrente por que fazer an lise ao inv s de partir diretamente ao projeto e implementa o H v rias respostas que se complementam Antes de projetar e implementar preciso especificar os casos de uso num grau de detalhamento e de formalismo que n o interessa aos usu rios s aos desenvolvedores An lise permite obter uma vis o geral do sistema de dif cil obten o se todos os detalhes de projeto e implementa o fossem nela inseridos An lise pode envolver grandes por es do sistema sem muitos custos se comparado ao projeto e implementa o Resultados da an lise permitem planejar melhor o projeto implementa o dividindo se o sistema em partes menores que podem ser desenvolvidos incrementalmente de maneira sequencial ou concorrente projetado e implementado por equipes diferentes Seo sistema em desenvolvimento utiliza um sistema legado este ltimo pode sofrer reengenharia para se obter o modelo de an lise para que os desenvolvedores o entendam sem entrar nos detalhes tecnol gicos A reengenharia completa um processo caro custoso e demorado que pode n o ser necess rio se o sistema legado n o necessita ser modificado e utiliza tecnologias obsoletas Um modelo de an
96. oplamento entre classes Podemos utilizar este padr o em conjunto com o MVC para desacoplar as classes da camada de vis o das do modelo Este o desacoplamento mais importante pois separar as classes de controle das de vis o nem sempre uma tarefa evidente Suponha que os dados do modelo devem ser vistos de v rias maneiras por meio de diferentes interfaces mas de maneira sincronizada ou seja cada mudan a nos dados do modelo deve ser refletida igualmente em todas as interfaces Neste caso o padr o observador til pois as classes do modelo n o necessitam saber quantas e quais classes da camada de vis o dependem delas Segundo Gamma et al 1995 o padr o observador til nas situa es seguintes Quando uma modifica o em um objeto implica modifica es em outros e n o se sabe quantos objetos precisam ser modificados Quando um objeto deve ser capaz de notificar outros objetos mas sem pressupostos sobre os objetos a serem notificados 4 CLASSES DE AN LISE Em um diagrama de classes s o definidas as classes de objetos suas opera es e atributos e as rela es entre classes A dificuldade que n o h m todo ou receita para escolher as classes de um sistema E uma tarefa que depende em grande parte da experi ncia do desenvolvedor Nas fases iniciais do projeto as classes s o chamadas de classes candidatas ou de an lise pois h grande probabilidade que mudem ao longo do projeto Com base no pad
97. or aos atores Casos de uso n o chamam outros casos de uso ou se comunicam com outros casos Estrutura e detalhamento N o estruturar demais o diagrama de casos de uso isto n o inclua rela es entre casos de uso a n o ser que sejam extremamente necess rias O uso em excesso destas rela es podem fragmentar o diagrama diminuindo a compreens o global O modelo deve ser o mais simples e direto poss vel N o descrever o que ocorre fora do sistema Por exemplo intera o entre atores pode ser importante para o neg cio mas se o sistema n o facilita esta intera o deixe a fora Se for necess rio esclarecer estes pontos fa a um modelo do neg cio e n o um modelo de casos de uso N o fazer casos tais como incluir consultar alterar e excluir ICAE Casos de uso que descreve comportamentos ICAE n o adicionam muito valor descri o da funcionalidade do sistema Para estes tipos de comportamentos os requisitos s o bastante claros e n o se deve perder tempo especificando os A maior parte destes comportamentos tem um padr o mostrar campos usu rio entra com os dados sistema valida usu rio corrige erros A valida o a parte mais importante dos comportamentos ICAE pode ser capturada no dom nio do modelo por meio de rela es cardinalidade e restri es ou textualmente no gloss rio de dados Modelo de casos de uso mais que um diagrama O diagrama de casos de uso uma vis o panor mic
98. presentada na figura 73 as seguintes implementa es s o poss veis class Professor private Disciplinal disciplinas WNH DUA new Disciplina 5 public void adicionarDisciplinas Disciplina inicializar vetor disciplinas com par metro disc aloca espa o para 5 objs disc class Professor private Disciplinal disciplinas wWMNH new new new new New Disciplina Disciplina Disciplina Disciplina Disciplina Hoco Jo was instancia os objetos disciplina Quando multiplicidade m xima for igual a parametrizada como ilustra o c digo seguinte ZETI figura 74 recomenda se utilizar uma cole o J class classes S Professor Disciplina Figura 74 associa o de multiplicidade 1 E class Professor 2 3 4 disciplinas add disc 0 5 6 7 private Vector lt Disciplina gt disciplinas public void adicionarDisciplinas Disciplina new Vector lt Disciplina gt 4 disc 2 Dica Enterprise Architect para gerar c digo nesta situa o em tools gt options gt Java gt Collection classes definir Vector como default collection class Nas propriedades da associa o no lado target colocar Member Type Vector lt Disciplina gt 70 Multiplicidade A implementa o de associa es com multiplicidade envolve a utiliza o de cole es Para o exemplo da fig
99. professor sempre utiliza a mesma sala Figura 54 exemplo de rela o tern ria Podemos ter classes associativas tamb m nas associa es m ltiplas No exemplo abaixo o jogador participa de v rios times ao longo de uma temporada para cada participa o num time armazena se os dados de gols marcados gols levados vit rias e derrotas do time 56 goalkeeper l goals for goals against wins losses ties Figura 55 exemplo de rela o tern ria com classe associativa 1 4 Levantamento das associa es Normalmente as associa es v em as regras do neg cio dos requisitos funcionais e dos diagramas de intera o Por exemplo em uma universidade pr tica comum que cada professor tenha entre zero e quatro turmas Em uma biblioteca alunos n o podem emprestar mais de quatro livros ao mesmo tempo Aluno Livro 0 1 Empresta 0 4 Figura 56 associa o capturada a partir de uma regra do neg cio Ao observar o diagrama de seq ncia da convers o de graus Celsius para Fahrenheit figura 45 pg 50 poss vel identificar as seguintes classes est o de alguma forma associadas IUConvers o e CtrlConvers o CtrlConvers o e Convers oCF Convers oCF e Hist rico O diagrama de classes de an lise pode ser enriquecido com estas rela es e com outras provenientes do diagrama de sequ ncia do caso de uso Visualizar hist rico produzindo o diagrama de classes de an l
100. que representam o tempo de vida de um objeto Um X na linha denota o fim da exist ncia do objeto Objetos no topo do diagrama s o considerados criados desde o in cio 1 3 Ativa o Uma ativa o um ret ngulo sobre a linha da vida representa o per odo durante o qual um objeto est em execu o diretamente ou indiretamente Direta se estiver executando um m todo ou indireta se chamou um m todo e est bloqueado aguardando o retorno A ativa o mostra a dura o das opera es nos objetos e o fluxo de controle entre o objeto invocador e o invocado 1 4 Alt Equivale ao if else sd Intera o Figura 35 exemplo de alt no diagrama de segii ncia O mesmo comportamento pode ser representado atrav s de uma condi o de guarda in line como ilustra a figura 36 45 sd Intera o A lt A B usu rio x gt 0 msg1 x lt 0 msg2 Figura 36 exemplo de condi o de guarda no diagrama de seq ncia 1 5 Opt Opcional equivale ao if sem else sd Opt EE A usu rio opt testa x msg1 xeo PH msg2 E msg3 i H i i i Figura 37 exemplo de opt 1 6 Loop Permite representar la os sd Loop z X usu rio loop notifica es x gt 0 Figura 38 exemplo de loop em diagrama de segii ncia 46 Repeti es tamb m podem ser represent
101. r o de projeto MVC uma primeira aproxima o das classes necess rias ao sistema pode ser feita Antes de explicar como faz la apresenta se a nota o de classes e alguns estere tipos de classes 4 1 Nota o UML para Classes Uma classe representada por um ret ngulo dividido em tr s compartimentos como ilustra a figura 27 Os compartimentos de atributos e m todos s o opcionais figura 28 Um estere tipo define um tipo para a classe lt lt estere tipo gt gt NomecClasse atributos m todos Figura 27 nota o para classe Figura 28 nota o de classe sem atributos e m todos 4 1 1 Atributos A sintaxe para declara o de um atributo em UML segue o formato 37 lt visibilidade gt lt nome gt lt multiplicidade gt lt tipo gt lt valor inicial gt lt visibilidade gt p blico todas as classes t m acesso privada somente m todos definidos na classe podem v lo protegido m todos definidos na classe e nas classes derivadas podem v lo pacote vis vel dentro das classes de um pacote lt nome gt nome do atributo lt multiplicidade gt por exemplo valores 5 ou matriz 4 6 lt tipo gt pode se utilizar os tipos da linguagem de implementa o Por exemplo char float ou int lt valor inicial gt valor inicial para o atributo que respeite o tipo de dado Exemplos nome String sexo char f c digo int 20
102. ramas mais claros embora n o sejam obrigat rias Por exemplo a figura 17 ilustra um mesmo diagrama que representa os requisitos de um sistema de telefonia com rela es bidirecionais e unidirecionais No diagrama superior pode se deduzir que o emissor inicia a chamada telef nica e no inferior esta informa o est expl cita 23 Fazer chamada local f caga E ga Fazer chamada longa dist ncia receptor emissor Dia Fazer chamada longa dist ncia Figura 17 Associa es bidirecionais e unidirecionais 4 2 Inclus o A rela o de inclus o utilizada entre dois casos quando um deles inclui o outro na sua execu o subcaso Um subcaso representa parte de um fluxo de eventos b sico isto um subfluxo que foi separado e representa um conjunto de a es at mico Ressalta se que a exist ncia de um subfluxo na descri o textual de um caso n o implica sua representa o no diagrama de casos de uso A rela o de inclus o lt lt include gt gt deve ser utilizada somente quando dois ou mais casos de uso apresentam partes id nticas nos seus fluxos de evento caso contr rio se somente um caso de uso utilizar o subfluxo n o deve ser representado Isto requer que os fluxos de evento sejam escritos antes de se colocar rela es de inclus o no diagrama A figura 18 mostra um caso efetuar matr cula que possui subfluxos escolher disciplinas alocar alunos s turmas e emitir boleto Este
103. ras 7 Produto esgotado 8 Os passos 3 e 4 se repetem at que o cliente decida efetuar a compra dos produtos 9 Processar pedido 10 0 sistema pergunta ao cliente se deseja fornecer informa es sobre o pagamento 11 0 sistema utiliza um protocolo seguro para obter as informa es de pagamento do cliente 12 Executar subfluxo validar informa es de pagamento 13 Informa es de pagamento n o v lidas 14 0 sistema pergunta ao cliente se deseja fornecer informa es sobre o envio das mercadorias 15 0 sistema utiliza um protocolo seguro para obter as informa es de envio 16 Executar subfluxo validar informa es de envio 17 Informa es de envio n o v lidas 18 Executar subfluxo efetuar transa o financeira 19 0 sistema pergunta ao cliente se deseja comprar mais produtos 20 Se o cliente desejar comprar mais produtos retomar o caso no ponto Mostrar cat logo de produtos se n o o caso termina No fluxo b sico acima pode se notar a exist ncia de v rios elementos que ser o descritos a seguir subfluxo pontos de extens o e fluxos alternativos 3 2 2 Subfluxo Um fluxo de eventos pode ser decomposto em subfluxos para melhorar a legibilidade No entanto interessante evitar muitas decomposi es pois o fluxo ficar muito fragmentado e seu entendimento dificultado Um subfluxo deve ser at mico isto ou executado na sua totalidade ou n o executado Para referenciar um subfluxo a partir de
104. rgia 8 9 static private void ligar 0 System out println alimenta o acionada 1 2 static private void pararCDabrirCompartimento 3 pararCD 4 abrirCompartimento 5 6 static private void fecharCompartimentoTocarCD 7 fecharCompartimento 8 tocarCD 9 20 static private void fecharCompartimento E System out println acionar motor fechamento 22 23 static private void abrirCompartimento 24 System out println acionar motor abertura 25 26 static private void tocarCD 27 System out println acionar leitor otico e giro CD 28 29 static private void pararCD 30 System out println parar leitor otico e giro CD 31 32 33 34 static private void mudarEstado String evento 35 switch estado E ww ww SO 0 JO Utb nab e Bouse e e SO 0 0c BUNE DOUTA HOoOwo JOS Us wlvH DADADADADADADAV LO LO DO CO CO 00 0000000 0OCIJIJIJIJIJIJIJIIIDIADA DADA OvoINTBUWUNHONLCO JO UMBUWUNHONVLOJOMBUWUNHONW CO JO UMEUWUN a a do do O ss dota NHOoOovoJSSNUWmMsBwUNHO case 0 estado desligado if evento compareToIgnoreCase 1 0 estado 1 ligar System out println CD LIGADO break case 1 estado ligado if evento compareToIgnoreCase 1 0 estado 0 desligar System out println CD DESLIGADO else if evento compareToIgnoreCase p 0 estado 2 tocarCD System out println TOCANDO else
105. ropriedades do objeto os atributos e de suas rela es com os outros objetos E algo que muda com o tempo por exemplo um objeto turma pode estar no estado aberto ou fechado Inicia no estado aberto e fecha quando 10 alunos fazem inscri o Comportamento como um objeto responde s solicita es dos outros e tudo mais o que um objeto capaz de fazer implementado por um conjunto de opera es Ex objeto turma pode ter opera es acrescentar aluno ou suprimir aluno Identidade significa que cada objeto nico no sistema Por exemplo o objeto turma Tecno OO manh diferente do objeto Tecno OO tarde objeto classe Tecno 00 manh Turma Tecno OO tarde Turma Figura 1 Nota o de objeto em UML 4 2 Classe Uma classe uma descri o de um conjunto de objetos com propriedades comportamento relacionamentos e sem ntica comuns Uma classe pode ser vista como um esqueleto modelo para criar objetos Exemplo classe turma Atributos sala hor rio Opera es obter local adicionar estudante obter hor rio Dicas Classes devem encerrar uma s abstra o do mundo real Por exemplo uma classe estudante contendo tamb m o hist rico do estudante n o uma boa solu o Melhor dividi la em duas classes estudante e hist rico Utilizar substantivos para nomear as classes Nas fases iniciais de desenvolvimento pode se suprimir os atributos e os m
106. s pode se coloc los numa s classe de controle 5 EXEMPLO O levantamento de classes de an lise mostrado por meio de um exemplo did tico cujo enunciado o seguinte valor em Celsius e em Fahrenheit Um meteorologista necessita de um programa simples que fa a convers es de temperaturas em graus Celsius para Fahrenheit Ele deseja armazenar as 10 ltimas convers es realizadas denominadas no seu todo hist rico e visualiz las constantemente numa janela independente daquela destinada a fazer a convers o Se por acaso o usu rio fechar a janela do hist rico ele deve ter algum modo de reabri la Uma convers o formada pela data hora A partir do enunciado elaborou se o diagrama de casos de uso da figura 53 Notar que n o preocupa o com a ordem de execu o dos casos de uso e com o fluxo de dados o fato de consultar hist rico utilizar os mesmos dados manipulados por atualizar hist rico Metereologista ConverterCelsusFahrenhei ConsultarHistorico Figura 32 Diagrama de casos de uso para conversor de graus Celsius para Fahrenheit TABELA 5 DESCRI O DO CASO DE USO CONVERTER Nome do caso de uso Converter Celsius Fahrenheit Descri o Permite ao meteorologista realizar v rias convers es de Celsius para Fahrenheit e as armazena em um hist rico Ator Envolvido Meteorologista Pr condi es Sess o iniciada P s condi es Convers
107. s da sess o n mero de vezes que jogou velha n mero de vit rias absoluto e percentual e o mesmo para forca O usu rio deseja que o painel de estat sticas esteja sempre vis vel 4 Qual a diferen a entre as rela es de inclus o e extens o entre casos de uso 5 Como voc modelaria a situa o abaixo utilizando casos de usos Fa a a descri o completa para um dos casos incluindo descri o pr condi es p s condi es fluxo de eventos b sico e alternativos e o diagrama de casos A atividade da biblioteca centra se principalmente no empr stimo de publica es pelos alunos O empr stimo registrado pelos funcion rios da biblioteca que tamb m consultam diariamente os empr stimos cujos prazos foram ultrapassados Os alunos necessitam pesquisar os livros existentes na biblioteca Caso um livro esteja emprestado mostrado a data esperada de entrega 6 Construir o diagrama de casos de uso Um cliente pessoa f sica ou jur dica que paga o advogado pra defend la ou para processar outra pessoa procura o advogado Se o cliente ainda n o estiver cadastrado o advogado dever registrar seus dados pessoais Em seguida o cliente deve fornecer informa es a respeito do processo que deseja que o advogado mova contra algu m ou que o defenda de outra pessoa Obviamente o processo precisa ser registrado e receber diversas adi es enquanto estiver em andamento O cliente 31
108. sentar de maneira geral o m todo de an lise e projeto de sistemas orientados a objetos utilizado durante o curso S o descritas as fases principais do m todo e os diagramas UML mais indicados para cada uma delas Este m todo uma simplifica o do RUP Rational Unified Process 1 VIS O GERAL No curso seguiremos o seguinte m todo 1 7 8 An lise de requisitos lista de requisitos funcionais e n o funcionais e diagrama de Casos de Uso Levantamento das classes candidatas montar o diagrama de classes com um levantamento preliminar das classes com atributos m todos e rela es quando poss vel Estudo da intera o entre objetos diagramas de intera o Refinamento do diagrama de classes Defini o do comportamento de classes com estado atrav s de m quinas de estados e diagrama de atividades Modelo de implanta o Modelo de implementa o Codifica o Os passos de 3 a 5 se repetem at que se chegue pr ximo da implementa o Eventualmente preciso revisar os requisitos e verificar as implica es das mudan as no projeto 2 AN LISE DE REQUISITOS Consiste em determinar os servi os que o usu rio espera do sistema e as condi es restri es sob as quais o sistema ser desenvolvido e operar As necessidades do usu rio podem ser muito variadas o analista deve ser capaz de retirar os requisitos funcionais e n o funcionais destas necessidades Funcionais l
109. sico deve conter Bittner e Spencer 2003 ator eo evento que o mesmo dispara para iniciar o caso a intera o normal sem tratamento de exce es entre ator e sistema descri o de como o caso termina Exemplo considere um sistema onde o cliente realiza compras on line num site utilizando um carrinho de compras virtual O projetista do sistema previu um caso chamado buscar produtos e fazer pedido especificado pelo fluxo b sico seguinte extra do de Bittner e Spencer 2003 Nomt Buscar produtos e fazer pedido DESCRI O Este caso descreve como um cliente usa o sistema para visualizar e comprar produtos dispon veis Para encontrar um produto o cliente pode pesquisar o cat logo por tipo de produto fabricante ou por palavras chaves PR CONDI ES o cliente est logado no sistema P s CONDI ES o cliente realiza uma compra ou n o FLUXO B SICO DE EVENTOS 1 O caso de uso inicia quando o ator cliente escolhe a op o de consultar o cat logo de produtos 2 Mostrar cat logo de produtos 3 O sistema mostra os produtos oferecidos ressaltando os produtos cujas categorias constam no perfil do cliente 4 Escolher produto 18 5 O cliente escolhe um produto a ser comprado e define a quantidade desejada 6 Para cada produto selecionado dispon vel em estoque o sistema registra o c digo do produto e a quantidade solicitada reservando a no estoque e adiciona o ao carrinho de comp
110. sistema ou seja para representar as rela es entre os componentes artefatos e os locais de execu o nodos m quinas ou sistemas servidores Estrutura Composta descreve a estrutura interna de uma classe ou componente detalhando as P partes internas que o comp e como estas se comunicam e colaboram entre si Guedes 2004 Atividades pode ser utilizado para diversos fins um deles a especifica o mais detalhada de m todos complexos ou do encadeamento dos casos de uso Intera o Comunica o mostra as intera es entre uma cole o de objetos sem a linha do tempo pode ser obtido do diagrama de seq ncia e vice versa Intera o Tempo mostra o estado de um objeto ao longo do tempo Intera o Geral a fus o do diagrama de atividades com o de seq ncia Permite fazer refer ncia a diagramas de seq ncia e combin los com controle de fluxo ex pontos de decis o forks e joins 15 MODELO DE CASOS DE USO O modelo de casos de uso que mais do que o diagrama o principal resultado da fase de an lise de requisitos Diagramas de casos de uso s o utilizados para representar de forma panor mica os requisitos funcionais de um sistema do ponto de vista do usu rio Cabe salientar que h outras utiliza es poss veis para o diagrama de casos de uso tal como modelagem do neg cio por m o foco nesta se o est na representa o de requisitos funcionais do usu rio 1 DEFINI
111. socia o entre Convers oCF e Hist rico por uma agrega o 3 GENERALIZA O A rela o de especializa o utilizada quando um conjunto de classes compartilha comportamentos e atributos pode se ent o generaliz las agrupando seus comportamentos e atributos comuns 60 A rela o de generaliza o recebe muitos nomes tais como heran a e especializa o A leitura pode Mom ser feita partindo se da classe base em dire o a derivada como um tipo de uma ou um Na figura 64 aluno classe derivada um tipo de pessoa classe base DEEE Classe base D Ea ou supercilasse Aluno LEEA classe derivada N E ou subclasse Figura 64 exemplo de rela o de generaliza o especializa o A implementa o da rela o de generaliza o ocorre pelo mecanismo de heran a Por heran a a classe derivada incorpora os m todos e atributos da classe base A classe derivada pode incluir novos m todos e atributos e redefinir os m todos herdados polimorfismo de reescrita Em UML quando repetimos a assinatura de uma opera o numa classe derivada significa que temos uma nova implementa o No exemplo da Figura 65 o c lculo do IPVA na classe derivada leva em conta a quantidade de cavalos do carro Veiculo modelo char 16 fabricante char 16 GM Carro Criar modelo char fabricante char an CalculariPV A estado char 2 PR float Figura 65 Rela
112. sses Por exemplo associa es e agrega es s o mapeadas para atributos das classes para que os objetos envolvidos possam se referenciar Opera es das classes de projeto s o traduzidas de forma direta em c digo 3 ESTUDO DA INTERA O ENTRE OBJETOS Esta se o exemplifica o estudo da intera o entre objetos para realizar o caso de uso convers o de Celsius para Fahrenheit em uma aplica o desktop com interface textual O intuito mostrar como refinar um diagrama de classes a partir do detalhamento do diagrama de segii ncia 3 1 Realiza o Converter Celsius Fahrenheit desktop O diagrama de sequ ncia representa o cen rio onde o meteorologista realiza v rias convers es de Celsius para Fahrenheit que s o guardadas numa cole o denominada hist rico Ao decidir encerrar a sess o o hist rico persistido em disco por meio de um objeto serializ vel 66 J sd converter cf meteorologista CtrlConversao btriConversao lt ja e a e AUConversao AUConversao Celsius conv Fahr solicitarCelsius float mostrar conv getFahr x RE gt Historico aHistorico ConversaoCF c conv ConversaoCF iGonversaoLe adicionar this l X salvar writeObject Figura 69 Diagrama de seqii ncia converter Celsius Fahrenheit textual Das colabora es expressas na Figura 69 pode se derivar o seguinte diagrama de classes
113. ssseosssscssssecessecessecossssosssesosssseo 21 EA E T A A AN E A EA A AA E Acad 21 3 2 7 Realiza es de Casos de Uso c eee nene eee rr rece anda 22 4 RELA ES ass pes ane nas oia ido EIN ada fadas oO cosas as a Abd ass na 22 AM ASSOCIA O sro desta pa Es EEE na a DA RR DO daN a Eis o pia ala e aloe RE da c 23 AD ACUSA eirean a pie ei ia Room Da De RR E Ss ral atada 24 sd EXTENS O EEEE do dai o aa ERA died a ia e Ei SD 00 A RU O EURO ia TO E io DE Slot 25 4 4 Generaliza o Especializa o ee eeen een e eee r een e rare enc rreneraaa 26 5 MODELAGEM sur eai casa sontn e suber cash essas Eb EENAA ANANA ANANA ESENE Sl adia ANNAEINARS aa 29 Dudrs DICAS es E ar nino nenga basal E h o duna e Baa ANS aa E al DU EE AESA NE T 29 3 2 PASSOS nietes aa anae SEEE KREE ad ae dia o aloe areal Rr Go aa aaa aii 30 6 EXERCICIOS ss ss css a cada masc ear scans aan Credo aaa sui c aan o can can cus ac dans sun cal nunc das atada 31 IV AN LISE DOS CASOS DE USO s oeseesesessoseseoseseoseoseseososeososeseoseseosesessoseseo 33 AN LISE E cata ato E dali RARA dO ETET du Ra 33 2 PADRAO MV Cast mano o aqua dot senanto cos Sesau Go Sa DD Se ns gd near ES A 35 3 PADR O OBSERVADOR nus as ce uneaas cs ineL rii tias dio AUTO Ca e a 37 A CLASSES DE AN LISE Sua cs creia icanres sed cade td de nane a ed eaiei E A 37 4 1 Nota o UML para Classes ccsssess cacos canersenos eco cessa nos Des a e dera amena sus
114. t lt a o gt nos estados para representar que a lt a o gt ser executada toda vez que se deixar o estado 1 3 Atividade nos estados do Uma atividade pode ser interrompida ou terminar por si s Um atividade est sempre associada a um estado por meio da palavra chave do fa a Por exemplo na a atividade beep tempo ser executada toda vez que a impressora estiver sem papel Esta atividade pode ser interropida a qualquer momento pela ocorr ncia do evento impress o cancelada ou papel colocado stm Atividade no estado impress o cancelada fim impress o impress o iniciada Impressora ociosa Initial impress o cancelada papel colocado do beep tempo Figura 86 Atividade na transi o Sem Papel 1 4 Auto transi o poss vel que um evento provoque a transi o de um estado para ele mesmo Neste caso todas as a es associadas ao estado por meio das palavras chaves entry e exit e as a es associadas palavra chave do ser o executadas Na figura 87 toda vez que uma letra for teclada dispara se a transi o do estado Contado letras para ele mesmo o que provoca a execu o da a o num Notar que poss vel definir atributos das classes nos estados onde s o manipulados num int 81 stm Conta letras Z ESTES A letra teclada Contando letras int num Initial entry num Final Figura 87 Auto trans
115. to emitirFatura Pessoa float void A cone para estere tipo lt lt Subsistema gt gt p Ooo Figura 81 Exemplo de subsistema 6 COMPORTAMENTOS ASSOCIADOS PERSIST NCIA N o interessante que objetos da camada de modelo conhe am detalhes do banco de dados ex conex o tabelas formato de registros O problema que qualquer mudan a no esquema do banco de dados se reflete nos objetos do modelo Para desacoplar os objetos da camada do modelo do banco de dados poss vel utilizar padr es tais como factory que cria objetos do modelo j preenchidos com informa es do banco de dados e da um intermedi rio que faz a liga o entre o s objeto s do modelo e o banco de dados Pode haver aumento da complexidade se o acesso ao banco de dados for simples Por outro lado diminui se a depend ncia do modelo em rela o ao banco de dados Dao pode ser feito num n vel de granularidade maior por exemplo para manipular um conjunto de registros vis o ou uma tabela 7 EXERC CIOS 1 Supor que no projeto do conversor de graus Celsius para Fahrenheit a persist ncia do Hist rico agora somente pelo tempo de uma sess o Web A partir destas decis es de projeto uma nova realiza o de projeto do caso de uso Converter Celsius Fahrenheit deve ser realizada Supor o cen rio onde o cliente faz o primeiro acesso ao sistema logo uma sess o deve ser criada para armazenar as convers es r
116. tores recomendam utiliz lo para analisar a colabora o das classes de realiza o de um caso de uso Jacobson e co autores 1999 pois facilita a identifica o das classes que colaboram de forma mais pr xima e por consegii ncia a identifica o de pacotes de an lise Visual Paradigm Para gerar automaticamente este diagrama a partir do de sequ ncia clicar com o bot o da direita no pano de fundo do diagrama de sequ ncia e escolher to collaboration diagram No diagrama de comunica o a ordem de envio das mensagens dada por n meros sequenciais poss vel utiliz los no diagrama de sequ ncia tamb m A figura 43 mostra um exemplo de diagrama de colabora o Observar a restri o transient junto ao objeto Transaction indicando que ele criado e destru do na intera o object c Clien 1 create link 2 setActions a d 0 path stereotype 3 destroy local message global p ODBDProx gt Transaction transient object 2 1 setValues d 3 4 2 2 setValues a CO sequence Figura 43 diagrama de comunica o A figura 44 mostra o diagrama de sequ ncia equivalente ao de comunica o da figura 43 objects c Client p ODBCProxy transient create E Transaction setActions a d O setValues d 3 4 l l l l l setValues a CO time committed lifeline destroy Figura 44 diagrama
117. ura 60 Exemplo de agrega o por associa o No exemplo da figura 61 se destruirmos o cinema a bilheteria ser destru da A cole o de filmes n o ter o mesmo fim Figura 61 Exemplo de agrega es por composi o e por associa o 59 2 4 Levantamento A identifica o de agrega es pode ser feita a partir de decomposi o quando uma classe torna se muita complexa ou extensa podemos dividi la em v rias classes que comunicam entre si O risco perder a vis o do todo composi o identifica se um conjunto de objetos que reunidos formam um objeto maior Por exemplo barra de rolagem menu e text area comp em uma janela partes comuns se duas ou mais classes apresentam um conjunto de atributos semelhantes podemos agrup los num objeto desde que tenham uma identidade CAluno CAluno Nome Rua Nome Numero Cidade UF CEP Rua Numero CEndereco CProf CProfessor i Nome Rua Numero Cidade UF CEP Figura 62 Exemplo de agrega o a partir de partes comuns No exemplo do conversor Celsius Fahrenheit a associa o entre a classe Convers oCF e Hist rico pode ser substitu da por uma agrega o por composi o Se o objeto hist rico destru do todas as convers es tamb m o ser o class Classes de an lise associa es Z IUConversao CirlConversao ConversaoCF 0 10 IUHistorico CtrlHistorico Historico Figura 63 substitui o da as
118. ura 75 utilizou se a cole o Vector Em seguida mostra se o c digo Java correspondente class muitos para muitos Projeto Pessoa emprega participa 0 0 Figura 75 Associa o muitos para muitos public class Projeto 2 3 public Vector lt Pessoa gt participa 4 5 public class Pessoa 2 public Vector lt Projeto gt emprega Associa es reflexivas O mapeamento para Java de uma associa o reflexiva n o difere dos mapeamentos entre duas classes distintas m J class associa o reflexiva ra temPrerequisito Q preRequisito 065 pes Figura 76 Associa o reflexiva muito para muitos A implementa o da classe Disciplina ilustrada no c digo seguinte 1 public class Disciplina 2 3 public Vector lt Disciplina gt temPrerequisito 4 public Vector lt Disciplina gt preRequisito 5 6 7 Classes associativas Classes associativas podem ser transformadas em classes comuns e a partir da as associa es caem nos casos anteriores Por exemplo a figura 77 ilustra um caso onde um projeto pode ter v rias pessoas e uma pessoa pode participar de v rios projetos Cada participa o possui uma carga hor ria data de entrada no projeto e de sa da 71 class classe associativa Projeto emprega Pessoa participa 0 0 Parti
119. ura 79 Um hist rico uma agrega o de URLS visitadas portanto uma vez que o hist rico destru do as inst ncias de URLs visitadas tamb m o ser o Em Java n o h necessidade de destruir os objetos devido ao Garbage Collection Todos os objetos criados s o eliminados da mem ria quando n o s o mais referenciados por nenhuma vari vel portanto na implementa o da agrega o por composi o n o precisamos nos preocupar com a igualdade dos tempos de vida do todo e das partes 1 class URLVisitada 2 private String url 3 4 URLVisitada String url 5 this url url 6 7 8 9 class Historico 10 cria tr s objetos da classe URLVisitada 11 private URLVisitada historico poderia ser com alguma cole o 2 new URLVisitada http www uol com br 13 new URLVisitada http www terra com br 14 new URLVisitada http www lemonde fr 15 16 as Sta E poss vel implementar uma agrega o com classes aninhadas como ilustra o c digo abaixo H class Historico 2 como private a URLVisitada s pode ser instanciada dentro do escopo do todo 3 4 private class URLVisitada 5 private String url 6 URLVisitada String umaURL Ei url umaURL 8 9 10 11 private Vector lt URLVisitada gt historico new Vector lt URLVisitada gt 4 2 12 13 14 Agrega o por associa o A implementa o id ntica a da associa o Realiza
120. z permite determinar preliminarmente as classes de an lise baseando se nas descri es dos casos de uso 38 Classes entidade utilizado em classes que armazenam informa es do dom nio a longo prazo Objetos destas classes s o normalmente persistentes mas n o uma regra geral Frequentemente estas classes se encontram na camada do modelo por isso n o dependem ou ao menos n o deveriam depender do contexto onde o sistema est inserido Pode tanto refletir uma entidade do mundo real ou uma entidade necess ria ao funcionamento interno do sistema Classes com este estere tipo podem ser representadas pelo cone alternativo da figura 29 O Disciplina Figura 29 cone alternativo para classes lt lt entidade gt gt Classes de fronteira utilizado em classes que realizam a intera o entre sistema e ator humano ou n o S o classes que dependem do contexto onde o sistema est inserido dado que o contexto dado justamente pelas intera es com o mundo externo Classes de fronteira representam por exemplo protocolos de intera o com outros sistemas interfaces com usu rios intera o entre sistema e dispositivos Classes com este estere tipo podem ser representadas pelo cone da figura 30 Segundo Jacobson e co autores 2002 se uma classe lt lt fronteira gt gt j foi designada para um ator humano o desenvolvedor deve tentar reutiliz la para minimizar o n mero de janelas que o ator utiliza IU
Download Pdf Manuals
Related Search
Related Contents
Portable MiniDisc Recorder OPERATING MANUAL SA-15T-PW POWERED SPEAKERS Multi Touch Smartphone S 4010 D FLASH Air-Conditioners USER GUIDE - PoE & Optical Transmission Copyright © All rights reserved.
Failed to retrieve file