Aula 03 - Projeto de Banco de Dados - Modelagem Uml (Classes)

33
Projeto de Banco de Dados Relacional Prof. Me. Gabriel P. S. Bre CENTRO UNIVERSITÁRIO DE BARRA MANSA COPEP – COORDENADORIA DE PÓS-GRADUAÇÃO E PESQUISA PÓS-GRADUAÇÃO EM TECNOLOGIA E PROJETO DE BANCO DE DADOS

description

aula 3

Transcript of Aula 03 - Projeto de Banco de Dados - Modelagem Uml (Classes)

Slide 1

Projeto de Banco de Dados RelacionalProf. Me. Gabriel P. S. Brenner

CENTRO UNIVERSITRIO DE BARRA MANSA

COPEP COORDENADORIA DE PS-GRADUAO E PESQUISAPS-GRADUAO EM TECNOLOGIA E PROJETO DE BANCO DE DADOS

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional1CONTEDO PROGRAMTICOMODELO ENTIDADE E RELACIONAMENTOPROJETO DE BANCO DE DADOS RELACIONALOUTRAS TCNICAS DE MODELAGEM- REVISO SOBRE CLASSES- TCNICA DE MODELAGEM COM FOCO NAS RESPONSABILIDADES- TCNICA TEXTUAL DE ABBOTT- MAPEAMENTO DE CLASSES (UML) Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional2FRASE MOTIVACIONALO engenheiro de software amador est sempre procura de mgica, de algum mtodo sensacional ou ferramenta cuja aplicao promete tornar trivial o desenvolvimento de software. uma caracterstica do engenheiro de software profissional saber que tal panacia no existe.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional3DEFINIO DE CLASSEClasse o descritor de um conjunto de objetos que compartilham os mesmos atributos, operaes, mtodos e comportamento.Uma classe e outros elementos da UML que descrevem conjuntos de instncias so considerados descritores.Uma classe o estncial a partir do qual so criados (gerados) objetos. Cada objeto tem a mesma estrutura e comportamento definido pela classe da qual ele se originou. Se o objeto obj pertence a classe C, dizemos que obj uma instncia de C.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional4CLASSERepresentam um conceito dentro do sistema queest sendo modelado.

Formam o vocabulrio do sistema.

Dependendo do modelo, o conceito pode ser relativo a coisas do mundo real ou envolver algoritmos ou implementao em computador.

Exemplo: Parachoque, Paralama, Porta podem ser exemplos classes de um modelo que representa um carro.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional5CLASSEUma classe pode tambm representar conceitos abstratos (no material). Neste caso, usa-se reificao, isto , tratar o conceito abstrato como coisa.

A reificao uma instrumento muito utilizado pelo ser humano, por exemplo, na literatura e filosofia.

Ex.: Tup, deus do trovo em tupi.

Um nome a reificao de uma coisa e um verbo areificao de uma ao

A reificao tambm muito utilizada em modelagem.

Por exemplo, pode-se criar uma classe Sonho que vai descrever as propriedades de um sonho.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional6NOMEANDO CLASSESO nome de uma classe um texto, constitudos de letras, nmeros e outros caracteres especiais exceto alguns utilizados na linguagem em que ser implementado.

Na prtica, devem ser nomes ou frases curtas que funcionam como nomes, trazidos do vocabulrio do domnio, sem espao ou caracteres especiais para que seja possvel de ser implementada sem adaptao ou mudanas.

As letras iniciais de cada palavra devem ser maisculas.

Ex1.: TurmaCursoEx2.: AlunoEx3.: PedidoCompra

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional7RESPONSABILIDADE DAS CLASSESUma responsabilidade um contrato ou obrigao de uma classe.

Responsabilidades representam os conhecimentos e as aes que possibilitam a uma classe cumprir seu papel.

Os atributos e operaes podem ser vistos como aspectos ou caractersticas atravs das quais as responsabilidades so cumpridas.

Um bom ponto de partida para a definio de uma classe a definio de suas responsabilidades (o que ela deve conhecer, qual papel ela deve cumprir e quais aes ela precisa ter para que o cumpra).Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional8RESPONSABILIDADE DAS CLASSESResponsabilidades so descritas como frases ou pargrafos curtos em formato textual livre.

Podem ser documentadas em uma parte descrio da classe ou como uma nota estereotipada como ligada a classe.

Ex.:

Aluno

Determina os dados do aluno que participar das turmas e das notas no sistemaPs-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional9ATRIBUTO DE CLASSESAtributo uma propriedade, com nome, de uma classe que descreve um conjunto de valores que instncias da propriedade podem ter.

Uma classe pode ter nenhum ou vrios atributos.

A cada momento, os objetos de uma classe vo ter valores especficos para cada um de seus atributos;Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional10NOMEANDO ATRIBUTOSOs nomes de atributos so semelhantes aos nomes de classe, s que a primeira letra costuma ser minscula.Pode-se especificar a classe (tipo) a que pertence um atributo e um valor inicial.Exemplo:

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional11MTODOS DE CLASSESUma operao a especificao de uma transformao ouconsulta que um objeto pode ser solicitado a executar.

Em geral, a invocao de uma operao de um objetoresulta na alterao de seu estado.

O nome de uma operao costuma ser verbo ou frase curtaque representa um comportamento.

Exemplo:

Nomes iniciados com maiscula, sem espao e sem caracteres especiais. Um mtodo pode ou no retornar valor.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional12MODELANDO CLASSESClasses so usadas para modelar abstraes oriundas do problema a resolver ou da soluo a ser desenhada.Essas abstraes so parte do vocabulrio do domnio.Juntas, representam as coisas que so importantes para usurios e/ou implementadores.

Uma classe bem estruturada:Prov uma abstrao clara de alguma coisa trazida do domnio do problema ou da soluo.compreende um conjunto pequeno, bem definido de responsabilidades e as realiza bem.permite uma clara separao entre sua especificao e sua implementao. simples e inteligvel mas ao mesmo tempo extensvel e adaptvel.

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional13TCNICA DE MODELAGEM COM FOCO NAS RESPONSABILIDADESIdentifique as coisas (substantivos) que os usurios ou implementadores usam para descrever o problema ou uma soluo.

Essas coisas so classes ou candidatas a classes.

Para cada abstrao, identifique um conjunto de responsabilidades com auxlio dos cartes CRC quando necessrios.As responsabilidades precisam estar bem definidas e entendidas por todos.

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional14TCNICA DE MODELAGEM COM FOCO NAS RESPONSABILIDADESEstabelea uma distribuio balanceada de responsabilidades entre as classes.

Identifique as classes que colaboram com as classes identificadas.

Proveja os atributos e operaes necessrios para executar as responsabilidades das classes.

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional15CARTES CRCNo trabalho de modelagem, cartes CRC (Classes, Responsabilidade, Colaboraes) podem ser usados em na etapa inicial de identificao de classes ou de candidatos a classe.

Cartes CRC so cartes (fichas de papel), cada ficha corresponde a uma classe. Cada ficha contm o nome da classe e 2 colunas com descrio de suas responsabilidades e colaboraes.

Colaboraes apresentam outras classes que interagem com a classe descrita para o cumprimento de suas responsabilidades.

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional16CARTES CRC

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional17CONCEITOS O.O. - VISIBILIDADE uma enumerao cujos valores {public, protected,private } indicam se o elemento de modelagem ao qual se referem podem ser vistos fora de seu espao de nome.

Espao de nome a parte do modelo na qual o nome pode ser definido ou usado. Dentro de um espao denome, o nome tem um significado nico.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional18CONCEITOS O.O. - VISIBILIDADEA visibilidade de um elemento de modelo define se ele poder ser referenciado por um elemento fora de seu espao de nome.Visto de outra maneira, a visibilidade parte da relao entre um elemento e seu Continer.O Continer de um elemento pode ser uma classe, um pacote ou algum outro espao de nome.Visibilidade pode ser aplicada a atributos e operaes em relao a uma classe ou entre classes e o pacote onde ela foi definida (seu Continer), por exemplo.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional19CONCEITOS O.O. - VISIBILIDADEA UML define 3 nveis de visibilidade:

Pblico: um elemento que possa ver o continer de um elemento indicado na visibilidade pode tambm v-lo.

Protegido: somente um elemento dentro de um continer ou o descendente de um continer pode ver o elemento indicado.

Privado: somente um elemento dentro do continer podePs-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional20CONCEITOS O.O. - VISIBILIDADEA visibilidade usada para realizar o encapsulamento de uma abstrao, ou seja, expor somente as features que so necessrias para a cumprimento das responsabilidades de um elemento de modelagem.

Isso essencial para se construir sistemas slidos e resilientes, facilitando o entendimento, a modularizao, a manuteno, etc.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional21CLASSE ABSTRATA E CLASSE CONCRETAUma classe abstrata aquela usada somente na construo de uma hierarquia de relacionamentos de generalizao no pode ter nenhuma instncia direta. utilizada para definir operaes e atributos comuns a um conjunto de classes filho. O oposto, aquela que gera objetos como instncias, tipo chamado classe concreta.Uma classe folha aquela que no pode gerar um filho Em UML, pode-se usar a propriedade {leaf} para especificar uma classe folha. Uma classe raiz aquela que no pode ter pais. Em UML, pode-se usar a propriedade {root} para especificar uma classe raiz.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional22CLASSE ABSTRATA E CLASSE CONCRETAUma classe abstrata aquela usada somente na construo de uma hierarquia de relacionamentos de generalizao no pode ter nenhuma instncia direta. utilizada para definir operaes e atributos comuns a um conjunto de classes filho. O oposto, aquela que gera objetos como instncias, tipo chamado classe concreta.Uma classe folha aquela que no pode gerar um filho Em UML, pode-se usar a propriedade {leaf} para especificar uma classe folha. Uma classe raiz aquela que no pode ter pais. Em UML, pode-se usar a propriedade {root} para especificar uma classe raiz.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional23POLIMORFISMO OU FOLIFORMISMOOperaes tm algumas propriedades similares a classes.Uma operao abstrata aquela que no tem um mtodo definido.Uma implementao para a operao tem que ser suprida em algum de seus descendentes concretos.Um elemento abstrato denotado pelo nome em itlico.O oposto de abstrato concreto.Polimorfismo trata tambm da sobrecarga de procedimentos.Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional24HERANA

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional25AGREGAO / COMPOSIOSo tipos especiais de associaes.

A diferena est na semntica. Em agregaes e composies o objeto est contido no outro, ao contrrio de associaes normais.

Estabelece-se o conceito todo/parte.

A diferena entre Agregao e Composio conceitual:Na agregao, quando o todo destrudo, as partes permanecem.Na composio, quando o todo destrudo, as partes tambm so destrudasPs-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional26AGREGAO E COMPOSIO

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional27MULTIPLICIDADENomeSimbologiaApenas um1Zero ou Muitos0..*Um ou Muitos1..*Zero ou um0..1Intervalo especficon..mFONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional28MULTIPLICIDADE

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional29MULTIPLICIDADE X CARDINALIDADE

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional30NOME DA ASSOCIAODIREO DE LEITURA E PAPISFONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional31CLAREANDO ASSOCIAESFONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional32EXERCCIOSDescreva um sistema com ao menos trs requisitos, identifique as possveis classes (atravs dos substantivos).Identifique, dessas possveis, quais so classes realmente.Para cada classe, crie um carto CRC identificando as colaboraes e responsabilidades.Construa o diagrama de classes.A partir do diagrama de classes, mapeie as classes em tabelas de um banco de dados relacional.Monte uma apresentao de, no mnimo 20 minutos e no mximo 30 minutos.

Ps-Graduao em Tecnologia e Projeto de Banco de DadosDisciplina: Projeto de Banco de Dados Relacional33Nome da ClasseLocao

ResponsabilidadeColaboraes

Inserir/excluir locaoCliente

Inserir/alterar/excluir filme na locaoItemLocacao, Filme

Calcular total locaoItemLocacao, Filme

EncerrarLocacaoItemLocacao, Filme, ContaCorrente

EfetuarDevolucaoItemLocacao, Filme, ContaCorrente