modelagem orientada a objeto - dcce.ibilce.unesp.br · slide 2 conceitos de orientação a objetos...

59
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Slide 1 Modelagem Orientada a Objeto Engenharia de Software 2o. Semestre de 2006

Upload: phungkhanh

Post on 08-Nov-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

UNIVERSIDADE ESTADUAL PAULISTAINSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Slide 1

Modelagem Orientada a Objeto

Engenharia de Software

2o. Semestre de 2006

Slide 2

Conceitos de Orientação a Objetos

Modelagem Estruturada enfoque nas funcionalidades do sistema, funções diferentes atuam sobre os dados de forma desordenada.Não existe uma junção lógica entre dados e funções.

Modelagem OOPermite abstrair de uma forma mais real o “mundo” a ser modelado.Acoplamento entre dados e funcionalidadeUtiliza abstrações do mundo real chamadas de OBJETOS.

Slide 3

Conceitos de Orientação a ObjetosObjeto

Informalmente, um objeto representa uma entidade de natureza física (uma pessoa) ou conceitual (uma reserva).É um conceito, abstração ou alguma coisa com limites bem definidos e significado bem conhecido dentro do escopo de uma aplicação.

Slide 4

Conceitos de Orientação a Objetos

Objeto Possuem características ou propriedades: ATRIBUTOS.Os atributos identificam o estado de um objeto.Um atributo é uma abstração do tipo de dados ou estado que os objetos da classe possuem.

Slide 5

Conceitos de Orientação a Objetos

Representação do objeto

Atributos do Objeto:Nome: Severino da SilvaEndereço: Rua das Camélias, 236Sexo: masculinoData de nascimento: 26/07/1945Altura: 1,89 mPeso: 85 kgEstado civil: solteiroCor dos olhos: azuis

Slide 6

Conceitos de Orientação a Objetos

ObjetosPossuem comportamentos que modificam seu estado ou prestam serviços a outros objetos: OPERAÇÕESAs operações são implementadas pelos MÉTODOSOs métodos de uma classe manipulam somente as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de outra classe.

Uma classe tem conhecimento dos dados de outra pela solicitação de serviços: MENSAGEM

Slide 7

Conceitos de Orientação a Objetos

Exemplo de Atributos e Operações

Atributos:Nome: Severino da SilvaCargo: operador de máquinasSalário: R$ 540,00Data de admissão: 26/01/1999...Operações:Reajustar_SalárioObter salário líquidoObter tempo de trabalho ...

Slide 8

Conceitos de Orientação a Objetos

ObjetoA modelagem de um objeto é feita de acordo com o contexto do problema.Ex1: objeto Pessoa no papel de um Acadêmico possui atributos diferentes do objeto Pessoa no papel de um Médico.Ex2: um retângulo como objeto de um programa gráfico possui mais atributos que um retângulo como objeto desenhado por uma criança.

Slide 9

Conceitos de Orientação a Objetos

ClassesÉ a representação de um conjunto de objetos que compartilham a mesma estrutura de atributos, operações e relacionamentos, dentro de um mesmo contexto.Uma classe especifica a estrutura de um objeto sem informar quais serão seus valores.Um objeto corresponde à ocorrência (INSTÂNCIA) de uma classe num determinado momento.Uma classe pode ter qualquer número de atributos e operações.

Slide 10

Conceitos de Orientação a ObjetosExemplo de uma instância (objeto) e sua classe

Slide 11

Conceitos de Orientação a Objetos

Descobrindo classesPela identificação dos substantivos do sistema a ser modeladoOs substantivos podem ser:

ClassesObjetosAtributosDescrição do estado de um objetoEntidade externas...

Slide 12

Conceitos de Orientação a Objetos

Características que diferenciam OO

ENCAPSULAMENTOHERANÇAPOLIMORFISMO

Slide 13

Conceitos de Orientação a Objetos

EncapsulamentoPrincipal característica da OO.A utilização de um sistema OO deve depender da interface e não de sua implementação interna.O encapsulamento protege os atributos e algumas operações da classe que só podem ser acessados e atualizados pelas operações do objeto.É a propriedade de preservar informações e operações de cunho privado.

Slide 14

Conceitos de Orientação a ObjetosRepresentação de Encapsulamento

Slide 15

Conceitos de Orientação a Objetos

HerançaÉ um dos diferenciadores chave entre sistemas convencionais e OO.Permite que uma subclasse (classe mais específica) herde todos os atributos e operações associados com sua superclasse (classe mais genérica).Possibilita o reuso sem esforço (modificações na superclasse são propagadas nas subclasses relacionadas).Novos atributos e operações podem ser adicionados a subclasse.

Slide 16

Conceitos de Orientação a ObjetosExemplo de Herança

Slide 17

Conceitos de Orientação a Objetos

PolimorfismoReduz o esforço para estender um sistema OO.Permite que uma operação (com a mesma assinatura) seja implementada nas subclasses de forma diferente que na superclasse.

Slide 18

Conceitos de Orientação a ObjetosExemplo de Polimorfismo

Slide 19

Exercícios1. Identifique classes e atributos para os contextos:

1. Numa turma de um curso de graduação temos disciplinas ministradas em salas diferentes.

2. Está passando na rede de cinemas do shopping o filme “Garfield2”, todos os dias, em três sessões por dia. Aos sábados e domingos existem em algumas sessões duas salas de exibição.

3. 3. A Transportadora “Sem Fronteiras” monitora seus caminhões e motoristas através de um controlador embutido. Através dele é possível saber a localização de cada veículo da companhia.

2. Identifique atributos para as classes a seguir:1. Conta Corrente2. Caderno vendido em papelaria3. Arquivo de computador

Slide 20

Modelagem Orientada a ObjetosPassos genéricos para conduzir análise OO:

1. Definir os requisitos do cliente para o sistema2. Identificar cenários ou casos de uso3. Selecionar classes e objetos usando os requisitos básicos

como diretriz4. Identificar atributos e operações para cada objeto do sistema5. Definir estruturas e hierarquias que organizem as classes6. Construir um modelo objeto-relacionamento7. Construir um modelo de comportamento de objeto8. Revisar o modelo de análise OO com base nos casos de uso

ou cenários.

Slide 21

Modelagem OOUML – Visões (perspectivas) para descrição

de sistemas:

Visão de InteraçãoDiagrama de seqüênciaDiagrama de Colaboração

Visão da Arquitetura (Implementação)

Diagrama de ComponentesDiagrama de ImplantaçãoDiagrama de Pacotes

Visão ExternaDiagrama de casos de Uso

Visão Estrutural (Estática)Diagrama de Classes

Visão Comportamental (Dinâmica)

Diagrama de EstadoDiagrama de Atividade

Slide 22

Modelagem OO – Casos de UsoDiagrama de Caso de uso

Especificam a visão externa do sistema.Descrevem como o sistema é percebido por seus usuários.Descrevem as interações entre os usuários e o sistema.Descreve uma seqüência de ações que representam um cenário principal (perfeito) e cenários alternativos demonstrando o comportamento de um sistemaObjetivo da modelagem de casos de uso:

Separar as funcionalidades do sistema, agrupando um conjunto de ações que tenham um objetivo bem definido

Slide 23

Modelagem OO – Casos de UsoDiagrama de Caso de Uso: Notação

Slide 24

Modelagem OO – Casos de UsoAtor

Representa um conjunto coerente de papéis que os usuários de casos de uso desempenham quando interagem com esses casos de usoSer humano, dispositivo de hardware, ou outro sistema.Os atores não são parte do sistema: representam interações individuais com o sistema de maneira específica.Os atores se conectam aos casos de uso somente por associação

A Associação indica que o ator e o caso de uso se comunicam entre si, cada um com possibilidade de enviar e receber mensagens.

Slide 25

Modelagem OO – Casos de UsoCaso de Uso

Descreve o que um sistema faz mas não especifica como isso é feito.Deve ter um nome que o distingue dos demais casos de uso.O comportamento de um caso de uso é especificado através de um cenário (descrição do caso de uso).

Slide 26

Modelagem OO – Casos de UsoExemplo de descrição de um Caso de Uso:

Slide 27

Modelagem OO – Casos de UsoExemplo de descrição de um Caso de Uso (cont.):

Slide 28

ExercícioDesenvolva novos casos de uso e cenários para um sistema de caixa eletrônico (ATM), considerando as operações que um cliente pode realizar:

Realizar saque;Realizar depósito;Emitir Extrato;Etc ...

Modelagem OO – Casos de Uso

Slide 29

Dicas para a modelagem dos Casos de Uso:1. Pode-se iniciar identificando uma lista de atores ou uma

lista de casos de uso (a partir de uma lista pode-se chegar na outra).

2. Dado um caso de uso, identificamos seus atores a partir de questões como: “Quais atores são responsáveis por este caso de uso?”

3. Dado um ator, identificamos sua interação com o sistema: “Quais são os serviços que o sistema deve oferecer a esse ator?”

4. Necessário também identificar os papéis dos atores (dão origem a novos atores).

5. Identificar cenários comuns a vários casos de uso. (fatoração dos cenários comuns em c.de uso separados)

Slide 30

Exercício1. Com base nos relacionamentos possíveis para o

Diagrama de Casos de Uso, elaborar o diagrama de casos de uso para o Sistema de Controle de Caixa Eletrônico:

Considere que é possível: sacar dinheiro, emitir extrato e saldo, efetuar e agendar pagamentos, alterar a senha.

Slide 31

Modelagem OO – Diagrama de classe

ClassesUma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica.Uma classe especifica a estrutura de um objeto sem informar quais serão seus valores.Um objeto corresponde à ocorrência (INSTÂNCIA) de uma classe num determinado momento.Uma classe pode ter qualquer número de atributos e operações ou nenhum.

Slide 32

Modelagem OO – Diagrama de classeDescrevem a parte estática do softwareElementos:

Classes (objetos)AtributosOperações

RelacionamentosAssociaçãoHerançaComposição

Modelagem OO – Diagrama de classe

Slide 33

Passos para a elaboração do diagrama de classes:1. Identificação de classes2. Identificação de relacionamentos3. Definição de atributos4. Definição de operações

Modelagem OO – Diagrama de classe

Slide 34

Identificação de classes:O domínio do problema

Um determinado domínio de problema inclui informações relativas ao mundo real.

Os requisitos da aplicaçãoConsiderados os objetivos da aplicação a ser construída,apenas um subconjunto dessas informações necessita ser representado.

Slide 35

Modelagem OO – Diagrama de classe

Slide 36

Modelagem OO – Diagrama de classeIdentificação de Classe: o que procurar?

ObjetosEx. Pessoas, clientes, turmas, cursos, produtos, etc.

AgentesEx: Clientes, atendentes, etc.

Unidades organizacionaisEx: Loja, Depósito, local para entrega, etc.

EventoReclamação do cliente, pedido pago, etc.

“Quaisquer conceitos que serão armazenados e “lembrados” pelo sistema.”

Slide 37

Modelagem OO – Diagrama de classeIdentificação de Classe: o que considerar?

Armazenamento necessárioO sistema precisará armazenar informações sobre os objetos destaclasse?

Mais de um objeto em uma classeÉ possível identificar facilmente os objetos desta classe?Evite classes que representem um só objeto.

Atributos sempre aplicáveisTodos os atributos identificados para a classe são aplicáveis a todas as suas instâncias?

Slide 38

Modelagem OO – Diagrama de classeNotação de Classe:

Slide 39

Modelagem OO – Diagrama de classe

Nome das Classes:Nome da classe deve descrever claramente o conceito representadoTipicamente, aparece como maiúsculo o primeiro caractere de cada palavra existente do nome da classe. Ex: Cliente, TemperaturaSensor, OrdemServiço ...Uso de termos de conhecimento de todosEvitar abreviaturasEstabelecimento de padrões para nomeação de classesEvitar ambigüidades (dupla interpretação)

Slide 40

Modelagem OO – Diagrama de classe

Atributos das ClassesObjetivo: identificar e formalizar a definição dos atributos de cada classe presente no diagrama de classes.

O que considerar?Necessidade do sistema em armazenar as características das instâncias das classe

Slide 41

Modelagem OO – Diagrama de classe

Representação Gráfica dos atributos:

Slide 42

Modelagem OO – Diagrama de classe

Notação de atributos:

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Slide 43

Modelagem OO – Diagrama de classe

Definição de OperaçõesObjetivo: identificar e formalizar a definição das operações de cada classe presente no diagrama de classes.

O que considerar?Necessidade de cada classe em realizar operações que atendam às funcionalidades do sistema.

Slide 44

Modelagem OO – Diagrama de classe

Representação Gráfica de operações:

Slide 45

Modelagem OO – Diagrama de classe

Notação de operações:

Visibilidade Nome da operação (Parâmetros): Expressão de Tipo de Retorno{Propriedade}

Slide 46

Modelagem OO – Diagrama de classe

Identificação de RelacionamentosObjetivo: identificar associações, agregações e relacionamentos de generalização/especialização(herança) entre classes.

O que considerar?Necessidade do sistema em “lembrar”relacionamentos entre as classes.

O que procurar?Todos os relacionamentos entre instâncias de classes que sejam relevantes para o sistema.

Slide 47

Modelagem OO – Diagrama de classeRelacionamentos permitidos entre classes:

AssociaçãoAgregaçãoGeneralizaçãoDependência

Slide 48

Modelagem OO – Diagrama de classeAssociação:

Relacionamentos simples entre instâncias de classesDescrevem algum vínculo, relacionamento ou interdependência entre instâncias de classe.Permite navegar do objeto de uma classe até o objeto de outra classe e vice-versa.É permitido que a associação ligue uma classe a ela mesma: representa que a partir de um objeto da classe é possível criar vínculo com outros objetos da mesma classe.

Slide 49

Modelagem OO – Diagrama de classeAssociação: Representação - Multiplicidade

Slide 50

Modelagem OO – Diagrama de classeAssociação: Representação - Nomes

Slide 51

Modelagem OO – Diagrama de classeAgregação

Relacionamento “todo/parte” no qual uma classe representa um item maior (todo) formado por itens menores (parte)Relacionamentos que representam:

montagens e suas partesEx. Um carro e suas partes (motor, chassi, rodas …)

recipientes e seus conteúdosEx. Vôo e passageiros

conjuntos e seus membrosEx. Turma e alunos

Slide 52

Modelagem OO – Diagrama de classeAgregação: Notação

Slide 53

Modelagem OO – Diagrama de classeGeneralizaçãoO que procurar?

Diferenças e similaridades entre classes.Várias classes com características comuns.

Relacionamento entre itens gerais (classe mãe) e tipos mais específicos (classes filhas) desses itens.

classes filhas herdam todos os atributos e operações associados com sua classe mãe.

Slide 54

Modelagem OO – Diagrama de classeGeneralização: Notação

Slide 55

Modelagem OO – Diagrama de classeA generalização / especialização ocorre quando atributos são aplicáveis apenas a subconjuntos de suas instâncias.

Funcionário_MariaNome = ‘Maria’Nasc = ‘16/02/70’Salário = 2500Projeto = ‘’

Funcionário_JoãoNome = ‘João’Nasc = ‘10/05/65’Salário = 3000Projeto = ‘Call Center’

Slide 56

Modelagem OO – Diagrama de classeNome/Semântica do RelacionamentoMultiplicidade

1 somente um* muitos (zero ou mais)0..* muitos (zero ou mais)0..1 opcional (zero ou um)1..* maior ou igual a umM..N seqüência específica

Ex. 1..27 (de um a 27), 23..* (acima de 23)

PapéisNavegabilidadeRestrições

Slide 57

Modelagem OO – Diagrama de classe

Slide 58

Exercícios1. Defina os relacionamentos para as classes abaixo,

considerando um sistema de informações para uma Universidade

Classes: Instituição, Departamento, Aluno, Curso, Professor

2. Defina atributos e operações para o exemplo.3. Desenvolva o Diagrama de Classes para o Sistema

de Caixa Eletrônico (ATM).Passos:1. Com base nos casos de usos, faça uma lista das

possíveis classes.2. Defina relacionamentos, atributos e operações

Slide 59

aula07_ModelosSistemaAtual.ppt