3-ModelagemConceitual

Propaganda
Modelagem Conceitual
Descreve a informação que o
sistema vai gerenciar
Modelo Conceitual
artefato do domínio do problema e não
do domínio da solução
não deve ser confundido com a
arquitetura do software
Onde Está o Modelo
Conceitual?
Elementos Básicos do Modelo
Conceitual
Conceitos
Atributos
Relacionamentos
Como Encontrar Conceitos e
Atributos
Verificar o texto dos casos de uso expandidos
Selecionar termos que representam informação
transmitida do e para o sistema
Substantivos: conceitos ou atributos de conceito
Adjetivos: atributos de conceito
Verbos: relacionamentos
Observar os sinônimos
Nem todo substantivo -- ou adjetivo, ou verbo -- tem
que ser relevante
Alguns substantivos -- ou adjetivos, ou verbos -podem estar só implícitos no texto
Como Encontrar Conceitos e
Atributos
Um conceito é complexo
Definido por
Um conjunto de atributos, possivelmente vazio
Um conjunto de relacionamentos,
possivelmente vazio
Um atributo de um conceito existe para
compor a definição de um conceito
Caso de Uso: Emprestar Fitas
Tratamento de Exceções:
Fluxo Principal:
3a. O cliente não possui cadastro.
1. O cliente chega ao balcão com as fitas
que deseja locar.
3a.1 O cliente deve informar seus dados para cadastro.
2. O cliente informa seu nome e entrega
as fitas ao funcionário.
3a.3 Retorna ao fluxo principal no passo 3.
3. O funcionário registra o nome do
cliente e inicia a locação.
4. O funcionário registra cada uma das
fitas.
5. O funcionário finaliza a locação,
devolve as fitas ao cliente e lhe informa a
data de devolução e o valor total da
locação.
6. O cliente vai embora com as fitas.
3a.2 O funcionário registra o cadastro.
3b. O cliente possui pendências no cadastro (locação anterior não
foi paga).
3b.1 O cliente paga seu débito.
3b.2 O funcionário registra a quitação do débito, eliminando
assim a pendência.
3b.3 Retorna ao passo 3.
4a. Uma fita está reservada para outro cliente.
4a.1 O funcionário informa que a fita não está disponível para
locação.
4a.2 Prossegue a locação do passo 4 sem incluir a fita
reservada.
4b. Uma fita está danificada.
4b.1 O funcionário informa que a fita está danificada.
4b.2 O funcionário registra que a fita está danificada.
4b.2 O funcionário verifica se existe outra fita disponível com o
mesmo filme.
4b.3 Se existir, o funcionário substitui a fita e segue no passo 4,
senão segue do passo 4 sem incluir a fita danificada.
Controladora de Sistema
Relacionamentos e Associações
Relacionamento: entre conceitos,
complementando a informação que se tem
sobre eles em um determinado instante
Associação: entre objetos, correspondendo a
um relacionamento entre os conceitos
respectivos dos objetos
Um Relacionamento
Como encontrar relacionamentos
Procure observar cada conceito complexo e
se pergunte se a informação representada
por ele é completa
Se não for, deve-se criar um relacionamento
entre este conceito e outro(s) conceito(s) de
forma a complementar a informação
necessária para que o conceito faça sentido
Exemplo: Aluno Está_matriculado_em Curso
Verbos, nos casos de uso expandidos
Conceitos Dependentes e
Independentes
Conceitos Dependentes: precisam estar
ligados a outros conceitos para fazer sentido
Exemplo: Compra (Pessoa Compra Automóvel)
Conceito associativo
Conceitos Independentes: não precisam estar
ligados a outros conceitos para fazer sentido
Exemplo: Pessoa
Definição de papéis
Multiplicidade de Papel
1
*
Uma Crítica ao Modelo
Atributo valorTotal
Não poderia ser deduzido do preço das fitas locadas por um
empréstimo?
Se, ao contrário, multas fossem incluídas, isso não está claro
Multa deveria ser um objeto de primeira classe
Deveria haver flexibilidade de cobrança
Negociar com um cliente (especial) um preço especial
Negociar com um cliente (especial) um prazo especial
Idem para o prazo
Uma Solução para a Crítica
Preço passa a ser também atributo de
empréstimo
Prazo passa a ser também atributo de
empréstimo
Ver o slide seguinte
Entretanto, ainda insiste com valorTotal, que
não está bem explicado
1
*
Sentido de Leitura
Ordenação
Mais Crítica ao Modelo
Empréstimo e ítem de empréstimo
poderiam ser melhor explicados via um
relacionamento de composição
Ver o slide seguinte
Lembre-se que a multiplicidade 1 no lado
todo pode ficar implícita
Composição
Relembrando Agregação
Ver os três próximos slides
Agregação (Compartilhada)
Agregação (Compartilhada)
Pergunta: No lado do losango, a multiplicidade
é sempre ‘*’?
Resposta: Não (ver slide seguinte)
Agregação
O caso de uso Devolver Fitas
começa a ser contemplado:
desenvolvimento incremental
do modelo conceitual
Conceito Devolução?
Ele deve ser necessário, porque
devoluções podem ser feitas com atraso
E aí tem multa ...
Multa poderia ser um conceito,
relacionado com devolução
Organização de Conceitos
Estrutural: representando relações de generalização
estrutural de conceitos, como por exemplo, Pessoa,
generalizando Homem e Mulher
Associativa: representando relações de papéis
associativos entre conceitos, como, por exemplo,
Pessoa, podendo representar junto a uma empresa o
papel de Cliente ou Funcionário
Temporal: representando relações entre estados de
um conceito e o conceito em si, como, por exemplo,
Pessoa e os estados: Criança, Jovem, Adulto e
Idoso
Generalização (Herança)
Não use generalização se...
Não use generalização se...
Não use generalização se...
As especializações (subclasses) não
estiverem em exclusão mútua
Não pode haver transição de uma
subclasse para outra
Transição caracteriza um conceito
temporal, que deve ser tratado
adequadamente
Inadequação de Exclusão Mútua
Considere modelar Cliente e Funcionário
como subclasses de Pessoa
Dois objetos diferentes
Em comum, a parte Pessoa
Parte Pessoa repetida em cada objeto
Redundância deve ser evitada
Seja minimalista e completo!
Conclusão: Modelar Cliente e Funcionário
como subclasses de Pessoa é uma má
decisão de modelagem
Conceitos Associativos
Note que, agora, a
parte Pessoa é única,
ou não redundante
Conceito Temporal
Transições entre estados das instâncias
(dos objetos) de um conceito
Tipos de Transição
Transição estável
Os diferentes estados de um objeto não afetam
sua estrutura, mas apenas, possivelmente valores
de atributos
Transição monotônica
O objeto passa de um estado para outro e à
medida que muda de estado vai *ganhando*
novos atributos ou associações
Transição não-monotônica
O objeto *perde* atributos ou associações à
medida que muda de estado, e ainda *ganha*
como para transições monotônicas
Transição Estável
Os diferentes estados de um objeto
podem ser determinados através de um
simples atributo
Pessoa
Faixa de Idade
Transição Monotônica
Uma Forma Inconveniente de
Representar Estados: com Herança
Você já sabe o
porquê:
redundância
Outra Forma Inconveniente de
Representar Estados: com
Restrições
Forma Mais Eficaz para
Modelar Estados com
Transição Monotônica
Pagamento
Transição Não-Monotônica
0..1
0..1
Problema: o aspecto temporal não fica claro – em
andamento  concluído
Uma solução melhor ...
O aspecto temporal
está
bem modelado
Uma solução melhor ... (2)
:Fita
:ItemDeEmprestimo
:EstadoDeItemDeEmprestimoEmAndamento
:EstadoDeItemDeEmprestimoConcluido
Observe: :EstadoDeItemEmprestimo é vazio, logo, não há
redundância!
Outra Crítica do Primeiro
Incremento do Modelo
Uma fita tem n cópias
Solução
O que é comum a todas as cópias é sua
especificação
Classes de Especificação
Cadeia de Classes de
Especificação
Problema: repetição de gênero
Especificação ortogonal
Projeto
Milestone #3
Conclusão do Modelo Conceitual do
Sistema
Diagrama de Seqüência de Operações
(DSO) para cada caso de uso
Contratos das Operações de cada DSO
Prazo: 05/09
Download