600 likes | 718 Views
Modelagem Conceitual. Professor: Leandro Chernicharo. Relembrando …. Relembrando …. Nível externo. Nível interno. Nível conceitual. Arquitetura dividida em três níveis :. Relembrando …. Nível externo o mais próximo do usuário final: aplicações , resultado de consultas , etc.;
E N D
ModelagemConceitual Professor: Leandro Chernicharo
Relembrando… Nívelexterno Nívelinterno Nívelconceitual Arquiteturadivididaemtrêsníveis:
Relembrando… Nívelexternoo maispróximo do usuário final: aplicações, resultado de consultas, etc.; Nívelinternotrata de comoos dados serãoefetivamentearmazenados: tipos, algoritmos, discos, etc.; Nívelconceitual é o modeloquereflete o banco de dados, abstraindosuaimplementação, preocupando-se apenas com a informaçãoemsi.
Modelagemconceitual objetos(Diagrama de Classes) É uma das etapas do Projeto de Banco de Dados; Representa a visão dos dados a seremarmazenadasabstraindosuaimplementaçãofísica; Apresentaumavisãoestática do sistema; Pode ser baseadoementidades(MER) ouem
Modelagemconceitual Conjunto de Requisitos ModelagemConceitual ProjetoLógico de Dados ProjetoFísico de Dados BD BD BD Etapas do Projeto de BD:
Modelagemconceitual “Um modelo de classes de domínio é uma representação das classes conceituais do mundo real, não dos componentes do software. Ele não é um conjunto de diagramas descrevendo as classes do software ou objetos do software e suas responsabilidades” [LARMAN, Craig, Utilizando UML e Padrões, 2a ed.]
Modelagemconceitual Modelagemconceitual de dados é o processo de criação de um modeloconceitual de dados a partir dos requisitosextraídospara um determinadoartefato de software.
Um exemplo “Quem” alas admitidos pacientes doenças tratamento especialidade atende sexo “O que” “como” Um hospital possui um número de , nas quais os são , suas tratadas, e das quais são liberados após o . Cada ala a uma e admite pacientes do feminino ou masculino (não há alas mistas). […]
Um exemplo “Quem” 1 Ala Paciente 0..* nome sexo sexo 1 atende realiza 0..* 1 Tratamento Pertence a Especialidade Data_inicio Data_fim 1..* nome 1..* “O que” 0..* engloba 1..* Doenca “como” trata 1..* nome
Um exemplo • Resumindo: • As informaçõesparaconstrução do modelopodemvir do minimundoou das descrições de caso de uso (maiscomum); • O modeloconceitualabstraicompletamentequalquertipo de implementação, concentrando-se apenasnarepresentaçãológica do negócio; • Serve comoestrutura fundamental paratodo o desenvolvimento do sistema.
Construindo o modelo Análise • Ferramenta: Diagrama de Classes da UML • Existeemtrêsníveis de abstração • A • Projeto • Implementação • Estrutural Representa as classes e suasrelações • Estático Nãoapresentainformações de interações entre osobjetos
Construindo o modelo No nível de análise, representamosapenas as classes quetenhamrelação com o domínio de problema, abstraindorecursos e decisões de projetoouimplementação; Poressemotivo, também é conhecidocomodiagrama de classes de domínio
Construindo o modelo • São representados no diagrama de classes de análise: • Classes; • Atributos (semosrespectivostipos de dado); • Associações; • Simples / agregações / composições • Multiplicidades • Adornos • Generalizações/especializações
Construindo o modelo • Classes • São abstraçõesquerepresentamobjetos com as mesmascaracterísticas e papéisdentro do SW; • Podepossuiratributose operações: • Atributos são as características do objeto, as informaçõesqueconhecemos a seurespeito • Operações São oscomportamentosque o objeto é capaz de executar
Construindo o modelo • Classes – Notação • Representadapor um retângulo com um a trêscompartimentos: • Nome daclasse • Atributos • Operações • Os nomes de classedevem ser sempreiniciados com letrasmaiúsculas e devemestar no singular. Exemplos: • Livro • Pedido • ItemPedido
Construindo o modelo • Classes – Notação • Os atributos e operaçõesdeveminiciar com letrasminúsculas e, paracada nova palavra no nome, a letramaiúsculadeve ser usada. Exemplos: • numero • dataRealizacao • obterValorTotal()
Construindo o modelo • Classes – Notação • As operaçõessempredevemterminar com parênteses, mesmoquenaohajaparâmetros. Exemplos: • calcularValor() • somar(a : int, b : int) : int • adicionarFuncionario(func : Funcionario)
Construindo o modelo Nome daClasse Nome daClasse Nome daClasse Nome daClasse Lista de atributos Lista de operações Lista de atributos Lista de operações Pedido Pedido Pedido Pedido numero dataRealizacao obterValorTotal() numero dataRealizacao obterValorTotal() Classes – Notação (exemplos)
Construindo o modelo Associações Representam a relação entre objetos de duasoumais classes; Essaligaçãosó se concretizará (ounão) durante a execução do sistema; Representada no diagrama de classes porumalinhaligandooselementosenvolvidos.
Construindo o modelo Associações UmaClassepode se associar com elaprópria. A essefatodamos o nome de associaçãoreflexiva; As associaçõespossuematributosquepodemosutilizarparalhesdarmaiorsignificado, legibilidade e clareza; Essesatributossãocolocadossobreou sob a linhaquerepresenta a associação
Construindo o modelo • Associações • São atributospossíveis de umaassociação: • Nome • Direção de leitura • Papel • Multiplicidades
Construindo o modelo Associações Nome dálegibilidade e significado à associação; Direção de leitura indicaparaquelado se lê o significado dado pelonomedaassociação; Papel indica o papelquedeterminadoobjetoexecutanaquelaassociação. Pode ser usadoemsubstituição do nome.
Construindo o modelo Associações Multiplicidades representam as quantidadesmínima e máxima de objetos com osquais o outropodeestarligado.
Construindo o modelo • Associações • A partir das multiplicidadesextraímosdoisnovosconceitos: conectividadee participação. • Conectividade define a maneiracomo se dá a associação entre as classes. • Descoberta a partir do limitesuperior de cada um dos pares de multiplicidade de umadeterminadaassociação
Construindo o modelo • Associações • Participação indica a obrigatoriedadeounãodaexistênciadaligação entre osobjetosdurante a execução do sistema. • Descoberta a partir do limiteinferior de cada um dos pares de multiplicidade de umadeterminadaassociação • A participação de umaclasseemumaassociação é descoberta no extremoopostoa ondeelaestá
Construindo o modelo nomedaassocição direção de leitura aloca 1 0..* Departamento Funcionario multiplicidades associação Conectividade: um paramuitos Participação de Departamento: opcional Participação de Funcionario: mandatória Associações – Notação (exemplos)
Construindo o modelo contrata 1..* 1..* Organização Indivíduo É o mesmoque - contratante 1..* Organização Indivíduo - contratado 1..* Conectividade: muitosparamuitos papel Participação de Organizacao: mandatória Participação de Individuo: mandatória Associações – Notação (exemplos)
Construindo o modelo participa de .. .. 1 0 * * Corrida Corredor Conectividade? muitosparamuitos opcional Participação de Corrida? mandatória Participação de Corredor? Associações – Notação (exercício)
Construindo o modelo • Associações • Alémdaassociação simples (quevimosaté agora), existemdoistiposespeciais de associação: • Agregação; • Composição
Construindo o modelo • Associações • Agregação e composição: • São usadas para indicarumasemântica de todo-partenarelação entre duas classes; • Podem, emqualquercaso, ser substituídasporumaassociação simples; • Seuuso é indicadoquando for necessárioenfatizar a semânticadaassociação; • Todososadornos de umaassociação simples podem ser aplicados a elas.
Construindo o modelo • Associações • Agregação x Composição: • Agregação • Nestetipo de associação, as partespodem ser criadassemquehaja o todo; • Umamesmapartepodefazer parte de diversostodos; • A destruição de um nãoimplicanadestruição do outro. • Ex.: Um clubeesportivo e seussócios
Construindo o modelo • Associações • Agregação x Composição: • Composição • Nestetipo de associação, háumadependência entre as classes, de tal forma que a partenãoexistesem o todo; • Os objetospartesãopertencentes a um únicotodo; • Os objetospartesãocriados e destruídospeloobjetotodo. • Ex.: Umavenda e seusitens
Construindo o modelo • Associações • Agregação x Composição: • Notação • Agregação e composiçãosãorepresentados no diagrama de classes por um losangonaextremidadetodo; • Na agregação o losango é aberto; • Na composição o losango é fechado;
Construindo o modelo Clube Venda Agregação 1 0..* Composição - sócio proprietário 1..* 1..* Socio ItemVenda Sempre é 1, por isso alguns autores omitem esta multiplicidade • Associações • Agregação x Composição: • Exemplo
Construindo o modelo 1..* 1..* Secao Paragrafo Capitulo • Associações • Agregação x Composição: • IMPORTANTE • Pode-se construirhierarquias de associaçõesdessetipo, formandohierarquiastodo-parte; • Essetipo de associação é transitivo.
Construindo o modelo Associaçõesn-árias São associaçõesqueenvolvemmais de duas classes simultaneamente (n > 2); O tipomaiscomum – oumenosincomum – dessetipo de associação é a associaçãoternária(n = 3); São representadaspor um losangoqueconecta as linhas de associação de todas as classes quedelaparticipam; Para determinar as multiplicidades de cadauma das classes, devemosanalisá-la no contextodaassociação com as demais classes participantes, simultaneamente.
Construindo o modelo 1..* * Profissional Projeto 1..* Empresa • Uma empresa contrata um profissional para trabalhar em um projeto específico. • Se não houver projeto, não há a contratação; • Se não houver profissionais disponíveis, não é possível realizar o projeto; • Os profissionais só podem trabalhar no projeto se forem contratados por uma empresa. Associaçõesn-árias Exemplo:
Construindo o modelo • Classe de Associação • Usada para armazenarmoscaracterísticas e operaçõesreferentes a umaassociação entre duas classes; • Ouseja, a informaçãonãopertence a umaou a outraclassedaassociação, massimà união de ambas, ao par. • Tambémconhecidacomoclasseassociativa; • Pode ser usadaemassociações com qualquerconectividade; • Pode ser usadaemumaassociaçãoternária.
Construindo o modelo Emprego Só fazem sentido se houver o par, se houver a realização da associação dtContratacao salario Pessoa Empresa nome telefone razaoSocial CNPJ * * - empregado - empregador Classe de Associação Representada no diagrama de classes porumalinhatracejadaligando a classe à associação à qualela se refere;
Construindo o modelo Generalização/Especialização Relacionamento entre classes do domínioquerepresentageneralidadeouespecificidade entre osenvolvidos; Pode-se dizerqueumaclasse é umaespecialização de outraquandoelaadicionaatributos, associaçõesoucomportamentos a esta; Diz-se maiscomumenteque a classeespecífica é umaextensãodaclassemaisgenérica.
Construindo o modelo • Generalização/Especialização • Emsuma, diz-se queAestendeBquandoApode ser vistocomo um subtipo de B e lheadiciona novas características (atributos, associações e/ouoperações); • ContaPoupanca e ContaCorrentesãosubtipos de ContaBancaria • O nomemaiscomumque se dá a essarelação entre classes é herança; • Na herança, atributos e operaçõesquenãosejamprivadosnaclassemaisgenéricasãoautomaticamenteherdadosnas classes maisespecíficas.
Construindo o modelo Generalização/Especialização Benefício do uso de herança Reuso; Malefício do uso de herança Acoplamento; É necessáriodiscernimento e bomsenso no uso de herança no processo de modelagem; Excessoleva a acoplamentosexagerados.
Construindo o modelo • Generalização/Especialização • Representamos no diagrama de classes com uma seta fechada e vazadaquevai do maisespecíficopara o maisgenérico; • Nãohálimitespara o número de classes envolvidasem um relacionamento de herança; • Pode-se criarhierarquias de classes emníveis, a priori, infinitos; • O relacionamento de herança é: • Transitivo As maisespecíficasherdam as características de todososseusascendentesdiretosnahierarquia; • Assimétrico Se Aherda de B, Bnãopodeherdar de A.
Construindo o modelo Superclasse Superclasse Subclasse2 SubclasseN Subclasse1 ... Subclasse1 Subclasse2 ... SubclasseN Generalização/Especialização Notação:
Construindo o modelo Generalização/Especialização Exemplo: