RAD1604 - Desenvolvimento de Sistemas de Informação Adaptado da aula do Prof. Ildeberto A. Rodello Slides adaptados a partir dos originais. Todos os direitos de WAZLAWICK, 2004.
Referência WAZLAWICK, R. S. Análise e Projeto de Sistemas de Informação Orientados a Objetos; Campus Elsevier; ISBN: 9788535215; 2004. (Capítulo 5)
Modelagem Conceitual Descreve a informação que o sistema vai gerenciar
Modelo Conceitual Artefato do domínio do processo em questão Refere-se ao mundo exterior ao sistema Visa representar a compreensão da informação e não sua representação física Representa um elemento estático
Onde está o Modelo Conceitual?
Elementos Básicos do Modelo Conceitual Conceitos Atributos Associações
Conceitos São representados pelas classes São a representação da informação complexa Exemplos Fita, cliente, empréstimo
Atributos São informações diretamente ligadas aos conceitos. Exemplos Idade do cliente, data do pagamento
Associações Informação que liga diferentes conceitos entre si.
Como Encontrar Conceitos e Atributos
Como encontrar conceitos e atributos Verificar o texto da descrição do processo Selecionar termos que representam informação transmitida do e para o sistema. Agrupar sinônimos Identificar quais dos itens considerados correspondem a conceitos complexos e quais deles são atributos.
Caso de Uso: Emprestar Fitas Fluxo Principal: 1. O cliente chega ao balcão com as fitas que deseja locar. 2. O cliente informa seu nome e entrega as fitas ao funcionário. 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. Tratamento de Exceções: 3a. O cliente não possui cadastro. 3a.1 O cliente deve informar seus dados para cadastro. 3a.2 O funcionário registra o cadastro. 3a.3 Retorna ao fluxo principal no passo 3. 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çõ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
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 e Multiplicidade de Papéis
Definição de papéis Descreve o estado de uma classe. Caracteriza os relacionamentos com outras classes.
Definição de papéis
Multiplicidade Define a quantidade de instâncias (objetos) que uma classe pode ter em um relacionamento.
Valor Multiplicidade Descrição * Número ilimitado de instâncias 1 Uma única instância 0..* Zero ou mais instancias 1..* Uma ou mais instancias 0..1 Zero ou uma instancia <literal> <literal>..* <literal>..<literal> Número definido de instancias Número mínimo definido de instancias ou mais Número mínimo e máximo definidos de instancias
Multiplicidade É fundamental saber a quantidade de elementos que uma associação permite. Avaliar o que a associação representa Presente Histórico
Multiplicidade de Papel
* 1
Multiplicidade Atenção ao conceito Empréstimo Refere-se ao conjunto de fitas levadas? Cada fita individualmente corresponde a um empréstimo?
* 1
Direção das Associações
Direção das Associações Uma associação, no modelo conceitual, deve ser não-direcional. Origem e destino não devem ser estabelecidos. Direção é abordada na fase de projeto.
Sentido de Leitura
Conjuntos e Coleções
Conjuntos e Coleções Uma associação com multiplicidade * representa um conjunto de objetos da classe referenciada.
Conjuntos e Coleções
Ordenação
Ordenação Indica uma ordem predefinida de acesso aos elementos. Representada pela restrição {ordered}
Ordenação
Qualificação
Qualificação Forma de simplificação de um modelo conceitual. É recomendado usar qualificadores sempre que um conceito possuir um atributo que o identifica unicamente.
Associação Qualificada
Subconjunto (partição) Define-se o papel da associação do lado qualificado como * No próximo exemplo: Para cada gênero corresponderá um subconjunto do conjunto das fitas associadas a videolocadora.
Partição
Agregação e Composição
Composição Algumas associações podem ser consideradas mais fortes do que outras no sentido de que elas definem um objeto composto por outros.
Composição
Agregação Compartilhada
Agregação Compartilhada
Organização do Modelo Conceitual
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.
Herança Ajuda a fatorar informações as quais de outra forma ficariam repetidas em diferentes conceitos.
Onde Generalização pode ser Usada
Não use generalização se...
Não use generalização se...
Classes de Associação
Classes de Associação Uma mesma entidade representa diferentes papéis em relação a outras entidades.
Classes de Associação
Classes Modais
Classes Modais Ou classes com estados São classes cujas instâncias podem mudar de um estado para outro ao longo de sua existência, mudando possivelmente: Estrutura Valores de atributos Comportamentos dos métodos.
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
Transição não-monotônica Cada vez que o objeto muda de estado, ele pode adquirir novos atributos ou associações que não possuía antes.
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
Classes de Especificação Surge da necessidade de se colocar restrições sobre os atributos de certos conceitos, de modo que o valor de um atributo efetivamente dependa de outro.
Classes de Especificação
Cadeia de Classes de Especificação Possibilidade de determinar prazos e valores diferentes
Especificação ortogonal
Em alguns casos não se escapa das restrições *
RAD1604 - Desenvolvimento de Sistemas de Informação Prof. Ildeberto A. Rodello rodello@fearp.usp.br Slides adaptados a partir dos originais. Todos os direitos de WAZLAWICK, 2004.