Post on 08-Nov-2018
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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