Preview only show first 10 pages with watermark. For full document please download

Engenharia De Software - Aula 10

Engenharia de software Luís A. Alexandre UBI, 25 de Fevereiro de 2008

   EMBED


Share

Transcript

Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Engenharia de software Lu´ıs A. Alexandre UBI, 19 de Maio de 2008 Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Conte´udo I Diagramas de pacote. I Diagramas de componentes. I Diagramas de instala¸c˜ao. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Diagramas de pacote I I I I I Uma forma de lidar coma complexidade dos sistemas ´e atrav´es da imposi¸c˜ao de estrutura. A ideia pode passar pela divis˜ao de um sistema em v´arios subsistemas que ser˜ao mais f´aceis de compreender e manipular. Tendo como fim o agrupamento de elementos de modela¸c˜ao UML, foi criado o pacote. Um pacote ´e um componente UML que permite agrupar dentro de si v´arios componentes relacionados do ponto de vista l´ogico: por exemplo, grupos de classes ou grupos de diagramas. Um pacote em UML ´e mais geral que um pacote em Java que apenas permite agrupar dentro de si classes. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Diagramas de pacote (cont.) I I I I I Um dos usos mais frequentes dos pacotes ´e de facto o agrupamento de classes. No desenvolvimento de grandes sistemas o n´ umero de classes pode ser muito grande (da ordem dos milhares): seria dif´ıcil de gerir sem um mecanismo desta natureza. Se um diagrama de classes estiver grande demais (p. ex., n˜ao couber numa folha A4) deve ser subdividido agrupando as classes em pacotes. As classes que pertencem a um dado pacote devem ser semanticamente pr´ oximas. Deve existir o m´ınimo de interdependˆencia entre classes de diferentes pacotes. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Representa¸c˜ao gr´afica I Um pacote ´e representado por um rectˆangulo com um rectˆangulo mais pequeno sobre o seu canto superior esquerdo. I No rectˆangulo mais pequeno ´e colocado o nome do pacote (normalmente quando se opta por mostrar o conte´ udo do pacote). I O conte´ udo ´e mostrado no rectˆangulo maior. Interface Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Representa¸c˜ao gr´afica (cont.) I No caso de n˜ao se pretender mostrar o conte´ udo, o nome do pacote pode ser escrito no rectˆangulo maior (o ArgoUML n˜ao permite esta op¸c˜ao mas o Umbrello permite). Interface Lu´ıs A. Alexandre f In t e r a c e Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Rela¸c˜oes entre pacotes I As rela¸c˜oes entre diferentes pacotes podem ser: I I de dependˆencia: quando existe uma rela¸c˜ao de dependˆencia entre um elemento de um pacote e outro de outro pacote. de hierarquia: um pacote cont´em outros pacotes I O tipo de setas a usar ´e idˆentico ao usado nos diagramas de casos de uso para a dependˆencia. I Para a hierarquia, os diagramas s˜ao representados uns dentro dos outros. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Rela¸c˜ao de dependˆencia I Para usar um pacote ´e preciso ter acesso a todos os pacotes dos quais ele depende. I Altera¸c˜oes feitas na interface dum pacote exigem altera¸c˜oes nos pacotes que dele dependem. I Um pacote que dependa de muitos pacotes pode ser dif´ıcil de reutilizar, pois para o seu uso ter˜ao de ser utilizados todos os pacotes de que ele depende. ´ importante evitar dependˆencias circulares entre pacotes. E I Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Rela¸c˜ao de hierarquia I A rela¸c˜ao de hierarquia entre pacotes ´e usada para definir n´ıveis sucessivos de estrutura. I Para evitar dificuldade de leitura raramente se usam mais de 3 n´ıveis de hierarquia. Gestão de encomendas Encomendas internet Lu´ıs A. Alexandre Encomendas telefone Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Exemplo Pacote2 Pacote1 Pacote3 Classe6 Classe3 Classe5 Classe2 Classe1 Classe4 Pacote4 Lu´ıs A. Alexandre Engenharia de software Pacote5 Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de pacote Diagramas de pacote I Quando se usam pacotes deve ser usada a vers˜ao mais simples (sem mostrar o conte´ udo) sempre que poss´ıvel. I Quando ´e necess´ario mostrar o conte´ udo do pacote, mostrar apenas os elementos necess´arios para que seja poss´ıvel compreender o significado do pacote no contexto onde se encontra. I Temos um diagrama de pacote quando no diagrama apenas aparecem pacotes, mas ´e poss´ıvel que os pacotes surjam integrados noutros diagramas, tipicamente os diagramas de classe. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de componentes Diferen¸ca entre um componente e um pacote Diagramas de componentes I I I Um componente ´e um elemento de n˜ao-f´ısico do sistema. Pode representar v´arias coisas: execut´aveis, bibliotecas, tabelas de base de dados, ficheiros, documentos, JavaBeans, etc. Em termos gr´aficos um componente ´e representado da seguinte forma: Browser.exe Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de componentes Diferen¸ca entre um componente e um pacote Exemplo de diagrama de componente Browser.exe inet.dll sockets.dll Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de componentes Diferen¸ca entre um componente e um pacote Diagramas de componentes I Dizemos que temos um diagrama de componentes quando apenas representamos componentes, mas o mais comum ´e os componentes surgirem nos diagramas de instala¸c˜ao (ver abaixo). I As rela¸c˜oes que podemos ter entre componentes s˜ao: associa¸c˜ao, dependˆencia e generaliza¸c˜ao. I Podemos tamb´em ter vers˜ oes tipo e vers˜ oes objecto de componentes: podemos especificar um componente do tipo Mozilla e podemos depois ter um componente objecto deste tipo que seja uma dada instˆancia dum browser Mozilla. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de componentes Diferen¸ca entre um componente e um pacote Diferen¸ca entre um componente e um pacote I Um pacote cont´em tipicamente classes, logo elementos l´ogicos sem existˆencia f´ısica. I Um componente cont´em uma vers˜ao f´ısica do c´odigo: um execut´avel ou uma biblioteca, por exemplo. I Podemos ter uma mesma classe a aparecer em v´arios componentes, mas ela apenas se encontra definida num u ´nico pacote. Ex: a classe String do Java. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Diagramas de instala¸c˜ao I Os diagramas de instala¸c˜ao (deployment) s˜ao constitu´ıdos por nodos e liga¸c˜oes entre eles. I S˜ao usados para representar a arquitectura f´ısica de um sistema. S˜ao semelhantes aos diagramas de classe e de objectos no sentido em que: I I I I mostram arquitecturas poss´ıveis com nodos-tipo mostram arquitecturas reais com nodos-instˆancia Estes diagramas (de resto, como todos os que vimos at´e agora) tˆem um nome e devem ser acompanhados por uma descri¸c˜ao textual. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Nodos I Os nodos s˜ao elementos f´ısicos que representam um recurso computacional. I Os nodos s˜ao usados para representar a topologia do hardware onde o sistema ser´a usado. I Em termos gr´aficos um nodo-tipo ´e representado da seguinte forma: Servidor Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Nodos I Um nodo-instˆancia difere do nodo-tipo apenas na forma como o seu nome ´e escrito (obedece `as mesma regras dos nomes dos objectos): I Pode ser usada multiplicidade ´ representada com os nodos. E no canto superior direito: 2..* s1:Servidor PocketPC Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Exemplo com nodos-tipo Diagrama de instalação: arquitectura de 3 camadas 2 Servidor * Cliente 1 BaseDados Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Exemplo com nodos-instˆancia Diagrama de instalação: Instalação no cliente X c1:Cliente s1:Servidor bd:BaseDados c2:Cliente s2:Servidor cN:Cliente Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Exemplo com componentes Diagrama de instalação: dois clientes a acederem a uma BD via servidor web :servidorUnix umMac:Mac :Safari :Webserver umPC:PC :servidorUnix :firewall :IExplorer :BasedeDados Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas de instala¸c˜ ao Nodos Exemplo com nodos-tipo Exemplo com nodos-instˆ ancia Exemplo com componentes Coment´ arios Coment´arios I As linhas entre os diferentes nodos do diagrama representam um caminho de comunica¸c˜ao entre eles. I N˜ao ´e necess´ario usar este tipo de diagramas quando o sistema ´e constitu´ıdo por um u ´nico nodo. Ex: uma aplica¸c˜ao que corra num u ´nico PC isoladamente. I Podemos usar notas como nos restantes diagramas para esclarecer algum ponto menos claro. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas UML 2.0 estudados Leituras complementares Question´ ario Diagramas UML 2.0 estudados Diagrama UML 2.0 Estrutura Classe Comportamento Componentes Estrutura Composta Objectos Instalação Pacote Lu´ıs A. Alexandre Actividade Interacção Sequência Vista interacção Engenharia de software Casos de uso Comunicação Estados Tempos Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas UML 2.0 estudados Leituras complementares Question´ ario Leituras complementares I Booch: cap. 12 (pacotes), 25 e 29 (componentes), 26 e 30 (instala¸c˜ao) I Fowler: cap. 7 (pacotes), 10 (componentes e instala¸c˜ao) I Nunes: cap. 8 Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas UML 2.0 estudados Leituras complementares Question´ ario Question´ario 1. Represente num diagrama de instala¸c˜ao o seguinte sistema: I I I I o sistema ´e constitu´ıdo por um servidor de dados m´edicos e por v´arios clientes que podem ser PC (usando rede ethernet) ou pocketPCs (usando wireless); no servidor est˜ao uma BD e uma aplica¸c˜ao que recebe os pedidos dos clientes e os processa interrogando a BD quando tal ´e necess´ario; os clientes correm uma aplica¸c˜ao cliente chamada MedPC que depende dum m´ odulo de rede chamado NetMaster; os clientes pocketPC necessitam ainda dum driver wireless chamado NetAnywhere. Lu´ıs A. Alexandre Engenharia de software Diagramas de pacote Diagramas de componentes Diagramas de instala¸c˜ ao Conclus˜ ao Diagramas UML 2.0 estudados Leituras complementares Question´ ario Question´ario 2. Represente num diagrama de instala¸c˜ao o seguinte sistema: I I I I O sistema ´e constitu´ıdo por um servidor que corre uma aplica¸c˜ao (DescarregaJogo) que permite clientes efectuarem o download de uma aplica¸c˜ao (JogoDaModa) que ir´a ser carregada posteriormente num telem´ ovel. Qualquer n´ umero de PCs pode ligar-se ao servidor para efectuar o download do jogo. Esta liga¸c˜ao necessita que os PCs corram um browser. A aplica¸c˜ao JogodaModa quando executada num telem´ovel liga-se ao mesmo servidor e regista o utilizador numa outra aplica¸c˜ao chamada TopJogadores. O n´ umero de telem´ oveis que efectuam a liga¸c˜ao ao servidor est´a limitado a 100 em qualquer instante. Lu´ıs A. Alexandre Engenharia de software