Buscar

Visões da UML e Ferramentas CASE

Prévia do material em texto

Unidade II
PROJETO DE SISTEMAS ORIENTADO A OBJETOS
Prof. André Luiz
Visões da UML
 Segundo a abordagem de Kruchten (1995), um sistema de 
software pode ser organizado em cinco visões e cada visão 
possui um conjunto de diagramas UML, que representam 
aspectos particulares desse sistema.
Fonte: livro-texto
Visão de processoVisão lógica
Visão de 
caso de urso
Visão de
implementação
Visão de 
implantação
Visões da UML
Visão de caso de uso
 Tem como objetivo capturar as funcionalidades, os requisitos, 
e seu comportamento sob a ótica do usuário final, ou dos 
atores.
 A visão de caso de uso é centralizada, uma vez que o que 
é produzido nessa visão é a base para as outras visões 
do sistema.
Visões da UML
Visão lógica
 Também chamada de visão de projeto ou visão de classe, tem 
como objetivo representar como as funcionalidades serão 
implementadas sob o aspecto da solução de projeto.
 Representa a estrutura estática de um sistema, seus 
componentes e o relacionamento entre eles e como eles 
interagem para resolver um determinado problema. Essa 
interação é capturada pela estrutura dinâmica do sistema.
Visões da UML
Visão de processo
 Também chamada de visão de concorrência, a visão de 
processo tem como objetivo capturar os aspectos não 
funcionais de um sistema.
 A visão de processo representa uma visão mais técnica 
do sistema tratada como unidades de processos e 
processamentos, que podem ocorrer de forma síncrona 
ou paralela. 
Visões da UML
Visão de implementação
 Também chamada de visão de componentes, a visão de 
implementação tem como objetivo representar aspectos 
físicos necessários para a construção do sistema e como eles 
interagem e fazem interface com o sistema.
 São exemplos desses aspectos físicos: sistemas de software, 
programas e rotinas internas, bancos de dados e bibliotecas.
Visões da UML
Visão de implantação
 Também chamada de visão de organização, tem como 
objetivo representar a organização física de hardware do 
sistema, como computadores, servidores e periféricos, e 
como eles se relacionam com o sistema.
 Essa visão é utilizada principalmente no processo de 
implantação, também chamado de instalação ou distribuição 
do sistema.
Visões x diagramas UML
Fonte: livro-texto
Conceito de projeto (design)
 Na fase de análise, trabalhamos com mais ênfase na visão de 
caso de uso, desenvolvendo os diagramas de caso de uso, de 
processo e de atividade, além de trabalhar com os diagramas 
de classe e sequência sob o aspecto de conhecimento do 
domínio.
 Já na fase de projeto, daremos ênfase à visão lógica, bem 
como à visão de implementação e a de implantação, que são as 
visões que dão suporte à modelagem sob o aspecto de 
construção.
Interatividade
A modelagem de um sistema utilizando a UML pode ser dividida 
em cinco visões. Qual da visões apresenta os diagramas que 
tem foco na fase de projeto de software?
a) Visão de implantação.
b) Visão lógica.
c) Visão de implementação.
d) Visão de processo.
e) Visão de casos de uso.
Resposta
A modelagem de um sistema utilizando a UML pode ser dividida 
em cinco visões. Qual da visões apresenta os diagramas que 
tem foco na fase de projeto de software?
a) Visão de implantação.
b) Visão lógica.
c) Visão de implementação.
d) Visão de processo.
e) Visão de casos de uso.
Estrutura de diagramas da UML
 Os diagramas UML podem ser divididos em estáticos e 
dinâmicos.
 O modelo estático representa a coleção de objetos, seus 
atributos, métodos e relacionamentos.
 O modelo dinâmico, também chamado de visão 
comportamental, tem como objetivo representar a interação 
entre os objetos ao longo de uma linha de tempo.
Estrutura de diagramas da UML
Fonte: livro-texto
Ferramentas CASE
 Ferramentas, de qualquer natureza, são utilizadas na 
engenharia para dar suporte ou auxiliar na execução 
de uma ou mais atividades.
 CASE é o acrônimo em inglês para Computer-Aided Software 
Engineering, ou em português: Engenharia de Software
Auxiliada por Computador.
 Sommerville (2010) define CASE como “o processo 
de desenvolvimento de software com uso de suporte 
automatizado”.
Ferramentas CASE
Algumas das principais características de uma ferramenta CASE:
 Criação de diagramas e manutenção da consistência entre 
esses diagramas.
 Engenharia reversa: geração de código a partir de diagramas 
e vice-versa.
 Gerenciamento de versão.
 Gerenciamento de mudança.
 Testes automáticos, verificação e relatórios.
Ferramentas de modelagem
 Existem diversas ferramentas CASE que seguem o padrão da 
UML e são um excelente apoio para a elaboração de diagramas.
 Algumas são gratuitas, outras são pagas.
As mais utilizadas são:
 Enterprise Architect.
 Rational Modeler.
 Visual Paradigma.
 Astah.
 StarUML.
Tecnologia de apoio ao projeto – back-end
 Tecnologias de apoio ao projeto classificadas como back-end
estão relacionadas ao gerenciamento e ao armazenamento 
das informações. São os Sistemas Gerenciadores de Banco 
de Dados (SGBD).
 Um Sistema de Gerenciamento de Banco de Dados (SGBD) é 
uma coleção de dados inter-relacionados e um conjunto de 
programas para acessar esses dados e recuperar informações 
de forma conveniente e eficiente.
Tecnologia de apoio ao projeto – back-end
 História dos SGBDs
Fonte: livro-texto
Tecnologia de apoio ao projeto – back-end
 A diferença conceitual do modelo orientado a objetos para 
o E-R está em alguns pontos:
 No modelo orientado a objetos, cada objeto possui um 
conjunto de códigos que operam sobre esse objeto, 
chamado de método.
 Objetos que possuem o mesmo conjunto de atributos 
e métodos são denominados classe.
 Cada objeto possui uma identidade única independente 
dos valores contidos em seus atributos.
 Adoção de mecanismos de relacionamento: composição, 
agregação e herança.
Tecnologia de apoio ao projeto – back-end
Comparativo de banco de dados relacional e orientado a 
objetos:
Fonte: livro-texto
T
e
m
p
o
 d
e
 r
e
s
p
o
s
ta
Banco de dados 00
Banco de dados relacional
Complexidade de objetos
Tecnologia de apoio ao projeto – front-end
 Tecnologias de apoio front-end são as linguagens de 
programação OO.
 As linguagens de programação orientada a objetos são 
mecanismos de implementação do modelo de projeto que 
desenhamos na fase de projeto.
Pré-requisitos de uma linguagem OO:
 Encapsulamento de dados.
 Implementar métodos.
 Troca de mensagens entre os objetos.
 Herança.
Tecnologia de apoio ao projeto – front-end
Principais linguagens OO:
 Microsoft .NET
 Java
Há diversas discussões:
 Qual a mais utilizada?
 Qual a mais flexível?
 Qual a mais produtiva?
Interatividade
Várias tecnologias apoiam a elaboração da fase de projeto, 
sejam elas ferramentas CASE, back-end ou front-end. Qual dos 
itens abaixo representa uma tecnologia de back-end?
a) Linguagem OO.
b) Rational Modeler.
c) Banco de dados.
d) UML.
e) Nenhuma das alternativas.
Resposta
Várias tecnologias apoiam a elaboração da fase de projeto, 
sejam elas ferramentas CASE, back-end ou front-end. Qual dos 
itens abaixo representa uma tecnologia de back-end?
a) Linguagem OO.
b) Rational Modeler.
c) Banco de dados.
d) UML.
e) Nenhuma das alternativas.
Passando da análise ao projeto
 Na fase de análise, produzimos o modelo de classes de 
domínio que representa a estrutura estática do sistema.
 Nesse modelo são representados os atributos, os métodos 
e como as classes se relacionam (herança, ligação,composição e agregação).
 O modelo de classes evolui durante o ciclo de vida do 
software e na fase de projeto (design) é utilizado para 
representar objetos da solução.
Refinando o diagrama de classes
Há três perspectivas do modelo de classes:
 Modelo conceitual.
 Modelo de projeto.
 Modelo de implementação.
Refinando o diagrama de classes
 Modelo conceitual
 Desenvolvido na fase de análise, esse modelo representa as 
classes no domínio do negócio em questão e não leva em 
consideração restrições inerentes à tecnologia a ser 
utilizada na solução de um problema.
Refinando o diagrama de classes
 Modelo de projeto
 Também chamado de modelo de especificação, o modelo de 
projeto é desenvolvido na fase de projeto (design) e é uma 
evolução do modelo conceitual, no qual são adicionados 
detalhes da solução de software.
Fonte: livro-texto
Modelo de projeto
Deve incluir:
 Identidade: identificador em termos de implementação. 
 Atributos: definir os tipos de dados de cada atributo, como 
Integer, String, Double, Decimal etc. e a sua visibilidade.
 Métodos: definir as assinaturas dos métodos e sua visibilidade.
Fonte: livro-texto
Modelo de projeto
Deve incluir:
 Criar as classes do tipo coleção do modelo de domínio.
Fonte: autor próprio.
Fonte: o autor
Modelo de projeto
 Exemplo: diagrama de classes de projeto
Classe de domínio
Classe de projeto
Fonte: o autor
Refinando o diagrama de classes
 Modelo de implementação
 O modelo de classes de implementação corresponde à 
implementação das classes em alguma linguagem de 
programação, por exemplo, C# (Microsoft .Net Framework) 
ou Java.
Fonte: livro-texto
Tipos de classes
 Classe entidade
 As classes de entidade representam as informações e os 
comportamentos que são, de alguma forma, armazenados no 
sistema. 
 Por exemplo: classe cliente, pedido, produto.
Tipos de classes
 Classe fronteira
 São os objetos que têm como responsabilidade dividir o 
ambiente interno do sistema e suas interações externas.
 Podemos interpretar interações externas a um sistema como 
toda e qualquer comunicação que um sistema faz com outros 
sistemas.
 Por exemplo: cartão de crédito, Serasa, envio de informações 
para sistemas governamentais, interações com o SGBD etc.
Tipos de classes
 Classe controle
 São objetos que têm como objetivo realizar o sequenciamento 
da execução de um caso de uso na estrutura de objetos do 
sistema, bem como fazer a coordenação entre as camadas 
internas do sistema, representadas pelas classes de entidade, 
com as camadas externas ao sistema, representadas pelas 
classes de fronteira.
 Essas classes são típicas do modelo de classes de projeto 
para melhorar as implementações de negócio.
Interatividade
O diagrama de classes evolui do modelo de domínio para o 
modelo de projeto com um maior detalhamento das classes 
envolvidas. Qual opção apresenta uma das atividades para o 
modelo de projeto?
a) Alterar o nome de atributos e métodos.
b) Incluir nomes nas classes.
c) Definir o relacionamento entre as classes.
d) Identificar classes de negócio.
e) Atribuir visibilidade a atributos e métodos.
Resposta
O diagrama de classes evolui do modelo de domínio para o 
modelo de projeto com um maior detalhamento das classes 
envolvidas. Qual opção apresenta uma das atividades para o 
modelo de projeto?
a) Alterar o nome de atributos e métodos.
b) Incluir nomes nas classes.
c) Definir o relacionamento entre as classes.
d) Identificar classes de negócio.
e) Atribuir visibilidade a atributos e métodos.
Modelando aspectos dinâmicos do projeto
 O objetivo dessa fase é a representação da interação dos 
objetos de forma dinâmica. 
 O dinamismo está relacionado à representação do estado 
e do comportamento do objeto em uma linha de tempo.
 O modelo dinâmico é lógica de funcionamento de uma 
aplicação orientada a objetos.
Modelando aspectos dinâmicos do projeto
 O modelo de interação dos objetos representa a forma pela 
qual eles interagem para resolver um determinado problema.
 A interação dos objetos se dá pela troca de mensagens, 
as quais são o centro da representação desse modelo.
 As mensagens podem ser:
 Chamada de um método.
 Fila de mensagens.
 Evento.
Modelando aspectos dinâmicos do projeto
 Chamada de um método
 É o tipo mais utilizado de mensagem. Significa que um objeto 
está solicitando a execução de um método de outro objeto.
Fonte: livro-texto
Modelando aspectos dinâmicos do projeto
 Fila de mensagens:
 Utilizando um tipo de serviço bem específico e especializado 
para envio e recebimento de mensagens contínuas.
 Evento:
 Quando uma mensagem é enviada para um objeto do 
sistema originário de um evento externo ao sistema. 
É comum que esse tipo de mensagem seja próprio da 
comunicação entre atores e objetos. 
 Exemplo: um clique de mouse.
Tipos de mensagens
Mensagens síncronas:
 São mensagens que implicam um sincronismo rígido entre os 
estados do objeto que envia a mensagem e os do objeto de 
destino da mensagem, ou seja, um objeto chama o outro e 
aguarda pela sua resposta. É o tipo mais comum.
Mensagens assíncronas:
 Não há dependência de estado do objeto chamador e do 
processamento do objeto chamado. O objeto chamador envia 
a mensagem e continua o seu processamento. 
Exemplo de uma modelagem dinâmica
Fonte: livro-texto
Tipos de mensagens
Autodelegação de mensagens: 
 Um objeto pode enviar uma 
mensagem para ele mesmo, 
solicitando a execução de 
um método. O método que 
só pode ser chamado pelo 
próprio objeto é um método 
privado.
Fonte: livro-texto
Tipos de mensagens
 Criação e destruição de objetos 
 No ciclo de vida de um objeto, existem dois métodos, 
construtores e destrutores, que têm como objetivo criar e 
remover um objeto da estrutura de memória de um sistema. 
São representados pelos estereótipos <<create>> e 
<<destroy>> no diagrama de interação.
Fonte: o autor
Representação de fluxos alternativos
 Os diagramas de sequência podem representar os fluxos 
alternativos de um caso de uso.
Fonte: livro-texto
Representação de repetição
 Os diagramas de sequência podem representar repetições de 
chamada dentro do ciclo de vida do objeto.
Fonte: livro-texto
Interatividade
A modelagem dinâmica representa a interação dos objetos ao 
longo do tempo de execução de uma funcionalidade. Assinale a 
alternativa que apresenta o que pode ser representado em um 
diagrama de sequência.
a) Estruturas de repetição.
b) Fluxos alternativos.
c) Criação e destruição de objetos.
d) Troca de mensagens síncronas e assíncronas.
e) Todas as alternativas estão corretas.
Resposta
A modelagem dinâmica representa a interação dos objetos ao 
longo do tempo de execução de uma funcionalidade. Assinale a 
alternativa que apresenta o que pode ser representado em um 
diagrama de sequência.
a) Estruturas de repetição.
b) Fluxos alternativos.
c) Criação e destruição de objetos.
d) Troca de mensagens síncronas e assíncronas.
e) Todas as alternativas estão corretas.
ATÉ A PRÓXIMA!

Continue navegando