Disciplina Técnicas de Modelagem



Documentos relacionados
Relacionamentos entre classes

UML: Diagrama de Casos de Uso, Diagrama de Classes

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Guia para elaboração do Modelo de Domínio Metodologia Celepar

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Disciplina: Unidade III: Prof.: Período:

Aula II Introdução ao Modelo de Entidade-Relacionamento

Casos de uso Objetivo:

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Sumário. Uma visão mais clara da UML

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Nome Número: Série. Relacionamentos

Análise e Projeto Orientado a Objetos

2 Engenharia de Software

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

Análise e Projeto Orientados a Objeto

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Manual de Utilização do Sistema Protocolo

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO TECNOLÓGICA. Sistema Nacional de Informações da Educação Profissional e Tecnológica (SISTEC) GUIA SISTEC

CSPUWEB - Cadastro de Sistemas. e Permissões de Usuários

4- PROJETO DE BANCO DE DADOS

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Análise e Projeto Orientados por Objetos

Uma visão mais clara da UML Sumário

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Capítulo 8. Introdução UML

Banco de Dados. MER Estendido. Profa. Flávia Cristina Bernardini

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Modelagem de Sistemas

Para o OpenOffice Impress, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

QUESTÕES PARA ESTUDO DIAGRAMA DE CLASSE

GBC043 Sistemas de Banco de Dados Modelo de Entidade-Relacionamento (ER)

Para o PowerPoint, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

Mapa Mental de Engenharia de Software - Diagramas UML

MODELAGEM DE SISTEMAS

Inventario feito direto de um coletor de dados on-line Iniciando a apresentação a gestão de inventários

Criando campanhas e gerando pedidos de venda com o Telemarketing

AULA 16 - Sistema de Arquivos

Bem-vindo ao tópico Múltiplas filiais.

RELACIONAMENTOS ENTRE CLASSES

Tecnologias e Linguagens para Banco de Dados I. Definição de. Estabelecendo relacionamentos. Relacionamentos. Relacionamentos

Introdução à Ciência da Computação

PERGUNTAS MAIS FREQÜENTES

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Usando o Conference Manager do Microsoft Outlook

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

GERA GESTÃO E CONTROLE DE TÍTULOS: parte I

Início Rápido para o Templo

Diagrama de classes. Ricardo Roberto de Lima UNIPÊ APS-I

Modelo Relacional. 2. Modelo Relacional (Lógico)

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Manual do Software Pctel Supervisor Desktop

Astra LX Registro de Pacientes e Médicos Guia para o acesso aos registros de Pacientes e Médicos e eliminação de dados duplicados no AstraLX

MANUAL DA SECRETARIA

Tabelas vista de estrutura

Especificação do Trabalho

Persistência e Banco de Dados em Jogos Digitais

Guia de utilização da notação BPMN

ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

O Processo de Engenharia de Requisitos

PANDION MANUAL DO USUÁRIO (versão 1.0)

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

MANUAL DO USUÁRIO PORTAL DO PROFESSOR

Acessando o SVN. Soluções em Vendas Ninfa 2

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

O Modelo de Entidade Relacionamento (ER ou MER) Parte 1

Exercícios Teóricos Resolvidos

SISTEMA INTEGRADO DE GESTÃO AMBIENTAL SIGAM

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Manual do Sistema de Trâmite de Processos da UFMT

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Projeto ECA na Escola - Plataforma de Educação à Distância

Resolução da lista de exercícios de casos de uso

TRIBUNAL REGIONAL FEDERAL DA 5ª REGIÃO

Eduardo Bezerra. Editora Campus/Elsevier

PROCEDIMENTOS PARA AQUISIÇÃO

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

REQUISITOS DE SISTEMAS

Banco de Dados. Aula 5 - Prof. Bruno Moreno 06/09/2011

Micro Mídia Informática Fevereiro/2009

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

PROJETO PILOTO. Setembro 2015

1223o TUTORIAL PRÉ-VENDA. Realização: DEPARTAMENTO DE IMPLANTAÇÃO EQUIPE DE DOCUMENTAÇÃO

Programação Orientada a Objeto

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO

MANUAL SOCIEDADE DE ADVOGADOS

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

MANUAL DO SERIE ALIMENTAÇÃO

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Unidade 2 Do fundo do baú

VERSÃO VERSÃO FINANCEIRO NEFRODATA ESTOQUE FINALIZAÇÃO: 10 JUN.

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP

Transcrição:

T É C N I C A 3 MODELAGEM CONCEITUAL GENERALIZAÇÃO/ESPECIALIZAÇÃO, AGREGAÇÃO E COMPOSIÇÃO Generalização/Especialização Herança é o termo em orientação a objetos que se refere à criação de novas classes a partir de existentes onde os atributos e operações comuns são agrupados para fins de reutilização de código. Observe as duas classes abaixo: Figura 1 classes independentes Gerente e Secretaria Perceba que há muitos atributos comuns entre elas e isso demanda muito trabalho para definir e alterá-los. Além disso, o que estas duas classes têm em comum? Elas fazem parte de um sistema de controle de pessoal e representam os funcionários de uma empresa. Com base nesses fatos, aplicaremos a técnica da generalização para eliminar as duplicidades e deixar o modelo mais elegante. 1- Criação da superclasse Para implementar a generalização, criamos uma terceira classe generalista para agrupar os membros comuns de Gerente e Secretaria (matricula, nome, salario e depto). Essa classe deve receber um nome que também seja uma generalização de gerente e secretária e, por isso, escolhemos Funcionario. Figura 2 superclasse Funcionario 2- Retirar elementos comuns das subclasses A classe pai, também chamada de superclasse, ou ancestral, é quem possui os atributos comuns. A classe filha, ou subclasse, é a classe que herda os membros da superclasse e ainda possui os seus específicos (por isso, a subclasse tende a ser maior que a 1

superclasse). Assim, o passo seguinte é retirar os atributos comuns das duas subclasses, deixando apenas os específicos: Figura 3 subclasses com atributos comuns removidos 3- Fazer o relacionamento de generalização entre subclasses e superclasse Criamos um relacionamento de generalização (cuja notação é uma reta com um triângulo na ponta) entre Gerente e Funcionário e outro entre Secretária e Funcionário. A ponta da seta sempre deve apontar para a superclasse. Figura 4 notação dos relacionamentos Outra forma de representação pode ser vista na figura abaixo. Para fazer isso na ferramenta JUDE, selecione um relacionamento, clique na ponta da seta, arraste e solte sobre a ponta da outra seta. Figura 5 outra forma de notação de duas generalizações 2

4- Validar os relacionamentos Ao contrário do relacionamento de associação, a generalização não precisa de um nome, pois implicitamente o relacionamento deve ser lido como é um. Isso inclusive serve para conferir se o já o relacionamento está válido ou se o nome da classe generalista foi escolhido corretamente. Assim, as seguintes perguntas devem ter uma resposta afirmativa para que nosso relacionamento seja válido: Gerente é um funcionário? - Resposta: SIm Secretária é um funcionário? - Resposta: Sim 5- Definir superclasse como abstrata (se for o caso) Muitas vezes definimos uma classe que não representa verdadeiramente algo do mundo real que precise ser instanciado (usado em programas). É o caso da classe Funcionário criada neste exemplo. Na prática, objetos do tipo Funcionario nunca serão usados, pois instanciaremos apenas objetos a partir de Gerente e Secretaria. Funcionário é apenas uma classe que surgiu da necessidade de uma generalização. Classes assim são chamadas de abstratas. Na UML, para indicar que uma classe é abstrata, seu nome deve ficar em itálico. Para fazer isso no JUDE, selecione a classe e mude seu atributo Abstract para true. Agregação Figura 6 - classe abstrata É um tipo especial de associação onde tenta-se demonstrar que as informações de um objeto precisam ser complementadas pelas informações contidas em um ou mais objetos de outra classe, demonstrando um relacionamento todo-parte entre elas. É interessante ressaltar que para ser agregação, as classes podem viver independentemente. Vejamos um exemplo onde temos as classes Time e Jogador. Um time pode ser composto de nenhum ou vários jogadores. Um jogador pode estar contido no máximo em um time. Figura 7 - classes Time e Jogador Poderíamos apenas fazer uma associação entre Time e Jogador e extrair as cardinalidades, mas queremos dar um enfoque que as informações do time são completadas pelos seus jogadores, ou seja, que os jogadores fazem parte do time. Entretanto, se eu excluir o time, os jogadores continuam existindo. Assim, utilizamos a notação da agregação que é uma reta com um losango na ponta ligada à classe do lado todo (que contém): Figura 8 - agregação entre Time e Jogador 3

Composição A composição é uma variação da agregação onde se tenta representar um vínculo mais forte entre os objetos todo-parte ao ponto de um não existir sem o outro. Vejamos o exemplo entre as classes Revista e Edição. Uma revista deve ser composta de no mínimo um artigo, mas pode conter vários. Um artigo obrigatoriamente deve pertencer a uma e somente uma revista. Figura 9 - classes Revista e Artigo Poderíamos fazer apenas uma associação entre Revista e Artigo, mas queremos demonstrar que revista e artigos formam um único conjunto e que um não existe sem o outro. O símbolo da composição diferencia-se graficamente da agregação por utilizar um losango preenchido que, da mesma forma, deve ficar do lado do objeto -todo: Figura 10 composição entre Revista e Artigo Uma revista pode ter vários artigos, mas se a revista for excluída, teremos que excluir também os artigos. Não faz sentido ter um objeto artigo que ele esteja vinculado a uma revista. Sua única razão de existir é "compôr" a revista. Agregação x Composição x Associação Imagine um cenário onde temos duas classes "A" e "B" e estamos na dúvida de qual relacionamento colocar entre elas. Inicie fazendo a seguinte pergunta: 1 - Se A for excluído, terei que excluir também o B? Sim = utilize relacionamento de composição Não = pode ser agregação ou simplesmente uma associação. Vá para a pergunta 2 2 B tem alguma utilidade sozinha? Sim = utilize uma associação comum Não = utilize relacionamento de agregação Referências GUEDES, Gilleanes. UML, uma abordagem prática. Ed. Novatec: São Paulo, 2004. NOGUEIRA, Admilson. UML - Unified Modeling Language - Generalização, agregação, composição e dependência. Disponível na internet em http://www.linhadecodigo.com.br/artigo.aspx?id=943. Acesso em 21/03/2009 4

Exercícios Propostos 1. Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações 2. Usando seus conhecimentos de generalização/especialização, analise as três classes abaixo e proponha um novo modelo que elimine as duplicações 3. Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações 4. Em um sistema foram identificadas duas classes: Pessoa e Coração. Uma pessoa deve ter um e somente um coração e um coração só pode pertencer a uma pessoa. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 5. Em um sistema para uma concessionária foram identificadas as classes Carro e Autopeça. Um carro pode possuir uma ou várias autopeças. Uma autopeça serve para apenas um carro. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 6. Em um sistema de vendas foram identificadas as classes Pedido e ItemPedido. Um pedido deve conter no mínimo um item ou vários. Um item deve obrigatoriamente pertencer a um único pedido. Com base no enunciado acima, faça a representação das 5

duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 7. Em um sistema para uma editora foram identificadas as classes Livro, Capítulo e Página. Um livro é composto nenhum ou vários capítulos. Um capítulo deve obrigatoriamente pertencer a um único livro. Um capítulo contém uma (no mínimo) ou mais páginas. Uma página não necessariamente precisa pertencer a um capítulo, mas se pertencer, pode ser a mais de um. Com base no enunciado acima, faça a representação das duas classes (atributos e métodos não são necessários) e seu relacionamento (com nome e cardinalidades). 8. Faça a representação do relacionamento entre as classes País, Estado e Cidade. Um pais é composto de vários estados (pelo menos um estado é requerido). Estados podem ter nenhuma ou várias cidades. Uma cidade é obrigada a pertencer a um, e somente um estado. Um estado obrigatoriamente tem que pertencer a um país 6