_ modmodelação Problemas Engenharia da Programação Problemas (2002/2003) Versão 1.0 11 de Dezembro de 2002 Paula Ventura Martins (pventura@ualg.pt) Tópicos cobertos nesta série de problemas: em UML: Diagramas de casos de utilização Diagramas de classes Diagramas de objectos_ Diagramas de sequência. Diagramas de colaboração_ Diagramas de estado. Diagramas de actividade_ Diagramas de componentes. Diagramas de instalação_ http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 1
[Diagramas de casos de utilização] 1. Considere o sistema de uma equipa de futebol constituído pelos seguintes actores: jogador, treinador, atacante, guarda-redes, médio, defesa, presidente. Desenhe o respectivo diagrama de casos de utilização. Sugestão: considere por exemplo os seguintes casos: jogar, treinar, defender a baliza, pagar ao jogador, pagar ao treinador, vender jogador, contratar jogador, contratar treinador, despedir treinador. 2. Faça um diagrama de casos de utilização a partir do manual de utilizador de uma determinada aplicação. Considere por exemplo o Word da Microsoft ou outra qualquer aplicação do seu conhecimento. [Modelação da estrutura Diagramas de classes] 3. Modelize através de um diagrama de classes o seguinte discurso: Uma mesa de café é constituída por um tampo e por quatro pernas. 4. Considere o seguinte discurso relativamente a um sistema de partidas de ténis: Num torneio de ténis, cada partida é jogada entre 2 jogadores. Pretende-se manter informação sobre o nome e idade dos jogadores; data da partida e atribuição dos jogadores às partidas. O máximo de partidas que um jogador poderá realizar é 6 e o mínimo 1. Pretende-se o diagrama de classes correspondente. 5. Observe atentamente o seguinte diagrama de classes e indique textualmente o seu significado. 6. Modelize através de um diagrama de classes UML os conceitos relativos a um sistema básico de Gestão de Facturas : Um sistema de facturação mantém informação sobre clientes, sobre tipos de produtos e de serviços vendidos/prestados. Um cliente é identificado univocamente pelo NIF, e tem ainda nome, morada, telefones, e tipo de cliente. Um cliente pode ter mais que uma morada Uma factura é identificada univocamente pelo IDFactura, que é um número sequencial. Tem ainda a informação sobre data de facturação, cliente, valor total. Uma factura tem várias linhas, cada qual especificando a venda de um bem ou serviço Uma factura pode ser paga por uma ou http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 2
mais prestações. Cada pagamento parcial/total corresponde à emissão de respectivo recibo.... [Modelação da estrutura Diagramas de classes e diagramas de objectos] 7. Considerando o modelo de classes resultante do exercício 6 ( Gestão de Facturas ) descreva através de diagramas de objectos as seguintes situações: (1) O cliente IPP S.A., com NIF 123456789, com duas moradas. A primeira na Praça da Alegria, 33, 1300-222 Lisboa e a segunda na Rua da Paz, 44, 4ºEsq, 2000-320 Santarém. (2) A factura, n.º 3445/2000, data de facturação em 28/11/2000, cliente IPP S.A., e valor total de 350,000$00, é constituída por duas linhas. A primeira linha de factura consiste na venda de 200 caixas de parafusos de 20 ; a segunda linha consiste na venda de 10 perfuradoras de 350W 8. Considere o modelo de classes resultante do exercício 4 ( Partidas de Ténis ). Faça o diagrama de objectos que ilustre a seguinte situação: Os jogadores Zé Maria e Pedro Cunha disputaram uma partida às 20:30 de 2001/10/10 Os jogadores Zé Maria e Marco Esteves disputaram duas partida, a primeira às 14:30 de 2001/10/10, e a segunda às 15:00 de 2001/10/11. 9. Modifique o diagrama de classes do Exercício 3 de forma a contemplar o facto da mesa de café poder ser constituída por um tampo e por 1, 3 ou mais pernas. Apresente um possível diagrama de objectos. 10. Considerando o diagrama de classes do Exercício 5, faça o diagrama de objectos relativo à seguinte situação O guarda-redes Zé Maria não jogou na época 2001 O guarda-redes Quim jogou na época 2001 no Sp.Braga e no Boavista com respectivamente o seguinte desempenho: o Sp.Braga: 0 golos marcados, 13 golos sofridos,4 vitórias, 3 derrotas e 5 empates. o Boavista: 2 golos marcados, 6 golos sofridos, 7 vitórias, 2 derrotas e 3 empates. http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 3
[Modelação do comportamento Diagramas de sequência e diagramas de colaboração] 11.Considere o melhor cenário para o caso de utilização Estabelecer chamada telefónica (o cenário em que tudo corre bem ). Considere um sistema composto pelos seguintes objectos: telefone chamador; telefone chamado; a linha telefónica. Considere (entre outras) as seguintes mensagens entre objectos: levanta auscultador; começa sinal de marcar; marca 1º dígito; começa sinal de chamar; começa a chamar; atende; termina sinal de chamar; termina sinal de chamar; ligação estabelecida. Desenhe o diagrama de sequência respectivo. 12. Considere o melhor cenário para o caso de utilização Enviar Fax (o cenário em que tudo corre bem ). Considere um sistema composto pelos seguintes objectos: máquina que envia; máquina que recebe; uma central que encaminha faxes e chamadas telefónicas. Desenhe o diagrama de sequência respectivo. 13. Desenhe o diagrama de sequências relativamente ao cenário de acertar as horas de um relógio digital. Considere que o relógio tem um visor, dois botões (E e D) e dois modos básicos de funcionamento: mostrar horas (e minutos) e acertar as hora (e minutos). O acerto de horas tem dois sub-modos: acertar horas e acertar minutos. O botão E serve para seleccionar os modos de funcionamento segundo a sequência cíclica: mostrar; acertar horas, acertar minutos, mostrar,... Dentro dos modos de acertar, o botão D serve para adiantar os valores correspondentes (a horas ou a minutos). Considere a existência apenas de 2 objectos : o utilizador e o relógio. 14. Considerando o seguinte diagrama de classes e o seguinte código Java, desenhe os correspondentes diagramas (1) de objectos, (2) de sequência, e (3) de colaboração. 15. Considere o melhor cenário para o caso de utilização Fazer um exame (o cenário em que tudo corre bem). Considere um sistema composto pelos seguintes objectos: aluno; professor; exame, cartão de estudante, nota. Considere (entre outras) as seguintes mensagens entre objectos: recebe exame; entrega cartão de estudante; verifica cartão de estudante; recebe cartão de estudante; faz exame; entrega exame; corrige exame; atribui nota; entrega nota. Desenhe o diagrama de sequência respectivo http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 4
[Modelação do comportamento Diagramas de estados e diagramas de actividades] 16. Desenhe o diagrama de estados de um telefone, considerando que pode se encontrar num dos seguintes estados: parado, em marcação, sinal a chamar, sinal ocupado e ligado. Sugestão: considere que este telefone é apenas usado para estabelecer (iniciar) chamadas. 17. Desenhe o diagrama de estados de uma tostadeira. Defina os diferentes estados do pão na tostadeira, sem esquecer de especificar os necessários eventos, acções, e condições com guarda. 18. Desenhe o diagrama detalhado do estado Screen Saving de um PC que inclua subestados concorrentes (ver Exemplo 7.4). Considere, por exemplo, os estados responsáveis por tratarem o input do utilizador, outros responsáveis pela geração de imagens e actualização dinâmica no monitor. 19. Desenhe o diagrama de estados de um relógio digital. Considere que o relógio tem um visor, dois botões (E e D) e dois modos básicos de funcionamento: mostrar horas (e minutos) e acertar as hora (e minutos). O acerto de horas tem dois submodos: acertar horas e acertar minutos. O botão E serve para seleccionar os modos de funcionamento segundo a sequência cíclica: mostrar; acertar horas, acertar minutos, mostrar,... Dentro dos modos de acertar, o botão D serve para adiantar os valores correspondentes (a horas ou a minutos). 20. Desenhe o diagrama de actividades correspondente ao seguinte processo de negócio: gestão de encontros com clientes : 1. Um vendedor telefona ao cliente e marca uma reunião. 2. Se a reunião é na empresa, os técnicos da empresa preparam a sala de conferências para a apresentação. 3. Se a reunião é fora da empresa (no escritório do cliente) um consultor prepara a apresentação num computador portátil 4. O consultor e o vendedor reúnem-se com o cliente no local e hora combinada. 5. O vendedor envia ao cliente uma carta a resumir o sucesso da reunião. 6. Se a reunião resultou na identificação de um problema, o consultor escreve uma proposta e envia-a para o cliente. 21. Desenhe o diagrama de actividades correspondente ao algoritmo do factorial de n (n! = 1 se n 1; n*(n-1)! se n > 1). 22. Através de um diagrama de actividades especifique o processo levantar da cama com as seguintes considerações. A seguir à actividade acordar um indivíduo realiza geralmente as seguintes actividades, sem uma ordem predefinida: tomar pequenoalmoço, fazer a higiene matinal e cumprimentar a família. Contudo, (1) apenas toma o pequeno-almoço se não tiver pressa; e (2) apenas cumprimenta a família se estiver bem disposto. http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 5
23. Considere o seguinte código Java constituído pelas classes SimpleThread e TwoThreadsTest. Desenhe o diagrama de classes que o suporta e o diagrama de colaboração correspondente a instâncias da classe TwoThreadsTest. public class SimpleThread extends Thread { public SimpleThread(String str) { super(str); public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getname()); try { sleep((long)(math.random() * 1000)); catch (InterruptedException e) { System.out.println("DONE! " + getname()); public class TwoThreadsTest { public static void main (String[] args) { SimpleThread jamaica, fiji; jamaica= new SimpleThread("Jamaica"); fiji= new SimpleThread("Fiji") jamaica.start(); fiji.start(); http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 6
[Modelação da arquitectura Diagramas de componentes e diagramas de instalação] 24. Pretende-se o diagrama de componentes correspondente à aplicação ex-pipes desenvolvido em linguagem C, com os seguintes módulos: ex-pipes.c util.c server.c client.c, e com dependências definidas pelo seguinte makefile: CC = gcc CFLAGS = -g ex-pipes : ex-pipes.o util.o server.o client.o $(CC) -g -o ex-pipes ex-pipes.o util.o server.o client.o 25.Pretende-se o diagrama de componentes correspondente à página Web http://www.tvi.pt/ com o seguinte conteúdo (tenha em consideração os componentes (ficheiros) representados a negrito.): <html> <head> <meta http-equiv="content-type" content="text/html"> <title>tvi OnLine</title> </head> <frameset rows="296,*" border="0" frameborder="no" framespacing="0"> <frame src="index_hdr.html" name="hdr" noresize> <frame src="index_ix.html" name="ix" noresize scrolling="no"> </frameset> <noframes> <bodbgcolor="#000000" background="hmpg/directoix_bg.jpg"> </body> </noframes> </html> 26. Represente, através de um diagrama de instalação, o sistema MyGlobalNews descrito de seguida: MyGlobalNews é um jornal electrónico personalizado, baseado em agentes de software e distribuído. O servidor corre na máquina xpto.ist.utl.pt e consiste em várias componentes, designadamente: o servidor MyGlobalNews (aplicação Java) e a base de dados MGN (gerida pelo SQL Server 2000). O cliente corre sobre sistema operativo Windows, em qualquer máquina do domínio ist.utl.pt e consiste na aplicação GlobalNews.exe. O cliente MyGlobalNews acede ao servidor através do protocolo HTTP, e este acede à base de dados MGN via Java JDBC. Todas as máquinas do domínio fct.ualg.pt encontram-se ligadas através de Ethernet. 27. Pretende-se o diagrama de instalação para modelar a seguinte situação: Uma empresa industrial está estruturada em quatro departamentos: produção, comercial, controlo da qualidade, e administrativo-financeiro. Cada um destes departamentos tem um director respectivo. O director-geral é o responsável pela coordenação e supervisão de todos os departamentos. O departamento administrativo-financeiro está estruturado em duas secções, respectivamente a secção administrativa e a secção financeira. http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 7
Sugestões: (1) Considere que os recursos do negócio (unidades orgânicas e as pessoas) são nós do diagrama a desenhar. (2) Represente, através de estereótipos, o tipo das associações existentes entre nós. http://w3.ualg.pt/~pventura/ep/index.html 12/12/02/EP/Problemas - 8