Prof. Wanderson Leandro de Oliveira
wanderson.l.oliveira@anhaguera.com
https://sites.google.com/site/wleandrooliveira
ANALISE DE SISTEMAS II
UML
UNIFIED MODELING LANGUAGEM
Bibliografia
BOOCH, Grady; RUMBAUGH, James; JACOBSON,
Ivar. UML: guia do usuário. 2.ed. rev. e atual. Rio de Janeiro: Elsevier, Campus, 2006.
MELO, Ana Cristina. Desenvolvendo aplicações com
UML 2.2: do conceitual à implementação. 3.ed. Rio de Janeiro: Brasport, 2010.
LARMAN, Craig. Utilizando UML e padrões: uma
OBJETIVOS
Compreender melhor o sistema que estamos
desenvolvendo.
Visualizar o sistema.
Documentar decisões tomadas
Especificar comportamento ou a estrutura
DEFINIÇÃO - UML
LINGUAGEM UNIFICADA DE MODELAGEM:
É uma linguagem para especificação,
construção, visualização e documentação
de sistemas.
É uma evolução das linguagens para
HISTÓRICO - UML
Início em Outubro de 1994: Booch e Jim Rumbaugh começaram um
esforço para unificar o método de Booch e OMT (Object Modeling Language).
Uma primeira versão, chamada Unified Method, foi divulgada em
outubro de1995.
Jacobson juntou-se ao grupo, agregando o método OOSE
(Object-Oriented Software Engineering) .
O esforço dos três resultou na liberação da UML versão 0.9 e 0.91 em
junho e outubro de 1996. Em janeiro de 1997, foi liberada a versão 1.0 da UML.
Adotada como padrão segundo a OMG (Object Management Group,
http://www.omg.org/) em Novembro de 1997.
ORIGENS - UML
DIAGRAMAS - UML
Diagrama de Atividade;
Diagrama de Classe – Estrutura de Classificação; Diagrama de Comunicação – Interações;
Diagrama de Componentes - Estrutura de Classificação; Diagrama de Estrutura composta;
Diagrama de implantação;
Diagrama de Revisão de Interação; Diagrama de Objetos – Classificação; Diagrama de pacote – Pacotes
Diagrama de Perfil - Pacotes; Diagrama de Estado de Máquina; Diagrama de Sequência;
Diagrama de comportamento; Diagrama de Caso de Uso.
FERRAMENTAS DE APOIO
Diversas empresas lançaram ferramentas para
FERRAMENTAS DE APOIO
A família Rational Rose Enterprise (da Rational Software Corporation www.rational.com )que gera código em Smalltalk, PowerBuilder, C++, J++ e VB.
ArgoUML – free http://argouml.tigris.org/
www.objectsbydesign.com/tools/umltools_byCompany.html (lista de
ferramentas que envolvem a UML), entre elas Jude (agora Astah) e Visual Paradigm.
StarUML: Livre
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
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
FASES DE DESENVOLVIMENTO -UML
Existem cinco fases no desenvolvimento de
sistemas de software (devem ser executadas nesta ordem):
Análise de Requisitos
Análise
Design (projeto)
Programação
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
Design (Projeto):
Nesta fase, o resultado da análise é expandido
em soluções
Novas classes serão adicionadas para prover
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
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
FASES DE DESENVOLVIMENTO -UML
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
NOTAÇÃO DA LINGUAGEM-UML
Das 5 fases de desenvolvimento da UML, as
fases de análise de requisitos, análise e design utilizam em seu desenvolvimento:
Cinco tipos de visões
Quatorze tipos de diagramas
VISÕES - UML
O sistema é descrito por várias visões, cada uma
representando uma projeção da descrição completa e mostrando aspectos particulares do sistema
Cada visão é descrita por um numero de
VISÕES - UML
Existem em alguns casos de sobreposições entre
os diagramas -> isto significa que um diagrama pode fazer parte de mais de uma visão
Os diagramas contém os modelos dos elementos
VISÕES - UML
As Visões que compõe um sistema são:
Visão de Componentes Visão de Lógica
Visão de Use-Case
VISÕES - UML
Visão Use-Case:
Descreve a funcionalidade do sistema
desempenhada pelos atores externos do sistema (usuários)
Visão use-cases é central, já que seu conteúdo
é base do desenvolvimento das outras visões do sistema
Montada sobre os diagramas de use-cases e
VISÕES - UML
Visão Lógica:
Descreve como a funcionalidade do sistema
está implementada
Feita principalmente por analistas e
desenvolvedores
Ao contrário da visão use-cases, a visão lógica
VISÕES - UML
Visão Lógica:
Ela descreve e especifica a estrutura estática
do sistema (classes, objetos e
relacionamentos) e as colaborações dinâmicas quando os objetos enviarem mensagens uns para os outros para realizarem as funções do sistema
Persistência e concorrência são definidas nesta
VISÕES - UML
Visão Lógica:
A estrutura estática é descrita pelos diagramas
de classe e objetos
O modelo dinâmico é descrito pelos diagramas
VISÕES - UML
Visão de Componentes:
É uma descrição da implementação dos
módulos e suas dependências
É principalmente executados por
VISÕES - UML
Visão de Concorrência:
Trata a divisão do sistema em processos e
processadores
Este aspecto, que é uma propriedade não
VISÕES - UML
Visão de Concorrência:
A visão de concorrência é suportada pelos
VISÕES - UML
Visão de Organização:
Esta visão mostra a organização física do
sistema, os computadores, os periféricos e como eles se conectam entre si
Esta visão é executada pelos desenvolvedores,
DIAGRAMAS - UML
A UML define em sua versão 2.5 quatorze tipos
de diagramas, divididos em duas categorias:
DIAGRAMAS - UML
Diagramas Estruturais ou Estáticos : Mostram as
características dos seu sistema que não mudam com o tempo
Diagramas de Comportamento (Dinâmicos):
DIAGRAMAS - UML
UML 1.4 UML 2.5
Diagrama de Atividades Diagrama de Atividades Diagrama de Classes Diagrama de Classes
Diagrama de Caso de Uso Diagrama de Caso de Uso Diagrama de Colaboração Diagrama de Comunicação
DIAGRAMAS - UML
UML 1.4 UML 2.5
Diagrama de Implantação Diagrama de Implantação Diagrama de Objetos Diagrama de Objetos
Diagrama de Sequencia Diagrama de Sequencia Diagrama de Pacotes
Diagrama de Estrutura Composta
Diagrama de Visão Geral Diagrama de Tempo
Estrutural
Comportamento
DIAGRAMAS - UML
Diagrama de Caso de Uso:
Mostra os casos de uso, atores e seus
relacionamentos que expressam a
CASO DE USO - UML
Diagramas de Use-cases:
Técnica usada para descrever e definir os
requisitos funcionais de um sistema
São escritos em termos de atores externos,
CASO DE USO - UML
Atores podem:
Trocar informações com o sistema de forma
ativa
Ser um recipiente ativo de informações
Representar um ser Humano, uma máquina ou
CASO DE USO - UML
Como encontrar Atores?
Quem está interessado em um requisito do
sistema?
Quem vai fornecer, usar, remover informações
para o sistema?
Quais sistemas interagem com o sistema em
CASO DE USO - UML
Atores – Representação Gráfica
O ícone estereótipo padrão para um ator é a
figura de um “stick man”, contendo seu nome abaixo da figura
Pode ser representado também num retângulo
de Classe, com o estereótipo <<actor>>
Sistema Financeiro Leitor de Codigo
de Barra Gerente Caixeiro
CASO DE USO - UML
Atores – Representação Gráfica
Também pode se usar um ícone que identifique
mais precisamente o tipo de ator
Todo ator precisa ser identificado por um nome
(restrição acrescentada na UML 2.0)
CASO DE USO - UML
Casos de Uso:
Representam funções completas do produto
Um caso deve gerar um ou mais benefícios
para o cliente ou os usuários
O conjunto dos casos de uso cobre toda a
CASO DE USO - UML
Casos de Uso – Representação Gráfica:
Representado por uma elipse contendo seu
nome
Matricular
CASO DE USO - UML
Casos de Uso – Representação Gráfica:
O nome também pode ser colocado abaixo da
elipse
Esta elipse pode também conter
compartilhamentos referentes a atributos e operações
Reserva de Mesa
Efetuar Venda
CASO DE USO - UML
Diagrama de Contexto de caso de uso:
É um diagrama de caso de uso que mostra as
interfaces do produto com seu ambiente de aplicação
Os diversos tipos de usuários e outros
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Casos de usos representam conjuntos bem
definidos de funcionalidades do sistema, que não podem trabalhar sozinhas no contexto do sistema
Casos de usos se relacionam com outros
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Notações especiais são utilizadas para facilitar
a descrição de funcionalidades mais complexas
Casos de usos primário são aqueles que são
invocados por iniciativa direta de um ator
Casos de uso secundário são invocados em
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Casos de uso secundários simplificam o
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Relacionamentos de casos de uso entre si:
Generalização, extensão e inclusão
Relacionamentos de atores entre si:
Generalização
Relacionamentos entre atores e casos de uso:
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Associação:
Interação do ator com o caso de uso, ou seja,
a comunicação entre atores e casos de uso, por meio de envio e recebimento de mensagens
São sempre binárias, ou seja, envolvem
apenas dois elementos
Representam o único relacionamento possível
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Associação:
Representação gráfica corresponde a uma
linha sólida, ligando o caso de uso ao ator e vice-versa
Operação de Venda
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Generalização:
Ocorre entre casos de uso ou entre atores
Segue o mesmo conceito da orientação a
objetos
É quando temos dois elementos semelhantes,
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Generalização:
Representado graficamente pela seta de
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Generalização:
A seta parte do caso mais
específico ao mais genérico
Vendedor
Gerente Cadastrar
Funcionário
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Extensão <<extend>> :
Representa um caso de uso (funcionalidade)
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Extensão <<extend>> :
Representado graficamente por uma seta
tracejada com a ponta aberta, que parte do caso de uso estendido para o caso de uso base e contém o estereótipo <<extends>>
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Inclusão << include>>
Representa um caso de uso (comportamento)
comum a mais de um caso de uso
Temos uma inclusão quando existem cenários
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores:
Inclusão << include>>
Representado graficamente por uma seta
CASO DE USO - UML
Relacionamento entre Caso de Uso e Atores: