Buscar

aula04

Prévia do material em texto

Met. para de Desenvolvimento de Software
4º Aula
Diagramas UML – parte 2
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
Olá pessoal,
Como você está? Esperamos que você tenha gostado da nossa 
introdução sobre UML. Nesta segunda parte, você aprenderá 
diagramas que modelam as interações entre objetos do sistema – 
através dos diagramas de sequência e de comunicação. Aprenderá 
ainda como funciona um diagrama de pacotes, o que é um diagrama 
de estados e como representar um ambiente onde o sistema será 
implementado, através do diagrama de implementação.
Se você tiver qualquer dúvida, entre em contato via quadro 
de avisos, certo? A sua participação é muito importante para nós.
Bons estudos!
170
27
Seções de estudo
1 - Diagrama de Sequência
1 – Diagrama de Sequência
2 – Diagrama de Comunicação
3 – Diagrama de [Máquina de] Estados
4 – Diagrama de Pacotes
5 – Diagrama de Implantação
6 – Outros Diagramas da UML
Mostra como é a interação entre vários sujeitos da 
comunicação ao longo do tempo. Seus principais objetivos 
são: documentar casos de uso, mostrar como os objetos do 
sistema se comunicam por meio de mensagens em ordenação 
temporal, validar se todas as operações das classes foram 
identificadas e declaradas ou ainda para validar a existência de 
um objeto necessário ao funcionamento do sistema. Não é 
necessário fazer diagramas de sequência para todos os casos 
de uso ou requisitos que aparecerem, apenas para aqueles mais 
complexos.
Na parte superior do diagrama, ficam os objetos, que são 
sujeitos participantes da comunicação. Basicamente, um objeto 
é representado por um retângulo, com um nome do objeto, 
seguido por dois-pontos e o nome da classe e qual instância. 
Por exemplo: um nome car1: Carro declara um objeto car1 da 
classe Carro.
Um objeto pode ter várias outras notações, como:
 São entidades externas que interagem ao 
sistema enviando ou recebendo dados. Podem 
ser os mesmos atores nos diagramas de Casos de 
Uso. Assim, são representados pela mesma forma, 
por um boneco-palito – porém são nomeados da 
mesma maneira. Eles podem interagir com outros 
atores e com classes de fronteira.
 Indica as 
classes ou objetos responsáveis pela interface 
entre o sistema de informação e seus usuários ou 
pela comunicação entre dois ou mais sistemas. É 
com objetos desse tipo que os atores vão interagir 
com o sistema. Normalmente, são janelas e 
formulários.
 São classes e objetos utilizados 
quando os desenvolvedores optam por separar 
as manipulações de dados, as regras do negócio 
e o sequenciamento de tarefas da interface de 
comunicação do sistema com o usuário, realizando 
assim, todas as outras tarefas que um sistema fará.
 Indica classes ou objetos responsáveis 
por armazenar e gerenciar os dados do sistema, 
bem como por mostrar a estrutura lógica e estática 
dos dados, colaborando para a compreensão do 
que o sistema deve oferecer aos seus usuários.
Abaixo de cada objeto, fica uma linha tracejada 
verticalmente. É a linha da vida do objeto, mostrando 
qual a sequência na qual a vida do objeto durante a iteração 
é representada. Ele pode representar também a criação e a 
destruição de objetos. No momento em que o objeto participa 
da iteração, a linha da vida é coberta por um retângulo, que 
mostra o tempo em que o objeto interage com um outro 
objeto.
As linhas que percorrem de uma linha da vida a outra 
são chamadas de mensagens. Elas representam os serviços 
solicitados de um objeto a outro ou a ele mesmo, e as 
respostas desenvolvidas para as solicitações. Normalmente, 
o objeto origem que dispara a mensagem e o objeto destino 
que recebe a mensagem são diferentes, mas uma mensagem 
pode ter como objeto destino o mesmo objeto que disparou a 
mensagem. Esse caso é denominado de autochamada.
Uma mensagem consiste em uma linha reta, partindo 
do objeto origem para o objeto de destino, com uma seta 
apontando para esse objeto. Junto com essa reta, é escrito 
um rótulo contendo um nome da mensagem, podendo ter os 
seus parâmetros, mas isso é opcional.
Além dos parâmetros, podemos ter condições de guarda, 
que apresenta uma condição que deve ser satisfeita para que 
uma mensagem seja enviada. É demonstrada entre colchetes 
antes do rótulo da mensagem a ser enviada. 
Trechos de iteração podem conter uma moldura, onde 
essa moldura confere um novo sentido ao trecho que é 
coberto por essa moldura. Cada moldura recebe uma etiqueta 
que indica o que significará esse trecho. As etiquetas mais 
utilizadas são:
sentidos, dependendo da situação. No exemplo abaixo, é 
verificado se o usuário é um associado da entidade. Se sim, é 
conferido um desconto de 30%, caso contrário, o boleto virá 
no valor normal.
várias vezes. A condição de repetição é expressa do lado da 
etiqueta. Nesse exemplo, o loop vai de 1 até 3. Além disso, 
há uma condição de guarda especial que indica que o loop só 
será executado caso o medicamento seja de controle especial.
171
28Met. para de Desenvolvimento de Software
Vamos agora mostrar os diagramas de sequências para 
o nosso estudo de caso da locadora. No nosso caso, foram 
feitos dois diagramas, sendo que o primeiro foi criado para 
representar o processo de cadastro da locação. Nessa situação, 
foram identificados os objetos Funcionário, uma classe de 
fronteira para realizar o cadastro de locação, e dois objetos 
das classes Cliente e Carro. Durante a operação, será criado 
um objeto da classe Locação – indicado por meio de uma 
mensagem com o estereótipo <<create>>.
Nesta operação, são executadas as seguintes tarefas:
1. O funcionário informa o número do cliente, podendo 
2. O sistema busca e exibe os dados do cliente de acordo 
4. O sistema busca e exibe os dados do carro cadastrado 
6. O sistema salva os dados, criando uma nova instância 
de Locação com os dados selecionados.
A segunda operação que o analista documentou por 
meio de um diagrama de sequência foi o ato da devolução 
da locação, representado pelo caso de uso geral Encerrar 
Locação. Nesse caso de uso participam como objetos, um 
funcionário, a classe de fronteira responsável por fazer a 
interface do funcionário com o sistema, e as classes Carro, 
Locação e Cliente.
Nesse caso de uso, são especificadas as seguintes 
operações:
1. O funcionário informa o número de identificação 
3. O sistema buscará todas as locações que o cliente 
4. O sistema buscará os carros que foram locados pelo 
cliente. A partir daí, o sistema exibe os dados das locações e 
5. O funcionário informa a placa do carro locado 
e a quilometragem percorrida e marca a devolução como 
172
29
6. O sistema chama o método encerrar da classe 
Locação, para concluir o processo e computar o preço que 
o cliente deverá pagar. Esse preço é exibido na tela após a 
conclusão do processo.
Encerramos aqui nosso estudo sobre o diagrama de 
sequência. Na próxima seção, apresentaremos o diagrama de 
comunicação.
2 - Diagrama de Comunicação
É similar ao diagrama de sequência, possuindo o mesmo 
objetivo desse diagrama, que é mostrar a comunicação entre 
os objetos em um sistema de informação. Mas, essa exibição é 
feita de maneiras distintas. Enquanto que em um diagrama de 
sequência é mostrado o fluxo de mensagens entre os objetos 
no decorrer do tempo, a ênfase do diagrama de comunicação é 
mostrar como os objetos estão vinculados e quais mensagens 
são trocadas entre si durante o processo. Podemos assim dizer 
que esse diagrama é uma versão simplificada do diagrama de 
sequência.
Assim, devemos atentar a esses pontos quando criamos 
um diagrama de comunicação:
Fronteira, Classe de Sistema e entidade – são mostrados de 
ligamos uma linha reta entre eles. A partir daí, um objeto pode 
mandar mensagens para outro objeto. Essas mensagens são 
indicadas por uma linha reta, com uma seta apontando para o 
objeto destino. Não há distinção entre mensagens normais e 
de execução das mensagens no sistema e deve ter um nome 
para identificação. Assim como no diagrama de sequência,pode-se especificar parâmetros na chamada da mensagem.
Para demonstrar o uso do diagrama de comunicação, 
observe a próxima figura. Ele é um diagrama de comunicação 
para a funcionalidade de cadastro de locação, para o qual já 
foi feito um diagrama de sequência, que se encontra na seção 
anterior. Ele descreve as mesmas etapas que descrevemos 
anteriormente. Aproveite para ver o diagrama de sequência e 
observe as diferenças entre os dois.
173
30Met. para de Desenvolvimento de Software
3 - 
Antes de iniciarmos os nossos estudos sobre esse 
diagrama, explicaremos o que significa um estado. Um estado 
é entendido como um período de tempo pelo qual um objeto 
espera por um evento, permanecendo em uma situação por 
um determinado tempo. Muitos objetos ou situações que 
vemos em nossa vida possuem estados: Uma piscina pode 
estar cheia ou vazia, uma ordem de serviço pode estar ativa, 
concluída ou cancelada, uma atividade que você faz na 
nossa disciplina pode constar como não enviada, enviada e 
aguardando avaliação e avaliada etc.
Especificar um estado de um objeto faz parte do 
comportamento dinâmico de um sistema de informação (o 
comportamento estático é representado pelo diagrama de 
classes, que você viu na nossa Aula 03). Para isso, é criado 
um modelo de estados que consiste em um conjunto de 
diagramas de estados. 
Um diagrama de estado tem como função ilustrar o 
comportamento dos objetos quando reagem a estímulos 
externos a eles, e quais mudanças de situações podem ocorrer 
em um objeto de uma classe durante seu ciclo de vida. Um 
diagrama de estados é atribuído a uma classe, mas nem 
todas precisam de um diagrama desse tipo. Normalmente, 
as principais classes de um sistema comercial possuem 
comportamento dinâmico, ou seja, mudam de estado, porém, 
em um sistema de tempo real, a maioria das classes desse 
sistema possui um ciclo de vida.
Assim como em todos os diagramas da UML, um 
diagrama de estados contém vários elementos. Vejamos quais 
são esses elementos a partir de agora.
Estado inicial
É indicado por meio de um círculo preenchido, marcando 
o início do diagrama.
Estado final
Indicado por um círculo preenchido dentro de um 
círculo vazado, é um símbolo que marca o ponto final dos 
estados modelados.
Estado 
Marca a situação ou a condição que um objeto do sistema 
se encontra em um determinado momento. Góes (2014) 
elenca as situações que podem ser ilustradas por um estado:
– a exemplo, o objeto ordem de serviço 
aguardando a sua triagem, ou seja, o seu envio 
diariamente via e-mail o diretor da área para 
que faça a aprovação ou o cancelamento das 
A satisfação de alguma condição – a exemplo, 
o objeto ordem de serviço sendo cancelado 
pelo sistema após dez dias sem aprovação ou 
conta-corrente se tornando ‘positiva’ à medida 
que um depósito ocorrer (GÓES, 2014, p. 219).
Um estado é representado na UML por um retângulo de 
bordas arredondadas, dividido por uma linha de uma forma 
horizontal. Na parte superior é escrito seu nome, que serve 
para distinguir um estado de outros. Já na parte inferior, são 
listadas as tarefas que um objeto executará no estado – não 
sendo obrigatória sua especificação. Essas tarefas podem ser 
escritas em formato de lista e devem ser precedidas pelas 
seguintes cláusulas:
continuamente, enquanto que o objeto permanecer nesse 
quando o objeto deixar o estado.
Um estado pode conter um conjunto de estados internos 
– ou seja, um outro diagrama de estados dentro desse estado. 
A essa situação denominamos o nome de estado composto. 
Transições
Indica um relacionamento entre dois estados, 
demonstrando um evento que proporcionou a mudança de 
um estado para outro. É representado por uma linha reta, que 
liga os dois estados, com uma seta apontando para o estado 
que o objeto entrará quando um evento for concretizado. Esse 
evento é descrito junto com a linha. 
Em uma transição, pode conter também uma condição 
adicional da guarda que deve ser satisfeita para que a transição 
seja realizada. Para isso, a condição de guarda é descrita entre 
colchetes. A diferença entre uma condição de guarda e um 
evento é que enquanto um evento é verificado continuamente, 
à espera que seja concretizada, a condição de guarda somente 
é verificada uma vez.
Pseudo estado de escolha
Indica que uma decisão deve ser tomada. É indicada por 
meio de um losango.
Para demonstrarmos o uso de um diagrama de estados, 
criamos um diagrama de máquina de estados simples para a 
classe Carro. Nesse diagrama, podem-se observar as seguintes 
situações:
indisponível. Mas ele pode retornar a condição de disponível 
perda, roubo ou dano desse carro, ele passa a ser inservível, 
perdurando assim até o fim de sua vida.
174
31
Vamos ver agora o Diagrama de Pacotes, que é uma forma 
de agrupar elementos na UML.
4 - Diagrama de Pacotes
Um diagrama de pacotes consiste em dividir um sistema 
complexo em partes menores denominadas de pacotes. Um 
pacote representa um grupo de elementos que podem se 
relacionar com outros pacotes por meio de uma relação de 
dependência. Esses elementos que estão em um pacote podem 
ser classes, casos de uso, diagramas ou outros pacotes. Para que 
você saiba da importância deles, a UML teve seus elementos 
divididos em pacotes.
Um pacote é representado graficamente na UML por 
meio de um retângulo, com uma aba no seu canto superior 
esquerdo, onde seu nome pode estar no centro do retângulo 
maior ou na aba sobre o retângulo. Assim, podemos dizer que 
um pacote na UML tem um formato similar a uma pasta. A 
partir do momento em que um elemento se encontra dentro 
de um pacote, devemos referenciá-lo pelo nome desse pacote. 
Por exemplo, se uma classe Carro está num pacote chamado 
Entidades, devemos referenciá-lo nessa classe escrevendo 
Entidades: Carro.
No exemplo abaixo, é mostrado um diagrama de 
pacotes que agrupa logicamente os casos de uso (que foram 
identificados na aula 2) em dois pacotes: o sistema de cadastro, 
que envolve os cadastros de carro, funcionário e cliente, e 
o sistema de locação, envolvendo as rotinas de cadastro de 
locação e encerramento de locação.
175
32Met. para de Desenvolvimento de Software
Até o momento, você viu apenas diagramas que 
documentam requisitos funcionais. Na seção a seguir, veremos 
um diagrama que mostra os requisitos não funcionais.
5 - Diagrama de Implantação
Tem como objetivo ilustrar o ambiente de software, 
redes e hardware onde o software será executado, permitindo 
que os programadores criem condições favoráveis a sua 
implantação. Ao contrário de todos os demais diagramas que 
você viu anteriormente, ele é mais relacionado aos requisitos 
não funcionais do que os requisitos funcionais.
A base geral a de um diagrama de implantação são os 
nós, que são retângulos. Um nó pode ter dentro dele vários 
outros nós. Ele possui um nome que o identifica, e um 
estereótipo, que marca qual é o tipo de objeto que o nó está 
representando. Vejamos alguns deles:
mundo físico, usados /ou resultantes de um processo 
de desenvolvimento. Por exemplo: Programas fontes, 
executáveis, tabela de banco de dados, scripts, documento do 
sistema, etc.
de um nó. Podem especificar atributos de um dispositivo 
computacional – que veremos adiante. Assim, podemos 
representar sistemas operacionais, sistemas gerenciadores de 
banco de dados etc.
computacional (servidores, roteadores, computadores etc.)
Esses nós são conectados por meio de associações, para criar 
caminhos de comunicação e sistemas em rede. Essas conexões 
são representadas por linhas retas que partem de um nó para 
outro no diagrama, e recebem um nome com o modelo dessa 
associação. Normalmente, essa relação é usada para descrever 
uma conexão entre dois dispositivos computacionais.
Agora vamos mostrar o diagrama de implantação para 
o sistema da locadora. Para que esse diagrama fosse feito, o 
analista teve que coletar algumas informações em relação ao 
ambiente onde o futuro sistema será implementado:
de Dados. Esse servidorusará o gerenciador de banco de 
dita, tendo como sistema operacional o Ubuntu Server 16.04, 
executando o servidor web Apache 2.4 e o interpretador 
PHP 7.1. Essa dupla fará com que o sistema da locadora seja 
sistema terão o Windows 7 64-bits instalado e usarão o 
ligados a um switch Gigabit de 36 portas, por meio de cabos 
TCP/IP de par trançado de 10/100Mbps.
A figura a seguir mostra o diagrama de implantação para 
essa situação do sistema:
176
33
Agora, para finalizar o nosso estudo, apresentaremos 
alguns outros diagramas que são previstos na UML.
6 - Outros Diagramas da UML
A UML também especifica outros diagramas, que são 
utilizados somente em situações específicas e não são tão 
amplamente utilizados quanto os outros diagramas que citamos 
aqui. Vamos citar alguns deles nesta seção.
Diagrama de Objetos: Mostra os objetos que foram 
instanciados das classes, mostrando o momento exato do 
sistema em um momento hipotético de execução. Ele tem 
a mesma notação que o diagrama de classes, com algumas 
diferenças:
escrever primeiro o nome do objeto, seguido por um sinal de 
dois-pontos e depois escrevemos o nome da classe à qual o 
objeto é instanciado.
Assim, se um objeto da classe Paciente toma 2 Remédios, as 
Diagrama de componentes: Mostra os componentes 
que vão integrar o software (podem ser frameworks, bibliotecas 
de terceiros, componentes de software, tabelas de banco de 
dados, seções do sistema etc). Esses componentes podem 
possuir interfaces (isto é, classes abstratas com operações) 
que permitem associações entre componentes do mesmo 
diagrama.
nome, separados por um sinal de igualdade.
177
34Met. para de Desenvolvimento de Software
Diagrama de Fluxo de Informações: É um diagrama 
que mostra a torça de informações entre as entidades do 
sistema (podendo ser uma classe, um ator etc.) em alguns 
níveis elevados de abstração. É um diagrama útil para 
informar a circulação de informações que há em um sistema. 
É composto por fluxos de informação (do inglês information 
flows, indicam para qual sentido navega uma informação) e 
itens de informação (que indicam informações adicionais 
dessa informação, chamado em inglês de information itens).
Com isso, finalizamos nosso estudo sobre UML. 
Esperamos que você tenha se interessado pelos diagramas 
que nós apresentamos nessas aulas. Nas próximas aulas, você 
aprenderá sobre as metodologias ágeis, um assunto que se 
tornou popular recentemente na Engenharia de Software.
Retomando a aula
1 – Diagrama de Sequência
Você observou que esse diagrama mostra como é a 
interação entre vários sujeitos da comunicação ao longo do 
tempo. Nesse tipo de diagrama podem conter objetos e em 
cada um deles, pode conter uma linha da vida. Esses objetos 
trocam mensagens entre si durante toda a sua existência no 
sistema.
2 – Diagrama de Comunicação
Você estudou que o diagrama de comunicação é similar 
ao diagrama de sequência, compartilhando os mesmos 
objetivos, só que de maneiras diferentes. Enquanto que em 
um diagrama de sequência é mostrado o fluxo de mensagens 
entre os objetos no decorrer do tempo, a ênfase do diagrama 
de comunicação é mostrar como os objetos estão vinculados 
e quais mensagens são trocadas entre si durante o processo.
3 – Diagrama de [Máquina de] Estados
Aqui, você viu que um Diagrama de Máquina de Estados 
consiste em um diagrama que apresenta o comportamento 
dinâmico de um objeto, apresentando em quais estados um 
objeto de uma determinada classe pode estar ao longo do seu 
ciclo de vida. 
4 – Diagrama de Pacotes
Um diagrama de pacotes consiste em dividir um sistema 
complexo em partes menores denominadas de pacotes, sendo 
que um pacote pode agrupar logicamente casos de uso, classes, 
diagramas e outros pacotes.
5 – Diagrama de Implantação
Tem como objetivo ilustrar o ambiente de software, redes 
e hardware onde o software será executado, permitindo que os 
programadores criem condições favoráveis a sua implantação. 
É um diagrama mais relacionado aos requisitos não funcionais 
do que a dos requisitos funcionais.
6 – Outros Diagramas da UML
A UML oferece vários outros diagramas, como Diagrama 
de Objetos, Diagrama de Componentes, Diagrama de Fluxo 
de Informações, entre outros.
PRESSMAN, Roger. Engenharia de Software. São Paulo-
SP: Makron Books, 2006.
SOMMERVILLE, I. Engenharia de Software. 8ª Edição. 
Addison Wesley, 2007.
James. UML – guia do usuário. Rio de Janeiro: Elsevier, 2012.
UML e 
C++-Guia prático de desenvolvimento orientado a objeto. São Paulo: 
Makron, 2002.
ENGHOLM JR, Hélio. Engenharia de Software na prática. 
São Paulo: Novatec Editora, 2010.
GÓES, Wilson Moraes. Aprenda UML por meio de estudos 
de caso. São Paulo: Novatec Editora, 2014.
BALZERT, Heide. UML 2: compacto. Rio de Janeiro: 
Elsevier, 2007.
Vale a pena
Vale a pena ler
Vale a pena acessar
FAKHROUTDINOV, Kirill. UML Information Flow 
Diagrams - Overview of Graphical Notation. [S.l.]: UML 
Diagrams, [s.d.]. Disponível em: <http://www.uml-diagrams.
org/information-flow-diagrams.html>. Acesso em: 04 out. 
2017.
MACEDO, Diego. Introdução a UML e seus diagramas 
- Diego Macêdo - Analista de T.I. [S.l.]: Diego Macedo, 
2012. Disponível em: <http://www.diegomacedo.com.br/
introducao-a-uml-e-seus-diagramas/>. Acesso em: 04 out. 
2017.
178

Continue navegando