Slides de Aula - Unidade IV
Slides de Aula - Unidade IV
Projeto de Sistemas
Orientado a Objetos
Até o momento, nas unidades I, II e III foram vistas a passagem do modelo de análise para o
modelo de projeto, o que deu entrada na fase de projetos, nas atividades de projeto de
dados e classes e também nas atividades de projeto arquitetural.
Agora já se sabe quais os objetivos de cada atividade e quais modelos precisam ser
produzidos na componentização do sistema, com o auxílio da UML.
Na unidade IV será visto como produzir os modelos que tratam do projeto de interfaces e o
projeto de componentes com objetivo de prover maior qualidade da informação que é
passada para a equipe de construção e demais envolvidos no projeto.
Neste contexto, os principais diagramas a serem abordados na unidade IV são: diagrama de
comunicação, diagrama de máquina de estados e o diagrama de pacotes.
Diagrama de comunicação
O diagrama de comunicação passou a ter esse nome a partir da versão 2.0 da UML; nas
versões anteriores, esse diagrama é chamado de diagrama de colaboração (UML-
DIAGRAMS, 2009-2014b).
A característica marcante do diagrama de comunicação é a forte semelhança com o
diagrama de sequência. As informações modeladas em ambos são, no geral, as mesmas,
todavia, a representação em cada um dos modelos possui ênfases diferentes.
O diagrama de comunicação é um tipo de diagrama comportamental da UML que representa
as interações de dois objetos e suas partes utilizando para isso uma sequência de
mensagens representadas de forma livre de formatação (UML-DIAGRAMS, 2009-2014b).
O diagrama de comunicação é um complemento do diagrama de sequência.
Saiba mais:
UML-DIAGRAMS. Timing diagrams, 2009-2014a
Fonte:
http://www.uml-diagrams.org/timing-diagrams.html.
Diagrama de comunicação – Características
Saiba mais:
IBM Knowledge Center. Criando Diagramas de Comunicação.
Fonte:
https://www.ibm.com/support/knowledgecenter/pt-
br/SS8PJ7_9.6.1/com.ibm.xtools.sequence.doc/topics/twrkcommnd.html.
Diagrama de comunicação – Quando usar!
Lembrete:
Diagramas de sequência e de comunicação são
complementares.
O desenvolvimento do diagrama de comunicação a partir de um
de sequência (ou vice-versa) é também uma atividade
revisional e de melhoria, que pode:
Identificar pontos de falhas ou omissões no projeto.
Erros de relacionamento no projeto arquitetural.
Diagrama de comunicação – Elementos que o compõem
Carrinho(Cliente)
2.1:recuperar_livros() carrinhoCompras
2.2:[não vazio(Carrinho)]finalizar_compra()
:Compra
C Representação de vínculo
D Indicador: sequência de mensagens 2.3:[compra_encerrada] atualizar_estoque()
E Mensagem 1.1:procurar()
Carrinho(Cliente)
2.1:recuperar_livros() carrinhoCompras
2.2:[não vazio(Carrinho)]finalizar_compra()
:Compra
comunicação.
As mensagens procurar_livros() e
procurar ()
finalizarCompra(Carrinho)
Diagrama de comunicação – Analogia com diagrama de sequência
1.2:[livro_interessado]
abordagem com o diagrama de comunicação, visualizar_livro() I:Livro
:Compra
Observe o diagrama de sequência abaixo, sobre Contas a Pagar. Assinale a alternativa que
apresenta a melhor interpretação deste diagrama para a montagem do diagrama de
comunicação.
a) A numeração de Dados do Beneficiário() é 1.1.
b) A numeração de Efetua Pagamento () é 3.1.
c) O ator é Usuário; e Contas a Pagar e Banco são estados da comunicação.
d) O estereótipo de retorno <<Comprovante de Pagamento >> recebe a numeração 4.1.
e) O indicador de Efetua Pagamento() por estar no nível dois é uma linha tracejada.
2:Dados do Beneficiário()
3:Dados Bancários()
4: Efetua Pagamento()
<<Comprovante de Pagamento>>
Fonte: MORENO (2020).
Resposta
Observe o diagrama de sequência abaixo, sobre Contas a Pagar. Assinale a alternativa que
apresenta a melhor interpretação deste diagrama para a montagem do diagrama de
comunicação.
a) A numeração de Dados do Beneficiário() é 1.1.
b) A numeração de Efetua Pagamento () é 3.1.
c) O ator é Usuário; e Contas a Pagar e Banco são estados da comunicação.
d) O estereótipo de retorno <<Comprovante de Pagamento >> recebe a numeração 4.1.
e) O indicador de Efetua Pagamento() por estar no nível dois é uma linha tracejada.
2:Dados do Beneficiário()
3:Dados Bancários()
4: Efetua Pagamento()
<<Comprovante de Pagamento>>
Fonte: MORENO (2020).
Diagrama de máquina de estado
O Diagrama de Estados era conhecido nas versões anteriores da linguagem como Diagrama
de Gráfico de Estados, tendo assumido a nova nomenclatura a partir da versão 2.0.
O Diagrama de Estados procura acompanhar as mudanças sofridas por um objeto dentro de
um determinado processo.
O elemento estado a ser representado no diagrama de estados é, na maioria das vezes, uma
instância de uma classe, um objeto, uma vez que um objeto, pelos princípios da orientação a
objetos, possui um estado (LARMAN, 2007).
O diagrama de estado pode representar também a mudança de estados de um caso de uso.
Saiba mais:
IBM Knowledge Center. Modelando o Comportamento do Objeto Utilizando Diagramas de
Máquina de Estado.
Fonte: https://www.ibm.com/support/knowledgecenter/pt-
br/SS4JE2_7.5.5/com.ibm.xtools.modeler.doc/topics/twrksmd.html. Consultado em 25/06/2020.
Diagrama de máquina de estado – Entendendo o estado
Estado inicial
Estado final [cartão removido] [cartão inserido]
Ativo
[dispensar notas]
Efetuando dispensa Efetuando contagem
[contar notas]
de cédulas de cédulas
Inicial
[notas prontas]
Dispensando cédulas
Final
Fonte: VERSOLATTO (2015).
Diagrama de máquina de estado – Paralelismo
No diagrama de máquina de
estados é possível representar
Inicial Bifurcação
processamentos paralelos.
Para representar esse
paralelismo são utilizados alguns
mecanismos, como a barra de Imprimindo folha Exibindo número da
página impressa
bifurcação e a barra de união,
como mostra o figura: União
Finalizando
impressão
Efetuando saque
Produto adicionado
Efetuando saque
Finalizando processo
Fonte: VERSOLATTO (2015).
Analise cada definição como Verdadeira (V) ou Falsa (F) e assinale a alternativa correta.
I. O estado representa a situação de um determinado elemento em um determinado
momento.
II. É paralelismo quando um estado envia uma ordem simultânea para dois outros estados.
III. Um “relatório de log” é considerado um pseudoestado de história.
a) F, F, F.
b) F, V, F.
c) V, F, V.
d) V, V, F.
e) V, V, V.
Resposta
Analise cada definição como Verdadeira (V) ou Falsa (F) e assinale a alternativa correta.
I. O estado representa a situação de um determinado elemento em um determinado
momento.
II. É paralelismo quando um estado envia uma ordem simultânea para dois outros estados.
III. Um “relatório de log” é considerado um pseudoestado de história.
a) F, F, F.
b) F, V, F. Inicial Bifurcação
c) V, F, V.
d) V, V, F. Paralelismo.
e) V, V, V. Imprimindo folha Exibindo número da
página impressa
União
Inicial
Finalizando
impressão
[produto adicionado]
Fonte: VERSOLATTO (2015).
[continuar seleção]
Saiba mais:
ORACLE Corporation Visão geral do Oracle Waveset 8.1.1. Entendendo a arquitetura HA
recomendada.
Fonte: https://docs.oracle.com/cd/E19225-01/821-0762/ghzqp/index.html, 2010. Consultado em
25/06/2020.
Especificando as interfaces dos objetos
Pacotes
Por quê?
Quando?
Saiba mais:
IBM Knowledge Center. Especificando Diagramas UML Padrão para Pacotes.
Fonte:
https://www.ibm.com/support/knowledgecenter/pt-
br/SS4JE2_7.5.5/com.ibm.xtools.modeler.doc/topics/tsetdefdiag.html. Consultado em 25/06/2020.
Diagrama de pacotes
Internet banking
Vendas
Contratar
Cliente Pedido empréstimo
efetua
Consultar
saldo
Saiba mais:
IBM Knowledge Center. Estereótipos UML
Fonte:
https://www.ibm.com/support/knowledgecenter/pt-
br/SS4JE2_7.5.5/com.ibm.xtools.modeler.doc/topics/cstereotyp.html. Consultado em 25/06/2020.
Diagrama de pacotes – Herança de pacotes
Windows User Interface Window Linux User Interface Window Mac User Interface Window
De acordo com a ISO 25010 (2011a), a usabilidade se encaixa entre seis características que
delimitam a qualidade de um produto, que são: confiabilidade, funcionalidade, eficiência,
manutenibilidade, portabilidade e usabilidade.
Saiba mais:
GOLDEN, E.; JOHN, B. E.; BASS, L. The value of a usability-supporting architectural pattern in
software architecture design: a controlled experiment. In: INTERNATIONAL CONFERENCE ON
SOFTWARE ENGINEERING – ICSE, 2005, St. Louis. Proceedings... St. Louis: ICSE, 2005.
Projeto de componentes − Componentização e reúso de software
A representação de interface de
componentes é feita como mostra a figura.
Nessa figura, o componente DLL possui
uma interface que é consumida pelo
executável; o conector convexo indica a
interface <<library>>, e o conector côncavo
indica o consumidor <<executable>>.
Analise cada definição como Verdadeira (V) ou Falsa (F) e assinale a alternativa correta.
I. A componentização pode ser feita com uma visão orientada a objetos.
II. Um componente deve ter a capacidade de ser distribuído.
III. Um componente deve ter baixo acoplamento e alta coesão.
a) F, F, F.
b) F, V, F.
c) V, F, V.
d) V, V, F.
e) V, V, V.
Resposta
Analise cada definição como Verdadeira (V) ou Falsa (F) e assinale a alternativa correta.
I. A componentização pode ser feita com uma visão orientada a objetos.
II. Um componente deve ter a capacidade de ser distribuído.
III. Um componente deve ter baixo acoplamento e alta coesão.
a) F, F, F.
b) F, V, F.
c) V, F, V.
d) V, V, F.
e) V, V, V.
Referências
CHEESMAN, J.; DANIELS, J. UML components: a simple process for specifying component
based software. Addison-Wesley, 2000.
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION (ISO). ISO 25010: systems
and software engineering – Systems and software quality requirements and evaluation
(square) – system and software quality models. Geneve: ISO, 2011a.
LARMAN, C. Utilizando UML e padrões: uma introdução à análise e aos projeto orientados a
objetos e ao processo unificado. 2. ed. Porto Alegre: Bookman, 2007.
UML-DIAGRAMS. Timing diagrams, 2009-2014a. Disponível em:<http://www.uml-
diagrams.org/timing-diagrams.html>. Acesso em: 28 abr. 2015.
ATÉ A PRÓXIMA!