Engenharia de Software – Modelagem de dados – Representação utilizando conjuntos
Introdução
O mundo real é complexo e para representar de forma ordenada os “objetos” e “fatos” do mundo real deve-se fazer isso em etapas. Como se viu no capítulo anterior uma das capacidades de aprendizado humano é a abstração. É a partir dela que se pode compreender fenômenos mais complexos. Para se fazer a modelagem conceitual deve se abordar o problema em níveis e para cada nível deve-se acrescentar informações que complete o nível anterior acrescentando-se novas informações às já conhecidas. Assim pode-se diferenciar as dificuldades do mundo real e as que são introduzidas pelos tratamentos tecnológicos.
Para tratar de maneira organizada a representação do mundo real a abordagem deve ser feita, no mínimo, em três níveis: conceitual, lógico e físico.
Fatos e coisas
Nível Conceitual
No nível conceitual identificam e registram-se “fatos” e “coisas” do mundo real. Apenas os conjuntos que são importantes e o relacionamento que existe entre os elementos desses conjuntos. Em nenhum momento pensa-se em tecnologia.
O Foco é o “negócio”. Normalmente procura-se identificar o conjunto “alvo”, ou seja, aquele que direciona todo o estudo. Por exemplo, se o mundo real é um estacionamento e o objetivo é o controle de vagas, o conjunto foco é o de vagas.
Nível Lógico
No nível lógico se introduz os conceitos necessários da tecnologia, por exemplo, no caso de representação de dados são as informações necessárias introduzidas pelos modelos de banco de dados, ou se for para transmissão às características de tratamento dos protocolos.
Nível Físico
No nível físico as informações necessárias à sua implementação, por exemplo, colocar as informações para representar os dados nas formas de impulsos elétricos ou qualquer outro tipo.
A figura 1 apresentada anteriormente mostra de forma ilustrativa como um projeto de representação do mundo real deve ser implementado. Deve-se identificar o recorte de trabalho, ou seja, o contexto, o plano de referência que vamos tratar. Se isso não for definido corretamente introduz-se um risco muito elevado para o projeto. Sobre esse recorte se faz análise, isto é, observação. E durante essa tarefa podem ser introduzidas distorções.
É uma atividade de risco e deve ser feita com muito cuidado, por isto foi representada por uma linha irregular na figura. Após a modelagem conceitual tem-se o modelo conceitual e ele é entrada para as demais etapas. Na figura a mudança de fase é representada por setas, pois é feita a partir de regras fixas.
Abordagem do projeto
Definido o recorte devem-se identificar conjuntos no mundo real. A figura 2.2 mostra que se identificou no mundo real um conjunto, inicialmente pensa-se ser uma abstração, que chamados de pessoa. No mundo simbólico será representado por um retângulo e as propriedades observadas nos elementos do conjunto são representadas junto ao retângulo.
Eles constituem o modelo de imagem, ou seja, como os elementos serão representados. Veja que um elemento do conjunto chamado de objeto, na figura, por exemplo, a pessoa Sr. Joaquim tem a imagem representada na figura segundo o plano de referência que foi definida a imagem.
Vai-se usar na representação o diagrama de classes o principal dos diagramas do UML e pode ser usado para se fazer a modelagem conceitual. Os retângulos e propriedades serão representados segundo as definições do UML. O diagrama é como uma fotografia dos “objetos” e “fatos” identificados a partir do mundo real. É uma representação estática, e não deve ser usado para representar situações dinâmicas no mundo real. Existem ferramentas próprias para isso e não é o objetivo deste trabalho.
Vamos criar o diagrama de classes a partir da observação do mundo real para um determinado contexto. O foco da análise é o negócio. Imagine que você está no século 15 e que não existe computador – enquanto estiver fazendo a modelagem conceitual. Ao observar um conjunto sobre o qual temos alguns interesses (guardar os dados dos elementos de um conjunto, por exemplo) dizemos que temos uma classe. As propriedades que desejo observar (propriedades para a qual desejamos guardar valores) são chamado de atributos.
Representando uma classe
Existem várias formas gráficas para se representar uma classe, mas em UML, quando temos interesse em um conjunto do mundo real, desenhamos:
Nome da classe ou elemento da observação
Propriedades que se está interessado em observar ou atributos
Exemplo: Ao se observar um conjunto de pessoas, e as informações sobre as quais temos interesse são: nome, endereço, telefone, CPF.
Ao definir a classe conceitual define-se um modelo de representação dos elementos do conjunto:
Assim os elementos (Manoel, rua do bispo, 3, 32116734, 371622571) (Jose, Rua Ava, 34, 3226216, 37162225881) ficam representados.
Observe que se está representando os valores que os atributos assumem nas representações. Neste caso se diz que a classe foi instanciada, ou seja, recebeu valores. Cada um dos elementos no mundo das representações é chamado de um objeto da classe. Então uma classe representa um conjunto e os elementos do conjunto – objetos – são representados segundo a definição da classe.
Dicas 1:
- Uma classe é a descrição de um tipo de objeto do mundo real;
- Usam-se classes para classificar os objetos que identificamos no mundo real.
Análise dos atributos
Um atributo é uma propriedade observada do mundo real para um conjunto e um conjunto de atributos para um mesmo elemento constitui a imagem do elemento. Assim, cada elemento no mundo real terá uma imagem e o conjunto de elementos é representado por um conjunto de imagens. Uma forma fácil de representar o conjunto é na forma de tabela.
Para o exemplo apresentado tem-se a tabela chamada de Pessoa, normalmente se dá o nome da classe (ou conjunto representado) à tabela, embora isso não seja obrigatório e as colunas da tabela são os atributos desejados, normalmente também se coloca o nome da propriedade como nome da propriedade.
O conjunto de valores que uma propriedade pode assumir é chamado de domínio do atributo. Cada atributo tem o seu domínio de valores. Um domínio pode ser enumerável ou não, pode ser finito ou não. Assim o atributo sexo só pode assumir masculino ou feminino, é finito e enumerável. Estes domínios também devem ser definidos nos processos de modelagem conceitual. Há necessidade se identificar o elemento do mundo real a partir de sua imagem, ou seja, há necessidade de se ter propriedades capazes de identificar de forma biunívoca a imagem e o elemento no mundo real. Estas propriedades são chamadas de identificadoras.
As propriedades chamadas de identificadoras são aquelas que atendem a uma propriedade, a propriedade da identidade.
Propriedade da identidade
Um atributo é identificador quando:
- É de preenchimento obrigatório;
- Se tem a garantia que não existem dois elementos com o mesmo valor para o atributo.
Considere na imagem pessoa o atributo endereço, e no contexto é de preenchimento obrigatório. Analisando, este atributo atende à primeira parte da regra. Mas, não atende à segunda, pois não se pode garantir que não exista duas imagens com o mesmo valor para o atributo, portanto, o atributo não é identificador.
Considere agora a propriedade CPF. No contexto que se está analisando é de preenchimento obrigatório e assim atende à primeira parte da regra. Pode-se garantir que não exista dois valores de CPF iguais, portanto, o atributo tem a característica identificadora.
Veja que ao se determinar que uma propriedade seja identificadora está se introduzindo uma limitação no domínio do atributo, pois não se permitirá repetições. Pode-se ter mais de um identificador para um conjunto. Um identificador também é chamado de candidato a chave. Essa ação deve ser feita com cuidado e não se devem importar identificadores do simbólico de outras empresas, pois estas podem modificá-los introduzindo um risco elevado para a modelagem que se está realizando. Essa chave é o identificador do conjunto e será usada em toda a construção do modelo conceitual e se for substituída tornará inútil todo o modelo. O ideal é definir atributos artificiais cuja construção e domínio seja definido pelo analista que está fazendo o modelo.
Entre os candidatos a chave (ou identificadores) nomeia-se um como chave, ou seja, um identificador para o conjunto.
Relacionamentos
Outro elemento importante, para a modelagem de classes, é o relacionamento entre os elementos do conjunto. O relacionamento é o mesmo conceito matemático estabelecido em teoria dos conjuntos. Têm-se um relacionamento quando se estabelece alguma “ligação” entre os conjuntos. Não é uma ligação física, é uma ligação definida no plano de referência, por isso não tem como se constatar fisicamente. É um elemento conceitual. Reflete o conhecimento a respeito de alguma coisa. Só existe no mundo simbólico.
Para esclarecer analisar-se-á alguns exemplos: Você tem o conjunto dos homens e o conjunto das mulheres. A relação casamento normalmente associa um homem a uma mulher. A relação possuir associa um elemento do conjunto de objetos a um elemento do conjunto de pessoas. Um relacionamento é um estabelecimento conceitual entre elementos de um conjunto com outro que depende do aspecto do mundo real que se está analisando.
Estabelecimento de relacionamentos
Quando se tem um conjunto, como por exemplo, o de alunos.
Se está analisando, no mundo real, como é o controle de estacionamento construído apenas para alunos, identificamos que o outro conjunto de interesse é o de veículos.
Para os dois conjuntos pode-se estabelecer um relacionamento.
Pode-se escrever o relacionamento que se está estabelecendo. Observe que tem DOIS relacionamentos: de aluno para veículo (relacionamento: possui), e, de veículo para aluno (relacionamento: pertence). O nome desses relacionamentos não são padronizados e devem ser dados de forma a definir as relações. O sentido da relação é indicado por uma seta.
Assim, o relacionamento mostra o sentido da leitura:
Aluno possui veículo;
Veículo pertence a aluno.
– Um relacionamento é um conceito: não existe fisicamente no mundo real;
– Existe sempre dois relacionamentos entre conjuntos (de A para B e de B para A);
– Não force a barra para colocar o mesmo nome para o dois relacionamentos. É perda de tempo e tira o foco da análise que está sendo feita;
– Não padronize relacionamentos, eles mudam para cada novo mundo real que se está analisando.
As quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B
Existem quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B:
Primeira: Analisando A verifica-se que de todo elemento do conjunto A sai uma fecha:
Pode ser que todos os elementos de A tenham o par (a, b), neste caso se fala para todo a pertencente ao conjunto A temos uma imagem b no conjunto B. Observe que não interessa como chega ou para quem chega ao conjunto B.
Neste caso representamos esta informação junto ao relacionamento no sentido da leitura:
LEMOS: Todo veículo pertence a UM aluno.
Lemos do seguinte modo: Todo veículo pertence a UM aluno.
Segunda situação:
Observe que da situação anterior um elemento do conjunto A não tem correspondente no conjunto B. Se existir um elemento (basta um) não ter correspondente que caracterizamos esta situação. Representamos assim:
Existem alunos que TEM ZERO ou UM pai vivo. Terceira situação: De todo elemento de A estabelecemos um relacionamento, mas existem (no mínimo um) elementos que tem mais de um correspondente no conjunto B.
Esta situação representa-se na forma:
Lemos do seguinte modo: Um aluno cursa uma ou mais disciplinas.
Quarta situação:
No mínimo um elemento pertencente ao conjunto A não tem correspondente em b e existem elementos no conjunto A com mais de uma imagem. Representa-se:
- A multiplicidade 0..N ou 1..N está representado o mínimo e o Máximo de relacionamento de um elemento, na forma min..max assim pode se representar 3..10 indica que existem elementos no conjunto a com um mínimo de 3 correspondentes em B e no máximo 10 correspondentes no conjunto B.
- Pode-se ainda substituir o N por *. De forma resumida:
Atividade proposta
o texto abaixo que caracteriza uma descrição de um mundo real para uma empresa, a qual dividiu-se em frases numeradas para facilitar o entendimento:
(1) Uma empresa especializada na venda de livros, CD´s e DVD´s necessita de um sistema que a auxilie no controle e na distribuição dos seus produtos, em função de sua notável expansão.
(2) O sistema deverá permitir o registro dos pedidos dos clientes. Os clientes ao serem cadastrados deverão informar o nome, o endereço, o número do telefone (de 0 a 3 números diferentes) e número do CPF, que doravante será o seu identificador junto à empresa.
(3) Pode-se imaginar que cada cliente poderá realizar um pedido com vários produtos e quantidades. Para identificar um pedido será necessário armazenar o seu número e a sua data.
(4)Este pedido deverá ser encaminhado para o departamento de estoque a fim de providenciar a entrega do mesmo na data definida e no endereço estabelecido. Este último podendo ser diferente do endereço informado pelo cliente no ato do seu cadastramento.
(5) Uma entrega deverá ser realizada por uma das transportadoras cadastradas. Neste cadastro deverá ser informado o código da transportadora, o endereço, o número do telefone (de 0 a 5 números diferentes) e número do CNPJ (Cadastro Nacional de Pessoa Jurídica do Ministério da Fazenda).
(6) A transportadora selecionada assumirá toda a responsabilidade pela carga, mediante o pagamento de um seguro o que deverá ser somado ao valor dos itens constantes em um pedido.
(7) Para maior controle, exige-se que associado ao pedido a transportadora identifique, através da placa do veículo, o caminhão que irá fazer o transporte e, através do nome e do número do CPF, o funcionário que irá fazer a entrega.
(8)Estas informações são, entretanto, de responsabilidade da transportadora, não cabendo à empresa atacadista nenhuma responsabilidade por erros na informação fornecida(9)Ao receber a mercadoria o cliente deverá verificar se a quantidade e o preço de cada item da fatura estão corretos. Se não houver divergências ele assinará o recibo de entrega e lançará a data da mesma, que posteriormente será registrada no sistema. Caso haja alguma divergência o cliente poderá recusar o recebimento dos produtos. Neste caso, a fatura será recusada e os produtos devolvidos.
(10) O responsável pela entrega deverá informar a data da entrega e motivo da devolução. O motivo da devolução informado deverá ser escolhido a partir de uma lista contendo o código do motivo e a descrição do mesmo.
(10) A transportadora será remunerada em 5% do valor dos itens constantes no pedido (excluído o valor do seguro), mesmo que estes sejam devolvidos.
(11) As faturas, após o recebimento, serão transformadas em compromissos financeiros assumidos pelos clientes.
(12) Elas poderão ser cobradas à vista ou em parcelas, conforme definição no ato da compra. Todos os boletos de cobrança serão emitidos por uma instituição financeira, dentre as várias cadastradas no sistema.
(13) Os boletos deverão informar o número do banco, o nome do banco, o número do código de barras, a data de vencimento e o valor a ser pago.
(14) No final de cada mês os bancos mandam um relatório com a relação de todos os boletos que foram pagos. Este relatório deverá conter a data do pagamento e, se houver atraso, o valor da multa e dos juros cobrados. Tal informação deverá ser posteriormente registrada no sistema.
(15) Outra necessidade da empresa atacadista é poder controlar melhor o seu estoque de mercadorias. Para isso é necessário conhecer a quantidade disponível em estoque para cada produto comercializado, além de abater do estoque disponível as quantidades vendidas aos seus clientes.
Construa o modelo conceitual para representar o modelo.
Chave de resposta:
Frase (1):
Nesta frase especifica-se que o simbólico da empresa ira tratar livros, cd´s e DVD, que são os tipos de produtos que a empresa comercializa:
(plano de referencia de vendas)
Frase (2):
Nesta frase indica-se que a empresa tem interesse em ter a informação de seus clientes. E afirma-se que um pedido é de um cliente e este deve ter um ou mais pedidos (se não tiver pelo menos um pedido não é cliente – deve se verificar com o usuário.)
Frase (3):
Nesta frase se identifica que existe outro conjunto chamado produtos que são colocados no pedido
Frase (4):
No simbólico da empresa, estamos no plano de interesse do controle de estoque e há necessidade de um novo conjunto com dados referentes a entrega, assim pode se completar com o novo conjunto a imagem de pedido e de produto em estoque, que não é a informação do que é incluído no pedido. Assim aparecem dois novos conjuntos um se chamará estoque, e o outro entrega, neste exercício.
Na realidade estoque é um tipo de produto comercializado que apareceu na frase 1 assim substitui-se pela estrutura fica:
Frase (5):
Nesta frase aparece mais uma necessidade que é ter informações sobre a transportadora que a empresa cadastra. Colocou-se um atributo para cada telefone, e isto só foi possível porque se sabia o número máximo de telefones. E uma nova informação deve ser acrescentada a entrega que é a da transportadora que fará a entrega.·.
Frase (6):
Na frase seis tem-se novos atributos necessários para o setor de entrega, e deve-se acrescentar a imagem de pedido as informações necessárias para se somar o frete e o total de itens e que deve entrar no modelo
Veja que se acrescenta novos atributos a entrega, e estes devem ser acrescentados a imagem.
Frase (8):
Veja que na frase 8 tem-se uma regra de negócio do setor de expedição, mas nenhuma nova informação é acrescentada as imagens até aqui identificadas.
Frase (9):
Se a entrega estiver correta, deve-se saber quem assinou o recebimento da mercadoria e a data, pois a mesma será armazenada. Assim têm-se dois novos atributos que devem ser adicionados a imagem entrega:
Outro fato importante para a empresa é quando o produto é recusado, neste caso deve-se criar este conjunto, fazendo referencia a entrega.
Frase (10):
A transportadora será remunerada em 5% do valor dos itens constantes no pedido, e isto é uma regra de negócio que já é atendida pelos conjuntos existentes coloca-se como atributo da transportadora: O modelo fica:
Frase (11):
É dito que as entregas são transformadas em compromisso financeiro, que é um novo conjunto, de interesse do setor financeiro da empresa, e que se relaciona com a entrega. Esta pode ou não se transformar em um compromisso financeiro. Não vai se representar todo o modelo para simplificar o entendimento no diagrama abaixo:
Frase (12)
Nesta frase tem-se a informação que o pagamento pode ser de dois tipos neste caso deve colocar este atributo no conjunto de compromisso financeiro. Identificam-se ainda dois novos conjuntos de interesse da empresa para emitir a cobrança bancaria: o Banco e o boleto. Têm-se os conjuntos:
frase(13)
Nesta frase têm-se informações para completar o conjunto de fatura banco (boletos), neste caso se corrige os atributos que foram supostos em fases iniciais.
FRASE(14)
Na frase 14 tem se informações referentes ao recebimento, e como é de interesse da empresa se cria um novo conjunto relaciona-se a fatura.
OBS: A resposta poderá ter pequenas variações do gabarito apresentado.
Questão 2: Pode-se organizar a informação em uma generalização?
Gabarito: Sim. Pode-se criar o conjunto de faturas e criar os subconjuntos fatura paga e fatura não paga.
Justificativa: É uma forma mais estruturada de fazer a modelagem
Questão 3: Você sabe justificar como foram criados identificadores?
Gabarito: No conjunto existem identificadores criados pelo modelador.
Justificativa: Isto é uma prática comum para diminuir o risco de alterações no sistema provocadas porá gentes externos.
Questão 4: Na generalização poder-se-ia indicá-la como não completa?
Gabarito: sim, se a empresa tiver mais produtos além dos ditos no texto
Justificativa: É comum representa-se apenas o que interessa, mas pode existir outros produtos além dos apresentados no diagrama
Questão 5:Pode-se dividir o diagrama e áreas atuação da empresa?
Gabarito: Sim, pois mostra-se os conjuntos de entidades que são manuseadas por cada plano de referencia (ou seja setores da empresa)
Justificativa: É uma forma comum de organizar os conjuntos envolvidos na empresa. Os conjuntos são modificados gerando novos conjuntos. Assim pode-se separar os conjuntos por setores na empresa.
Modelar sub conjuntos
Muitas vezes temos um conjunto, no mundo real, mas estamos interessados em um subconjunto, ou por que se deve acrescentar alguma informação, ou precisa-se fazer um tratamento específico desses elementos. Considere o conjunto de inscritos em um concurso público, por exemplo, e modela-se a seguinte classe:
O diagrama representa dois subconjuntos no conjunto principal, não interessam para o subconjunto feminino se foi ou não aprovado. Ou seja, nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos.
O diagrama representa dois sub conjuntos no conjunto principal não interessam para o sub conjunto de feminino se foi ou não aprovado. Ou seja, nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos. A hierarquia estabelecida do conjunto principal para os sub conjuntos é também chamada de estrutura GEN-ESP (generalização para a especialidade). O conjunto principal também é chamado de super classe e os conjuntos de subclasses.
Uma sub classe pode ter mais de uma superclasse, ou seja, pode se ter um sub conjunto comum a dois conjuntos principais, neste caso, diz se que há herança múltipla.
Pode-se representar vários subconjuntos destacando–os por uma linha pontilhada algumas restrições entre chaves separadas por vírgula quando existir mais de uma:
Foi indicada uma restrição com duas observações: que não foram representados todos os subconjuntos (incompleto)e que podem ir sendo completados, poderia ser completo se todos fossem representados. E que os conjuntos são disjuntos, portanto mutuamente exclusivos, poderia ser sobreposição se o elemento pudesse pertencera a mais de um subconjunto nesta estrutura. Se o empregado for motorista, não é engenheiro, ou seja, a interseção entre os subconjuntos definidos é o conjunto vazio.
Generalizações Completa e Incompleta: Uma restrição simbolizando que uma generalização é completa significa que todas as subclasses já foram especificadas, e não existe mais possibilidade de outra generalização a partir daquele ponto. A generalização incompleta é exatamente o contrário da
completa e é assumida como padrão da linguagem.
Outro recurso importante é a associação. Uma associação é um conjunto criado com objetivo de ligar outros dois (ou mais) conjuntos existentes.
As classes associadas são representadas por linhas cheias e a classe que as associa é ligada a esta linha cheia por uma linha pontilhada.
Toda vez que tivermos um relacionamento de multiplicidade (0..*) para os dois lados do relacionamento deve-se usar a classe associativa. O modelo de classes de objetos é determinista, isto é, devemos saber quem se relaciona com quem, portanto a multiplicidade 1 é obrigatória nos Relacionamentos fora da estrutura associativa.
Exemplo: Uma empresa trabalha com projetos. Todo empregado trabalha em um projeto, cada projeto é coordenado por um órgão. O departamento de pessoal precisa saber que dia e hora o empregado entrou e saiu de cada projeto. Faça um modelo de classes que permita fornecer esta informação:
Primeiro passo:
O modelador inicia identificando os conjuntos existentes:
Segundo passo:
Verifica-se um relacionamento 1..N para 0..*. É um relacionamento não determinista, ou seja, múltiplo, neste caso deve-se fazer uma classe associativa que permite se acrescentar as informações desejadas. Então modelo fica:
Observe que ao se estabelecer o subconjunto está se definindo novas propriedades para os elementos do subconjunto, inclusive o nome, então se lê: candidato aprovado, também pode-se dizer que aprovado é um papel do conjunto de candidatos. A identificação do candidato no subconjunto é a mesma do conjunto. Em Modelagem de objetos diz-se que aprovado herdou as propriedades de candidato (matematicamente não é correto, pois o subconjunto tem as propriedades do conjunto principal), mas o termo é devido a uma característica das linguagens de projetos. Pode-se ter subconjuntos de vários tipos de subconjunto.
Podemos destacar quantos subconjuntos for necessário para se fazer a análise, assim, se a empresa que está promovendo o concurso tivesse interesse em registrar o peso e a altura das candidatas femininas poderia representar.
Atividade proposta
Considere o texto que caracteriza uma descrição de um mundo real para uma empresa.
Considere o mundo real abaixo:
Um Banco tem diversas agencias identificadas por um código. É importante ter as informações do endereço, telefone Tamanho em metros quadrados de cada agencia. Cada agencia tem sua carteira de clientes. Não há interesse em saber se o cliente tem ou não conta em outra agencias. Do cliente deve-se ter as informações de nome, endereço, CPF. Passamos a ter um cliente quando uma pessoa abre uma conta corrente. Não interessa o numero de contas que o cliente abre. Cada conta é identificada por um número, um gerente responsável, um saldo atual e um saldo médio.
Primeiro passo:
Analisando o Mundo real descrito, podemos ter algumas dúvidas, e para isto devemos procurar o responsável pela formulação do problema. Em alguns casos temos a liberdade de fazermos algumas suposições, mas que obrigatoriamente devem ser verificadas antes de se seguir adiante. Analisando o problema devemos estabelecer um foco para iniciar o trabalho. No texto qual a intenção de que formulou a questão? Qual o foco da análise?
Pode-se divergir um pouco, mas esta reflexão é fundamental para o desenvolvimento do raciocínio. Em minha opinião, como analista, e que pode não coincidir com a sua, o texto foca no controle do cliente ou da conta corrente. Assim vou estabelecer o conjunto inicial, para a qual representarei a classe:
Segundo passo:
Estabelecer os relacionamentos com conjuntos diretamente ligada à classe identificada. Neste caso foi incluir a classe conta com os seus respectivos relacionamentos:
Terceiro passo:
Estabeleço os relacionamentos com conjuntos necessários para completar a descrição ou que são necessários para o objetivo focado. No nosso caso falta o conjunto de agencias, tendo em vista que UM banco deseja controlar a s agencias. O conjunto de bancos é desnecessário, tendo em vista que seus dados são inicialmente conhecidos e a aplicação esta sendo desenvolvida para ele. O cliente é da agencia e o meu foco é o cliente, por isto vou relacionar o conjunto de agencias com o conjunto de clientes.
Considere o mundo real abaixo:
A biblioteca da universidade tem um acervo de livros, catalogados por titulo, edição, editora, primeiro autor. Os alunos podem pegar livros nesta biblioteca. Para isto a biblioteca tem registrado a matricula, nome, telefone e CPF de cada aluno. Ao fazer o empréstimo, registra-se o dia da devolução. Faça um modelo de classes que represente a necessidade da biblioteca.
Resposta:
Existem alguns conjuntos, que no processo de modelagem, que se deseja condicioná-los a existência de outros conjuntos. São chamados de conjuntos dependentes. A dependência de conjuntos é uma ferramenta da modelagem. Neste caso o modelador deseja que a identificação do conjunto dependente seja feita a partir do conjunto origem A representação da dependência é por uma linha tracejada
O diagrama significa que o familiar deve ser identificado a partir da identificação do empregado. Na realidade um objeto dependente só pode ser dependente de um único objeto, por isto é desnecessário a indicação da multiplicidade 1.
Exemplo de desenvolvimento usando a dependência.
Primeiro passo: O objetivo da modelagem é o controle o pedido, portanto, a primeira classe que é o foco da análise já esta definida:
Segundo passo: precisamos colocar as informações do item, mas estes itens devem ser identificados a parte do numero do orçamento (decisão de projeto)
Referências
RIBEIRO, HORACIO. Análise orientada à objetos: da teoria à pratica. editora europa.
POMPILHO, severino. Modelagem essencial. IBPI press.
HEUSER, C. Projeto de banco de dados. editora armed.Sserie de livro didáticos – 4 série.
Material retirado da web
Engenharia de Software – Modelagem de dados – Representação utilizando conjuntos