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 dois próximos slides Agregação (Compartilhada) Agregação 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 Conceitos de Associação Conceito Temporal Transições entre estados das instâncias (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 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 Classes de Especificação Cadeia de Classes de Especificação Problema: repetição de gênero Especificação ortogonal Projeto Milestone #3 Modelagem Conceitual Completa Contratos das Operações do Sistema Prazo: 07/05