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 não deve ser confundido com o modelo de dados Onde Está o Modelo Conceitual? Elementos Básicos do Modelo Conceitual Conceitos Atributos Associações 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 Agrupar sinônimos 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 Associações Associação: relação estática que pode existir entre dois conceitos complexos, complementando a informação que se tem sobre eles em um determinado instante, ou referenciando informação associativa nova Operação: ato de transformar a informação, passando de um estado para outro, mudando, por exemplo, a configuração das associações, destruindo e/ou criando novas associações ou objetos, ou modificando o valor dos atributos Uma associação Uma operação (transação) não deve ser modelada como associação Como modelar a transação se necessário Como encontrar associações procure observar cada conceito complexo e se pergunte se a informação representada por ele é completa se não for, deve-se criar uma associação entre este conceito e outro(s) conceito(s) de forma a complementar a informação necessária para que o conceito faça sentido Conceitos dependentes e independentes conceitos dependentes: precisam estar ligados a outros conceitos para fazer sentido conceitos independentes: não precisam estar ligados a outros conceitos para fazer sentido Atributos disfarçando associações Não se deve colocar no modelo conceitual os atributos que representam “chaves estrangeiras”, como se fosse uma tabela de banco de dados relacional Ex.: não colocar “nome do cliente” como atributo de “Empréstimo” Definição de papéis Multiplicidade de Papel 1 * 1 * Direção das Associações Uma associação, no modelo conceitual, deve ser não-direcional Sentido de Leitura Conjuntos e Coleções Ordenação Associação Qualificada Partição Composição Agregação Compartilhada Agregação Compartilhada Organização dos 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. Onde Generalização pode ser Usada Não use generalização se... Não use generalização se... Classes de Associação Classes Modais 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 pode ganhar ou perder atributos ou associações à medida que muda de estado. Transição Estável os diferentes estados de um objeto podem ser determinados através de um simples atributo. Transição Monotônica Forma inconveniente de representar estados com herança 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 Esta representação é demasiadamente genérica Transição não-monotônica usando o padrão “Estado” Classes de Especificação Cadeia de Classes de Especificação Especificação ortogonal Em alguns casos não se escapa das restrições *