Prévia do material em texto
E-book 3 ANÁLISE E PROJETO DE SISTEMAS Gláucia Silva Bierwagen Neste E-Book: INTRODUÇÃO ���������������������������������������������� 3 DIAGRAMAS DE CLASSES, OBJETOS E PACOTES ��������������������������������4 Diagramas de classes ���������������������������������������������4 Diagramas de objetos ou instâncias ����������������������7 Diagramas de pacotes ���������������������������������������������8 DIAGRAMAS DE SEQUÊNCIAS, ATIVIDADES E INSTALAÇÃO ������������������10 Diagramas de Sequências ������������������������������������ 10 Diagramas de atividades �������������������������������������� 12 Diagramas de instalação ou implantação ����������� 17 DIAGRAMAS DE MÁQUINAS DE ESTADOS E DE COMUNICAÇÃO ����������20 Diagramas de máquina de estados ��������������������� 20 Diagramas de comunicação �������������������������������� 24 DIAGRAMAS DE ESTRUTURAS COMPOSTAS, COMPONENTES E TEMPORIZAÇÃO ���������������������������������������26 Diagramas de estrutura compostas �������������������� 26 Diagrama de componentes ���������������������������������� 28 Diagrama de temporização ��������������������������������� 29 CONSIDERAÇÕES FINAIS �����������������������31 SÍNTESE ������������������������������������������������������� 32 2 INTRODUÇÃO Estudando este módulo, você conhecerá os diagra- mas de classe – que são diagramas estruturais que fornecem a visualização de como são compostas as entidades envolvidas –, e os diagramas de objetos e de pacotes� Descobrirá, também, que os diagramas de sequências são diagramas de interação, enquan- to que os diagramas de atividades são diagramas comportamentais e retratam um gráfico de fluxo. Já os diagramas de instalação ou implantação são dia- gramas estruturais que buscam detalhar como deve ser feita a implantação ou a instalação do sistema� Em seguida, você verificará que os diagramas de máquina de estados descrevem o comportamento de um sistema, enquanto que os diagramas de comuni- cação são diagramas de interação que enfatizam os vínculos de dados entre os participantes. E, por fim, você estudará os diagramas de estruturas compos- tas, de componentes e de temporização� E, então, motivado? Aproveite a leitura e bons estudos! 3 DIAGRAMAS DE CLASSES, OBJETOS E PACOTES Neste tópico você aprenderá o que são diagramas de classes, objetos e pacotes� O diagrama de classes é um diagrama estrutural que fornece a visualização de como são compostas as entidades envolvidas� As entidades representam dados, operações e agru- pamentos do sistema a ser modelado� Dentre as entidades do diagrama de classes, temos as classes, interface e pacote� Vamos nos aprofundar em cada um deles� Diagramas de classes A entidade classe é constituída por atributos e ope- rações� Os atributos caracterizam os dados que a entidade é capaz de armazenar� As operações re- presentam as operações que a entidade é capaz de desempenhar. A classe é identificada por um nome. Observe graficamente a representação de uma classe por meio de um retângulo dividido em três partes: na primeira parte temos o nome de classe, Pedido; na segunda parte os atributos, e na terceira as ope- rações que essa classe poderá executar. 4 Pedido -datadeRecebimento: -Date[0..1] #éPré-pago: Boolean[1] número: String [1] preço: Money expedir() encerrar() Figura 1: Diagrama de Classe. Fonte: Fowler (2005, p. 52) adaptado. Os atributos possuem as informações de visibilidade, nome, tipo e valor padrão� Os valores de visibilidades dos atributos são representados, respectivamente, pelos seguintes símbolos: + pública; - privada; # pro- tegida; e ~ pacote. No exemplo acima, os atributos datadeRecebimento e Date tem visibilidade privada por meio do símbolo - e éPré-pago tem visibilidade protegida por meio do símbolo #� FIQUE ATENTO A visibilidade faz referência ao local onde o re- curso pode ser acessado: quando a visibilidade é pública, possibilita o acesso ao membro por qualquer outra classe� Sendo privada, permite acesso somente dentro da classe que a define. Se for protegida, possibilita o acesso somente para qualquer classe filha e, por fim, a visibilidade pacote autoriza acesso por qualquer classe do mesmo pacote� 5 Os tipos de atributos podem ser números inteiros, no caso de Date [0���1]; lógicos (boolean), no caso de éPré-pago; string, que é uma sequência de caracteres que podem representar palavras, frases ou textos, no caso, número; e money, no caso de preço, indicando informação de precificação. Existem ainda atributos conhecidos como números de ponto flutuantes (dou- ble ou float) que identificam números fracionários. Existem membros de classe comum a todas as ins- tâncias da classe e representados de modo subli- nhado como visto no atributo datadeRecebimento (figura 1). (FOWLER, 2005; GONÇALVES, 2015) Existem classes chamadas de abstratas porque pelo menos uma de suas operações é abstrata, ou seja, durante a implementação, apenas o cabeça- lho é oferecido e a primeira classe filha concreta terá de executar os métodos abstratos herdados. A representação dessa classe é escrevê-las em letras itálicas conforme visualizado abaixo (figura 2). O tipo retorno chamado de void ocorre quando não há um valor para ser retornado� ClasseAbstrata +operaçãoabstrata( ): void ClasseAbstrata +operaçãoabstrata( ): void Figura 2: Classe abstrata. Fonte: Fowler (2005, p. 52) adaptado. 6 Temos a entidade interface que apresenta somente operações públicas e abstratas� A interface possui duas representações básicas em UML que podem ser visualizadas a seguir: 1) Um círculo com o nome da interface e 2) Uma representação semelhante a uma classe, mas com a denominação <<interface>> associada� <<interface>> InterfaceExemplo Figura 3: Entidade interface. Fonte: Fowler (2005, p. 52) adaptado Diagramas de objetos ou instâncias Os diagramas de objetos são importantes para mos- trar exemplos de objetos interligados. Geralmente, mostra instâncias em vez de classes� É represen- tado por meio de um retângulo contendo o nome da instância seguido de dois pontos (por exemplo: engenharia: Organização) e o nome da classe-base (por exemplo, localização) com seus valores, por exemplo, Chicago, Boston, Champaign e Saba. 7 engenharia: Organização localização = “Boston” progenitor progenitor ferramentas: Organização localização = “Chicago” aplicativos: Organização localização = “Saba” Don: Pessoa localização = “Champaign” John: Pessoa localização = “Champaign” Figura 4: Diagrama de Objetos. Fonte: Fowler (2005, p. 52) adaptado. Diagramas de pacotes Os diagramas de pacotes são usados para fazer o agrupamento de classes, interfaces e os relaciona- mentos que os envolvem. Cada classe é um membro único do pacote� Os pacotes também podem ser membros de outros pacotes� Quando isso aconte- ce, obtém-se uma estrutura hierárquica em que os pacotes são divididos em subpacotes� A representa- ção gráfica é mostrada por um retângulo maior, com outro retângulo menor no canto superior esquerdo, conforme ilustrado abaixo (figura 5). Posteriormente, você aprenderá mais sobre os relacionamentos dos diagramas de pacotes� 8 apresentação de arrendamento estrutura da interface com o usuário banco de dados apresentação de bens domínio de arrendamento domínio dos bens mapeamento dos dados de arrendamento mapeamento os dados de bens Figura 5: Diagrama de Pacotes. Fonte: Fowler (2005, p. 97) adaptado. A seguir você conhecerá os diagramas de atividades, de sequência e de instalação� 9 DIAGRAMAS DE SEQUÊNCIAS, ATIVIDADES E INSTALAÇÃO Neste tópico você aprenderá quais são os diagramas de atividades, de sequência e de instalação� Vamos lá? Diagramas de Sequências Os diagramas de sequências são diagramas de inte- ração. Geralmente, o diagrama de sequência busca mostrar um único cenário� E como faz isso? Por mos- trar a sequência de mensagens a ser trocada entre os objetos criados a partir das classes� Muitas vezes, os atores podemaparecer para mostrar a interação entre os usuários do sistema e seus objetos� Dessa forma, as entidades envolvidas num diagrama de sequência são: atores, objetos e linha da vida (linha vertical pontilhada) e operadores de controle. Você perceberá que os objetos e atores relacionam-se no decorrer da linha do tempo através de mensagens tro- cadas. A leitura é feita de cima para baixo. Observe o exemplo (figura 6) que apresenta um cenário de pedido de produtos� Nesse caso, tem-se um pedido em que será executado um comando para calcular seu preço. Para fazer isso, o pedido precisa examinar todos os itens de linha nele presentes e determinar seus preços, baseados nas regras de composição de 10 preços� Ao realizar isso para todos os itens de linha, o pedido precisa, então, calcular um desconto global, que é baseado nas regras vinculadas ao cliente� No entanto, o diagrama não mostra todos os detalhes� A sequência de mensagens obterQuantidade, obter- Produto, obterDetalhesdoPreço e calcularInformação- deDesconto precisa ser realizada para cada linha no pedido, enquanto que calcularDesconto é chamado somente uma vez (FOWLER, 2005). um Pedido uma Linha de Pedido umProduto umCliente obterInformação- deDesconto obterQuantidade retorno mensagem obterDetalhesdoPreço calcularPreço mensagem recebida obterProduto umProduto autochamada linha de vida participante ativação calcularPreçoBase calcularDescontos Figura 6: Diagrama de Sequências. Fonte: Fowler (2005, p. 68) adap- tado. Perceba que os objetos são representados por re- tângulos� As mensagens demonstram a comunica- ção entre os objetos e os resultados esperados por meio dessa comunicação. A notação gráfica de uma mensagem é demonstrada por uma seta contínua 11 preenchida, partindo do objeto que faz a chamada chegando ao objeto destino que fez o chamado� Posteriormente, você perceberá as principais rela- ções e notações dos diagramas de sequências� Diagramas de atividades Os diagramas de atividades são diagramas com- portamentais e basicamente retratam um gráfico de fluxo. Podem ser usados para demonstrar as carac- terísticas desde a fase de elicitação e especificação de requisitos até a fase de projeto, estabelecendo detalhes de um algoritmo a ser utilizado por uma função ou sequência de operações� Os diagramas de atividades não fazem o detalhamento de como os objetos interagem, portanto, devem ser usados de maneira complementar aos diagramas de caso de uso e sequência, não em substituição� No exemplo ilustrado na figura 7, é possível visualizar o início da ação por meio de um nó inicial, repre- sentado por um círculo preenchido e, em seguida, se executa a ação Receber Pedido� As ações são representadas por figuras retangulares com as bor- das arredondadas. Logo a seguir, observamos uma separação em que ocorre um fluxo de entrada e vá- rios fluxos simultâneos de saída: Preencher Pedido e Enviar Fatura� Isso quer dizer que, pelo diagrama de sequência, é possível realizar o fluxo (1) Preencher Pedido com suas subsequências Entrega Normal e Entrega no Dia Seguinte e, ao mesmo tempo, o fluxo 12 Enviar Fatura e Receber o Pagamento. Os fluxos de controle realizam o encadeamento entre as ações de um diagrama de atividades, mostrando a sequência a ser seguida. A representação gráfica do fluxo de controle é uma seta contínua de cabeça aberta que interliga ações, ações de comportamento e objetos� Os termos fluxo e aresta descrevem as conexões en- tre duas ações (FOWLER, 2005; GONÇALVES, 2015). SAIBA MAIS As redes Petri são exemplos de diagramas de ati- vidades que mostram a estrutura de um sistema por meio de comentários� Em suas notações pos- suem nós de posição, nós de transição e arcos direcionados que conectam posições com transi- ções� Para saber mais, leia o artigo “O potencial das redes de Petri em modelagem e análise de processos de negócio”� Disponível aqui� Os diagramas de atividades possibilitam que quem está seguindo o processo escolha a ordem de fazer as atividades� Ou seja, consegue determinar as re- gras essenciais de sequência que se seguirá� Para realizar a modelagem dos negócios e até mesmo a elaboração dos algoritmos é importante que certos processos ocorram simultaneamente� Acesse o Podcast 1 em Módulos 13 http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104-530X2004000100010&lng=en&nrm=iso https://famonline.instructure.com/files/707644/download?download_frd=1 Na ocorrência de uma ação paralela é necessário sincronizar� Nesse caso, não se fecha um pedido até que ele seja pago� Isso é demonstrado pela junção. Com a junção, o fluxo de saída só é realizado quando todos os fluxos de entrada chegam à junção. Assim, só poderá fechar o pedido quando tiver recebido o pa- gamento. Então, ele será entregue (FOWLER, 2005). Receber Pedido Rechar Pedido Enviar FaturaPreencher Pedido Entrega no Dia seguinte fluxo/aresta [else] ação nó inicial separação decisão [ordem de prioridade] atividade final junção intercalação Entrega Normal Receber Pagamento Figura 7: Diagrama de Sequências. Fonte: Fowler (2005, p. 119) adap- tado. 14 Neste diagrama de sequência, encontramos os comportamentos condicionais� Dentre eles, temos a decisão, que se trata de um desvio na UML, tendo um único fluxo de entrada e vários fluxos de saída. Notamos que, quando um pedido é preenchido, há uma decisão� Se tiver um pedido urgente, será feito uma Entrega no Dia Seguinte; caso contrário, será a Entrega Normal� Já em uma intercalação, temos vários fluxos de en- trada e uma única saída. Geralmente, marca o final de um comportamento condicional – Entrega no Dia Seguinte e Entrega Normal – iniciado por uma decisão – caso o pedido seja urgente –, conforme observamos no diagrama de sequência apresentado (FOWLER, 2005). Perceba também que cada fluxo de saída tem uma sentinela, ou seja, uma condição booleana colocada entre colchetes� Sempre que se chega a uma decisão, pode-se seguir somente um dos fluxos de saída. O uso de [else] como sentinela mostra que o fluxo será usado caso todas as outras sentinelas sejam falsas� Você pode observar que o nó final de atividade é re- presentado por um círculo preenchido, circundado por outro círculo� Tem-se a possibilidade de dividir um diagrama de atividades em partições, que mos- tram quais ações de uma classe ou unidade da orga- nização realiza� O símbolo de ancinho, representado como um tridente (figura 7) mostra que a ação de comportamento Entrega no dia Seguinte poderá ser 15 mais bem visualizada demonstrando suas ações (figura 8). (FOWLER, 2005) Pedido Entregar Pedido Pedido Entrega Normal [else] [Pedido Urgente] Entrega no Dia Seguinte nome da atividade parâmetro de entrada parâmetro de saída Figura 8: Diagrama de atividades auxiliar. Fonte: Fowler (2005, p. 121) adaptado. As atividades podem receber sinais� Um sinal pode indicar que a atividade recebe um evento de um pro- cesso externo. Por exemplo, o sinal de tempo, re- presentado pela figura de uma ampulheta indica no diagrama abaixo que, em duas horas antes de um voo sair, é necessário fazer as malas� Se a mala for feita de modo rápido, é possível sair enquanto o táxi não chega; ou seja, a chegada do taxista é demonstrada graficamente por um sinal de reconhecimento. Caso contrário, o taxista terá de esperar que se termine de arrumar as malas, antes de sair para o aeroporto� 16 sinal de tempo sinal de reconhecimento Empacotar Malas Duas horas antes do vôo Sair para o Aeroporto Chegada do Táxi Figura 9: Diagrama de atividades com sinais. Fonte: Fowler (2005, p. 122) adaptado. Diagramas de instalação ou implantação Os diagramas de instalação ou implantação são dia- gramas estruturais que buscam detalhar como deve ser feita a implantação ou instalação do sistema� Geralmente, mostram o layout físico de um sistema, mostrando quais partes do software são executadas em quais partes do hardware� Nesse tipode diagrama, os nós são conectados por caminhos de comunicação� Os nós podem ser ob- servados por meio de: (1) um dispositivo de hardware – um computador ou alguma peça mais simples; e (2) um ambiente de execução – um software ou sis- tema operacional� 17 Segundo Fowler (2005), os nós contêm artefatos, que são as mani- festações físicas de software: normalmente, arquivos. Esses arquivos podem ser execu- táveis (como arquivos.exe, binários, D LLs, arquivos JAR, programas em linguagem as- sembly ou scripts) ou arquivos de dados, ar- quivos de configuração, documentos HTML etc. (FOWLER, 2005, p. 103). SAIBA MAIS Para saber mais sobre diagramas de implanta- ção, leia o Capítulo 37 (páginas 616-619), do li- vro “Utilizando UML e padrões”, de Craig Larman, que traz mais exemplos de diagramas de implan- tação� O livro está disponível em sua biblioteca virtual (Minha Biblioteca). Observe, a seguir, um exemplo de diagrama de instalação: 18 Servidor de Aplicativos JoveGL.exe {fornecedor = romanSoft} {componente = General Ledger} Contêiner EJB SGBD Oracle herculesBase.ear herculesAR.ear herculesAP. ClienteNavegador navegador Cliente Rico {SO = Windows} herculesCliente.exe Servidor de Web {SO = Solaris} {servidor de Web = apache {número distribuído = 3} herculesWeb.war nó de ambiente de execução valor rotulado artefato distribuído http/Rede Localhttp/Internet caminho de comunicação nó de dispositivo JDBC Figura 10: Diagrama de atividades com sinais. Fonte: Fowler (2005, p. 103) adaptado. 19 DIAGRAMAS DE MÁQUINAS DE ESTADOS E DE COMUNICAÇÃO Neste tópico você aprenderá quais são os diagramas de máquinas de estados de comunicação� Diagramas de máquina de estados Os diagramas de máquina de estados descrevem o comportamento de um sistema. Fowler (2005) traz o exemplo de diagrama de máquina de estados de um sistema controlador de um painel secreto em um castelo gótico� Os objetos de valor serão guardados em um cofre� Para revelar o cadeado do cofre desse sistema é preciso, primeiramente, remover uma vela de um castiçal e, então, será mostrado o cadeado – somente enquanto a porta estiver fechada� Ao ver o cadeado, é possível se inserir a chave para abrir o cofre. Como medida de segurança, só é possível abrir o cofre se, primeiro, substituir a vela. Caso o ladrão se esqueça disso, será solto um monstro (um coelho assassino) para devorá-lo� Na imagem a se- guir (figura 11), o diagrama de estados começa com o estado do objeto controlador, o estado Esperar. O Pseudoestado inicial não é um estado, mas aponta o estado inicial� O diagrama mostra que o controla- dor pode ter três estados: Esperar, Trancar e Abrir. 20 Existem regras que estão na forma de transições, ou seja, linhas que conectam os estados� vela removida [porta fechada]/ revela cadeado chave girada [vela no lugar]/cofre aberto cofre fechado chave girada [vela retirada]/libera coelho assassino estado final estado transiçãopseudo-estado inicial Esperar Trancar Abrir Figura 11: Diagrama de máquina de estados. Fonte: Fowler (2005, p. 112) adaptado. Você pode perceber que cada transição tem um rótulo com três partes, ou seja, Assinatura-do- gatilho[sentinela]/atividade. Por exemplo: vela remo- vida [porta fechada/]/cadeado revelado. As transições são opcionais e disparam uma mudança de estado� A sentinela, quando presente, é uma condição boole- ana que precisa ser verdadeira para que a transição ocorra. Por exemplo, No estado Esperar, se a vela for removida na condição em que a porta esteja aber- ta, você revelará o cadeado e mudará para o estado Trancar (FOWLER, 2005). O estado final indica que a máquina de estados está completa, implicando a exclusão do objeto controla- dor� Você pôde notar que, em um diagrama máquina 21 de estados, implica dizer que diferentes estados de- monstram diferentes maneiras de reagir aos eventos� É possível ainda colocar o evento, a sentinela e a atividade dentro da própria caixa de estado; nesse caso, chamamos de atividades internas. A figura 12 mostra as atividades de caractere de eventos e interface com usuário� As atividades internas são chamadas de autotransição. Temos as atividades de entrada – destacar tudo – e de saída – atualizar campo� entrada/destacar tudo saída/atualizar campo caractere/tratar caractere ajuda[completa]/abrir página de ajuda ajuda[silenciosa]/atualizar barra de status Digitação Figura 12: Eventos internos mostrados com o estado de digitação de um campo de texto. Fonte: Fowler (2005, p. 112) adaptado. Temos, também, o estado com atividades em anda- mento (vide figura 13). REFLITA Vamos refletir um pouco! Como você faria um diagrama de máquinas de estado de controle de navegação de um site com um sistema de ven- da de livros? O cliente deve iniciar fazendo seu 22 login? Como ele fará o pagamento? Este cliente tem cadastro? Um cliente deseja um sistema que permita jogar “jogo da velha” e “forca”� O sistema é destinado a um usuário e deve armazenar as estatísticas de uma ses- sã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ísticas da sessão: o número de vezes que jogou velha, o número de vitórias absoluto e o percentual, e o mesmo para a forca� O usuário deseja que o painel de estatísticas esteja sempre visível� Nesse caso, uma vez terminada a pesquisa, todas as transições sem atividade, como aquela para exi- bir o novo hardware, são realizadas� Se ocorrer o evento cancelar, durante a atividade, ou seja, a ati- vidade Realizar/pesquisa de novo hardware será in- terrompida e voltaremos ao estado Atualizar Janela de Hardware. cancelar pesquisa atividade Exibir Nova Janela de Hardware Pesquisar realizar/pesquisa de novo hardware Atualizar Janela de Hardware Figura 13: Um estado com atividade. Fonte: Fowler (2005, p. 112) adaptado. 23 Os diagramas de estados são usados para exibir as classes que mostram comportamentos significativos, sendo usados para auxiliar na compreensão do que está acontecendo� Diagramas de comunicação Os diagramas de comunicação são diagramas de interação que enfatizam os vínculos de dados entre os participantes� Possibilitam o livre posicionamento dos participantes por meio do desenho de vínculos de instâncias de associações para mostrar como eles se conectam, usando uma numeração para mostrar a sequência de mensagens� São usados para melhor entendimento dos procedimentos de design� No exemplo a seguir (figura 14), você observará que o estilo de numeração é simples 1, 1�1, 2, etc� A existência de números decimais tem o objetivo de resolver ambiguidades com as autochamadas� Por exemplo, quando obterInformaçãodeDesconto é chamado dentro do método calcularDesconto é possível observar claramente� 24 1.3: obterDetalhesdoPreço 1.1: obterQuantidade() 1.2: obterProduto() 1.4: calcularPreçoBase() 1.5: calcularDescontos() 1.5.1: obterInformação- deDesconto 1: calcularPreço um Pedido um Produto um Produto um Cliente Figura 14: Diagrama de comunicação. Fonte: Fowler (2005, p. 130) adaptado. A seguir, você estudará as funções dos diagramas de estruturas compostas, de componentes e de tem- porização. Leia atentamente. 25 DIAGRAMAS DE ESTRUTURAS COMPOSTAS, COMPONENTES E TEMPORIZAÇÃO Neste tópico você estudará as principais funções dos diagramas de estruturas compostas, de com- ponentes e de temporização� Diagramas de estrutura compostas Os diagramas de estruturas compostas têm o ob- jetivo de mostrar a estrutura interna de uma classe, de forma hierárquica. A figura 15 ilustra uma classe Visualizador de TV com suas interfaces fornecidas e exigidas. São mostradas de duas maneiras: usando a notação de bola-e-soquete e listando-as internamen- te. Na figura, a classe é decomposta internamente em duas partes que exigem diferentes interfaces. Para implementar uma interface, desenha-se um conectorde delegação (figura 16). As estruturas compostas mostram agrupamentos em tempo de execução; mostrando, dessa forma, componentes e como eles são divididos em partes� 26 <<interfaces fornecidas>> IU do controle da TV API do controle da TV <<interfaces exigidas>> sintonia tela fluxo de imagens sintonia fluxo de imagens API do controle da TVIU do controle da TV tela Visualizador de TV Visualizador de TV Figura 15: Maneiras de mostrar um visualizador de TV e suas inter- faces. Fonte: Fowler (2005, p. 132) adaptado. API do controle da TV multiplicidade conector fluxo de imagenssintonia IU do controle da TV tela controles: ApresentadordeTV 1 :Gerador [1] Visualizador de TV conector de delegação parte Figura 16: Visão interna de um componente. Fonte: Fowler (2005, p. 132) adaptado. Acesse o Podcast 2 em Módulos 27 https://famonline.instructure.com/files/707645/download?download_frd=1 Diagrama de componentes O diagrama de componentes é um diagrama estru- tural que tem por objetivo demonstrar, por meio de interfaces de comunicação, componentes e relacio- namentos� São diagramas importantes para identi- ficar quando o sistema estiver dividido em compo- nentes ou quando componentes reutilizáveis forem usados. E o que são componentes? Componentes representam um código ou um conjunto de códigos de funcionalidades que podem ser reutilizados em diferentes sistemas� Podem ser combinados dando origem a um novo componente composto por outros� No exemplo a seguir (figura 17), temos uma caixa re- gistradora que se conecta a um componente servidor de vendas, utilizando uma interface de mensagens de vendas. Mas a rede não é confiável, então, um componente fila de mensagens é introduzido para que a caixa registradora possa se comunicar com o servidor, quando a rede estiver ativa; e se comuni- car com uma fila, quando a rede estiver desativada. Sendo assim, a fila se comunicará com o servidor, quando a rede se tornar disponível. Fowler explica que como resultado, a fila de mensagens fornece[rá] a interface de mensagens de ven- das para se comunicar com a caixa e exige essa interface para se comunicar com o servi- dor. O servidor é dividido em dois componen- tes principais. O processador de transações 28 implementa a interface de mensagens de ven- das e o driver de contabilidade se comunica com o sistema de contabilidade. (FOWLER, 2005, p. 134) mensagem de vendas Sistema de Contabilidade Servidor de Vendas Caixa Fila de Mensagens Driver de Contabilidade Processador de Transações Figura 17: Exemplo de diagrama de componentes. Fonte: Fowler (2005, p.134) adaptado. Diagrama de temporização Os diagramas de temporização são diagramas de interação que têm por foco as restrições de tempo- rização, para um único objeto ou vários. O exemplo dado a seguir (figura 18) mostra o cenário baseado na bomba e na chapa elétrica de uma cafeteira� A regra é que 10 segundos devem se passar entre o 29 acionamento da bomba e o aquecimento da chapa� No caso de ocorrer o esvaziamento do reservatório de água, a bomba desliga e a chapa não pode per- manecer ligada em até 15 segundos. As mudanças de estado são mostradas por linhas horizontais semÁgua evento mudança de estado {>10s} {<15s} Ligada Desligada Ligada Desligada restrição de temporização objeto estado Ch ap a El ét ric a Bo m ba Figura 18: Diagrama de temporização mostrando os estados como linhas. Fowler (2005, p. 141) adaptado. 30 CONSIDERAÇÕES FINAIS Neste módulo aprendemos que os diagramas de classe são diagramas estruturais que fornecem a visualização de como são compostas as entidades envolvidas� Estudamos o que são os diagramas de objetos e de pacotes por meio de exemplos. Descobrimos, também, que os diagramas de sequ- ências são diagramas de interação, e os diagramas de atividades são diagramas comportamentais e retratam um gráfico de fluxo. Compreendemos que os diagramas de instalação ou implantação são dia- gramas estruturais que buscam detalhar como deve ser feita a implantação ou a instalação do sistema� Em seguida, verificamos que os diagramas de má- quina de estados descrevem o comportamento de um sistema, e os diagramas de comunicação são diagramas de interação que enfatizam os vínculos de dados entre os participantes� Por fim, estudamos que os diagramas de estruturas compostas têm o objetivo de mostrar a estrutura interna de uma classe, de forma hierárquica; os dia- gramas de componentes têm por objetivo demons- trar, por meio de interfaces de comunicação, com- ponentes e relacionamentos; e os de temporização são diagramas de interação que têm por foco as restrições de temporização – para um único objeto ou vários� Até a próxima! 31 SÍNTESE DIAGRAMAS DE UML 1) Diagramas de classes: acontece quando a entidade classe é constituída por atributos e operações. Os atributos caracterizam os dados que a entidade é capaz de armazenar. As operações representam as operações que a entidade é capaz de desempenhar. 3) Diagramas de pacotes: são usados para fazer o agrupamento de classes, interfaces e os relacionamentos que os envolvem. Cada classe é um membro único do pacote. Os pacotes também podem ser membros de outros pacotes. 5) Diagrama de atividades: são diagramas que basicamente retratam um gráfico de fluxo. Sequência de operações. 2) Diagramas de objetos ou instâncias: são importantes para mostrar exemplos de objetos interligados. 4) Diagramas de Sequências: são diagramas de sequências (cenário) e interação. 6) Diagramas de instalação ou implantação: buscam detalhar como deve ser feita a implantação ou instalação do sistema. 7) Diagramas de máquina de estados: descrevem o comportamento de um sistema. 8) Diagramas de comunicação: são diagramas de interação que enfatizam os vínculos de dados entre os participantes. ANÁLISE E PROJETO DE SISTEMAS 9) Diagramas de estrutura compostas: têm o objetivo de mostrar a estrutura interna de uma classe de forma hierárquica. 10) Diagrama de componentes: são diagramas estruturais que tem por objetivo demonstrar por meio de interfaces de comunicação, componentes e relacionamentos. 11) Diagrama de temporização: são diagramas de interação que tem por foco as restrições de temporização, para um único objeto ou vários. Referências Bibliográficas & Consultadas BEZERRA, E. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: EIsevier, 2007. FOWLER, M. UML essencial: um breve guia para a linguagem-padrão de modelagem de obje- tos. 3. ed. Porto Alegre: Bookman, 2005. [Minha Biblioteca] GONÇALVES, E. J. T. Análise e projeto de sistemas� 3. ed. Fortaleza: EdUECE, 2015. LARMAN, C. Utilizando UML e padrões. 3. ed. Porto Alegre: Bookman, 2004. [Minha Biblioteca] MARINHO, A. L. Análise e modelagem de sis- temas. São Paulo: Pearson Education do Brasil, 2016. [Biblioteca Virtual] MEDEIROS, E� Desenvolvendo software com UML 2.0: definitivo. São Paulo: Pearson Makron Books, 2004. [Biblioteca Virtual] PAGE-JONES, M. Fundamentos do desenho orien- tado a objeto com UML. 1. ed. São Paulo: Makron Books, 2001. [Biblioteca Virtual] PAULA FILHO, W. P. Engenharia de software: funda- mentos, métodos e padrões. 3. ed. Rio de Janeiro: LTC, 2009. Disponível em: [Minha Biblioteca] PRESSMAN, R. S.; MAXIM, B. R. Engenharia de sof- tware: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. [Minha Biblioteca] SOMMERVILLE, I. Engenharia de software� 10� ed� São Paulo: Pearson Brasil, 2019. [Biblioteca Virtual] Introdução Diagramas de classes, objetos e pacotes Diagramas de classes Diagramas de objetos ou instâncias Diagramas de pacotes Diagramas de Sequências, Atividades e Instalação Diagramas de Sequências Diagramas de atividades Diagramas de instalação ou implantação Diagramas de Máquinas de Estados e de Comunicação Diagramas de máquina de estados Diagramas de comunicação Diagramas de Estruturas Compostas, Componentes e Temporização Diagramas deestrutura compostas Diagrama de componentes Diagrama de temporização Considerações finais Síntese