670 likes | 804 Views
Associação Educacional Leonardo da Vinci . AOO - Análise Orientado a Objetos. Professor: Marcio Gonçalves. Agenda. Apresentação Cenário Paradigmas da Orientação a Objetos Princípios Básicos. Apresentação da disciplina . Formação Experiência profissional Atividades desenvolvidas
E N D
Associação Educacional Leonardo da Vinci AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves
Agenda • Apresentação • Cenário • Paradigmas da Orientação a Objetos • Princípios Básicos
Apresentação da disciplina • Formação • Experiência profissional • Atividades desenvolvidas • Forma de avaliação • (2 provas e 1 trabalho)
Cenário • Surgimento da Enga. de Sofware (60) para resolver os problemas gerados pela crise do software. • As várias técnicas desenvolvidas nos anos 70 e 80 não resolveram o problema de produtividade e qualidade nos softwares.
Cenário • Lições da década de 80. • Requisitos do usuário são mais importantes • Funções e dados tem grande importância, porém não podem estar separados
Cenário • Realidade atual • Sistemas de alta complexidade • Ferramentas de desenvolvimento drasticamente diferentes de 20 anos atrás. • Sistemas maiores, mais complexos e mais voláteis. • A mudança para alcançar a qualidade e produtividade está na reutilização.
Paradigmas da O. Objetos • O que são objetos • Objetos computacionais • Os diferentes tipos de objetos • Análise e projeto orientado a objetos?
O que são Objetos • Podemos entender um objeto como uma “coisa” física: uma pedra, um melão, um carro. • Contudo um objeto pode também ser algo que não existe em forma física: uma equação, conta corrente.
Objetos Computacionais • Objetos que se encontram dentro do sistemas de computador. • São abstrações do mundo real. • Objetos computacionais são estruturas de programas que contém as informações e os comportamentos que representam um objeto dentro do sistema.
Análise e Programação OO. • Análise orientada a objetos • Consiste em definir quais objetos fazem parte de um sistema e a maneira como se comportam. • Programação orientada a objetos • Consiste em utilizar objetos computacionais para implementar as funcionalidades de um sistema.
Por que Orientação a Objetos? • Aumento de Produtividade • Ganho de Qualidade • Ganho de Confiabilidade • Conhecimento adquirido podendo ser compartilhado • Manutenibilidade • Custos
Conceitos Básicos • Abstração • Encapsulamento • Objetos • Classes • Persistência • Herança
Abstração • “Ato de separar um ou mais elementos de uma totalidade complexa (coisa, representação, fato), os quais só mentalmente podem ser separados” • Ignorar aspectos não relevantes • É a capacidade de focalizar o essencial e ignorar detalhes acidentais não relacionados com o objetivo estabelecido.
Encapsulamento • Ocultar aspectos não relevantes • Modo de utilização dos dados e métodos é diferente da prog. tradicional. • Os dados e processos em uma única entidade. • Um dos grande trunfo da POO em relação a prog. tradicional. • Permite alterações sem afetar demais partes do sistema.
Encapsulamento • Benefícios • Modularidade - (O código é independente de outros objetos) • Informações Privadas (um objeto tem uma interface pública que outros objetos podem utilizar. As informações do objeto são privadas) [Information Hiding]
Objetos • São elementos reais ou abstratos (de pensamento) que sofrem ou executam ações. • Um objeto é qualquer indivíduo, lugar, evento, coisa, tela, relatório ou conceito que seja aplicável ao sistema. • Objeto é uma entidade capaz de reter um estado (informação) e que oferece uma séria de operações (comportamentos) ou para examinar ou para afetar este estado.
Como é um objeto? • Apresenta características (Estado). • Executa e sofre ações (Comportamento). • Podem ser classificados por categorias ou classes. • Interagem e agrupam-se formando sistemas (que podem ser considerados como objetos).
Objetos • Exemplos: • Coisas: Cadeira, Mesa, Telefone, Televisão, ... • Funções: Diretor, Funcionário, Professor, Cliente,... • Eventos: uma Festa, um Congresso, uma Aula, ... • Lugares: uma Cidade, uma Sala, um País, .... • Processos: uma Operação, um Procedimento, ...
Atributos • É o conjunto de características que descrevem os objetos • Atributos de uma pessoa: cor dos olhos, altura, peso, idade, sexo… • Atributos de uma conta corrente: correntista, saldo, data de abertura… • Somente mudam através de agentes interno ou externos.
Atributos • Os valores das propriedades de um objeto definem seuEstado.
Exercícios • Identificar pelo menos 10 objetos que pertencem ao domínio de problema: “Sala de Aula”
Métodos ou Serviços (Ações) • São as tarefas que o objeto pode realizar • As ações do objeto podem interagir com outros objetos • Ou podem ser ações internas • Ações de um cachorro: latir, babar, correr em círculos, morder…
Exercícios • Identificar os métodos existentes no objeto Professor • Graficar/Descrever o diagrama de serviços para o método FazerChamada do objeto Professor
Classes • São os modelos a partir dos quais os objetos são criados (Ex: Planta Estrutural) • Os modelos são agrupados em classes ou categorias por similaridade de finalidade • As categorias estruturam-se hieraquicamente. Ex.: Pessoas–Clientes-Funcionarios, Animais-Aves-Canários
Classes • Duas categorias de bichos: “Cães” e “Gatos”
Hierarquia de Classes Características Comuns Mamífero Felino Primata Ser Humano Chimpanzé
Herança • Tudo aquilo que se herda; • Aquilo que se transmite por hereditariedade (Ex: Características genéticas dos pais). Mamar Possuir Pêlos Mamífero Herança Caracteristicas comuns Possuir Mãos e Pés É Inteligente Primata Andar ereto Filosofar Ser Humano
Herança • Classes prontas podem ser usadas para escrever novos objetos (SuperClasse e SubClasses, Ancestrais e Descendentes) • O programador só escreve o que muda • Alterações nos ancestrais se propagam aos descendentes • Menos bugs, mais produtividade
Instanciação • É quando a classe produz um objeto, como se ela fosse um modelo para a criação de objetos. • Objetos nada mais são do que classes instanciadas. • É o que dá existência ao objeto. • Cada objeto é uma instância de sua classe
Instanciação • Fazendo uma analogia com a programação procedural. • “A estrutura de uma tabela pode ser comparada com uma classe e cada novo registro seria um novo objeto instanciado.” • Obs: Isto só vale para efeitos de comparação, pois classe também possuem a definição dos métodos.
Classes Puras ou Abstratas • São aquelas que nunca serão instanciadas diretamente. • Servem de apoio para o processo de estruturação. • Exemplo:
Exercícios • Identificar os objetos da Sala de Aula • Agrupar os objetos em classe conforme suas caracteristicas
Tipos de Estruturas • Visualizar Domínio e Complexidade do problema em estudo. • Tipos: - Generalização-Especialização - Todo-Parte
Tipos de Estruturas Generalização-Especialização
Tipos de Estruturas Generalização-Especialização
Tipos de Estruturas Generalização-Especialização
Tipos de Estruturas Todo-Parte
Tipos de Estruturas Todo-Parte
Tipos de Estruturas Todo-Parte
Exercícios • Identificar as possíveis estruturas existentes no exercício da Sala de Aula.