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