Slides adaptados do Prof. Dr. M. Goulão, Ana Moreira, João Araújo e Vasco Amaral ● Diagrama de Instalação ○ Nós ○ Artefatos Tópicos ○ Exemplos de Diagramas de Instalação ● De quantos diagramas necessitamos? 1. Diagrama de Instalação Diagrama de Instalação Definição segundo a OMG Deployments “The Deployments package specifies constructs that can be used to define the execution architecture of systems and the assignment of software artifacts to system elements. A streamlined model of deployment, sufficient for the majority of modern applications, is provided. Where more elaborate deployment models are required, the package can be extended through profiles or metamodels to represent specific hardware and/or software environments.” Segundo a OMG (Object Management Group) Instalação (deployment) ● Instalação (em UML): ○ Processo de atribuição de artefatos a nós, ou de instâncias de artefatos a instâncias de nós Diagrama de Instalação (Deployment Diagram) ● Pode modelar a arquitetura de um sistema em tempo de execução ● Apresenta uma vista estática da configuração em tempo de execução dos nós de processamento e da distribuição dos componentes que se executam nesses nós ○ Exemplo de nós: servidor, cliente, modem, impressoras, etc Diagrama de Instalação (Deployment diagram) ● Os diagramas de instalação mostram ○ O hardware ○ O software que está instalado nesse hardware ○ O middleware usado para ligar as diferentes máquinas entre si Diagrama de Instalação ● Mapeia a arquitetura de software numa arquitetura de hardware ● Dois tipos de diagramas de instalação ○ Descritivo: contém nós, relações entre nós e artefatos ■ Ex. nós: PC | Ex. artefatos: arquivo jar ○ Instanciado: contém instâncias de nós, ligações entre instâncias de artefatos (estas instâncias podem ser anônimas) ■ Ex. nós: PC da Ale | Ex. artefato: um jar particular Quando criamos este diagrama?
● Primeira versão durante a fase de projeto (desenho descritivo)
com o objetivo de auxiliar no processo de decisão da arquitetura de hardware ● Refinamento mostrando uma ou mais formas de instanciação, usando instâncias anônimas (diagramas instanciados) ● Quando os detalhes de hardware no local de instalação são conhecidos, o diagrama instanciado pode deixar de usar instâncias anônimas e passar a usar as identificações dos nós e artefatos específicos Resumindo o processo ● Durante o projeto, a ênfase é colocada nos nós ou instâncias de nós, e nas respectivas ligações ● Durante a fase de codificação, a ênfase é colocada na atribuição de: ○ Instâncias de artefatos a instâncias de nós, no caso de diagramas instanciados ○ Artefatos a nós em diagramas descritivos Nós e ligações ● Os diagramas de instalação incluem os vários elementos usados nos diagramas de componentes e ainda ○ Nós que representam dispositivos físicos e virtuais (ex: nó que representa mainframe) ■ Os nós apresentam-se em caixas 3D e podem ser processadores (ex: servidor), ou outros dispositivos (ex: modem) ○ Ligações (dependências e associações) ■ São representantes com linhas simples e podem ser decoradas com estereótipos para indicar o tipo de ligação (ex: http) 1.1 Nós Diagrama de Instalação Definição segundo a OMG Deployments -> Nodes “Typically, Nodes represent either hardware devices or software execution environments. They can be nested and can be connected into systems of arbitrary complexity using communication paths. ” Segundo a OMG (Object Management Group) Nós ● Objeto físico ou virtual que representa um recurso de processamento ● Em geral, tem memória e, frequentemente, também capacidade de processamento Nós: estereótipos standard ● <<device>> dispositivo físico (ex: PC) ● <<execution environment>> tipo de ambiente de execução (ex: Apache web server, Firefox) Nós: versão instanciada Até onde podemos estereotipar?
● Pode-se criar tantos estereótipos quantos os necessários e
atribuir imagens distintas a cada um deles: ○ Facilidade de leitura ☺ ○ Dificuldade de interoperabilidade ☹ 1.2 Artefatos Diagrama de Instalação Definição segundo a OMG Deployments -> Artifacts “An Artifact represents some (usually reifiable) item of information that is used or produced by a software development process or by operation of a system. Examples of Artifacts include model files, source files, scripts, executable files, database tables, development deliverables, word-processing documents, and mail messages.” Segundo a OMG (Object Management Group) Artefatos ● Representam a especificação de um item de informação do projeto ● São colocados em nós ● Exemplos ○ Arquivos de código fonte ○ Arquivos executáveis ○ Scripts ○ Tabelas de BD ○ Documentos ○ Outros entregáveis do processo de desenvolvimento Instâncias de artefatos ● Representam instâncias específicas de artefatos em particular ● São colocados em instâncias de nós Manifestação de artefatos ● Um artefato pode representar a manifestação física de elementos de UML de qualquer tipo ● Normalmente, um artefato manifesta um ou mais componentes Diagrama de instalação com artefatos instanciados 1.3 Exemplos de Diagramas de Instalação Diagrama de instalação ● Diagrama de instalação para uma rede mostrando ● Protocolos de rede como estereótipos ● Multiplicidades nos participantes das associações Diagrama de instalação ● Diagrama de instalação para parte de um sistema embutido, apresentando executável como sendo contido pelo nó de tipo Motherboard Diagrama de instalação ● Pacotes usados para estruturar diferentes tipos de nós Diagrama de Instalação (notação concisa) Mais um exemplo Diagrama de instalação ● Usar para modelar ○ Sistemas cliente servidor ○ Sistemas distribuídos ○ Sistemas embutidos, etc Perguntas que auxiliam a criar o Diagrama de Instalação ● Como o sistema é instalado? ● Qual o nível de segurança/confiabilidade ● Onde a instalação pode falhar? exigida para o sistema? ● Quanto tempo é necessário para a instalação? ● Quais equipamentos serão necessários em ● Como verificar se a instalação foi bem sucedida? casos de falha no sistema? ● Quem ou o que será conectado/integrado ● Se diferentes versões do sistema forem executadas com o sistema? Como? simultaneamente, como os conflitos serão resolvidos? ● Que softwares, incluindo o sistema ● Como os usuários, as equipes de suporte e operação operacional e protocolos de comunicação, serão treinadas? o sistema usará? ● Quais documentações serão disponibilizadas para os ● Que hardwares e softwares o usuário irá usuários e equipes de suporte? Em qual formato? Em qual interagir diretamente (PCs, redes de computadores, navegadores, etc)? linguagem? ● Como o sistema será monitorado após a ● Como as documentações serão atualizadas? instalação? ● Quais equipamentos físicos serão necessários para a ● Quais recursos (físicos/softwares) de instalação? segurança precisam ser instalados? ● Quais outros sistemas serão necessários para interagirem ● É necessário o uso de backups? ou integrarem com o sistema a ser instalado? ● É necessária a conversão de dados? Exercício Proponha um diagrama de instalação para este modelo Sugestão: Em aulas anteriores, um diagrama de componentes foi produzido para o mesmo exemplo. Parta desse diagrama para construir o seu diagrama de instalação Acesse pelo link: https://bit.ly/exercicioInstalaca o 2. De quantos diagramas necessitamos? De quantos diagramas necessitamos? ● Depende ● Usamos diagramas para visualizar o sistema sob diferentes perspectivas ● É impossível compreender completamente um sistema a partir de apenas uma perspectiva ● Os diagramas são usados para comunicar De quantos diagramas necessitamos? ● Há vários elementos do modelo que são usados em mais de um diagrama ○ Uma classe pode aparecer em um ou mais diagramas de classe, pode ser representado em um diagrama de estado, as suas instâncias podem aparecer em diagramas de sequências, etc ○ Cada diagrama fornece uma nova perspectiva Conclusão ● Bons diagramas geram: ○ Desenvolvimentos compreensíveis ○ Projeto de mais fácil gestão
● A escolha de um conjunto de diagramas adequado
leva a perguntas de questões mais pertinentes sobre o sistema e ajuda a evidenciar as implicações do modelo criado REFERÊNCIAS Referências ● UML 2 and the Unified Process, Arlow and Neustadt ● Agile Modeling ● IBM’s Rational Library ● The object primer: agile model-driven development with UML 2.0, Scott W. Ambler ● UML 2.0 Superstructure ● UML 2.0 Infrastructure Tutoriais e Documentos ● Documento de especificação UML ○ https://www.omg.org/spec/UML/2.5.1/PDF Tutoriais
Parte de vídeo (em inglês) explicando todos os
diagramas UML: ● UML Diagrams Full Course (Unified Modeling
Language) - Canal freeCodeCamp.org
○ (a partir de 25:27 -> duração de 6 minutos) ○ https://youtu.be/WnMQ8HlmeXc?t=1529 Análise e Projeto de Software Diagramas de Instalação
Profa. Alessandra Alaniz Macedo
Slides adaptados do Prof. Dr. M. Goulão, Ana Moreira, João Araújo e Vasco Amaral