A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ceça Moraes.  Programação Orientada a Objetos :  os problemas de programação são pensados em termos de objetos  Em vez de funções e rotinas  Problema.

Apresentações semelhantes


Apresentação em tema: "Ceça Moraes.  Programação Orientada a Objetos :  os problemas de programação são pensados em termos de objetos  Em vez de funções e rotinas  Problema."— Transcrição da apresentação:

1 Ceça Moraes

2  Programação Orientada a Objetos :  os problemas de programação são pensados em termos de objetos  Em vez de funções e rotinas  Problema = desenvolver um sistema para locadoras  Dividir o problema em objetos  Clientes,DVDs,Filmes,Locação,...

3  "Um objeto é um termo que usamos para representar uma entidade do mundo real "  Fazemos isto através de um exercício de abstração...

4  Podemos descrever o cachorro Bilú em termos de seus atributos físicos:  é pequeno  sua cor principal é castanha  olhos pretos  orelhas pequenas e caídas,  rabo pequeno

5  Podemos também descrever algumas ações que ele faz (temos aqui os métodos):  balança o rabo  foge e se deita quando leva reclamação  late quando ouve um barulho ou vê um cão ou gato  atende quando o chamamos pelo seu nome

6  Representação do cachorro Bilú:  Propriedades : [Cor do corpo : castanha; cor dos olhos : pretos; altura: 15 cm; comprimento: 38 cm largura : 24 cm]  Métodos : [balançar o rabo, latir, correr, deitar, sentar ]

7  Uma classe representa um conjunto de objetos que possuem comportamentos e características comuns  Têm os mesmos atributos, operações, relacionamentos e semântica  Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programação

8  Ao definir uma classe é necessário definir :  Propriedades ▪Informações específicas relacionadas a uma classe de objeto ▪ Características dos objetos da classe ▪ Exemplo: Cor, altura, tamanho, largura,...  Métodos : ▪ São ações que os objetos de uma classe podem realizar ▪ Exemplo : Latir, correr, sentar, comer, etc.

9  Ilustram atributos e operações de uma classe e as restrições como que os objetos podem ser conectados ;  Descrevem também os tipos de objetos no sistema e os relacionamentos entre estes objetos

10  Atributos  visibilidade nome: tipo  + altura: float  Métodos  visibilidade nome(args): tipo retorno  + latir()  + media(n1,n2): float Atributos Métodos

11  Visibilidade dos atributos e métodos em uma classe :  + (público) ▪ visível em qualquer classe  # (protegido) ▪ qualquer descendente pode usar  – (privado) ▪ visível somente dentro da classe

12  Os relacionamentos determinam conexões entre os objetos das classes  Fornecem um caminho para a comunicação entre os objetos  Tipos de Relacionamentos:  Associações : agregação e composição  Generalização (herança)  Dependências

13  Os relacionamentos possuem:  Nome: descrição dada ao relacionamento (faz, tem, possui,...)  Sentido de leitura  Navegabilidade: indicada por uma seta no fim do relacionamento  Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7  Tipo: associação (agregação, composição), generalização e dependência  Papéis: desempenhados por classes em um relacionamento

14 PessoaEmpresa 1..* Tipo: associação multiplicidade * trabalha para empregado papéis empregador sentido de leitura E a navegabilidade? nome

15 © LES/PUC- Rio ▪ O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence EndereçoCliente reside 1 * navegabilidade

16  Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem  Não há conceito de posse  As associações podem ser:  unárias - quando a associação ocorre entre objetos de uma mesma classe  binárias - quando a associação ocorre entre dois objetos de classes distintas

17  Uma associação é uma conexão entre classes (linha sólida)

18  Indicadores de multiplicidade:  1Exatamente um  1..*Um ou mais  0..*Zero ou mais (muitos)  *Zero ou mais (muitos)  0..1No máximo um (zero ou um)  m..nFaixa de valores (por exemplo: 4..7)

19

20 "Qualquer empregado é chefiado por no máximo um chefe."UML EmpregadoChefe  Chefia * 0..1 empregados chefe

21

22

23  Navegação  por definição, a navegação entre classes associadas é bidirecional  por conveniência, a navegação pode ser restringida a uma única direção

24

25  Um Estudante pode ser:  Um aluno de uma Disciplina e  Um jogador da Equipe de Futebol  Cada Disciplina deve ser cursada por no mínimo 1 aluno  Um Aluno pode cursar de 0 até 8 disciplinas

26  Ocorre quando a associação tem propriedades

27  É um tipo especial de associação  Utilizada para indicar “todo-parte”  um objeto “parte” pode fazer parte de vários objetos “todo”  Mostra como classes são compostas de outras classes

28

29 "Uma empresa possui vários veículos." UML EmpresaVeículo * frota 0..1

30

31  Tipo especial de agregação  é um relacionamento de contenção  Um objeto (container) CONTÉM outros objetos (elementos)  Elementos que estão contidos dentro de outro objeto dependem dele para existir

32  Agregação:  estabelece uma relação todo-parte entre classes, sendo que a parte pode existir sem o todo.  Ex: Carro e Roda. Uma Roda é parte de um Carro, porém a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro.  Composição:  estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo.  Ex: Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruídos junto, eles não tem sentido se não houver um Pedido.

33

34 Língua natural "Um humano é composto por uma cabeça e dois braços."UML Humano Braço Cabeça 1 2

35  Uma classe pode ser definida a partir de outra já existente  Abstrai classes genéricas ( superclasse ), a partir de classes com propriedades (atributos e operações) semelhantes

36  Modelar aspectos semelhantes entre classes, preservando suas diferenças  As subclasses herdam todas as propriedades de sua superclasse  E possuem as suas próprias

37  Relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) “é um” “é um tipo de” superclasse subclasses Veículo TerrestreAéreo

38 Forma RetânguloCírculoFormaComposta uma Forma pode ser um Círculo, um Retângulo ou uma FormaComposta

39

40  Identificar classes com propriedades semelhantes  Definir uma nova classe com as propriedades comuns  As classes originais tornam-se subclasses da nova classe e herdam as propriedades desta  Os relacionamentos em comum passam para a superclasse e os demais continuam nas subclasses

41  Definir uma ou mais subclasses a partir de uma classe existente  Adicionar propriedades e relacionamentos específicas de cada nova subclasse  Relacionamentos comuns a todas as subclasses são ligados à superclasse

42

43

44 A Universidade XYZ deseja informatizar seu sistema de matrículas:  A universidade oferece vários cursos.  O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre.  Várias disciplinas são oferecidas em um curso.  Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10.  Estudantes podem se matricular em 4 disciplinas.  Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado.  Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas.  Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas.  Todos os usuários do sistema devem ser validados.

45 Diagrama de Casos de Uso

46 Descrição Resumida do Caso de Uso “Matricular em Disciplina”  Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais.  O sistema verifica se a credencial é válida.  O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas.  O estudante preenche um formulário eletrônico de matrícula e o submete para análise de consistência.  O sistema analisa as informações contidas no formulário.  Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais.  Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.

47 ProfessorCoordenadorEstudante TurmaUniversidadeDisciplina FormularioMatricula Curso AnalisadorMatricula SistemaRegistroAcademicoListaAlunos Diagrama de Classes: identificando as classes

48  Exemplos de possibilidades de relacionamentos entre as classes A e B:  A é parte física ou lógica de B  A está contido fisicamente ou logicamente em B  A é uma descrição de B  A é membro de B  A é subunidade organizacional de B  A usa ou gerencia B  A se comunica/interage com B  A está relacionado com uma transação B  A é possuído por B  A é um tipo de B Diagrama de Classes: identificando os relacionamentos

49  O formulário de matrícula é processado por um analisador de matrícula FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* Diagrama de Classes: identificando os relacionamentos

50  O analisador de matrícula gerencia a disciplina Disciplina FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* 1 Diagrama de Classes: identificando os relacionamentos

51 Professor Coordenador EstudanteTurma Disciplina FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia * * Diagrama de Classes

52  Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema.  Cada turma oferecida possui um código, uma sala e um horário. Turma código sala horário Diagrama de Classes: identificando os atributos

53 Coordenador FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia * * Turma código sala horário Professor nome titulação Estudante nome matricula Disciplina nome numCréditos Diagrama de Classes

54  modelar antes os diagramas de seqüência Diagrama de Classes: identificando os métodos

55  E a navegabilidade? public class Turma { private String codigo; private String sala; private Estudante alunos[];... } Diagrama de Classes: public class Estudante { private String nome; private String matricula;... } OBS: Turma não aparece como atributo de Estudante! TurmaEstudante está-matriculado-em

56  Acrescentando generalizações:  Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral. Diagrama de Classes:

57


Carregar ppt "Ceça Moraes.  Programação Orientada a Objetos :  os problemas de programação são pensados em termos de objetos  Em vez de funções e rotinas  Problema."

Apresentações semelhantes


Anúncios Google