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

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

UNIBRATEC – Ensino Superior e Técnico em Informática 1 quarta-feira, 3 de fevereiro de 2010 Desenvolvimento de Sistemas Orientação Objeto Marcely Dias.

Apresentações semelhantes


Apresentação em tema: "UNIBRATEC – Ensino Superior e Técnico em Informática 1 quarta-feira, 3 de fevereiro de 2010 Desenvolvimento de Sistemas Orientação Objeto Marcely Dias."— Transcrição da apresentação:

1 UNIBRATEC – Ensino Superior e Técnico em Informática 1 quarta-feira, 3 de fevereiro de 2010 Desenvolvimento de Sistemas Orientação Objeto Marcely Dias

2 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Análise Orientada a Objeto – AOO - Cenário Mudança do enfoque das funções para os dados Preocupação em modelar de forma mais detalhada o sistema Análise mais próxima da realidade Facilidade na comunicação com o usuário Objetos como entidades do mundo real Objetos com estrutura e comportamento e que se comunicam Dificuldades em fazer alterações nas estruturas de dados nas abordagens tradicionais Se eu alterar a definição desse dado, quais programas serão afetados?

3 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Trabalha com conceitos já conhecidos - Modularidade, Abstração, Encapsulamento, etc Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida, ferramentas imaturas. Isso começa a se resolver. O mundo real é composto por objetos. Cada objeto tem propriedades e comportamentos. Então porquê não desenvolver programas que simulem no computador os objetos do mundo real com suas propriedades e comportamentos? AOO - Cenário

4 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Segundo Yourdon, Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens. Objetivo: Encontrar os objetos, organizá-los, descrever como interagem através de mensagens, definir operações de seus comportamentos. AOO

5 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Nos métodos tradicionais de análise, o comportamento do sistema e seus dados eram considerados separadamente. Com orientação a objetos, comportamento e dados são integrados, assim encapsulando detalhes internos de um objeto dos demais. Análise Estruturada e Essencial Orientada a Objetos Enfoque Conjunto de programas que executam processos Sobre dados Conjunto de entidades que têm características e Comportamentos próprios Foco Sistema Objeto AOO

6 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas

7 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Concentra-se nos aspectos essenciais do objeto sem detalhamento, focando em suas características e o que ele faz; Impede que um sistema se torne tão interdependente que uma pequena alteração ou implementação resulte em grandes alterações em sua estrutura; Combina estrutura (dados) e comportamento (funções) em um único objeto; Compartilha elementos estruturais e de comportamento com objetos de níveis inferiores; Enfatiza a estrutura de objetos ao invés da estrutura de procedimentos, ou seja, o que o objeto é e não como ele é utilizado. AOO

8 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Por que usar Orientação a Objetos? Atualmente temos ferramentas completas para sua utilização (integrando especificação e implementação) Praticamente todas as ferramentas novas de programação permitem suporte a sua utilização Qualidade melhor do software (se usada corretamente) Produtividade em função do reuso (não é imediata) Produção de códigos mais fáceis de serem entendido (se for bom) Adequada para a construção de sistemas distribuídos e para aplicações voltadas a Internet Permite acesso controlado às informações

9 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Dificuldade: Usuário não pensam seus problemas de forma orientada a objetos Requisitos não são orientados a objetos Requisitos de usuários são funcionais AOO

10 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Com o rápido crescimento surgiram várias metodologias principalmente ente Metodologias (processo OO e linguagem de modelagem própria). As mais significativas foram: OMT, Rumbaugh COAD/YOURDON, Coad-Yourdon, OOSE, Jacobson, SHLAER/MELLOR, Shlaer-Mellor, BOOCH, Grady Booch AOO

11 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Como os métodos Booch e o OMT estavam sendo largamente utilizados, seus autores juntaram forças para fazer um método unificado, com uma linguagem padrão. Posteriormente Jacobson juntou-se a equipe. Linguagem de modelagem proposta por Booch, Rumbaugh e Jacobson UML (Unified Modeling Language) Padronizada pela OMG (Object Management Group) Conta atualmente com o apoio de vários autores e várias empresas O RUP (Rational Unified Process) foi proposto como uma metodologia para desenvolvimento de sistemas, orientada a objetos, utilizando UML AOO

12 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Histórico da Análise Requisitos Casos de Uso Casos de uso são orientados a objeto ?! Não estamos fazendo análise orientada a objetos; Pode se utilizado em qualquer projeto como forma de documentar os requisitos; São fundamentais para as atividades clássicas de A / POO. Para Análise de Projetos só existe a abordagem OO ? OO. Estruturada; Essencial;

13 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Análise e Projeto Orientado a Objetos Qual o objetivo da Análise ? Encontrar e descrever os objetos ou conceitos no domínio do problema; Biblioteca: Livro, Biblioteca e Usuário. Qual o objetivo do Projeto ? Ênfase na definição dos objetos de software; Colaboração entre eles para a satisfação dos requisitos. Public class Livro { Private String titulo; Public Capitulo obterCapitulo(int) {...} }

14 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Um Exemplo Um jogo de dados no qual um jogador lança dois dados. Se o total for sete, ele vence; caso contrário, perde. A análise de requisitos pode incluir uma descrição dos processos do domínio relacionados; estes podem ser descritos como casos de uso. Passos: Definir casos de uso; Definir modelo de domínio; Definir diagramas de interação; Definir diagramas de classes de projeto.

15 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Caso de uso & Modelo de Domínio Versão simplificada do Caso de uso: Caso de uso: Jogar um Jogo de Dados: Um jogador pega e lança os dados. Se a soma do valor das faces dos dados totalizar sete, ele vence; caso contrário, perde. Modelo de domínio

16 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Definir diagrama de Interação Diagrama de interação: diagrama de seqüência

17 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Definir diagrama de Classes de Projeto Classes de Software

18 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Paradigma de Orientação a Objetos Paradigma é uma forma de pensar e perceber o mundo real e determina o que escolhemos como significativo e o que descartamos ao compreender ou descrever o que existe ou ocorre no mundo em torno de nós. A mudança de paradigma é uma oportunidade de encontrar novas interpretações para antigas questões, bem como, para rever soluções tidas como definitivas.

19 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Orientação a objetos constitui um novo paradigma computacional pois representa uma mudança na forma de pensar e conceber sistemas e programas de computador. A estratégia de O-O para modelagem de sistemas baseia-se na identificação dos objetos (que desempenham ou sofrem ações no domínio do problema) e dos padrões de cooperação e interação entre estes objetos. Paradigma de Orientação a Objetos

20 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Princípios Orientação a Objetos Abstração Encapsulamento Modularidade Herança Polimorfismo

21 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Abstração Permite ignorar os aspectos de um assunto não relevantes para o propósito Concentração nas características essenciais, gerenciando complexidade Construção de um modelo para representação de uma realidade Forte, Veloz,... Coração, Rim, Peso,...

22 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Abstração

23 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Abstração Pessoa Nome Sexo Data Nascimento solicitaPedido () efetuaPagamento () Abstração de Dados Abstração de Procedimentos

24 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Encapsulamento Restringir o escopo ou visibilidade da informação Obter melhor manutenibilidade e reutilização Ocultar detalhes de implementação É o processo de compartimentalização dos elementos de uma abstração Nenhuma parte de um sistema complexo deve depender de detalhes internos de qualquer outra parte Máquina de Refrigerante em lata Coloque uma moeda Receba a Lata

25 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Modularidade Decomposição de um problema em pequenos pedaços, para gerenciar complexidade (Dividir para conquistar) Cada conceito independente deve ser representado por um módulo Construção de módulos desacoplados Módulos são dependentes uns dos outros, o que leva a uma relação de acoplamento

26 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Modularidade

27 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Herança Mecanismo para expressar a similaridade entre classes Representa generalização e especialização Permite representar membros comuns uma só vez; Especialização pode incluir novos métodos e atributos Pessoa ProfessorAluno

28 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Polimorfismo O conceito de polimorfismo está associado a herança; Redeclaração de métodos previamente herdados de uma classe; Os métodos herdados da super-classe são reimplementados na sub-classe

29 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Exemplos Suponha a seguinte classe escrita em Java:Java public abstract class OperacaoMatematica { public abstract double calcular(double x, double y); } Esta é uma classe abstrata que representa qualquer operação matemática. Podemos imaginar diversas operações que se encaixam na sua interface, como soma, subtração, multiplicação ou divisão, entre outras. Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

30 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica: public class Soma extends OperacaoMatematica { public double calcular(double x, double y) { return x+y; } public class Subtracao extends OperacaoMatematica { public double calcular(double x, double y) { return x-y; } Exemplos

31 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas O seguinte trecho de código demonstra o uso do polimorfismo: public class Contas { public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) { system.out.println("O resultado é: " + operacao.calcular(x, y)); } public static void main(String args[]) { //Primeiro calculamos uma soma Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado é: 10 Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado é: 0 } Note que, embora o método calcular tenha sido chamado duas vezes no interior de mostrarCalculo, o comportamento apresentado variou de acordo com a classe ao qual ele representava no momento. É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo embora esta definição deixe lacunas conceituais. Exemplos

32 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Conceitos Básicos de Orientação a Objetos Objeto e Classe Atributo Propriedades de um objeto Armazenam estados dos objetos Operação Modelam o comportamento das classes Serviços que os objetos oferecem a outros objetos Pacote e Subsistemas: Elementos de Agrupamento Relacionamento Associação (Simples, Agregação e Composição) e Generalização Classe Atributos Operação/ Métodos Estado Comportamento Relacionamento

33 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Objeto Identidade: Todo objeto é único e pode ser distinguido de outros objetos Estado: Determinado pelos dados contidos no objeto Comportamento: Definido pelos serviços/operações que ele oferece

34 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Classes Descrições de objetos com propriedades e comportamento comuns Abstração que enfatiza o que é relevante Objetos são instâncias de Classes

35 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Relacionamento Associação: Simples: Relação estrutural entre classes Agregação: Relacionamento todo-parte. O todo possui um nível de abstração maior que a parte Composição: Relação de posse mais forte. O todo é responsável pela criação da parte Exemplos: Dependente e Funcionário? Pedido e Item do pedido? Funcionário e Cartão de ponto?

36 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Relacionamento Generalização Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes Define uma hierarquia de abstrações Relacionamento é um tipo de Uma subclasse pode: Adicionar Atributos, operações e relacionamentos; Redefinir operações herdadas Tipos de Herança: Simples e Múltipla Classe herdando de apenas uma classe; Classe herdando de mais de uma classe;

37 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Testezinho Dia 10/08/2011 – 2º horário Assunto: Análise OO e Conceitos Orientação Objeto

38 quinta-feira, 24 de abril de APS – Análise e Projeto de Sistemas Profa. Marcely Dias Desenvolvimento de Sistemas Dúvidas ?


Carregar ppt "UNIBRATEC – Ensino Superior e Técnico em Informática 1 quarta-feira, 3 de fevereiro de 2010 Desenvolvimento de Sistemas Orientação Objeto Marcely Dias."

Apresentações semelhantes


Anúncios Google