Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelo Conceitual
1
Onde estamos no processo de desenvolvimento unificado:
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
2
Atividades da Fase Analisar
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
5
Exemplo
Venda Pagamento
data
1 2
hora Pago-por quantia
6
EVITAR
• Artefato de Software:
Nome da classe
refere-se à
BDdeVendas Implementação
Venda
data
hora Definição de
imprimir () comportamento
7
Como Identificar Conceitos ?
• Alguns conceitos são bastante óbvios quando
se descreve o sistema, como por exemplo os
conceitos Leitor e Livro quando se fala em um
sistema de Biblioteca.
8
Como Identificar Conceitos ?
• Entretanto, muitos conceitos estão geralmente
implícitos e requerem uma maior maturidade do
analista para descobri-los.
• Por exemplo, o conceito de Empréstimo, no
mesmo sistema de Biblioteca, poderia passar
desapercebido por um analista inexperiente,
que o colocaria como uma associação entre
Leitor e Livro.
9
Como Identificar Conceitos ?
• Sugestões básicas:
• Passo 1: Isole, no documento de requisitos ou
na descrição dos casos de uso, elaborados na
fase anterior, todos os substantivos presentes
no texto
10
Passo 1: Isolar os substantivos
Ação do ator Resposta do Sistema
1. Este caso começa quando o Leitor
chega ao balcão de atendimento da
biblioteca e diz ao atendente que
deseja emprestar um ou mais livros da
biblioteca..
2. O Atendente seleciona a opção
para adicionar um novo empréstimo.
3. O atendente solicita ao leitor sua
carteirinha, seja de estudante ou
professor.
4. O atendente informa ao sistema a 5. O sistema exibe o nome do leitor e
identificação do leitor. sua situação.
6. O atendente solicita os livros a
serem emprestados.
7. Para cada livro, o atendente informa 8. O sistema informa a data de
ao sistema o código de identificação devolução de cada livro. 11
do livro.
Exemplo: Biblioteca
Lista de candidatos:
Leitor Carteirinha Data de devolução
Biblioteca Professor
Atendente Sistema
Biblioteca Professor
Atendente Sistema X
16
Exemplo: Biblioteca
Já havia sido acrescentado
Pelo substantivo Empréstimo
Lista de Candidatos:
Emprestar X
Adicionar X
Informar X
...
17
Como Identificar Conceitos ?
• Sugestões básicas:
• Passo 4: Para cada candidato a conceito,
verifique se ele é composto de outras partes
que sejam de interesse para o sistema, mesmo
que essas não apareçam explicitamente no
texto.
– Por exemplo, um empréstimo normalmente refere-se
a vários livros emprestados em uma mesma ocasião
para um mesmo leitor.
• Linha do Empréstimo é um outro conceito.
( Item do Empréstimo)
18
Como Identificar Conceitos ?
Checklist de possíveis conceitos:
• Objetos físicos ou tangíveis: Livro, Leitor, TPV
• Especificação (descrição) de coisas: EspecificaçãodeLivro,
EspecificaçãodeProduto
• Lugares: Biblioteca, Loja
• Transações: Emprestimo, Reserva, Venda, Pagamento,
• Linha de Itens de Transações: LinhaDeEmpréstimo,
LinhaItemdeVenda
• Papéis desempenhados por pessoas: Atendente, Caixa
• Contêineres de outras coisas: Estante, Depósito, Armário,
• Coisas em um contêiner: Cópia de livro, Revista, item
• Catálogos: Catálogo de Livros, Catálogo de Produtos
19
Diretrizes para construir um
modelo conceitual
• Liste os conceitos candidatos, usando o
checklist de Conceitos e a identificação de
substantivos, relacionados com os requisitos
que estão sendo considerados.
• Desenhe-os em um modelo conceitual.
• Acrescente os atributos necessários para
completar os requisitos de memorização.
• Registre as associações para as quais há
necessidade de preservar alguma memorização
20
ATENÇÃO:
1) Alguns dos substantivos são candidatos a
conceitos e outros são candidatos a atributos.
2) A linguagem natural é imprecisa e essa
definição depende do conhecimento e
experiência do engenheiro de software, embora
haja diretrizes disponíveis.
21
Como Identificar Atributos ?
22
Como Identificar Atributos ?
Exemplo:
Nome do conceito
Leitor
Livro Empréstimo
idLeitor
nome idLivro dataDeDevolucao
si tuacao
Atributos do conceito
23
Associações
• Associação é um relacionamento entre
conceitos, que precisa ser lembrado pelo
sistema durante seu funcionamento
– Por exemplo, existe uma associação entre
Empréstimo e Leitor, que precisa ser
lembrada pelo sistema, pois quando o
Empréstimo termina o Leitor deve ter sua
situação regularizada.
24
Como identificar Associações?
• Algumas associações são bastante simples de serem
identificadas, bastando aplicar certas regras básicas.
Outras associações são implícitas e podem requerer
mais experiência do analista para identificá-las logo na
fase de requisitos, ou podem surgir mais adiante, na
fase de projeto.
• Cautela: incluir associações em demasia causa um
efeito indesejado, levando a um modelo confuso e
conseqüentemente com pouca legibilidade.
• Portanto, uma regra básica é evitar colocar
associações redundantes
25
Como identificar Associações?
• Regra 1: Um conceito que, fisicamente
ou logicamente, faz parte de outro. Por
exemplo, um livro que está fisicamente
armazenado em uma estante ou um Item
de Empréstimo que logicamente faz parte
do Empréstimo.
26
Como identificar Associações?
27
Como identificar Associações?
28
Associações na UML
Nome da associação
registra Leitor
Atendente
idLeitor
1 0..* nome
situacao
Lê-se: Um Atendente
registra 0 ou mais
Leitores. Um leitor
é registrado por Multiplicidade da
um atendente associação
29
Associações na UML
Direção de leitura do
nome da associação
* zero ou mais
C1 C2 Muitos (as)
1..* C2 um ou mais
C1
1..40 C2 um a quarenta
C1
5
C1 C2 exatamente cinco
Papel
Pessoa +pai
nome
1
+filho 0..n
é pai de
32
Especialização/Generalização/
Herança
• Herança é um mecanismo que permite que
características comuns a diversos tipos sejam colocadas
em um tipo base, ou supertipo.
– A partir de um tipo base, outros tipos podem ser especificados
(os subtipos).
– Cada subtipo apresenta as características (estrutura e atributos)
do supertipo e acrescenta a ele novas características.
– Dizemos que um subtipo herda todas as propriedades do
supertipo e acrescenta suas características próprias e
exclusivas.
– As propriedades do supertipo não precisam ser repetidas em
cada subtipo.
33
Tipos e Especialização na UML
Forno
capacidade
Microondas
A Gas Elétrico A Lenha
horario
temperatura voltagem quantMaxLenha
potencia
Camping
Figura A 34
Regras de Herança
• A regra “é-um” estabelece que todos os
membros do conjunto de um subtipo
devem ser membros do conjunto do
supertipo, ou seja o subtipo é um
supertipo.
– Por exemplo, podemos dizer que um
microondas digital é um forno, e por isso
possui todos os atributos (e comportamentos)
esperados de um forno.
35
Regras de Herança
• A regra dos 100% estabelece que 100% da
definição do supertipo dever ser aplicado ao
subtipo
– se o supertipo possui um dado atributo, é necessário
garantir que todos os subtipos também o possuam,
ou seja, o atributo deve fazer sentido para eles e
deve ser importante conhecer seu conteúdo.
– O mesmo vale para as associações do supertipo,
que devem ser aplicáveis aos subtipos.
36
Regras de Herança
• Por exemplo, se incluirmos o tipo
Cozinheiro no modelo da Figura A, e
associarmos esse tipo ao tipo forno,
significando que o Cozinheiro utiliza o
Forno, isso deve ser verdadeiro para
todos os subtipos, ou seja, todos os tipos
de forno devem poder ser utilizáveis por
um cozinheiro.
37
Tipos e Especialização na UML
utiliza
Cozinheiro Forno
capacidade
Microondas
A Gas Elétrico A Lenha
horario
temperatura voltagem quantMaxLenha
potencia
Camping
Figura A 38
Agregação
• Agregação é um mecanismo pelo qual um
tipo inclui atributos (e comportamento) de
outros tipos a ele agregados, indicando a
existência de um todo, composto por
partes.
– Um exemplo de agregação é um Fogão:
consiste de Tampa, Forno, Queimador, e
assim por diante.
39
Agregação na UML
Paine lD eC ontrol e
Fogão
1
1..6
Queimador
1..6
1 BotaoAcen dedor
1 Forno
1
capacidade
Tampa Estufa
CD Música
titulo nome
ano 1..n cantor 40
Agregação Composta
• A agregação composta ou composição
ocorre quando a multiplicidade na
extremidade do composto pode ser no
máximo 1. A notação em UML é um losango
negro
Automóvel Roda
1 4 41
Agregação compartilhada
• A agregação compartilhada, denotada em
UML por um losango vazio, denota que a
multiplicidade na extremidade do composto
pode ser maior do que um.
Pacote de Elemento
UML referencia de UML
*
42
Tipo Associativo
• É uma associação que também possui
propriedades de tipo (ou um tipo que tem
propriedades de uma associação). É mostrada
como um tipo e é ligada por uma linha tracejada a
uma associação.
Emprego
43
salario
Tipo Associativo
• Indícios de que um tipo associativo pode ser útil em um
modelo conceitual:
– Um atributo está relacionado com uma associação
– As instâncias do tipo associativo têm um tempo de vida dependente
do tempo de vida da associação
– Existe uma associação muitos-para-muitos entre dois conceitos, bem
como informações relacionadas à associação propriamente dita
Empresa
1
+empregador
1
Emprego possui Pessoa
oferece 1.. n salario 0.. n
+empregado
44
Modelo Conceitual Biblioteca
0..n 0..1
Reserva
corresponde a
^ 0..n período
faz situacao 0..1
corresponde a
1
0..1
Atendente 1 0..n
Leitor faz Empréstimo/Devolução
nome registra nome data do empréstimo
tipo 1 0..n situação
possui CopiaDoLivro
nro sequencial 1
0..n situacao
liberadoParaEmprestimo 45
Modelo Conceitual Elevador
46
Estudo de Caso:
Modelo Conceitual do Sistema
TPV
• Alguns Conceitos do Sistema TPV:
47
Estudo de Caso:
Identificação de Substantivos
1. Este caso de uso
começa quando um
Cliente chega a um
ponto de pagamento
equipado com um TPV
com vários itens que
deseja comprar.
2. O caixa registra o 3. Determina o preço do
código universal do item e acrescenta
produto (UPC) de informação sobre o
cada item. item à transação de
vendas em andamento.
Se houver mais de um
exemplar do item o A descrição e o preço
caixa do item corrente são
também pode entrar a apresentados
48
quantidade.
Conceitos candidatos para o domínio TPV,
restritos ao caso de uso Comprar Itens
TPV EspecificaçãodeProduto
Item LinhadeItemdeVenda
Loja Caixa
Venda Cliente
Pagamento Gerente
CatálogodeProdutos transação de vendas
49
Objetos do tipo relatório:
incluir no modelo?
• Um recibo (nota fiscal) é um relatório (uma
saída do sistema) de uma venda. A
informação nele contida é derivada de outras
fontes. Esta é uma razão para excluí-lo.
• Um recibo desempenha um papel especial
em termos das regras do negócio. Confere
ao portador o direito de retornar o item
comprado. Esta é uma razão para incluí-lo.
• Uma vez que retornos não estão sendo
tratados neste ciclo, Recibo será excluído.
50
Analogia com o Cartógrafo
51
O que acontece quando o
mundo é irreal, abstrato ?
• Exemplo: software de telecomunicações.
– Os conceitos são então abstratos, embora
relacionados ao domínio de aplicação.
– Exemplo: Mensagem, Conexão, Diálogo,
Roteamento, Protocolo.
52
O Conceito de Especificação
(Descrição)
Item
Descrição
Preço
número série
CUP
Produto Item
1 *
Descrição número série
Preço descreve
CUP 53
Quando utilizar Descrições ( ou
especificações)
• Acrescente um conceito de especificação ou
descrição quando:
– Estiver excluindo instâncias de coisas que elas
descrevem e isso resulta numa perda de
informação que necessita ser mantida, devido à
associação incorreta da informação com a coisa
excluída
– Ele reduz informação redundante ou duplicada
54
Associações necessário-ser-
conhecido versus associações
para compreensão
• Motivação: no sistema TPV, seria necessário
registrar a associação entre o gerente e o TPV
(iniciar) ou entre o cliente e a venda (fulano é-
responsável-por venda) ?
• Modelo mínimo versus modelo que ilustra todos os
relacionamentos que possam ser concebidos ?
• Critério básico: satisfazer a todos os requisitos do
tipo necessário-ser-conhecido e comunicar
claramente uma compreensão essencial dos
conceitos importantes no domínio do problema.
55
TPV: Conceitos e Associações
Registra-venda-de
Descritos-por
1
Catálogo de Produtos Contém
1 * Especificação de Produto
1 1..*
LinhadeItemdeVenda 1
Usado-por
1..* Descreve
*
*
Contido-em 1 Loja Estoca
Item
1 Registra-dados-da * 1
v 1
* 1
Venda Possui
1
1..*
1 Iniciado por Gerente
1 capturada-em
1 TPV 0..* 1
1
Paga-por
1 < Registra-Vendas-do
Iniciada-por
1
Iniciada-por
1 1 Caixa
1
56
Pagamento Cliente
Atributo ou associação ?
Caixa
pior nome
TPVcorrente Não é um atributo simples
57
Atributo ou associação ?
• Os atributos serão melhor definidos na fase de
projeto. Evitar “infiltrar” o projeto nesta fase. Ex.
não pensar em chave estrangeira, como em
BDs relacionais.
• Teste: faz sentido distinguir instâncias do
atributo ? Se sim, é um conceito, se não, é um
atributo. Ex. Faz sentido distinguir entre duas
instâncias do número 5 ? Da cadeia “gato” ?
• Em caso de dúvida modele como um conceito
separado
58
Modelo conceitual para o domínio do TPV
Registra-venda-de
Descritos-por
1
Catálogo de Produtos Especificação de Produto
Contém
0..1 * descrição
1 1..* preço
LinhadeItemdeVenda
1 CUP
quantidade Usado-por
1..* * Descreve
1..1 Loja *
Contido-em Estoca
endereço Item
1 Registra-Dados-da nome
* 1
v 1
Venda
1
data *
Possui
tempo
1 1..*
1 1 Capturada-em
TPV Iniciado por Gerente
Paga-por
Iniciada-por 1
1..* 1
1 1 1
Pagamento Cliente Caixa
< Registra-Vendas-do
quantia 59
1
Glossário
60
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
62
Glossário
• É criado inicialmente na fase Planejar e
Elaborar.
• É continuamente aperfeiçoado em cada
ciclo de desenvolvimento.
• Pode ser usado para registrar regras
do negócio e restrições a elementos
aos quais a regra ou restrição se
aplica.
63
Exemplo: glossário para o TPV
Termo Cate- Comentários
goria
Comprar Itens caso de Descrição do processo de compra
uso de itens por um cliente em uma loja
EspecificaçãoDoProduto atributo Uma curta descrição de um Item
.descrição: Texto em uma Venda e sua
EspecificaçãodeProduto associada
Item tipo Um item à venda em uma loja
65
Exemplo: glossário para o TPV
Termo Cate- Comentários
goria
Pagamento.quantia: atributo A quantidade de dinheiro fornecida
Quantidade ou apresentada para pagamento
pelo cliente
EspecificaçãodeProduto: atributo O código universal de produto to
UPC item e sua EspecificaçãodeProduto
...
66
Próximo Assunto
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema