Buscar

UML - Unified Modeling Language

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 224 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 224 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 224 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

D
en
iz
e
 P
im
en
ta
1
Este material está registrado na Biblioteca Nacional.
Registro 397.004 - Livro 739 - Folha 164
D
en
iz
e
 P
im
en
ta
2
Índice
1: Visão Geral
1.1 – Importância da Modelagem 10
1.2 – Introdução à UML 17
1.3 – Introdução ao RUP 21
2: Funções de Dados
2.1 – Definições 35
2.2 – Regras de Contagem 45
2.3 – Práticas de Contagem (Code Data) 52
3: Funções de Transação
3.1 – Definições 66
3.2 – Regras de Contagem 76
3.3 – Práticas de Contagem 87
3.4 – Cálculo dos Pontos não Ajustados 98
4: Fator de Ajuste
4.1 – Definições 105
4.2 – Características Gerais do Sistema 111
5: Cálculo dos Pontos de Função Ajustados
5.1 – Fórmulas 132
5.2 – Exercícios 138
6: Dúvidas e Dicas 142
D
en
iz
e
 P
im
en
ta
3
D
en
iz
e
 P
im
en
ta
4
D
en
iz
e
 P
im
en
ta
5
D
en
iz
e
 P
im
en
ta
6
D
en
iz
e
 P
im
en
ta
7
D
en
iz
e
 P
im
en
ta
8
De uma forma geral iremos ver o que a UML pode oferecer, um histórico da criação da
linguagem até como ela se encontra atualmente.
O entorno da linguagem também será visto, iremos falar de metodologias de
desenvolvimento de software (foco no RUP) e a importância da modelagem de sistemas,
qual o objetivo que nos leva a construir vários diagramas e suas intermináveis
manutenções.
O uso de ferramenta CASE, neste curso, é secundário, porque primeiramente
necessitamos aprender a escrever os diagramas.
D
en
iz
e
 P
im
en
ta
9
Objetivos do Capítulo 1:
1. Importância da Modelagem
2. Introdução à UML
3. Introdução ao RUP
D
en
iz
e
 P
im
en
ta
10
D
en
iz
e
 P
im
en
ta
11
O principal produto, de uma equipe de desenvolvimento, é um bom software capaz de satisfazer às
necessidades de seus usuários e respectivos negócios. Tudo mais é secundário (não é irrelevante).
Para desenvolver software de qualidade duradoura é necessário criar uma arquitetura de fundação
sólida que aceite modificações futuras.
D
en
iz
e
 P
im
en
ta
12
Como na Arquitetura e na Engenharia são utilizadas plantas e esquemas que traduzem
como as coisas são construídas, as relações entre as partes e o todo, o funcionamento e
suas disposições. Não existe nenhuma planta que mostre todos os detalhes de uma
construção, existe a planta hidráulica, a elétrica, a planta baixa e até uma maquete, mas
o entendimento do que é o empreendimento só faz sentido se analisarmos todos esses
‘pontos de vista’.
Nós construímos modelos para dominar a complexidade de um sistema, compreendendo
melhor a sua estrutura e funcionamento. Os modelos permitem que se faça um
planejamento adequado de recursos e pessoas, uma vez que traduzem o tamanho e a
complexidade do sistema.
No processo de desenvolvimento de sistemas também construímos modelos para
documentar a estrutura e o comportamento do sistema.
“Construímos modelos para entender e visualizar um sistema - dominar a sua
complexidade”
D
en
iz
e
 P
im
en
ta
13
Qual o(s) motivo(s) que nos levam a gastar tempo e recursos no desenho de modelos?
O que os modelos fazem para ser tão útil?
D
en
iz
e
 P
im
en
ta
14
Existem metodologias quer pregam o desenvolvimento rápido, como a metodologia XP, onde não há
modelagem no início para levantamento, são feitas reuniões diárias e há a participação efetiva do
conhecedor do negócio “dentro do desenvolvimento” para tirar dúvidas a qualquer momento, existem
pontos negativos e positivos.
No início deste capítulo foram colocados alguns motivos para fazer a modelagem de sistemas antes
do início do desenvolvimento (codificação) do sistema.
O que é melhor? Quando utilizar uma forma e quando não é possível utilizar o desenvolvimento
rápido?
D
en
iz
e
 P
im
en
ta
15
Neste tópico veremos:
•O que é a UML
•Histórico de versões
D
en
iz
e
 P
im
en
ta
16
D
en
iz
e
 P
im
en
ta
17
No início da conceituação de orientação a objeto vários autores trabalhavam isoladamente
construindo diagramas e receitas para um bom desenvolvimento de software, este trabalho foi
motivado com o surgimento das primeiras linguagens orientadas a objetos, como o Smalltalk.
Após um período de trabalho isolado os autores resolveram se unir e trabalhar em conjunto, o
resultado desta união foi a criação da Linguagem de Modelagem Unificada (UML) e do Processo
Unificado, posteriormente conhecido como RUP (Rational Unified Process).
A UML (Unified Modeling Language) é o sucessor de um conjunto de métodos de análise e projeto
orientados a objeto (OOA&D).
A UML é um modelo de linguagem, não um método. Um método pressupõe um modelo de linguagem
e um processo. O modelo de linguagem é a notação que o método usa para descrever o projeto. O
processo são os passos que devem ser seguidos para se construir o projeto.
O modelo de linguagem corresponde ao ponto principal da comunicação. Se uma pessoa quer
conversar sobre o projeto, como outra pessoa, é através do modelo de linguagem que elas se
entendem. Nessa hora, o processo não é utilizado.
A UML define uma notação e um meta-modelo. A notação são todos os elementos de representação
gráfica vistos no modelo (retângulo, setas, o texto, etc.), é a sintaxe do modelo de linguagem. Um
meta-modelo é um diagrama de classe que define de maneira mais rigorosa a notação.
A UML (Unified Modeling Language) é uma linguagem-padrão para a elaboração da estrutura de
projetos de software.
Pode ser empregada para a visualização, especificação, construção e documentação de artefatos
que façam uso de sistemas complexos de software.
“UML é uma linguagem de modelagem, não uma metodologia.”
D
en
iz
e
 P
im
en
ta
18
Na modelagem tradicional há a decomposição funcional, ou seja, o analista divide (decompõe) o
problema em funções e processos, resultando em uma decomposição hierárquica do problema.
Com esta forma o código não é flexível, não se pode, com facilidade, incorporar mudanças futuras.
Um procedimento cirúrgico de uma clínica veterinária, provavelmente pensaríamos na identificação
do animal, diagnóstico, preparação do animal para cirurgia e procedimento cirúrgico. A modelagem
tradicional foca o processo.
O paradigma da orientação a objetos entende o mundo como objetos, o que eles são e o que podem
fazer. Os objetos irão interagir entre si e com os atores através de mensagens. No exemplo da clínica
veterinária teríamos os objetos:
Animal – com suas características relevantes para identificação e apoio à cirurgia, como: nome, raça,
peso, altura, cor, temperatura, etc. O animal pode ser cadastrado, ser medido, ser pesado, ser
consultado pelo nome.
Cirurgia – com a data de agendamento, descrição da necessidade (motivo), descrição da conclusão,
data de realização, qual animal participou, qual cirurgião responsável.
D
en
iz
e
 P
im
en
ta
19
D
en
iz
e
 P
im
en
ta
20
A versão 2 está em aprovação desde Junho de 2003. Algumas ferramentas já começar a implementar
(Eclipse da IBM – código aberto).
A versão 2 da UML trouxe algumas modificações gráficas e inclusão de alguns diagramas.
O XMI (XML Metadata Interchange) entrou como padrão para as ferramentas CASE que trabalham
com a UML para que haja transferência de diagramas de uma ferramenta para outra sem perda de
informação.
Novos Diagramas:
Diagrama de Comunicação – Até a UML 1.5 era chamado de diagrama de colaboração. É usado
para mostrar a colaboração entre objetos, exibindo a troca de mensagens entre eles.
Diagrama de Estrutura de Compósito (Composite Structure) – mostra a cooperação entre
instâncias.
Diagrama de Resumo de Interação (Interaction Overview) – é uma variação do diagrama de
atividades. Os nós do diagrama são frames. Existem 2 tipos de frames: frame de interação
(diagramas de seqüência, comunicação, tempo, resumo de interação) e frame de ocorrência de
interação que indica uma atividade ou operação executada (atividade ou operação).
Diagrama de Tempo (Timing) – é usado para explorar o comportamento de um ou mais objetos
durante um período de tempo.
D
en
iz
e
 P
im
en
ta
21
Como a UML nasceu de trabalhos isolados, podemos entenderporque a constituição da Linguagem
teve diagramas isomorfos, ou seja, que tem a mesma forma, a mesma maneira de expressas um
mesmo assunto.
A UML também não tem regras que ditam que todos os diagramas devem ser usados, ou quais usar.
Os autores entendem que depende do tipo de projeto, cada projeto tem uma característica e
carências diferentes. A idéia aqui é ser flexível suficiente para que em nenhum momento fique
faltando, ou fique descoberto um ponto do projeto. Por isso é interessante conhecer todos os
diagramas, para saber o que usar e como usar na hora que for necessário.
D
en
iz
e
 P
im
en
ta
22
Os envolvidos com o projeto devem conhecer os diagramas da UML para saber o que
usar quando necessário.
Nunca são usados todos os diagramas em um mesmo projeto – existem diagramas que
falam a mesma coisa (diagramas de interação).
D
en
iz
e
 P
im
en
ta
23
Neste tópico veremos:
•Modelos de Processo (Cascata, Espiral, Iterativo)
•Melhores Práticas da Engenharia de Software
•Introdução ao RUP (Fases e Disciplinas)
D
en
iz
e
 P
im
en
ta
24
No processo de desenvolvimento podemos reconhecer diversas fases que devem ser
cumpridas a fim de que tenhamos o sistema funcionando à disposição do usuário. O
processo de desenvolvimento define a regra do jogo.
Em cada fase do projeto, precisamos executar diversas atividades, tais como:
•Reuniões com os usuários,
•Gerar documentações (cronograma, documento de visão, diversos diagramas, etc),
•Fazer protótipos do sistema,
•Testar funcionalidades,
•Fazer instalações de computadores e sistemas operacionais, etc.
Essas atividades são agrupadas em fases, que dividem o processo de desenvolvimento
de sistemas. Cada processo define fases e atividades.
Todo esse esforço tem como alvo principal a construção de um sistema de qualidade que
seja duradouro, suportando modificações com um mínimo de retrabalho.
D
en
iz
e
 P
im
en
ta
25
O processo de desenvolvimento em cascata pressupõe a finalização de uma etapa
para o início da próxima. As fases são: Anteprojeto, Planejamento, Análise, Projeto,
Desenvolvimento, Homologação e Implantação. As fases variam e são customizadas
conforme a necessidade da empresa.
D
en
iz
e
 P
im
en
ta
26
Desenvolver Iterativamente – Minimiza riscos, acomoda melhor as mudanças, busca de melhor
qualidade, aprendizado e melhoria contínua, aumento da reutilização.
Gerenciar Requisitos – investigar, organizar e documentar os requisitos do sistema, além de firmar
e atualizar acordos entre o cliente e a equipe do projeto sobre os requisitos variáveis do sistema. As
chaves para o gerenciamento eficaz de requisitos incluem manter uma sentença clara dos requisitos,
junto com os atributos aplicáveis e a rastreabilidade para outros requisitos e outros artefatos do
projeto.
Usar Arquitetura de Componentes - tende a reduzir o tamanho efetivo e a complexidade da
solução e, portanto, são mais robustas e flexíveis.
Modelar Visualmente (UML) – ajuda a compreensão de sistemas complexos; explora e compara
alternativas de design a um baixo custo; forma uma base para implementação; captura requisitos com
precisão; e comunica decisões sem ambigüidade.
Verificar Constantemente a Qualidade – os artefatos devem ser avaliados à medida que as
atividades que os produzem são concluídas e na conclusão de cada iteração.
Gerenciar Mudanças – com vários desenvolvedores, organizados em diferentes equipes,
possivelmente em diferentes locais, trabalhando juntos em várias iterações, releases, produtos e
plataformas. Na ausência de controle disciplinado, o processo de desenvolvimento rapidamente se
transforma em caos.
D
en
iz
e
 P
im
en
ta
27
O RUP implementa as melhores práticas, pois é iterativo, tem disciplinas de gerência
de requisitos, de mudanças e de qualidade, é centrado na arquitetura de
componentes, dirigido a casos de uso (indica o uso da UML) e desde cedo dá
condições de mensurar a qualidade através das várias iterações.
D
en
iz
e
 P
im
en
ta
28
O RUP é um processo extenso e completo e é um framework porque pode ser configurado para se
adequar a todos os projetos, ou seja, podemos adaptar o processo à necessidade e assim retirar
atividades desnecessárias, quando preciso, moldando o processo à realidade.
D
en
iz
e
 P
im
en
ta
29
O desenvolvimento iterativo parte o sistema em pedaços e cada parte é submetida às atividades até
que se chaga a implantação e validação para então se juntar com outra parte do sistema e passar
pelo ciclo novamente de forma incremental, até um certo ponto teremos o produto inteiro.
D
en
iz
e
 P
im
en
ta
30
Na maioria das iterações temos um ‘pedaço’ do sistema funcionando para validação com o usuário,
quando a entrega for externa, ou validação com a equipe na entrega interna.
D
en
iz
e
 P
im
en
ta
31
Esta figura representa duas dimensões:
•A horizontal que representa o aspecto dinâmico do processo, como
é ordenado e expresso em termos de fases, ciclos e marcos de
projeto - é o eixo do tempo.
•A segunda dimensão, vertical, são representadas as atividades,
fluxos de trabalho, artefatos e pessoas - é o eixo de conteúdo.
O final de cada iteração é marcado pela entrega de um artefato de software
(uma versão, um módulo, um conjunto de diagramas), esta entrega pode ser
para validação com o usuário (externa) ou para a equipe (interna).
Podemos observar que o compromisso de desenvolver um sistema, envolve diversas
atividades que são executadas continuamente durante todo o projeto.
No RUP as atividades têm uma alocação maior em função da fase em que se
encontra o projeto. As fases ajudam o gerente do projeto a fazer a apropriação de
profissionais e custos, resultando em uma maior eficiência.
Por exemplo, na fase de Concepção (Inception) existe uma alocação maior de
analistas envolvidos na atividade de “Levantamento de Dados” e “Definição do
problema”, representada no diagrama por “Requisitos”. Toda essa informação de
papéis, atividades e artefatos estão no RUP.
Navegue no PUC – Processo Unificado Caixa ( http://sipuc.caixa ou
http://sipuc.extranet.caixa ).
D
en
iz
e
 P
im
en
ta
32
Este artefato é útil para o planejamento do que será desenvolvido e atacado nas iterações e fases do
projeto. Note que um mesmo caso de uso e visto e revisto durante as fases até que o sistema esteja
concluído. O caso de uso é atacado de acordo com os objetivos da fase, desta forma na iniciação
todos os casos de uso são criados e identificados de uma forma macro para que posteriormente, na
fase de elaboração, sejam detalhados (pelo menos 80% dos casos de uso são detalhados nesta
fase). Alguns casos de uso são construídos (por inteiro ou parte dele) ainda na fase de elaboração
com o objetivo de mitigar riscos identificados anteriormente. Na próxima fase, de construção, os
casos de uso têm que ser construídos.
D
en
iz
e
 P
im
en
ta
33
O foco é viabilizar a construção do projeto, estudo do projeto como um todo.
Na fase de concepção é estabelecido o contexto de negócio para o sistema e
delimitado o escopo do projeto. Para tal, identificamos os atores que estarão
interagindo com o sistema, bem como os casos de uso associados às essas
interações.
O contexto de negócio inclui também um critério de sucesso, ponderado em função
de recursos e tempo. Essa ponderação nos dá o grau de “risco” que é possível
assumir.
Além disso, devemos nessa fase elaborar um estudo que tem como produto final um
cronograma básico de execução com as principais fases e datas de entrega.
Essa fase envolve a elaboração de um ante-projeto do sistema (uma proposta)
composto pelo memorial do projeto, escopo pretendido, principais atores envolvidos,
principais casos de uso e o uma estimativa de cronograma (com os principais marcos
do projeto).
D
en
iz
e
 P
im
en
ta
34
O foco é o desenho da solução da construção, aqui que serão feitos os diagramas,
detalhamento do UC.
Consiste de uma análise mais refinada do sistema a ser construído, juntamente com
um plano detalhado de trabalho a ser feito. As metasda fase de elaboração são:
analisar o domínio do problema, estabelecer uma arquitetura funcional, desenvolver
um plano do projeto e minimizar elementos de riscos potenciais ao projeto.
Essa fase envolve a elaboração de um projeto completo, com o detalhamento de
interações e estrutura do sistema. Nessa fase também podemos construir um
protótipo que teste a arquitetura escolhida.
Por exemplo, podemos ter a incumbência de criar uma aplicação para Web usando
Java Server Pages - JSP. Nós vamos detalhar as interações dos atores com cada
caso de uso, vamos modelar as classes do sistema e vamos construir algumas
páginas JSP para testar a sua funcionalidade. Podemos ainda envolver a participação
do cliente nesse processo.
D
en
iz
e
 P
im
en
ta
35
O foco é a codificação da solução encontrada anteriormente.
Durante a fase de construção trabalhamos sobre o protótipo da fase anterior
adicionando novas funcionalidades e refinando as funcionalidades pré-existentes.
Chamamos essa abordagem de iterativa (por ciclos) e incremental (adicionando
valor).
O gerente do projeto define várias versões que devem ser liberadas a cada ciclo,
incluindo alterações, refinamentos e novas funcionalidades.
A cada ciclo é necessário rever os requisitos de cada parte da aplicação, pois essa é
a essência do desenvolvimento incremental.
D
en
iz
e
 P
im
en
ta
36
Nessa fase o software pode ser instalado em ambiente de produção para que os
clientes possam trabalhar com ele. Como esta transição será feita ? Em paralelo com
o sistema atual ou simplesmente o substituído deixará de funcionar para início do
novo sistema ?
Assim que o programa entra em operação, é previsto que alguns pequenos ajustes
sejam necessários para que a versão final esteja disponível.
Um marco dessa fase é a “versão beta” do produto para testes.
Se tiver programado é nesta fase que ocorre o treinamento e outro produto (ou
artefato) é o conjunto de manuais com instruções de uso do sistema.
Ao final dessa fase teremos o produto em sua versão final para uso irrestrito por todo
o público-alvo.
D
en
iz
e
 P
im
en
ta
37
D
en
iz
e
 P
im
en
ta
38
Exercícios do Capítulo 1:
1) O que não se aplica à definição de usuário?
a) É quem utiliza o sistema.
b) É quem especifica requisitos.
c) É quem testa o sistema.
d) É um outro software que interage com a aplicação em questão.
2) A fronteira da aplicação:
a) É determinada após a definição do escopo da contagem.
b) Depende das características gerais do sistema.
c) Pode afetar o propósito da contagem.
d) Nenhuma das respostas anteriores.
3) Fronteiras:
a) Identificam a borda entre a aplicação ou o projeto a ser medido e as
aplicações externas ou o domínio do usuário.
b) Estabelecem o escopo do produto do trabalho a ser medido.
c) Consideram a aplicação do ponto de vista do usuário, o que o usuário pode
entender e descrever.
d) Todas as opções acima.
4) Os procedimentos de contagem de pontos de função incluem os seguintes passos:
a) Determinar quando a contagem será realizada.
b) Determinar o tipo de contagem que será realizada.
c) Medir o esforço associado ao projeto de desenvolvimento.
d) Todos os itens acima estão corretos.
5) A visão do usuário de uma aplicação é descrita por uma ou mais das seguintes
possibilidades:
a) É aprovada pelo usuário.
b) Pode ser usada para contar pontos de função.
c) Pode variar na forma física.
d) Todas as possibilidades acima estão corretas.
6) Os objetivos da análise de pontos de função são:
a) Medir o software independentemente da tecnologia utilizada para
implementação.
b) Medir a funcionalidade que o usuário requisita independentemente de se ele é
ou não disponibilizada.
c) Medir a produtividade associada com o desenvolvimento de um módulo do
software.
d) Medir o software independentemente da tecnologia utilizada para
implementação e medir a produtividade associada ao desenvolvimento do
software.
D
en
iz
e
 P
im
en
ta
39
Aprendemos neste capítulo:
• Foi discutida a importância de fazer e criar modelos.
• A UML é uma linguagem, uma notação, não tem uma regra para sua
utilização, permitindo que o desenvolvedor/analista/gerente use os diagramas
como bem entender (seguindo sua notação).
• O RUP é uma proposta de metodologia de desenvolvimento de sistemas
que indica o uso a UML como notação. O RUP tem as regras, os passos a
serem executados para desenvolver software.
D
en
iz
e
 P
im
en
ta
40
Objetivos do Capítulo 2:
•Aprender os novos conceitos da Orientação à Objetos
•Conhecer todos os diagramas da UML descobrindo os objetivos de cada um
D
en
iz
e
 P
im
en
ta
41
D
en
iz
e
 P
im
en
ta
42
D
en
iz
e
 P
im
en
ta
43
D
en
iz
e
 P
im
en
ta
44
D
en
iz
e
 P
im
en
ta
45
A classe casa é como uma forma que irá criar objetos semelhantes. Observe que cada objeto tem
característica própria, a cor o número.
D
en
iz
e
 P
im
en
ta
46
D
en
iz
e
 P
im
en
ta
47
D
en
iz
e
 P
im
en
ta
48
D
en
iz
e
 P
im
en
ta
49
Sobrescrita (override)
O método da subclasse (classe filha) retorna um valor e o método da superclasse (classe pai) retorna
outro.
No exemplo a superclasse contém um método para calcular o salário dos funcionários. A subclasse
herda este método, mas a subclasse pode decidir sobrescrever a implementação da superclasse
redefinindo a forma de calcular o salário dos empregados que trabalham em venda.
D
en
iz
e
 P
im
en
ta
50
Sobrecarga (overload)
Cada método em uma classe é identificado pelo seu nome e sua lista de parâmetros. Podem existir
dois ou mais métodos com o mesmo nome, mas cada um com uma lista de parâmetros diferentes.
Este conceito é chamado sobrecarga de método, esta facilidade permite que seja executada a
mesma ação com diferentes tipos de entradas. Conforme o método do exemplo apresentado abaixo,
utilizado para calcular o valor máximo entre dois números em diferentes combinações de entradas:
public static int maximo ( int x, int y ) {
// calcular o maximo usando dois numeros inteiros
}
public static double maximo ( double x, double y ) {
// calcular o maximo usando dois numeros decimais
}
D
en
iz
e
 P
im
en
ta
51
A mensagem é troca de informações entre objetos. Para uma determinada função funcionar serão
chamados n métodos através dos objetos relacionados, essa comunicação entre objetos, que é a
chamada de operações é chamada de mensagem.
As classes de entidade serão persistidas, provavelmente se tornarão tabelas em um SGBD.
Estereótipos são adornos utilizados para estender o significado de um determinado elemento em um
diagrama, como por exemplo se quisermos representar, ou melhor diferenciar, as classes que serão
persistidas das outras classes, definimos o estereótipo como entity.
D
en
iz
e
 P
im
en
ta
52
D
en
iz
e
 P
im
en
ta
53
Neste tópico veremos todos os Diagramas da UML
D
en
iz
e
 P
im
en
ta
54
D
en
iz
e
 P
im
en
ta
55
D
en
iz
e
 P
im
en
ta
56
Os diagramas estão divididos em dois grandes grupos:
Comportamentais - modelam aspectos dinâmicos do sistema, mostram, na maioria das vezes, como
as entidades interagem para a execução de uma funcionalidade, são eles: de caso de uso,
seqüência, comunicação, de estado, de Tempo (Timming), de Resumo da Interação (Interaction
Overview), Estrutura de Compósito (Composite Structure) e de atividade.
Estruturais - modelam a estrutura do sistema, sua parte estática, mostram como as entidades são
compostas e seus relacionamentos, são eles: diagrama de classe, de objetos, de componente e de
implantação.
D
en
iz
e
 P
im
en
ta
57
A partir deste cenário serão apresentados os diagramas da UML.
D
en
iz
e
 P
im
en
ta
58
Imagine a tela ou o conjunto de telas que fará parte de uma funcionalidade e imagine
a interação do usuário com o sistema, qual a ação do usuário e como o sistema irá
reagir, quais os campos que terão lista de bancos, quais os campos que o usuário
deverá informar valores.
Devemos prever todas as reações do sistema – se o usuáriodigitar letra no lugar de
um número, como o sistema irá reagir ? Neste momento podemos prever inclusive
quais as mensagens de alerta/erro que retornarão ao usuário, afinal de contas o caso
de uso servirá de base para os testes.
D
en
iz
e
 P
im
en
ta
59
Alguns casos de uso que podem ser aplicados ao sistema de controle de horas são
(este é um exemplo os casos de uso não estão levantados na totalidade do sistema):
O funcionário cadastra alocação: para o cadastramento da tarefa será necessária a
interação entre o funcionário e o sistema pois o funcionário deverá informar: a data da
atividade, o horário (hora início e fim) de sua realização, o sistema deverá exibir o
logon do funcionário e uma lista de atividades e projetos, o funcionário deverá
selecionar uma categoria e uma Ordem de Projeto e opcionalmente informar FSA/OS,
Sistema, Aplicação e Observação e então solicitar a confirmar a tarefa, o sistema
deverá gravar a tarefa e exibir a lista de tarefas.
O gerente avalia as horas lançadas: Visto que um gerente pode interagir com mais
de um projeto, ele deverá informar o projeto e o sistema irá listar todos os
funcionários que lançaram horas no projeto informado e que ainda estão aguardando
aprovação, o gerente seleciona o funcionário e seleciona todas as horas do
funcionário e então confirma a aprovação das suas horas – um tratamento de
exceção é a reprovação das horas indevidas, e deve ser previsto neste cenário.
O funcionário consulta mês: o funcionário seleciona navegação pelos meses e o
sistema deverá exibir suas tarefas cadastradas.
D
en
iz
e
 P
im
en
ta
60
O exemplo acima mostra como pode ser feita uma descrição de um caso de uso, neste caso há
divisão entre Cursos Alternativos e Exceções. Nos Cursos Alternativos são descritos passos de uma
outra forma de encerrar o caso de uso corretamente, já as exceções indicam algum problema em
algum momento que poderá ocorrer.
O Caso de Uso também pode servir de base para fazer o Caso de Teste, pois terá todas as exceções
previstas.
O exemplo citado é a descrição de um caso de uso, deverá haver uma descrição para cada caso de
uso apresentado anteriormente.
D
en
iz
e
 P
im
en
ta
61
D
en
iz
e
 P
im
en
ta
62
No Diagrama de Classe os objetos envolvidos no sistema de controle de horas são agrupados
em classes. Uma classe é um conjunto de objetos.
Na classe de funcionários, os atributos incluem o logon, nome, unidade, filial e número
funcional. Esta classe também armazena a operação buscarLogon (dentre outras aqui ainda
não definidas).
D
en
iz
e
 P
im
en
ta
63
Um Diagrama de Seqüência oferece uma visão detalhada de um caso de uso. Ele
mostra uma interação organizada em forma de uma seqüência de passos entre os
objetos, dentro de um determinado período de tempo e contribui para que se entenda
a lógica dentro de cada caso de uso.
Os participantes são apresentados dentro do contexto das mensagens que transitam
entre eles.
D
en
iz
e
 P
im
en
ta
64
As restrições de tempo podem ser representadas neste diagrama. A OCL (Object
Constraint Language) é a linguagem que define as restrições, muito utilizada aqui
para determinar as restrições temporais do sistema.
D
en
iz
e
 P
im
en
ta
65
Um Diagrama de Comunicação é outro tipo de diagrama de interação. Assim como
no Diagrama de Seqüência, o Diagrama de Comunicação mostra como um grupo de
objetos num caso de uso interage com os demais. Cada mensagem é numerada para
documentar a ordem na qual ela ocorre.
Os diagramas de comunicação e de seqüência são equivalentes a diferença é que o
diagrama de seqüência tem o tempo como participante fundamental.
D
en
iz
e
 P
im
en
ta
66
O diagrama da figura é equivalente ao diagrama de seqüência anterior. Podemos
dizer que o diagrama de comunicação (antigo diagrama de colaboração) e o
diagrama de seqüência são isomórficos, ou seja, tem a mesma forma, podemos obter
a visão de um a partir do outro.
Enquanto o diagrama de seqüência tem uma visão temporal, o diagrama de
comunicação apresenta uma visão espacial dos objetos.
D
en
iz
e
 P
im
en
ta
67
O estado de um objeto é definido pelos seus atributos em um determinado momento.
Os objetos se movem através de diferentes estados, por serem influenciados por
estímulos externos. O Diagrama de Estado mapeia estes diferentes estados em que
os objetos podem se encontrar e quais os eventos que fazem com que os estados
dos objetos sejam alterados.
D
en
iz
e
 P
im
en
ta
68
A classe alocação guarda as horas cadastradas pelos funcionários, essas horas
devem ser validadas pelos seus respectivos coordenadores que utilizam a
funcionalidade ‘Aprovar Horas’ para aprovar ou reprovar as horas cadastradas em
seu projeto. A figura mostra as alterações de estado da classe alteração.
D
en
iz
e
 P
im
en
ta
69
D
en
iz
e
 P
im
en
ta
70
O Diagrama de Atividade é uma ferramenta útil para desenhar a solução de
implementação e pode estar baseada em um caso de uso ou pode definir um método
mais complexo.
Esta figura mostra as atividades necessárias, do sistema, para a execução do
Cadastro de Alocação, exibindo todos os cenários do caso de uso (uso da decisão).
Observe que há atividades que podem ser executadas em paralelo (threading).
O diagrama de atividade é baseado em um caso de uso inteiro (todos os cenários) ou
em uma classe.
D
en
iz
e
 P
im
en
ta
71
Um Diagrama de Componentes exibe a hierarquia de dependência entre os
componentes do sistema.
Um componente é uma parte do sistema e pode ser entendido como uma tela, uma
biblioteca (dlls), um arquivo de críticas (arquivos js), um executável, etc.
D
en
iz
e
 P
im
en
ta
72
O site tem várias camadas, as páginas ASP chamam algumas regras, neste
diagrama vemos qual a dependência entre elas.
Lembre que os componentes são bibliotecas, executáveis, telas, tabelas, uma parte
qualquer do sistema.
D
en
iz
e
 P
im
en
ta
73
O Diagrama de Implantação mostra o layout físico da rede, onde cada nó representa
uma máquina, podendo mostrar a configuração delas (hardware e software) e
também onde cada componente irá ser instalado.
D
en
iz
e
 P
im
en
ta
74
Neste desenho vemos onde cada componente identificado deverá ser ‘instalado’,
auxiliando a implantação do sistema.
D
en
iz
e
 P
im
en
ta
75
O diagrama de implantação poderá ser usado para caracterizar o hardware e o software necessário a
ser instalado nos nós (máquinas ou periféricos).
Inclusive a conexão entre os nós.
O nó é um elemento físico que representa um recurso computacional com memória e/ou capacidade
de processamento, como máquinas, servidores, hubs, impressoras, etc.
D
en
iz
e
 P
im
en
ta
76
D
en
iz
e
 P
im
en
ta
77
D
en
iz
e
 P
im
en
ta
78
D
en
iz
e
 P
im
en
ta
79
Objetivos do Capítulo 3:
1. Conceitos e Componentes do Diagrama
2. Desenho do Diagrama em três passos:
 Identificação de Casos de Uso
 Descrição dos Casos de Uso
 Desenho do Diagrama de Casos de Uso
D
en
iz
e
 P
im
en
ta
80
A documentação a ser entregue deve ser composta de: o Diagrama de Casos de Uso (desenho) e
para cada caso de uso do diagrama deverá ter um texto descrevendo sua interação.
D
en
iz
e
 P
im
en
ta
81
O Diagrama de Casos de Uso exibe todas as funcionalidades que o sistema têm, com isso ajuda a
definir o escopo do sistema.
Um caso de uso representa uma funcionalidade.
D
en
iz
e
 P
im
en
ta
82
Um requisito representa uma necessidade do usuário que deverá ser refletida de alguma forma no
sistema. Um requisito pode estar espelhado em mais de um caso de uso, e um caso de uso poderá
realizar mais de um requisito.
Os casos de uso somente espelham os requisitos funcionais, para definir os requisitos não funcionais
deve ser utilizado outro documento (Especificação Suplementar).
D
en
iz
e
 P
im
en
ta
83
A modelagem de negócios ou comercial abrange um nível maior dentro da empresa
do que a modelagem do sistema a ser desenvolvido. Ela é utilizada para mapear os
processos da empresa e mostrar como amesma funciona.
O caso de uso de negócios é um guideline, um roteiro utilizado para mapear um
processo, por exemplo precisamos definir para o restaurante como os garçons devem
preparar a mesa a regra de ordenação de talheres e copos ficarão descritos dentro do
caso de uso de negócio ‘Preparar a Mesa’.
Um ator de negócios interage com a empresa ou setor modelado, por exemplo o
fornecedor interage com a empresa, um outro exemplo é o Garçom com o Preparar a
Mesa e Servir o Pedido. Se for indicada a informatização para um melhor controle do
restaurante o Garçom não será necessariamente um ator do sistema.
D
en
iz
e
 P
im
en
ta
84
Iterar - Tornar a dizer; repetir. A iteração é um ciclo. (Dic. Aurélio)
Interação - Ação recíproca de dois ou mais corpos, uns nos outros. 2. Fís. Ação mútua entre duas
partículas ou dois corpos. (Dic. Aurélio)
A interação ou comunicação é o relacionamento entre o ator e o sistema. Pode existir relacionamento
entre casos de uso (extensão, inclusão e generalização).
A figura acima mostra os caminhos de um caso de uso, cada caminho é executado por um cenário.
Todos os fluxos deverão ser previstos na descrição do caso de uso. Um caso de uso tem ‘n’ cenários,
para cada cenário percorreremos um caminho (ou fluxo) do caso de uso.
D
en
iz
e
 P
im
en
ta
85
Os atores (pessoas, outros sistemas, periféricos) interagem com o sistema através de uma fronteira.
No diagrama de caso de uso teremos todas as funcionalidades do sistema. Para cada funcionalidade
iremos descrever as interações entre o ator e as reações do sistema.
D
en
iz
e
 P
im
en
ta
86
D
en
iz
e
 P
im
en
ta
87
O ator é aquele que utiliza o sistema para passar informações. Pode ser outro sistema, um hardware,
um grupo de pessoas. Mas têm que necessariamente interagir com o sistema.
D
en
iz
e
 P
im
en
ta
88
Os diagramas de casos de uso podem ser simplificados por meio da herança entre
atores. Neste caso, mostra-se um caso de uso comum aos atores específicos, que se
comunicam apenas com o ator genérico.
A figura mostra as especializações de “Gerente” para o ator mais genérico
“Funcionário”.
D
en
iz
e
 P
im
en
ta
89
Esta figura informa que o Gerente é uma especialização de Funcionário e a parte
mais especializada herda todas as atividades da classe mais genérica, ou seja, o
Gerente pode tanto Aprovar Horas quanto Cadastrar Ocupação e Consultar Mês, mas
Funcionário pode somente Cadastrar Ocupação e Consultar Mês.
A notação de generalização/especialização pode ser vista entre casos de uso e em
outros diagramas da UML.
Atenção na associação unidirecional entre o caso de uso ‘Aprovar Horas’ e o ator
SisRH, este exemplo indica que o ator somente receberá informações do sistema.
D
en
iz
e
 P
im
en
ta
90
O Caso de Uso em si é uma seqüência de ações que um sistema desempenha para
produzir um resultado observável por um ator específico. Em outras palavras, um
caso de uso define uma funcionalidade do sistema com um conjunto de ações
tomadas pelo ator e a previsão da reação por parte do sistema.
O Caso de Uso é uma classe, não uma instância. A sua especificação descreve a
funcionalidade como um todo, incluindo erros, possíveis alternativas e exceções que
podem ocorrer durante sua execução. O nome do Caso de Uso deve ser uma frase
indicando a ação que realiza.
Cuidado para não identificar um caso de uso no lugar de um passo! Um caso de uso
tem um conjunto de passos e trata as exceções desses passos. Na descrição do
caso de uso é que teremos que pensar quais as ações que o caso de uso
desempenhará.
Alguns exemplos de casos de uso: Cadastrar Cliente, Registrar Venda, Fechar Caixa,
etc.
D
en
iz
e
 P
im
en
ta
91
Um caso de uso, como dito anteriormente, representa uma funcionalidade do sistema:
tem início, uma entrada, uma solicitação, tem meio, um processamento, uma
gravação e tem um fim, uma confirmação, uma impressão, o resultado de uma
consulta na tela.
D
en
iz
e
 P
im
en
ta
92
O caso de uso é desenhado como uma elipse e seu nome pode vir dentro do desenho
ou abaixo da mesma.
Um caso de uso retrata uma funcionalidade e não uma atividade atômica, pois tem
início meio e fim. Um ator entra no sistema para cadastrar cliente e sai com o cliente
cadastrado.
D
en
iz
e
 P
im
en
ta
93
Notações especiais são utilizadas para facilitar a descrição de funcionalidade mais
complexa. Entre estas notações, destacam-se os casos de usos secundários, que
simplificam o comportamento dos casos de uso primários através dos mecanismos de
extensão e inclusão.
Casos de uso primários são aqueles que são invocados por iniciativa direta de um
ator; casos de uso secundários são invocados em um passo de outro caso de uso. Os
termos “primário” e “secundário”, quando referentes a casos de uso, não fazem parte
da UML.
D
en
iz
e
 P
im
en
ta
94
O caso de uso B estende o caso de uso A quando B representa uma situação
opcional ou de exceção, que normalmente não ocorre durante a execução de A. Essa
notação pode ser usada para representar fluxos complexos opcionais ou anormais.
O caso de uso “estendido” é referenciado nas precondições do caso de uso
“extensor”. As precondições são a primeira parte dos fluxos dos casos de uso.
“Extensão - 1. Ato ou efeito de estender ou estender-se. 2. Qualidade de extenso. 3.
Fís. Propriedade que têm os corpos de ocupar certa porção do espaço. 4.
Desenvolvimento no espaço. 5. Vastidão. 6. Grandeza, força, intensidade. 7. Porção
de espaço. 8. Comprimento. 9. Superfície, área. 10. Ramal telefônico, com o mesmo
número do telefone principal, usado geralmente em residências ou escritórios.” (Dic.
Aurélio)
“Estender - v. 1. Tr. dir. e pron. Alargar(-se), alongar(-se), estirar(-se). 2. Tr. dir.
Desdobrar, desenrolar, desenvolver. 3. Tr. dir. Oferecer, apresentando: Estendeu a
mão ao visitante. 4. Tr. dir. Alastrar, espalhar. 5. Pron. Ocupar certa extensão. 6. Tr.
dir. Esticar. 7. Tr. dir. Tornar mais amplo. 8. Tr. dir. Fazer chegar; levar. 9. Tr. dir.
Expor ao ar, ao sol etc.” (Dic. Aurélio)
D
en
iz
e
 P
im
en
ta
95
O desenho mostra a instância do caso de uso sendo executada e quando chega ao
ponto de extensão um outro caso de uso é chamado e executado para que então se
retorne à execução do caso de uso original (base).
D
en
iz
e
 P
im
en
ta
96
O desenho informa que o cadastro do cliente pode ser chamado diretamente da
solicitação do serviço, mas esta é uma ação que pode ocorrer ou não.
Observe que o caso de uso que estende tem uma relação de dependência com o
caso de uso estendido (seta tracejada), ou seja, a o Cadastro do Cliente só pode ser
executada se Solicitar Serviço for executado antes.
D
en
iz
e
 P
im
en
ta
97
Na figura percebemos que na funcionalidade Comandar Jantar podemos ter um
atalho para Comandar Bebida ou Comandar Sobremesa. Esta técnica é aplicada para
facilitar o uso do sistema. Atenção o uso dos casos de uso estendidos são
facultativos, ou seja, pode haver o pedido de jantar sem bebida e sem sobremesa.
D
en
iz
e
 P
im
en
ta
98
O caso de uso A inclui o caso de uso B quando B representa uma atividade
complexa, comum a vários casos de uso. Essa notação pode ser usada para
representar subfluxos complexos e comuns a vários casos de uso. O caso de uso
“incluído” é referenciado no fluxo do caso de uso “que inclui”.
D
en
iz
e
 P
im
en
ta
99
O desenho mostra a instância de um caso de uso sendo executada e quando chega
em um determinado ponto sempre deverá ser chamado um outro caso de uso (o
incluído), e este é executado para que então se retorne à execução do caso de uso
original (base).
D
en
iz
e
 P
im
en
ta
100
Cadastrar Pagamento são passos comuns a Solicitar Serviço e Cadastrar Venda, por
este motivo este conjunto de passos são isolados em outro caso de uso.
Observe também que o caso de uso que inclui tem uma relação de dependência com
o caso de uso incluído (seta tracejada). Ou seja, Solicitar Serviço e Cadastrar Venda
só podem ser executadas se Cadastrar Pagamento for executada.
D
eniz
e
 P
im
en
ta
101
Neste caso, a solução foi pensada de forma que, quando houver o Comando de
Jantar necessariamente haverá o Pagamento de Conta, da mesma forma quando
houver Comando de Almoço haverá Pagamento de Conta.
O importante é saber ler o que está desenhado, no exemplo o sistema somente será
acionado ao final do processo, quando haverá o registro do consumo (almoço ou
jantar) e logo em seguida o pagamento da conta.
D
en
iz
e
 P
im
en
ta
102
D
en
iz
e
 P
im
en
ta
103
Na generalização de casos de uso o caso de uso pai define todos os passos comuns e os passos
específicos são executados pelo caso de uso filho.
D
en
iz
e
 P
im
en
ta
104
Receber pagamento em cheque, Receber pagamento em dinheiro e Receber pagamento em cartão
são especializações do caso de uso Receber Pagamento.
Os UCs filhos herdam os atributos, operações e seqüências de comportamento do UC pai.
Os UCs filhos podem adicionar e redefinir o comportamento do UC pai, através da inserção de
seqüências adicionais de ações em pontos arbitrários da seqüência do UC pai.
Os UCs filhos podem substituir o UC pai em qualquer lugar que ele aparece.
Relacionamentos de inclusão e extensão do use case filho também modificam o use case do pai.
Normalmente a similaridade entre use cases é identificada após a descrição dos casos.
Outro exemplo: Tanto Checar password quanto Scan de retina servem para validar o usuário, e em
validar usuário tem um conjunto de passos comuns aos subtipos.
D
en
iz
e
 P
im
en
ta
105
O exemplo mostra a descrição de casos de uso em generalização/especialização, a descrição da
esquerda é do UC pai e o da direita representa um dos UC filho.
O passo 5 fica sem definição no ‘Caso de Uso Pai’ e em itálico pois representa na sintaxe da UML
alguma coisa abstrata.
Note que a solução poderia ser apresentada de outras formas, como por exemplo utilizando
<<inclui>> ou <<estende>>, mas esta notação enfatiza o ‘relacionamento de família’, de similaridade
das ações, compartilhando a mesma estrutura, comportamento e intenção.
D
en
iz
e
 P
im
en
ta
106
A UML não dita regras para a construção do diagrama, ela apenas é uma notação. Os passos que se
seguem são uma sugestão para facilitar a construção do diagrama de casos de uso.
D
en
iz
e
 P
im
en
ta
107
Para facilitar a identificação construção do diagrama, dividimos a construção em três partes:
-A primeira é a identificação dos possíveis casos de uso – lembre-se que caso de uso é uma
funcionalidade do sistema e tem início, meio e fim.
-A segunda tarefa é a descrição dos casos de uso, neste momento identificamos os verdadeiros
casos de uso do sistema, casos de uso com um, dois ou três passos podem sair do modelo e seus
passos podem ser identificados como sendo de outro caso de uso. Pode ser identificada também a
necessidade de criar um caso de uso novo quando identificado um conjunto de passos iguais em
mais de um caso de uso.
-A terceira parte é o desenho do diagrama, após a identificação e a descrição dos casos de uso o
desenho do diagrama fica fácil.
D
en
iz
e
 P
im
en
ta
108
D
en
iz
e
 P
im
en
ta
109
D
en
iz
e
 P
im
en
ta
110
A descrição de casos de uso é livre não tem regra alguns profissionais utilizam em forma de tabela
outros na forma de texto corrido, a UML não tem regra para isso.
Fluxo (ou curso) típico, normal, ou principal – é o que ocorre se der tudo certo, imaginar o mundo
perfeito, sem erros.
Fluxos (ou cursos) alternativos e/ou exceções – é a descrição de uma alternativa de execução do
curso principal, pode ter uma forma correta alternativa ou os possíveis erros. Como o sistema deverá
reagir se determinada condição for falsa, este é o tipo de informação que deverá constar e estar
mapeada nas exceções.
Existem autores que dividem Cursos Alternativos e Exceções, a UML não obriga nenhum uso, o
Fluxo (ou curso) Alternativo ou Secundário representa uma outra forma de execução de um passo (ou
um conjunto de passos), como uma alternativa do curso principal, como por exemplo a venda à prazo
ou à vista, ambas as formas são possíveis e não indicam erro, são apenas alternativas diferentes de
registrar um pagamento.
D
en
iz
e
 P
im
en
ta
111
D
en
iz
e
 P
im
en
ta
112
A pré-condição é opcional e descreve o estado que o sistema deve estar antes do
início do caso de uso. Por exemplo: o arquivo de importação (a ser gerado por outro
sistema) deve estar gerado e disponível no caminho XYZ.
A pós-condição é opcional e descreve o estado que o sistema vai se encontrar ao
final da execução do caso de uso. Por exemplo: Ao final do caso de uso efetuar
compra o boleto deverá ser impresso.
D
en
iz
e
 P
im
en
ta
113
D
en
iz
e
 P
im
en
ta
114
Depois da identificação e da descrição dos casos de uso o desenho do diagrama se torna simples,
pois os diagramas reais já estão definidos, as inclusões, extensões, generalizações e atores já foram
identificados.
D
en
iz
e
 P
im
en
ta
115
Lembre-se que é com a prática que você irá aprender a fazer os diagramas.
D
en
iz
e
 P
im
en
ta
116
Devemos evitar passos e regras repetidas em ‘n’ casos de uso, para isso devemos procurar unificar e
separar as regras em um caso de uso a ser usado pelos outros.
Atores que têm a mesma interação com o sistema em um caso de uso devem ser generalizados (ver
generalização/especialização de atores).
D
en
iz
e
 P
im
en
ta
117
D
en
iz
e
 P
im
en
ta
118
D
en
iz
e
 P
im
en
ta
119
Objetivos do Capítulo 4:
• Conhecer Componentes do Diagrama de Classes
• Construir um Diagrama de Classe
• Exercícios e Desafios
D
en
iz
e
 P
im
en
ta
120
D
en
iz
e
 P
im
en
ta
121
As classes podem ser exibidas com ou sem seus atributos e/ou métodos, o que é obrigatório é o
nome da classe.
As classes de interface são exibidas como um pequeno círculo, estas especificam um conjunto de
operações ou serviços de uma classe ou componente. As interfaces ultrapassam as fronteiras lógica
e física. A mesma interface utilizada ou realizada por um componente será encontrada utilizada ou
realizada pelas classes que o componente implementa.
As classes exibidas no rodapé da página tem um estereótipo diferente e cada uma indica um tipo
diferente, a primeira é uma classe de controle, a segunda uma classe de fronteira e a terceira uma
classe de entidade.
Classe de Controle – são elementos que coordenam o comportamento do caso de uso, atuando
como uma interface entre fronteira e entidade.
Classe de Fronteira – modelam a interação entre o sistema e seu ambiente. Geralmente são
representadas por Interfaces Gráficas com o Usuário (GUI – Graphical User Interfaces), interfaces
com outros sistemas e interfaces com dispositivos.
Classe de Entidade – atuam de forma a armazenar e controlar informações no sistema.
D
en
iz
e
 P
im
en
ta
122
D
en
iz
e
 P
im
en
ta
123
Os pacotes lógicos são agrupamentos de elementos de um modelo. No modelo de
análise, eles podem ser utilizados para formar grupos de classes com um tema
comum, pode ser útil para a divisão do trabalho na equipe de desenvolvimento.
Os pacotes da figura são usados para agrupar classes especializadas em relação a
esses aspectos.
Pacotes lógicos podem ter relações de dependência e pertinência entre si.
D
en
iz
e
 P
im
en
ta
124
A associação binária é a mais comum nos diagramas de classe.
D
en
iz
e
 P
im
en
ta
125
O exemplo acima indica que um Estado pode ter várias Cidades, a estrutura das duas
classes é idêntica, e uma outra forma mais simplista de desenhar seria em uma única
classe.
D
en
iz
e
 P
im
en
ta
126
A associação n-ária representa o relacionamento com mais de duas classes. O
exemplo acima está exibindo o relacionamento de avaliação de um funcionário em
um projeto, e esta avaliação é para um quesito. Então, por exemplo, o funcionário
João será avaliado em pontualidade no projeto A e terá uma nota de avaliação,
quando ele for trabalhar no Projeto B ele poderá ter outra nota de avaliação no
mesmo quesito.Os quesitos servem para pontuar os funcionários e são exemplo:
organização, limpeza, pontualidade, etc.
D
en
iz
e
 P
im
en
ta
127
Neste exemplo a cauda a fuselagem e as asas do avião poderão ser utilizadas em outro avião. E se o
planador for excluído talvez as partes continuem existindo para um dia compor outro planador.
D
en
iz
e
 P
im
en
ta
128
As figuras mostram dois exemplos de agregação: um documento pode ter figuras e
essas figuras podem ser utilizadas em outros documentos. Estes serão membros do
documento (todo-parte). Da mesma forma um projeto pode trabalhar com classes e
funcionários, que poderão ser utilizados por outro projeto, significa dizer que quando
chegar ao fim de um projeto, as classes e os funcionários poderão ser
reaproveitados.
D
en
iz
e
 P
im
en
ta
129
A composição indica que a ‘parte’ não tem vida sem o ‘todo’. No exemplo o desenho do círculo será
composto de pontos e estes pontos somente poderão compor este círculo.
D
en
iz
e
 P
im
en
ta
130
D
en
iz
e
 P
im
en
ta
131
A composição impõe a cardinalidade de no mínimo 1. Os exemplos sugerem que as
páginas e a capa do livro compõem um livro e não podem compor outro objeto. Assim
como os quartos do hotel somente pertencerão a ele, não faz sentido retirar o quarto
do cadastro e aproveitar para outro hotel (a parte não existe sem o todo).
D
en
iz
e
 P
im
en
ta
132
D
en
iz
e
 P
im
en
ta
133
O uso das restrições é facultativo e serve para identificar o que está desenhado nas especializações
da super-classe. Pode ser que estejam todos os sub-tipos desenhados no diagrama, se fosse
colocado no exemplo acima poderíamos dizer que todas as contas são do tipo Fundo, Corrente ou
Poupança, neste caso a restrição seria ‘completo’. Caso tenha algum tipo de conta não mostrado no
desenho, como Conta Aplicação teríamos a restrição sendo ‘incompleto’.
Para as restrições de sobreposição temos que uma conta bancária pode se comportar como
poupança e como conta corrente, o dinheiro não fica parado nunca está no mínimo rendendo os juros
da poupança. Se o sistema não funcionar desta forma, ou seja, uma conta bancária é uma conta
poupança ou corrente ou fundo de ações temos a restrição de ‘disjunção’.
D
en
iz
e
 P
im
en
ta
134
D
en
iz
e
 P
im
en
ta
135
Um exemplo raríssimo do uso de herança múltipla, o veículo anfíbio herda características (atributos e
métodos) tanto de ‘Terrestre’ quanto da classe ‘Marítimo’.
Neste exemplo as restrições não estão definidas, o que dificulta um pouco o entendimento do
desenho.
D
en
iz
e
 P
im
en
ta
136
No sistema acima nunca será instanciado um Veículo, ou será instanciado Carro ou
Barco.
D
en
iz
e
 P
im
en
ta
137
D
en
iz
e
 P
im
en
ta
138
Os dados de emprego só existem se houver uma pessoa e uma empresa, se não
houver associação entre esses elementos não existirá emprego.
D
en
iz
e
 P
im
en
ta
139
A dependência entre as classes não indica inclusão dos atributos do relacionamento
(não haverá chave estrangeira na geração do banco), essa associação indica
simplesmente que uma classe envia uma mensagem a outra. No exemplo acima o
objeto Pedido solicita uma informação do Produto, por exemplo seu preço. Nada
impede de haver associação entre as classes.
D
en
iz
e
 P
im
en
ta
140
No exemplo acima uma operação de pedido faz referência à um objeto da classe Produto.
D
en
iz
e
 P
im
en
ta
141
Como no diagrama de classe não tem a representação de chave estrangeira, a navegabilidade indica
que a divulgação terá a chave estrangeira da entidade programa, pois todos os objetos de Divulgação
têm a responsabilidade de saber qual o Programa fazem referência.
D
en
iz
e
 P
im
en
ta
142
D
en
iz
e
 P
im
en
ta
143
A multiplicidade indica a quantidade de objetos da classe B pode estar associada a um
objeto da classe A em uma associação.
No exemplo um cliente pode se relacionar com vários objetos da classe pedido, mas um
objeto da classe pedido só poderá estar associado a um objeto da classe cliente (no
mínimo um e no máximo um cliente).
D
en
iz
e
 P
im
en
ta
144
Uma classe pode definir o tipo de acesso que seus membros (propriedades e métodos) permitirão às
demais partes do sistema.
Em uma escala progressiva de “privacidade” dos membros, os tipos de acesso possíveis são público,
pacote, protegido e privado.
O padrão para criação de atributos é com visibilidade privada e os métodos como públicos, desta
forma utilizamos o conceito de encapsulamento (proteção dos dados pelos métodos da própria
classe).
A classe ‘Visibilidade’ exibida acima mostra o desenho da visibilidade na ferramenta CASE Rose.
D
en
iz
e
 P
im
en
ta
145
Exemplo do diagrama de classes completo.
D
en
iz
e
 P
im
en
ta
146
O código acima foi gerado a partir do desenho da classe utilizando a ferramenta CASE JUDE
Community 1.4.3.
D
en
iz
e
 P
im
en
ta
147
O script gerado foi feito usando a ferramenta CASE Rational Rose 2003.
D
en
iz
e
 P
im
en
ta
148
Mais uma vez a UML não tem regra para a construção do diagrama, mas para facilitar sua construção
vamos seguir esses passos.
D
en
iz
e
 P
im
en
ta
149
D
en
iz
e
 P
im
en
ta
150
D
en
iz
e
 P
im
en
ta
151
D
en
iz
e
 P
im
en
ta
152
( Este exercício é complementar, tente fazer e traga dúvidas )
D
en
iz
e
 P
im
en
ta
153
D
en
iz
e
 P
im
en
ta
154
Objetivos do Capítulo 5:
•Visualizar a dinâmica do sistema através do Diagrama de Seqüência.
D
en
iz
e
 P
im
en
ta
155
D
en
iz
e
 P
im
en
ta
156
Um diagrama de sequência dá ênfase à ordenação temporal das mensagens.
É difícil representar lógicas de seleção e repetição sem prejudicar a legibilidade do
diagrama.
D
en
iz
e
 P
im
en
ta
157
Os diagramas de interação são elaborados baseados na descrição de um fluxo (ou sub-fluxo) do caso
de uso juntamente com o diagrama de classes, visto que os diagramas de interação representam as
mensagens entre os objetos, que são os passos levantados na descrição e os objetos são as classes
identificadas no diagrama de classes.
D
en
iz
e
 P
im
en
ta
158
Componentes do Diagrama de Seqüência: Objetos, Mensagem, Linha de Vida, Caixa de Ativação,
Remoção, Restrição.
Tipicamente o objeto que inicia a interação é colocado à esquerda, portanto o desenho é feito da
esquerda para a direita, conforme a utilização dos objetos no contexto. Somente serão exibidos no
diagrama objetos que participarem do roteiro.
D
en
iz
e
 P
im
en
ta
159
Sistemas de Tempo Real são caracterizados por terem que atender, não apenas a correta execução
lógica das tarefas, como também a limites de tempo de execução. Para que uma tarefa em tempo
real seja considerada bem sucedida, ela deve ser concluída com sucesso e dentro de um tempo pré-
determinado, como representar este requisito na UML? Pode ser utilizado o Diagrama de Seqüência
colocando restrições de tempo nas execução das atividades.
A semântica utilizada na restrição é descrita na OCL (Object Constraint Language).
D
en
iz
e
 P
im
en
ta
160
D
en
iz
e
 P
im
en
ta
161
No exemplo acima podemos observar que a instância de Pedido é criada a partir da
tela de cadastro de pedido (frmCadPedido). Note que a instância de Cliente aparece
um pouco abaixo da instância da janela, indicando que ela foi criada depois.
D
en
iz
e
 P
im
en
ta
162
A figura mostra um ‘X’ na linha de vida da instância de pedido indicando a sua
exclusão. Note que a linha de vida do objeto é interrompida.
D
en
iz
e
 P
im
en
ta
163
Evite interações entre atores, pois por definição o ator é externo ao sistema.
D
en
iz
e
 P
im
en
ta
164
O Diagrama de Seqüência é feito a partir da descrição do caso de uso e da definição
das classes.
O Diagrama de Seqüência é um descobridor de métodos das classes, quando
desenhamos o diagrama de classe não temos idéia da quantidade dos métodos das
classes, é até uma atividade difícil tentar descobrir os métodos sem o uso do
diagrama de seqüência.
D
en
ize
 P
im
en
ta
165
Observe na figura a seqüência de passos do caso de uso, identificada pela
numeração.
D
en
iz
e
 P
im
en
ta
166
D
en
iz
e
 P
im
en
ta
167
D
en
iz
e
 P
im
en
ta
168
A condição no diagrama de seqüência é representada através de uma expressão
entre colchetes (Condição de Guarda), e indica que a mensagem só será executada
se a condição for verdadeira.
A repetição é vista com o uso de um quadro no entorno das mensagens que podem
ser repetidas. A figura indica que existem dois passos que podem ser repetidos
indefinidamente que são: Selecionar Item e adicionarItem, as demais mensagens
seguem o fluxo sem repetição. Nota: o uso deste elemento depende da versão da
ferramenta CASE, pois somente foi implementado na versão 2.0 da UML.
D
en
iz
e
 P
im
en
ta
169
O uso de notas é permitido em qualquer diagrama UML, mas utilize com bom senso para não poluir o
diagrama.
D
en
iz
e
 P
im
en
ta
170
D
en
iz
e
 P
im
en
ta
171
D
en
iz
e
 P
im
en
ta
172
D
en
iz
e
 P
im
en
ta
173
Objetivos do Capítulo 6:
•Visualizar o passo a passo da construção do Diagrama de Atividades.
•Esquematizar o ciclo de vida dos objetos através do Diagrama de Estados.
D
en
iz
e
 P
im
en
ta
174
Neste tópico veremos:
•Os componentes do Diagrama de Atividades
•A confecção do diagrama em partes:
•Identificar os fluxos (atividades)
•Identificar atividades executadas em paralelo
•Identificar a ordem de execução
•Identificar desvios e condições
•Desenhar o diagrama
D
en
iz
e
 P
im
en
ta
175
D
en
iz
e
 P
im
en
ta
176
O desenho acima representa o workflow da disciplina de requisitos retirada do RUP, mapeia as
principais atividades (macro-atividades) executadas nesta disciplina e exibe alguns componentes do
diagrama de atividades:
-Início (ou estado de início)
-Fim (ou estado de parada)
-Separação (ou Bifurcação)
-Junção (ou União)
-Atividade
-Transição
-Decisão (ou Ramificação)
Como informado anteriormente pode-se mapear processos com este diagrama.
D
en
iz
e
 P
im
en
ta
177
Uma ação (ou estado de ação) é a menor porção do código.
D
en
iz
e
 P
im
en
ta
178
D
en
iz
e
 P
im
en
ta
179
Decisão (ou ramificação) especifica caminhos alternativos tomando como base
alguma expressão booleana. Para explicitar qual caminho se segue é utilizada a
condição de guarda.
D
en
iz
e
 P
im
en
ta
180
D
en
iz
e
 P
im
en
ta
181
D
en
iz
e
 P
im
en
ta
182
Atividade e estados juntos podem trazer muita informação ao diagrama, cuidado com
a poluição visual, tenha sempre em mente o objetivo do diagrama que está sendo
desenhado.
D
en
iz
e
 P
im
en
ta
183
No exemplo acima temos o fluxo do processo da liberação de um pedido, as
alterações de estados e as atividades que fazem essas alterações.
Quando há a emissão da cobrança para o cliente o pedido tem seu estado alterado
para “aguardando pagamento”.
D
en
iz
e
 P
im
en
ta
184
Para o exemplo apresentado teremos que desenhar um diagrama de atividades.
D
en
iz
e
 P
im
en
ta
185
Com os fluxos identificados fica mais fácil iniciar o desenho do diagrama, nesta parte
devemos pensar nas atividades que o sistema deverá desenvolver. Ao final desta
etapa devemos descobrir se existe alguma atividade que pode ficar em paralelo com
alguma outra.
D
en
iz
e
 P
im
en
ta
186
Este é o estudo de threading ou de processos que são executados simultaneamente,
identificamos no meio de todos os fluxos levantados se existem atividades que podem
ser desenvolvidas simultaneamente.
Após este passo devemos descobrir qual a ordem de execução das atividades
D
en
iz
e
 P
im
en
ta
187
A ordenação da execução das atividades se torna fácil quando se conhece o negócio
em questão, ainda neste momento podem surgir dúvidas de negócio que devem ser
resolvidas juntamente com o usuário/gestor da informação.
Depois devemos descobrir se no nosso esquema há alguma decisão, se a execução
de uma atividade depende de alguma condição.
D
en
iz
e
 P
im
en
ta
188
Os desvios são as opções de caminhos que podem ser trilhadas no decorrer da
execução das atividades.
Ao término desta identificação dá-se o início do desenho do diagrama.
D
en
iz
e
 P
im
en
ta
189
Não há mistério no desenho do diagrama, a princípio devemos identificar as
atividades, depois as atividades que podem ser colocadas em paralelo e a ordem que
devem ser executadas, em seguida descobrir se há desvios e suas condições. Pronto
o desenho está pronto.
Porque usar a junção e bifurcação ?
A bifurcação do exemplo indica que o ‘Contratar Arquiteto’ e o ‘Adquirir Local’ são
atividades que podem ser simultâneas, inclusive podem ser feitas por recursos
diferentes (processadores ou profissionais).
A junção do exemplo, indica que para que o ‘Desenho do Projeto’ seja iniciado ele
deve esperar que o ‘Contratar Arquiteto’ e o ‘Adquirir Local’ estejam finalizados.
D
en
iz
e
 P
im
en
ta
190
Relembrando a descrição do caso de uso, seus cursos normais e alternativos.
D
en
iz
e
 P
im
en
ta
191
No desenho do diagrama fica fácil visualizar todas as exceções do caso de uso.
Neste exemplo somente foram desenhadas as ações do sistema para facilitar a
legibilidade do diagrama, por outro lado seria mais completo se fossem inseridas as
ações dos atores. Essa decisão deverá ser tomada visando legibilidade e completeza
do entendimento dos fluxos do caso de uso.
D
en
iz
e
 P
im
en
ta
192
D
en
iz
e
 P
im
en
ta
193
Neste tópico veremos:
•Componentes do diagrama
•Máquina de estados
D
en
iz
e
 P
im
en
ta
194
O diagrama de estados visa o estudo do comportamento do objeto. Como os
diagramas na UML são complementares, o diagrama de classe deve ter uma
propriedade para a informação do estado do objeto criado e o diagrama de caso de
uso deve prever a alteração do estado deste objeto nas várias etapas do seu ciclo de
vida.
O diagrama de estados observa o comportamento de uma instância.
D
en
iz
e
 P
im
en
ta
195
D
en
iz
e
 P
im
en
ta
196
D
en
iz
e
 P
im
en
ta
197
D
en
iz
e
 P
im
en
ta
198
Esta divisão é opcional adotada somente por alguns autores.
Compartimento de Nome – local onde conterá o nome do estado.
Compartimento de Transições Internas – lista as ações ou atividades executadas
enquanto o objeto estiver no estado em foco.
As palavras reservadas que aparecem antes das ações na área de transições
internas identificam o evento que é disparado, são elas:
Entry - identifica uma ação que é executada na entrada do estado.
Exit - identifica uma ação que é executada na saída do estado.
Do - identifica uma atividade executada continuamente enquanto o objeto estiver no
estado.
Include – é uma chamada de uma submáquina.
D
en
iz
e
 P
im
en
ta
199
Na transição (a seta entre estados) fica com o nome do evento ou o que foi
responsável na mudança de estado do objeto.
Na alteração do estado de um objeto pode ser necessário executar alguns métodos,
isso é representado através da ação, que também poderá aparecer na transição ou
dentro do estado.
A condição de guarda também será exibida na transição.
D
en
iz
e
 P
im
en
ta
200
Observe que o evento é o que faz com que o objeto mude de estado, seu conceito
está intimamente ligado ao da transição.
D
en
iz
e
 P
im
en
ta
201
A máquina de estados (ou Superestado ou Estado Composto) foi criada para agrupar
estados e facilitar a leitura do diagrama.
D
en
iz
e
 P
im
en
ta
202
D
en
iz
e
 P
im
en
ta
203
Nas figuras exibidas percebemos a facilidade da leitura permitida pelo super estado
(máquina de estados).
Perceba que tanto o vôo aberto quanto lotado passam para a situação fechado,
independente da situação anterior o que faz com que o vôo passe para fechado são
os 10 minutos antes da decolagem. Com esta modelagem uma transição foi
suprimida e o modelo ficou mais legível.
Classe 
Vôo
D
en
iz
e
 P
im
en
ta
204
Este exemplo didático e bem simples auxilia a visão de um desenho mais limpo eclaro com o uso da
máquina de estados. Imagine este desenho sem o super-estado ‘Para frente’ com os sub-estados
mantendo transição com o neutro.
O objetivo principal do agrupamento de estados é facilitar a legibilidade.
D
en
iz
e
 P
im
en
ta
205
D
en
iz
e
 P
im
en
ta
206
No exemplo apresentado teremos que desenhar um diagrama de estados para uma
pesquisa.
D
en
iz
e
 P
im
en
ta
207
Lembre-se existem classes que simplesmente não têm necessidade de estudar seus estados.
D
en
iz
e
 P
im
en
ta
208
Volte ao enunciado e descubra os estado do objeto (Pesquisa).
D
en
iz
e
 P
im
en
ta
209
Na identificação dos eventos temos que buscar as ações que são executadas no
sistema, para a classe em questão, ou seja, temos que identificar quais são as ações
no sistema que alteram o estado da ‘Pesquisa’.
D
en
iz
e
 P
im
en
ta
210
Depois de empregar os passos anteriores o desenho do diagrama se torna muito
fácil.
Lembre-se que o diagrama pode ser enriquecido com outras características do
sistema como a ação, condições de guarda, agrupamento de estados e o
compartimento de transições internas.
D
en
iz
e
 P
im
en
ta
211
O uso do Diagrama de Estados é facultativo, ele só será utilizado quando houver
necessidade de representar os estados de uma classe, é o estudo do ciclo de vida
que um objeto poderá trilhar.
D
en
iz
e
 P
im
en
ta
212
D
en
iz
e
 P
im
en
ta
213
D
en
iz
e
 P
im
en
ta
214
Em um contexto geral percebemos que o diagrama de estados depende do diagrama
de classes e do diagrama de casos de uso e podemos ter mais de um diagrama de
estados por sistema.
Lembramos mais uma vez que os diagramas se completam e conforme vamos
identificando eventos, estados devemos rever o diagrama de classes e casos de uso.
Os diagramas devem estar coerentes.
D
en
iz
e
 P
im
en
ta
215
D
en
iz
e
 P
im
en
ta
216
Objetivos do Capítulo 7:
• Exercitar o aprendizado através da construção dos diagramas de Casos de
Uso, Classe, Seqüência, Atividade e Estado.
D
en
iz
e
 P
im
en
ta
217
Este texto exprime uma idéia do negócio apresentado e pode não suprir todas as suas
dúvidas, portanto fica livre a sua decisão na hora de modelar. O que é importante aqui é
saber apresentar as soluções no desenho dos diagramas e não as regras do negócio.
D
en
iz
e
 P
im
en
ta
218
D
en
iz
e
 P
im
en
ta
219
D
en
iz
e
 P
im
en
ta
220
D
en
iz
e
 P
im
en
ta
221
D
en
iz
e
 P
im
en
ta
222
D
en
iz
e
 P
im
en
ta
223
Exercícios Resolvidos
Cap. 1
1-c; 2-d; 3-d; 4-b; 5-d; 6-a
Cap. 2
Exercício Teórico: 1-b; 2-d; 3-d; 4-a; 5-c
Exercício Prático:
Cap. 3
Votação Eletrônica – Entrada Externa – 9 DER (número (entra e sai conte
apenas uma vez), foto, nome, sigla do partido, cargo, nome vice, foto vice,
ação e mensagem) e 3 ALR (Candidato, Partido e Eleitor) – Média – 4 PFB
Exercício Teórico: 1-a; 2-b; 3-c; 4-b; 5-b; 6-b; 7-b
Exercício Prático:
Cap. 4
Exercício Teórico: 1-c; 2-d; 3-d; 4-b; 5-a
Cap. 5
Parte 1
1-c; 2-c; 3-a; 4-c; 5-d
Parte 2
1-b; 2-c; 3-c; 4-c; 5-b
Descrição Tipo
(ALI/AIE)
DER
(qtd)
RLR
(qtd)
Complexidade
(B – M – A)
Pontos
Agenda Telefônica ALI 2 1 B 7
Configuração ALI 2 1 B 7
Descrição Tipo
(EE/SE/CE)
DER
(qtd)
ALR
(qtd)
Complexidade
(B – M – A)
Pontos
Agenda – InclusãoAgenda EE 4 1 B 3
Agenda – BuscaAgenda CE 4 1 B 3
Agenda – AlteraçãoAgenda EE 4 1 B 3
Agenda – Exclusão de um 
nomeAgenda
EE 3 1 B 3
Agenda – Exclusão de todos EE 2 1 B 3
Configuração – alteração tipos 
de toque
EE 3 1 B 3
Configuração – alteração 
volume de toque
EE 3 1 B 3
Bloqueio/Desbloqueio das 
teclas
EE 2 0 B 3
D
en
iz
e
 P
im
en
ta
224
Este material está registrado na Biblioteca Nacional.
Registro 397.004 - Livro 739 - Folha 164

Outros materiais