Buscar

03 - Introdução UML

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao UML
Análise e Projeto de Sistemas I
Prof. Adriano Firmo de Paiva
Introdução a UML
• Originou-se da necessidade de produzir sistemas 
orientado a objetos, pois haviam linguagem OO e todas 
as técnicas até o momento eram voltadas para a análise 
estruturada.
• Foram criadas algumas técnicas:
• Grady Booch – técnica Booch.
• James Rumbaugh – técnica OMT.
• Ivar Jacobson – técnica OOSE.
Introdução a UML
• Em 1994, Booch, Rumbaugh e Jacobson uniram forças 
para combinar suas metodologias populares – Booch, 
OMT e OOSE. 
• Em 1996 foi apresentada a UML (Linguagem de 
Modelagem Unificada).
• UML é a junção do que havia de melhor nas três 
metodologias.
• A UML acabou com esta guerra, trazendo as melhores 
idéias de cada uma destas metodologias
Introdução a UML
UML
BOOCH
OMT
OOSE
▪ Diagrama de Estados
▪ Diagrama de Objetos
(colaboração).
▪ Diagrama de Processos
(desenvolvimento).
▪ Diagrama de Módulos
(componentes).
▪ Caso de Uso.
▪ Subsistemas (package).
▪ Diagrama de Interações.
▪ Miniespecificação.
▪ Diagrama de Estados.
▪ Diagrama de Classes.
Introdução a UML
• A UML não tem as características de um método.
• A UML não representa uma sequência de passos
para a resolução de um problema, como deveria
ser no caso de um método
• Então, a UML não é um método e sim uma
linguagem
Introdução a UML
• A UML pode ser utilizada tanto no
desenvolvimento de software como representar
sistemas mecânicos sem nenhum software,
descrevendo-os em termos de diagramas
orientados a objetos
Introdução a UML
◼ A UML é uma tentativa de padronizar a
modelagem orientada a objetos de uma forma
que qualquer sistema, seja qual for o tipo, possa
ser modelado corretamente, com consistência,
fácil de se comunicar com outras aplicações,
simples de ser atualizado e compreensível
UML - Objetivos
◼ O objetivos da UML são:
 A modelagem de sistemas (não apenas de
softwares) usando os conceitos da
orientação a objetos
Estabelecer uma união fazendo com que
métodos conceituais sejam também
executáveis
Criar uma linguagem de modelagem usável
tanto pelo homem quanto pela máquina
UML –Uso da UML
◼ A UML é usada no desenvolvimento dos mais
diversos tipos de sistemas
◼ Ela abrange sempre qualquer características de
um sistema em um de seus diagramas
◼ É também aplicada em diferentes fases do
desenvolvimento de um sistema, desde a
especificação de análise de requisitos até a
finalização com a fase de testes
UML –Uso da UML
◼ Um dos objetivos da UML é descrever qualquer
tipo de sistema, em termos de diagramas
orientados a objetos
◼ O uso mais comum é para criar modelos de
software, mas também é usada para
representar sistemas mecânicos
UML –Uso da UML
◼ Tipos de Sistemas que são utilizados a UML e
suas características mais comuns:
 Sistemas de Informação: Armazenar, pesquisar, editar
e mostrar informações para usuários
 Sistemas Técnicos: Manter e controlar equipamentos
técnicos como de telecomunicações, equipamentos
militares e ou processos industriais. Eles devem
possuir interfaces especiais do equipamento e menos
programação de software
UML –Uso da UML
❑ UML é...
❑ uma linguagem visual.
❑ independente de linguagem de 
programação.
❑ independente de processo de 
desenvolvimento.
❑ UML não é...
❑ uma linguagem programação (mas possui 
versões!).
❑ uma técnica de modelagem.
UML – Fases de Desenvolvimento
◼ Existem cinco fases no desenvolvimento de
sistemas de software (devem ser executadas
nesta ordem):
 Análise de Requisitos
 Análise
 Design (projeto)
 Programação
 Testes
UML – Fases de Desenvolvimento
◼ Análise de Requisitos:
 Captura as intenções e necessidades dos usuários do
sistema a ser desenvolvido através do uso de funções
chamadas “use-cases”
 Através do desenvolvimento de use-cases, as
entidades externas ao sistema (atores externos) que
interagem e possuem interesse no sistema são
modelados entre as funções que eles requerem,
funções estas chamadas de use-cases
UML – Fases de Desenvolvimento
◼ Análise de Requisitos:
 Os atores externos e os use-cases são modelados
com relacionamentos que possuem comunicação
associativa entre eles ou são desmembrados em
hierarquia
 O diagrama de use-cases mostrará o que os atores
externos, ou seja, os usuários do futuro sistema
deverão esperar do aplicativo, conhecendo TODA a
sua funcionalidade, sem importar como será
implementada
UML – Fases de Desenvolvimento
◼ Análise:
 A fase de análise está preocupada com as primeiras
abstrações (classes e objetos) e mecanismos que
estarão presentes no domínio do problema
 As classes são modeladas e ligadas através de
relacionamentos com outras classes, e são descritas
no diagrama de Classes
UML – Fases de Desenvolvimento
◼ Análise:
 As colaborações entre classes também são mostradas
neste diagrama para desenvolver os use-cases
modelados anteriormente
 Nesta fase somente serão modeladas classes que
pertençam ao domínio principal do problema do
software, ou seja, classes técnicas que gerenciem
banco de dados, interface, comunicação, concorrência
e outros não estarão presentes neste diagrama
UML – Fases de Desenvolvimento
◼ Design (Projeto):
 Nesta fase, o resultado da análise é expandido em
soluções
 Novas classes serão adicionadas para prover uma
infra-estrutura técnica: a interface do usuário e de
periféricos, gerenciamento de banco de dados,
comunicação com outros sistemas etc
UML – Fases de Desenvolvimento
◼ Design (Projeto):
 As classes do domínio do problema modeladas na
fase de análise são mescladas nessa nova infra-
estrutura técnica tornando possível alterar tanto o
domínio do problema quanto à infra-estrutura
 Resulta no detalhamento das especificações para a
fase de programação do sistema
UML – Fases de Desenvolvimento
◼ Programação:
 Nesta fase as classes provenientes do design são
convertidas para o código da linguagem orientada a
objeto escolhida
 O grau de dificuldade depende da escolha da
linguagem
 Não é aconselhável traduzir mentalmente os modelos
de análise e design em UML no momento de sua
criação
UML – Fases de Desenvolvimento
◼ Programação:
 Os modelos criados nas fases passadas são o
significado do entendimento e da estrutura do
sistema, porém ainda podem ser alterados caso o
analista julgue necessário, o que não pode é alterar a
programação sem alterar os modelos anteriores
senão estes não estarão mais demonstrando o real
perfil do sistema
 È uma fase separada e distinta onde os modelos
criados são convertidos em código
UML – Fases de Desenvolvimento
◼ Testes – temos 3 tipos de testes:
 Unidade: são para classes individuais ou grupos de
classes e são geralmente testados pelo programador
 Integração: são aplicados já usando as classes e
componentes integrados para se confirmar se as
classes estão cooperando uma com as outras como
especificado nos modelos
 Aceitação: observam o sistema como uma “caixa
preta” e verificam se o sistema esta funcionando
como o especificado nos primeiros diagramas de
use-cases
Diagramas UML
• Diagramas são representações gráficas de um conjunto de 
elementos.
• São utilizados para modelar, especificar, construir, documentar 
artefatos de um sistema.
• Permitem a visualização de um sistema sob diferentes pontos 
de vista.
Diagramas Estruturais 
(estático)
• Diagrama de classe.
• Diagrama de objeto.
• Diagrama de componentes.
• Diagrama de implementação.
Diagramas Comportamentais 
(dinâmico)
• Diagrama caso de uso.
• Diagrama de sequência.
• Diagrama de colaboração.
• Diagrama de gráfico de estados.
• Diagrama de atividades.
Quais diagramas utilizar?
Depende da complexidade do seu sistema
Como utilizar diagramas?
• De forma incremental
• Ampliando os diagramas uma parte de cada vez.
• De forma interativa
• Repetindo o processo de projetar uma pequena parte e construí-
la.
Levantamento e especificação 
dos requisitos
• Significa buscar todas as informações possíveis sobre aquilo 
que se espera do sistema.• Informações fornecidas por:
• Usuários
• Analise de documentos
• Outros sistemas
• Observação dos usuários ao interagirem com o sistema atual.
Requisitos funcionais
• São aqueles relacionados aos serviços que o sistema deve 
fornecer. 
• Especificam o que o sistema deve fazer.
• Exemplos:
• O sistema deve realizar venda.
• O sistema deve permitir devolver filme.
• O sistema deve permitir cancelar pedido.
Requisitos não funcionais
• Referem-se às restrições sobre as funções e as operações que 
o sistema deve fornecer ou realizar.
• Eles tratam de rotinas de backup, autenticação no sistema, 
desempenho, interface etc.
• O sistema deve ter interface web.
• O sistema deve realizar backup diário.
Objetivos dos Casos de Uso
• Descrever os requisitos funcionais do sistema, mostrando que 
desenvolvedores e clientes estão de acordo sobre o que será 
desenvolvido.
• Fornecer uma visão clara sobre o que o sistema deve fazer.
• Fornecer uma base para a execução de testes que verifiquem 
se o sistema trabalha apropriadamente.
Casos de Uso
• Os casos de usos representam as interações dos atores com o 
sistema.
• Um caso de uso captura uma funcionalidade do sistema.
• Não revelam a estrutura e o comportamento interno do 
sistema. 
• Há várias formas para descrever casos de uso: 
• um texto contínuo 
• uma sequência numerada 
• a utilização de tabelas.
Texto contínuo
• O cliente chega à livraria. No terminal de consulta, o sistema 
mostra as formas de pesquisa (por título da obra, pelo nome 
do autor, pelo nome da editora). 
Sequência numerada
1. Cliente chega à livraria e dirige-se a um terminal de 
consulta.
2. O sistema exibe as formas de pesquisa (por título da obra, 
pelo nome do autor, pelo nome da editora).
3. O cliente escolhe a forma de pesquisa que lhe interessa.
4. O sistema exibe as informações sobre o produto desejado.
Tabela
Diagramas de Casos de Uso
• Representa, graficamente, todos os casos de uso de um 
sistema, utilizando a linguagem UML.
• Por meio dele é possível visualizar, em um alto nível de 
abstração, quais os elementos (atores) interagem com o 
sistema em cada funcionalidade.
Ator
Meta 1
Meta 2
Quais metas eu quero 
atingir ao utilizar o 
sistema?
Diagramas de Casos de Uso
Diagramas de Casos de Uso
• Objetivos:
• Delimitação do contexto de um sistema
• Documentação e o entendimento dos requisitos
• Descrição dos requisitos funcionais
• Principal saída da etapa de especificação de 
requisitos
• Principal entrada da etapa de análise
• Facilitam a comunicação entre os stakeholders
• São a base para a definição do cronograma
• Auxiliam na elaboração dos casos de teste
Atores
• São as entidades que interagem com o sistema.
• É sempre o ator que causa o estimulo.
• Sempre está fora do sistema.
• Atores podem ser:
• Pessoas (Empregado, cliente, gerente, aluno,
professor);
• Organizações ( Empresa Fornecedora, Administradora de 
cartões);
• Outros Sistemas ( Sistema de estoque, Sistema de
cobrança);
• Equipamentos (Leitora de cartões, Sensores, Alarmes); 
Identificando os Atores
Essa 
entidade é 
algo que eu 
possa mudar 
dentro do 
sistema?
Essa entidade 
provavelmente 
não é um ator.
Essa entidade 
provavelmente 
é um ator.
Essa 
entidade é 
uma pessoa 
que interage 
com o 
sistema?
sim
não
não
sim
entidade
Diagramas de Casos de Uso
• Conectando atores e casos de uso:
• Os atores e os casos de uso com os quais eles interagem
são ligados pela associação de comunicação.
• A seta é opcional, mas, quando usada, ela indica qual elemento
começa a interação.
• Para entender plenamente o papel definido para um ator, você
deve saber em que casos de uso o ator está envolvido.
• Para entender plenamente o alcance de um caso de uso,
você deve saber os atores com os quais ele se comunica.
Diagramas de Casos de Uso
• Exemplos:
• Cliente de banco pode usar um caixa automático para:
• Sacar dinheiro
• Transferir dinheiro
• Consultar saldo 
Diagramas de Casos de Uso
• O nome do caso de uso deve ser único.
• Deve estar na perspectiva do ator que dispara o caso de uso.
• Deve iniciar com o verbo no infinitivo.
Fazer Matrícula Consultar Notas Realizar Saque
Relações em Casos de Uso
• <<include>>: incorpora o comportamento de um caso de uso 
à outro caso de uso.
Relações em Casos de Uso
• <<include>>: Identificar usuário é uma funcionalidade que
poderia ser interna de sacar dinheiro e de depositar dinheiro
mas sendo comum a vários casos de uso, é mais interessante
modelar identificar usuário em um caso de uso que permita o
reuso do mesmo.
• Assim, todos os casos de uso que necessitem identificar
usuário de forma obrigatória é ligado ao caso de uso
Identificar usuário através do relacionamento de inclusão.
Relações em Casos de Uso
• <<include>>: Pode ser usada para:
• Representar comportamentos reutilizáveis
• Simplificar fluxos de eventos complexos
• Quando existe uma dada função dentro do sistema que
aparece em vários casos de uso, ou seja ela é utilizada por
várias funcionalidades, podemos modelar essa função em um
caso de uso uma única vez e ligá-la a todos os casos de uso
que incluem essa função comum, dizendo que essa função é
usada em diferentes partes do meu software.
Relações em Casos de Uso
• <<extend>>: indica que o comportamento estendido poderá 
ou não ser usado. O uso do comportamento estendido é 
opcional.
Relações em Casos de Uso
• <<extend>>: Nesse relacionamento de extensão estou
definindo que ao acessar a funcionalidade encerrar conta
pode ser necessário ou não sacar dinheiro (Se a conta tem
saldo positivo, vou sacar dinheiro) mas essa funcionalidade
não é obrigatória, caso a conta tem saldo igual a zero não
ocorrerá a funcionalidade de sacar dinheiro. É opcional.
Relações em Casos de Uso
• <<extend>>: Pode ser usada para:
• Simplificar fluxos de eventos complexos
• Representar comportamentos opcionais
• Lidar com exceções 
• Por exemplo, em uma descrição de um caso de uso temos
fluxos básicos e fluxos alternativos, quando um fluxo
alternativo é complexo e opcional podemos modelá-lo como
um caso de uso, ligando-o ao caso de uso de origem por um
relacionamento de extensão.
Relações em Casos de Uso
• Generalização: utilizado para criar um caso de uso específico 
baseado em um caso de uso geral.
Relações em Casos de Uso
• Generalização: Um caso de uso pode especializar outro caso
de uso:
• Adicionando o fluxo de eventos original
• Refinando o fluxo de eventos original
• Especialização permite modelar comportamento diferenciado
entre um caso de uso base e casos de uso filhos.
• Pouco utilizado.
• Pode existir entre atores também
Relações em Casos de Uso
• Generalização: Quando o usuário acessar a funcionalidade
consultar saldo, essa funcionalidade vai se dar de uma maneira
específica:
• ou consultar saldo na tela
• ou consultar saldo impresso.
Relações em Casos de Uso
Relações em Casos de Uso
• Na inclusão partimos do caso de uso base para o caso de uso que 
será incluído 
• Na extensão parte do caso de uso opcional para o caso de uso base 
Relações entre atores
• Não existe ligação entre atores.
• Atores são entidades externas do sistema, portanto a
comunicação entre eles está fora do escopo do sistema, não
devendo ser modelada no diagrama de caso de uso, um vez que
ele modela apenas as funcionalidades do sistema.
Relações entre atores
• Alguns casos de uso são
utilizados por vários atores,
para simplificar o diagrama e
diminuir o número de
associações, cria-se um ator
genérico.
• Além disso alguns casos de
uso são exclusivos de apenas
um ou alguns atores, mas
não de todos.
• Generalização pode
simplificar a representação
gráfica do sistema
Relações entre atores
• Sem generalização Com generalização
Detalhando um Caso de Uso
Fonte: Bezerra (2007)

Continue navegando