Escolar Documentos
Profissional Documentos
Cultura Documentos
DE
DADOS
Charles Emerson Machado
Charles.emerson.machado@gmail.com
1
2
Um software de alta complexidade não é algo que se produza
simplesmente sentando diante de um ambiente de suporte à
programação e gerando código. Como qualquer desenvolvimento de
alta complexidade, a produção em si precisa de algum planejamento.
Alguém começa a construção de um prédio de vinte andares
assentando tijolos? Antes, há que se desenvolver um projeto. O
mesmo se aplica a máquinas e equipamentos em geral. Com
software complexo não é diferente.
3
Modelagem, no escopo do desenvolvimento de software, constitui um
auxílio ao tratamento da complexidade. Aprender modelagem orientada
a objetos é um requisito básico para quem quer se qualificar ao
desenvolvimento de software de alta complexidade. Modelar software
permite construir um caminho adequado entre o estabelecimento de um
problema e o código que constitui sua solução. Além de auxiliar o
gerenciamento da complexidade evitando que o desenvolvimento perca
o rumo, leva a resultados mais bem estruturados, pois fornece uma
sistemática de identificação e tratamento de problemas.
4
Processo de desenvolvimento de software:
5
Para capacitar-se como desenvolvedor de software orientado a objetos
com habilidade de desenvolver projeto de software - e não apenas
código – quatro competências são necessárias:
6
Conhecer uma linguagem de modelagem: atualmente, o padrão
internacionalmente adotado para modelagem orientada a objeto é UML –
especificamente, a segunda versão. É preciso conhecer seus treze
tipos de diagrama, isto é, seus elementos sintáticos e sua aplicabilidade
em um processo de modelagem;
7
Avaliar o que for produzido: conhecer uma linguagem de
especificação (como UML) e as etapas de um procedimento de
modelagem não garante um desenvolvimento com resultado
satisfatório. É inerente ao desenvolvimento de software que decisões
tenham que ser tomadas com certa frequência, ao longo do processo.
Muitas vezes, sem muita clareza quanto a uma opção ser melhor ou
pior que outra. Pequenas decisões ruins ao longo das etapas podem
resultar em fracasso do desenvolvimento, se o desenvolvedor não se
der conta disso em tempo. Assim é essencial ter a capacidade de
buscar inconsistências na especificação: que tipos de inconsistências
devem ser procurados, onde, como, quando. Além disso, especificações
de projeto podem apresentar imperfeições que não caracterizam
inconsistência. Avaliar o que foi produzido inclui a busca da
maximização da qualidade do processo de desenvolvimento, isto é,
buscar as alternativas que privilegiem a qualidade da especificação.
8
Ciclo de vida do software: Corresponde ao conjunto de etapas por
que um software passar ao longo de sua existência.
ANÁLISE DE REQUISITOS->ANÁLISE->DESIGN(PROJETO)->PROGRAMAÇÃO->TESTES
9
Estas cinco fases não devem ser executadas na ordem descrita acima,
mas concomitantemente de forma que problemas detectados numa
certa fase modifiquem e melhorem as fases desenvolvidas
anteriormente de forma que o resultado global gere um produto de alta
qualidade e performance. A seguir falaremos sobre cada fase do
desenvolvimento de um sistema em UML:
10
Análise de Requisitos
Esta fase 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-case", as entidades externas ao
sistema (em UML chamados de "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". 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. Cada "use-case" modelado é descrito através de um texto, e
este especifica os requerimentos do ator externo que utilizará este "use-
case". 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 sua funcionalidade sem importar como esta será
implementada. A análise de requisitos também pode ser desenvolvida
baseada em processos de negócios, e não apenas para sistemas de
software.
11
12
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
Classe. As colaborações entre classes também são mostradas neste
diagrama para desenvolver os "use-cases" modelados anteriormente,
estas colaborações são criadas através de modelos dinâmicos em UML.
Na análise, só 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.
13
Conceitos ou Entidades
14
CLASSES
15
CLASSES DE SOFTWARE
16
Design (Projeto)
Na fase de design, o resultado da análise é expandido em soluções
técnicas. 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, dentre outros.
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 a infra-estrutura. O design resulta
no detalhamento das especificações para a fase de programação do
sistema.
17
Programação
Na fase de programação, as classes provenientes do design são
convertidas para o código da linguagem orientada a objetos escolhida
(a utilização de linguagens procedurais é extremamente não
recomendada). Dependendo da capacidade da linguagem usada, essa
conversão pode ser uma tarefa fácil ou muito complicada. No momento
da criação de modelos de análise e design em UML, é melhor evitar
traduzi-los mentalmente em código. Nas fases anteriores, os modelos
criados são o significado do entendimento e da estrutura do sistema,
então, no momento da geração do código onde o analista conclua
antecipadamente sobre modificações em seu conteúdo, seus modelos
não estarão mais demonstrando o real perfil do sistema. A
programação é uma fase separada e distinta onde os modelos criados
são convertidos em código.
18
Testes
Um sistema normalmente é rodado em testes de unidade, integração, e
aceitação. Os testes de unidade são para classes individuais ou grupos
de classes e são geralmente testados pelo programador. Os testes de
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. Os testes de aceitação
observam o sistema como uma " caixa preta“ e verificam se o sistema
está funcionando como o especificado nos primeiros diagramas de
"use-cases".
19
20
POR QUE É IMPORTANTE USAR POO?
21
A idéia central da POO é quebrar o software em classes, onde cada
funcionalidade tenha uma classe para sua implementação. Isso facilita o
desenvolvimento, pois coloca o foco do programador apenas naquela
classe que deve ser implementada, além de permitir que outros membros
da equipe implementem também outras partes ao mesmo tempo, já
considerando a existência dessa classe. É claro que para isso tornar-se
possível deve existir uma fase de modelagem do sistema em classes
antes do início da fase de implementação.
Resumidamente, o processo de desenvolvimento de software para ser
qualitativo e produtivo deve:
22
•Ter um time ou ferramentas de testes que assegurem que os requisitos
estão sendo atendidos;
•E, para isso funcionar como uma engrenagem ou uma linha de
montagem, se faz necessário ter um ciclo de vida de desenvolvimento
estabelecido e praticado pelos membros do time de projetos;
23
UM MUNDO ORIENTADO A OBJETOS
CLASSES
As palavras “reservadas” Classe e Objeto são facilmente confundidas
em diversos textos que se propõe a explicar POO. Genericamente
comentando, uma classe é uma abstração que representa alguma coisa,
e o objeto é a usabilidade dessa representação definida pela classe.
Podemos também afirmar que uma classe é um gabarito para a
definição de objetos. Através da definição de uma classe, descreve-se
que propriedades(ou atributos) e métodos (ou procedimentos/funções)
que o objeto terá.
24
Além da especificação de atributos, a especificação de uma classe
descreve também qual o comportamento de objetos da classe, ou seja,
que funcionalidades podem ser aplicadas a objetos da classe. Essas
funcionalidades são descritas através de métodos. Um método nada mais
é que o equivalente a um procedimento ou função, com a restrição que
ele manipula apenas suas variáveis locais e os atributos que foram
definidos para a classe.
Neste caso, uma classe é a “essência” de um objeto. Ele tem a “receita”
para construção do objeto, bem como definição do que o objeto possuirá
(que propriedades e que métodos) quando for criada uma instância real a
partir dela.
25
Se fizermos uma analogia com a construção civil, o arquiteto escreveria a
classe e o engenheiro a invocaria transformando-a em um objeto.
OBJETOS
26
Um programa orientado a objetos é composto por um conjunto de objetos
que interagem através de “trocas de mensagens”. Na prática, essa troca
de mensagem traduz-se na aplicação de métodos a objetos.
INSTÂNCIA
27
CONTEÚDO DA CLASSE
28
CONTEÚDO DA CLASSE
Concluindo:
29
APLICANDO A POO NA RECEITA DE BOLO
30
O que é o bolo pronto?
•Mundo real: é o bolo devidamente assado, já com a cobertura de
chocolate, como determina a receita, pronto para consumo.
•POO: é a instância da classe.
31
O QUE TORNA UMA LINGUAGEM DE PROGRAMAÇÃO OO?
• Encapsulamento;
• Abstração;
• Herança;
• Polimorfismo;
32
ENCAPSULAMENTO
33
ABSTRAÇÃO
34
HERANÇA
35
POLIMORFISMO
36
ATRIBUTOS
Exemplos:
Classe Atributos
Pessoa Nome, Peso, Altura
Carro Cor, Modelo, Ano
37
MÉTODOS
Exemplos:
Classe Métodos
Pessoa Andar, Falar, Respirar
Carro Acelerar, Abrirporta, Ligarradio
Charles.emerson.machado@gmail.com
39
40
Por que fazer a modelagem?
41
O QUE É MODELAGEM VISUAL?
42
43
O QUÊ É A UML?
44
Histórico
45
Histórico
• Grady Booch
– Um dos pioneiros da OO
– 1980: ênfase em técnicas de projeto
para Ada
– 1992-1994: livros
• Object-Oriented Design with Applications
– projeto de programas em C++ e Ada
1994: Object-Oriented Analysis and Design with Applications
• texto sobre conceitos de OO e modelagem de objetos
• projeto de várias aplicações-exemplo com diferentes linguagens da
época
– 1998: Fundação da Rational
46
Histórico
• Ivar Jacobson
– Modelagem OO baseado em Casos de Uso
– Objectory
47
Histórico
• James Rumbaugh
– Object Modeling Technique (OMT)
– Desenvolvida na GE
– Metodologia baseada em notações pré-existentes (ER, DTE, DFD)
– Clara distinção entre as três visões do problema
48
Histórico
49
50
UML é uma linguagem destinada a:
• Visualizar
• Especificar
• Construir
• Documentar artefatos de software.
Tem sido aplicada de maneira efetiva em:
51
52
A VISÃO DO CASO DE USO descreve o comportamento do sistema
na visão do usuário final, dos analistas e do pessoal de teste. Ela
abrange um pouco de cada visão, tentando demonstrar as interações
do sistema com os meios externos. Os diagramas utilizados nessa
visão são diagramas de caso de uso e diagramas de atividades,
ambos para a modelagem comportamental.
A VISÃO DE PROJETO é uma visão lógica do sistema e é a visão de
maior interesse para os analistas e projetistas. Ela abrange as classes,
interface e colaborações do sistema, formando o vocabulário do
problema e de sua solução.
Está relacionada na UML com os diagramas de classes para a
modelagem estrutural, diagramas de colaboração para a modelagem
comportamental e diagramas de estados para a modelagem estrutural.
53
A VISÃO DO PROCESSO abrange todos os processos que tornam
funcional o sistema de software, cuida do comportamento, do
desempenho e da escalabilidade do sistema. Utiliza os diagramas de
objetos para a modelagem estrutural e diagramas de sequência para a
modelagem comportamental.
A VISÃO DA IMPLEMENTAÇÃO abrange gerenciamento de versões,
gerenciamento de disco e arquivos para se obter um fornecimento do
sistema físico do software, ou seja, um sistema final executável. Utiliza
diagramas de componentes para a modelagem estrutural.
A VISÃO DA IMPLANTAÇÃO consiste na instalação e distribuição do
sistema de software, tornando um sistema de software acessível ao
usuário final. Utiliza diagramas de execução para a modelagem
estrutural.
54
POR QUE TANTOS DIAGRAMAS?
55
Diagramas
56
A utilização de diversos diagramas permite que falhas possam ser
descobertas nos diagramas anteriores, diminuindo a possibilidade da
ocorrência de erros durante a fase de desenvolvimento do software.
É importante destacar que, embora cada diagrama tenha sua utilidade,
nem sempre é necessário modelar um sistema utilizando-se de todos
os diagramas, pois alguns deles possuem funções muito específicas,
como é o caso do Diagrama de Tempo, por exemplo.
57
DIAGRAMA DE CASOS DE USO
58
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
59
DIAGRAMA DE CLASSES
60
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
61
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
62
DIAGRAMA DE SEQÜÊNCIA
63
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
64
DIAGRAMA DE COMUNICAÇÃO
65
66
DIAGRAMA DE MÁQUINA DE ESTADOS
67
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
68
DIAGRAMA DE ATIVIDADE
69
70
COSTA, Carlos Alberto. Gestão & Produção – Aplicação da Linguagem de Modelagem Unificada (UML) para o
suporte ao projeto de sistemas computacionais dentro de um modelo de referência. Departamento de Engenharia
Mecânica Universidade de Caxias do Sul (UCS)
71
USE CASE
72
73
Cenário: Encomendas de Placas
João confecciona placas por encomenda. Como o volume dos pedidos
tem aumentado, ele pediu ao filho que lhe fizesse uma pequena
aplicação que controle:
− O cadastro de seus clientes
− As encomendas
Quando ele recebe uma encomenda, João anota num caderninho o nome
do cliente e seu telefone.
Para a encomenda, ele registra: o tamanho da placa (altura e largura), a
frase a ser escrita, a cor da placa (branca ou cinza), cor da frase (azul,
vermelho, amarelo, preto ou verde), data da entrega, valor do serviço e
valor do sinal.
74
A aplicação deve obrigar que o valor do sinal seja de no mínimo 50%.
Para calcular o valor da placa as seguintes fórmulas são usadas:
Área = altura X largura
Custo_material = área X R$ 147,30
Custo_desenho=número_letras x R$ 0,32
Valor_placa = custo_material + custo_desenho
Para calcular o prazo de entrega, considera-se que ele só consegue produzir seis
placas por dia.
João deseja que o sistema controle os pedidos, calcule o preço final das peças e
o prazo de entrega. Para cada encomenda cadastrada deve ser emitido um recibo
em duas vias (cliente e empresa), contendo todos os dados da encomenda e do
pagamento.
75
76
77
78
79
80
81
ELEMENTOS DE UM DIAGRAMA UC
ATOR
• Um ator é alguém ou alguma coisa que interage com o sistema; é
quem ou o que usa o sistema.
• O ator representa um papel, não um usuário individual do sistema.
• Atores podem ser humanos ou sistemas automatizados.
• O ator comunica-se com o sistema enviando e recebendo
mensagens.
• Atores recebem nomes que refletem o papel que desempenham no
sistema.
• Representação gráfica do ator:
nome do ator
82
Atores - Exemplos
Bibliotecário Usuário
83
CASO DE USO
84
CASO DE USO
85
Representação gráfica do Caso de Uso
Nome do Caso
de Uso
Nome do Caso de
Uso
86
Exemplo: Sistema Telefônico
Realizar
Chamada
Usuário
Manter
Agenda
87
Para identificar os Casos de Uso respondemos algumas perguntas como:
“Qual é a expectativa do usuário ao usar o sistema, ou seja, o que
Exemplos:
Efetuar Depósito
Está é uma lógica oculta
Solicitar Extrato com a qual o usuário final
Efetuar Transferência não se preocupa, portanto
não é qualificada com um
Efetuar Saque Caso de Uso
Validar Saldo
88
Casos de Uso do tipo CRUD (Create, Read, Update, Delete) por terem
comportamentos muito semelhantes geralmente são combinados em em caso
de uso que ofereça todos os recursos de manutenção.
UC Incluir Usuário
UC Pesquisar Usuário
UC Manter
Conta Corrente
= UC Encerrar conta corrente
89
ESPECIFICAÇÃO DE UM CASO DE USO
Informações Básicas
• Número do Caso de Uso
• Nome do Caso de Uso
• Descrição
• Pré-condições
• Pós-condições
• Ator Principal
• Fluxo de Eventos
• Fluxos Alternativos
• Fluxos de Exceção
• Cenários
• Views (Telas, Relatórios, etc)
• Regras de Negócio
90
Descrição:
– Descrever a função e o resultado observável do Caso de
Uso.
Orientações:
– Escreva pouco
– Especifique com exatidão o resultado observável
Sugestão: “Este Caso de Uso serve para ...”
Exemplos: Este caso de uso serve para realizar um saque em
Conta Corrente com cartão de débito.
91
Pré-condições:
– Condições que precisam ser verdadeiras para que o Caso de
Uso possa iniciar
Orientações:
– Uma pré-condição não satisfeita impede o início do Caso de
Uso .
– Uma pré-condição pode ser um outro Caso de Uso
executado.
– Nem todos os Casos de Uso têm pré-condições.
Sugestão: “Este Caso de Uso pode iniciar somente se ...”
Exemplos: Este use case pode iniciar somente se:
– O Cliente tiver perfil disponível para transação Saque em
Conta Corrente.
– Tela do Caixa Automático estiver disponível.
92
Pós-condições:
– Situação após a execução do Caso de Uso
Orientações:
– As pós-condições são condições que devem sempre ser
verdadeiras após o término da execução do Caso de Uso.
– Uma pós-condição não satisfeita impede o fim normal do
Caso de Uso.
– Assim como as pré-condições, as pós-condições podem ser
usadas para adicionar informações sobre a ordem em que os
Casos de Uso são executados.
Sugestão: “Após o fim normal deste Caso de Uso ... deve ...”
Exemplos: Após o fim normal deste Caso de Uso, o sistema deve:
• ter feito o débito na Conta Corrente do Cliente.
• ter acionado o UC Contabilidade de Caixa.
• ter impresso o Comprovante do Saque em C/C.
• ter disponibilizado informações para Extrato C/C.
93
Ator:
– O Ator não faz parte do sistema, ele é quem solicita uma ação
ao sistema (ou recebe uma resposta do sistema), ou seja, é
quem interage com o sistema.
Tipos de ator:
– Humano: um cliente de um banco sacando dinheiro.
– Sistema: o Sistema de Ações é o Ator quando aciona o Sistema
de Contas Correntes para depositar os dividendos da carteira de
ações do cliente.
– Tempo: no início do mês o Sistema de Contas Correntes
imprime os extratos do mês anterior para enviar ao cliente
através do Correio.
94
Fluxo de Eventos Principal :
– Descrever a seqüência de ações que devem ser executadas
para que o Caso de Uso execute sua função.
Orientações:
– Descrição passo a passo do fluxo normal, ou “caminho feliz”,
sob o ponto de vista do Ator
– Especifica como o Sistema será usado e não como será
implementado
– Deve ser caracterizado por frases simples, em que o
sujeito é o Ator ou o Sistema
– Não deve ter desvios para outros passos do Fluxo de
Eventos
95
Fluxos de Eventos Alternativos
– No Fluxo de Eventos Principal, caso ocorra alguma
condição em algum dos passos, deve-se executar um Fluxo
Alternativo para aquele passo.
Orientações:
– Um Fluxo Alternativo pode conter outros Fluxos Alternativos
e pode retornar para o fluxo principal
96
Fluxos de Exceção
Descrevem os procedimentos que devem ser adotados no caso
97
Cenários:
São exemplos específicos de fluxos de um Caso de Uso.
São úteis para validar os fluxos.
Exemplos:
Cenário 1: Saldo da conta igual a R$ 1000,00 e
cliente tenta sacar R$ 2.000,00
Cenário 2: Saldo da conta igual a R$ 1000,00 e
cliente saca um valor menor que o saldo, com
sucesso
98
MODELAGEM
DE
DADOS
Charles Emerson Machado
Charles.emerson.machado@gmail.com
99
EXEMPLO: LOJA DE CDS
Identificando os atores
100
IDENTIFICANDO OS ATORES
E o cliente ?
– Não é ator pois ele não interage com o sistema!
101
ELEMENTOS DO DIAGRAMA
Atores
– Casos de uso
– Relacionamentos
• Associação
• Generalização
• Dependência: Extensão e Inclusão
– Fronteira do sistema
Caso de Uso
Dicas:
Nomeie os casos de uso iniciando por um verbo
102
Identificando os casos de uso
– Uma loja de CDs possui discos para venda. Um cliente pode comprar
uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A
loja possui um atendente cuja função é atender os clientes durante a
venda dos discos. A loja também possui um gerente cuja função é
administrar o estoque para que não faltem discos. Além disso é ele
quem dá folga ao atendente, ou seja, ele também atende os clientes
durante a venda dos discos.
103
Relacionamentos
• Associação
• Generalização
• Dependência: Extensão e Inclusão
Dicas:
NÃO use setas nas associações;
Associações NÃO representam fluxo de informação;
104
Identificando os relacionamentos de associação
105
Identificando os relacionamentos de associação
106
Relacionamentos
• Associação
• Generalização
• Dependência: Extensão e Inclusão
Relacionamento de generalização
Generalização de atores
– Quando dois ou mais atores podem se comunicar com o mesmo
conjunto de casos de uso;
– Um filho (herdeiro) pode se comunicar com todos os casos de uso
que seu pai se comunica.
107
IDENTIFICANDO GENERALIZAÇÃO DE ATORES
108
Relacionamento de generalização
109
Identificando generalização de casos de uso
Novos requisitos:
– As vendas podem ser à vista ou a prazo. Em ambos os casos o
estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda à vista, clientes cadastrados na loja e que
compram mais de 5 CDs de uma só vez ganham um desconto de 1%
para cada ano de cadastro.
• No caso de uma venda a prazo, ela pode ser parcelada em 2
pagamentos com um acréscimo de 20%. As vendas a prazo podem ser
pagas no cartão ou no boleto. Para pagamento com boleto, são gerados
boletos bancários que são entregues ao cliente e armazenados no
sistema para lançamento posterior no caixa. Para pagamento com
cartão, os clientes com mais de 10 anos de cadastro na loja ganham o
mesmo desconto das compras a vista.
110
IDENTIFICANDO GENERALIZAÇÃO DE CASOS DE USO
111
Identificando mais generalização de casos de uso
Novos requisitos:
– As vendas podem ser à vista ou a prazo. Em ambos os casos o
estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda à vista, clientes cadastrados na loja e que
compram mais de 5 CDs de uma só vez ganham um desconto de 1%
para cada ano de cadastro.
• No caso de uma venda a prazo, ela pode ser parcelada em 2
pagamentos com um acréscimo de 20%. As vendas a prazo podem ser
pagas no cartão ou no boleto . Para pagamento com boleto, são
gerados boletos bancários que são entregues ao cliente e
armazenados no sistema para lançamento posterior no caixa. Para
pagamento com cartão, os clientes com mais de 10 anos de cadastro
na loja ganham o mesmo desconto das compras a vista.
112
IDENTIFICANDO GENERALIZAÇÃO DE CASOS DE USO
113
Relacionamentos
• Associação
• Generalização
• Dependência: Extensão e Inclusão
Relacionamento de dependência:
Extensão:
– Representa uma variação/extensão do comportamento do caso de
uso base;
– O caso de uso estendido só é executado sob certas circunstâncias
– Separa partes obrigatórias de partes opcionais
• Partes obrigatórias: caso de uso base
• Partes opcionais: caso de uso estendido
– Fatorar comportamentos variantes do sistema (podendo reusar este
comportamento em outros casos de uso)
Notação: <<extends>>
114
Identificando dependência: extensão
Novos requisitos:
115
IDENTIFICANDO DEPENDÊNCIA: EXTENSÃO
116
Relacionamento de dependência:
Inclusão:
Notação: <<includes>>
Novos requisitos:
117
IDENTIFICANDO DEPENDÊNCIA: INCLUSÃO
118
FRONTEIRA DO SISTEMA
Fronteira do Sistema
– Elemento opcional (mas essencial para um bom entendimento)
– Serve para definir a área de atuação do sistema
119
MODELAGEM
DE
DADOS
Charles Emerson Machado
Charles.emerson.machado@gmail.com
120
SISTEMA ATUAL
121
122
MODELAGEM
DE
DADOS
Charles Emerson Machado
Charles.emerson.machado@gmail.com
123
CLASSES
124
DIAGRAMA DE CLASSES
125
SINTAXE DE ATRIBUTOS
Visibilidade
público (+)
O atributo é acessível a qualquer outro objeto ou classe
protegido (#)
O atributo é acessível apenas nas subclasses
privado (-)
O atributo só é acessível dentro da classe onde foi definido
ATRIBUTOS
126
OPERAÇÕES (MÉTODOS)
Sintaxe
¨ [visibilidade] nome [(lista-deparâmetros)][:tipo-de-retorno]
127
OPERAÇÕES
128
RELACIONAMENTOS
129
MULTIPLICIDADE
É a cardinalidade de uma
associação;
É colocada em cada lado da
associação;
130
NAVEGABILIDADE
131
GENERALIZAÇÃO
132
EXEMPLO DE GENERALIZAÇÃO
133
RELACIONAMENTO ENTRE CLASSES
Agregação
tipo de associação (é parte de) onde o objeto parte é um atributo do
todo
Uma calculadora agrega multiplicadores e somadores
134
RELACIONAMENTO ENTRE CLASSES
Composição
135
OBSERVAÇÕES
136
EXEMPLO DE CASO EM UML
137
•Aplicações Pré-fixadas seria uma aplicação de um valor, em um prazo pré-
determinado a uma taxa de juros previamente definida.
•Tanto a conta corrente quanto a poupança deverão manter um histórico de
todas as movimentações de crédito, débito, transferências e aplicações de
pré-fixados (pré-fixados apenas para conta corrente).
•A conta corrente poderá ter várias aplicações pré-fixadas ligadas a ela.
138
•Análise de Requisitos
O sistema implementará funções básicas que serão desempenhadas
pela Administração do banco e pelos seus clientes. As principais
funções do sistema são:
•Cadastrar novo cliente
•Excluir ou editar cliente
•Cadastrar dependente
•Excluir ou editar dependente
•Abrir e Fechar conta corrente
•Abrir e Fechar poupança
•Movimentar conta corrente
•Aplicar em pré-fixados
•Consultar histórico de conta corrente ou poupança
•Cadastrar Agência
•Excluir ou Editar Agência
139
140
Análise
141
142
A seguir, iremos traçar como estas classes irão interagir para realizar
as funções do sistema. Para modelarmos como os objetos do sistema
irão interagir entre si, utilizamos o diagrama de seqüência ou o de
colaboração. E modelaremos um diagrama para cada função (use-
case) definida no diagrama de use-cases. Escolhemos o diagrama de
seqüência para dar mais ênfase a ordem cronológica das interações
entre os objetos. Já se faz necessário utilizar idéias básicas da
modelagem da interface do sistema como as janelas.
143
144
CENÁRIO: RÁDIO TÁXI MAR & SOL
A empresa de Rádio Táxi Mar & Sol precisa de uma aplicação que
controle:
- o cadastro de seus clientes
- o cadastro dos cooperados
- o cadastro das corridas programadas
Para cada cliente são cadastrados os seguintes dados: código (que
deve ser gerado pelo sistema), nome, endereço completo (logradouro,
número, complemento, bairro, município, estado) e dois telefones de
contato. O cliente pode se cadastrar apenas com o nome para
agilizar o processo. Quando fizer sua primeira chamada por
telefone, seus dados serão atualizados. Para o cooperado (taxista)
cadastram-se: nome, CPF, número da carteira de motorista, categoria,
data de validade da carteira, número do táxi na cooperativa (conhecido
como número de VR), número da placa, modelo do veiculo, fabricante,
cor do veículo, endereço residencial completo, telefone residencial e
celular e data de entrada na Cooperativa. Quando o cooperado se
desliga, deve ser cadastrada a data de desligamento.
145
CENÁRIO: RÁDIO TÁXI MAR & SOL
146
CENÁRIO: RÁDIO TÁXI MAR & SOL
147
CENÁRIO: RÁDIO TÁXI MAR & SOL
EXERCÍCIO:
EXERCÍCIO B:
148
CENÁRIO: RÁDIO TÁXI MAR & SOL
149
CENÁRIO: RÁDIO TÁXI MAR & SOL
150
CENÁRIO: CONTROLE DE OBRA
Álvaro está fazendo uma ampliação de sua residência. Todo dia existe
demanda de compra de material. Sendo assim, ele desenvolveu uma
pequena aplicação que controla essa demanda de solicitações e as
compras efetuadas, de forma a montar uma base de cotações para as
compras futuras.
A aplicação possui um cadastro de produtos, contendo: nome,
descrição, medida de venda do produto (kg, ml ou m; indicando peso,
volume ou comprimento) e valor da medida de venda (ex: 1,5).
A cada solicitação de compra cadastram-se os itens dessa solicitação.
Cada item possui: o produto e a quantidade. Quando cada item é
adquirido, atualiza-se a solicitação com o preço unitário de, compra, a
forma de pagamento (dinheiro, cheque, cheque pré ou cartão), a data
de compra e o local da compra.
151
CENÁRIO: CONTROLE DE OBRA
152
CENÁRIO: CONTROLE DE OBRA
EXERCÍCIO:
153
CENÁRIO: CONTROLE DE OBRA
154
CENÁRIO: ESTACIONAMENTO
155
CENÁRIO: ESTACIONAMENTO
Segunda á sexta
1a hora = R$2,00
a partir da 2a hora (inteiro ou
fração) = + R$ 1,00
Sábado
Preço único = RS 3,00
156
CENÁRIO: ESTACIONAMENTO
157
CENÁRIO: CONTROLE BOLÃO
158
CENÁRIO: CONTROLE BOLÃO
159
CENÁRIO: CONTROLE BOLÃO
160
CENÁRIO: SENHA DE ATENDIMENTO
161
CENÁRIO: SENHA DE ATENDIMENTO
EXERCÍCIO:
162
CENÁRIO: SENHA DE ATENDIMENTO
163
CENÁRIO: SENHA DE ATENDIMENTO
164
CENÁRIO: SENHA DE ATENDIMENTO
165
CENÁRIO: SENHA DE ATENDIMENTO
166