940 likes | 1.17k Views
Orientação a Objetos e UML Parte I. Objetivos. Apresentar os conceitos fundamentais de modelagem e orientação a objetos; Apresentar os quatro diagramas principais da UML: Casos de Uso, Classes, Seqüência e Atividade;
E N D
Objetivos • Apresentar os conceitos fundamentais de modelagem e orientação a objetos; • Apresentar os quatro diagramas principais da UML: Casos de Uso, Classes, Seqüência e Atividade; • Estabelecer a ligação entre a modelagem e a programação de sistemas orientados a objetos.
Bibliografia • Modelagem de Objetos Através da UML, José Davi Furlan, Editora Makron Books, 2000, ISBN 8534609241; • UML Guia do Usuário, Grady Booch, James Rumbaugh, Ivar Jacobson, Editora Campus, 2000, ISBN 8535205624; • Mastering UML com Rational Rose 2002 – Bíblia, Boggs Wendy, Michael Boggs, Editora Alta Books Ltda, 2002; • UML Essencial: Um breve guia para a linguagem-padrão de modelagem de objetos, Martin Fowler e Kendal Scott, Ed. Bookman, 2000.
Referências na Internet • http://www.uml.org • http://www.uml-forum.com • http://www.rational.com • http://argouml.tigris.org/(Ferramenta CASE Argo) • http://www.gentleware.com(Ferramenta CASE Poseidon) • http://www.borland.com/together/index.html(Ferramenta CASE Together)
1. Conceitos Fundamentais Unidade de Aprendizado
1. Conceitos Fundamentais • Objetivos • Apresentar os conceitos envolvidos na Modelagem de Sistemas; • Explorar a importância e a necessidade de modelar sistemas. • Apresentar os conceitos fundamentais sobre Orientação a Objetos. • Conteúdo 1. Modelagem de Sistemas. 2. Orientação a Objetos.
1.1. Objetivo da Modelagem de Sistemas • A Atividade de Desenvolvimento de Sistemas • Objetivos da Empresa de Desenvolvimento de Software: • Produtos de Qualidade; • Atender as necessidades do cliente; • Preços competitivos. • Foco nos Clientes: • Centro da atenção no desenvolvimento; • Atender aos requisitos do usuário. • Viabilidade do Projeto: • Equilíbrio entre custos de desenvolvimento e benefícios para o cliente.
1.1. Objetivo da Modelagem de Sistemas • O Papel da Modelagem • Existem dois tipos de modelos: • Estrutura; • Comportamento; • Os modelos traduzem COMO as coisas serão construídas: • Relações entre as partes; • Funcionamento; • Disposição. • Os modelos traduzem o tamanho e a complexidade do sistema.
1.1. Objetivo da Modelagem de Sistemas • O Que é um Modelo? • Um modelo é uma simplificação da realidade. • Modelos são esquemas gráficos que representam o sistema. • Os modelos traduzem: • ESTRUTURA: • Organização de módulos; • Relacionamentos; • COMPORTAMENTO: • Dinâmica; • Inter-relacionamento; • Funcionalidade.
1.1. Objetivo da Modelagem de Sistemas • O Que é um Modelo? • Construímos modelos para: • Visualizar o sistema como ele é ou como desejamos que ele seja; • Dominar a complexidade e entender o sistema; • Delimitar o escopo de um problema; • Comunicação entre equipe; • Ajudar a planejar as soluções; • Guiar o desenvolvimento do sistema.
1.1. Objetivo da Modelagem de Sistemas • O Que é um Modelo? • Características dos Modelos: • Perspectivas diferentes; • Analogia com a realidade; • Complementaridade;
1.1. Objetivo da Modelagem de Sistemas • Modelagem Orientada a Objetos • Tradicional: • Foco do desenvolvimento nos processos; • Orientada a Objetos: • Foco do desenvolvimento nas entidades que participam dos processos. • Entidades do mundo real: • Pessoas - Funcionário, Vendedor, Professor, Aluno. • Lugares - Sala, Estoque, Estante, Prateleira. • Fatos - Conta-Corrente, Matrícula, Pedido de Compra, Apólice de Seguro. • Coisas - Livro, Caminhão, Fita VHS, Computador.
1.1. Objetivo da Modelagem de Sistemas • Modelagem Orientada a Objetos
1.1. Objetivo da Modelagem de Sistemas • Modelagem Orientada a Objetos - Benefícios • Benefícios Técnicos: • Reusabilidade; • Extensibilidade e manutenção; • Aumento da qualidade; • Benefícios Econômicos: • Apoio ao planejamento; • Reaproveitamento de esforços.
1.1. Objetivo da Modelagem de Sistemas • Modelagem Orientada a Objetos - Definições • James Rumbaugh Uma nova maneira de pensar os problemas, utilizando modelos organizados a partir de conceitos do mundo real. O componente fundamental é o objeto, que combina estrutura e comportamento em uma única entidade.
1.1. Objetivo da Modelagem de Sistemas • Modelagem Orientada a Objetos - Definições • Grady Booch Leia a especificação do software que você quer criar. Sublinhe os verbos se quiser uma codificação procedural ou os substantivos se visar a um programa orientado a objetos.
1.1. Objetivo da Modelagem de Sistemas • Exercício
1.2. Orientação a Objetos • Analogia Orientada a Objetos • Imagine que você recebeu como herança, um grande terreno. • Esse terreno é identificado por um número.
1.2. Orientação a Objetos • Analogia Orientada a Objetos • Você contrata um arquiteto a fim de projetar uma casa. • O arquiteto faz várias perguntas sobre a casa, a sua forma, estilo e funcionalidade. • O arquiteto trabalha algum tempo no projeto da casa e entrega as plantas para que você possa construir.
1.2. Orientação a Objetos • Analogia Orientada a Objetos • Você contrata uma construtora para erguer a casa. • A construtora leva algum tempo e termina o serviço. • Existe alguma casa no terreno? Sim, a casa ocupa espaço no terreno.
1.2. Orientação a Objetos • Processador e Memória • A memória é dividida em partes referenciadas por endereços. • Existem partes da memória que estão ocupadas e outras livres. • Dentro de um programa, podemos alocar espaço na memória e construir objetos. • Esses objetos são acessados através de um endereço de memória ou de uma referência ao endereço.
1.2. Orientação a Objetos • Classe • Conceito de Classe: • As plantas da casa representam a classe. • É a partir da classe que se constrói um objeto na memória. • É a definição da forma e funcionalidade de alguma coisa. • Responsabilidade da Classe: • É o que a classe “sabe” e o que ela “faz”. • O que a classe “sabe” são as propriedades ou seus atributos. • O que a classe “faz” são os seus métodos ou funções.
1.2. Orientação a Objetos • Exemplo • Vamos imaginar que em um sistema exista a classe Aluno. • O que Aluno sabe? • Seu nome, • Seu endereço, • Seu número de matrícula etc. • O que o Aluno faz? • Se matricula em um Curso, • Tranca a matricula, • Tem Avaliações etc.
1.2. Orientação a Objetos • Tipos de Classes • Classes de Interface: • Botões, • Listas, • Checkboxes, • Scrollbars etc. • Classes de Negócio: • Cliente, • Pedido, • Item de Pedido, • Produto etc. • Classes de Controle: • Data, • Conexão com Banco de Dados, • Gerenciador de Impressão, • Leitura e Gravação de Arquivos etc.
1.2. Orientação a Objetos • Objeto • Quando alocamos espaço na memória e usamos o construtor de uma classe, um objeto é criado. • Um objeto não interfere em outro. • Instância é sinônimo de objeto. • Instanciar significa criar um objeto a partir de uma classe.
1.2. Orientação a Objetos • Classe e Objeto
Propriedades Cliente Criar() Nome Idade Destruir() Funções 1.2. Orientação a Objetos Outra forma de desenhar a classe
1.2. Orientação a Objetos • Propriedade • As propriedades são os dados que guardam as características e o estado dos objetos criados a partir da classe. • É o que a classe “sabe”. • O relógio digital tem as propriedades “hora” e “minuto”.
1.2. Orientação a Objetos • Método • O termo método representa as funcionalidades inerentes à classe. • É o que a classe “faz”. • Para alterar o mostrador do relógio digital não podemos simplesmente exibir um número qualquer. • Existe um “método” para fazer isso.
1.2. Orientação a Objetos • Método Construtor e Destrutor • A função do método construtor é inicializar um objeto na memória. • Através dele é possível que o objeto na memória tenha valores iniciais. • Esse método é usado, por exemplo, para construir a tela da aplicação e abrir a conexão com o banco de dados. • O método destrutor permite “fechar” o ciclo de vida do objeto, dando condições de finalização ao programador.
1.2. Orientação a Objetos • Assinatura • É a chamada de um método. Identifica um método pelo nome, a quantidade e tipos dos argumentos passados por parâmetros. • Um método é reconhecido pelo seu nome e seus parâmetros CancelarAssinatura(codAssinante) AlterarPagamento(codAssinante, novaDataPagamento)
1.2. Orientação a Objetos • Herança • Relacionamento de generalização e especialização entre classes. • Permite ao programador criar uma nova classe “estendendo” uma classe anterior. • A herança define uma hierarquia onde o conceito mais genérico fica sobre o conceito mais específico.
1.2. Orientação a Objetos • Herança
1.2. Orientação a Objetos • Encapsulamento • A Classe é um “pacote”, contendo dados e operações; • O objeto é referenciado como um módulo único; • É a proteção dos dados internos da classe; • Os dados só podem ser acessados sob determinadas condições. • É implementado através da “Visibilidade” mais restrita.
1.2. Orientação a Objetos • Encapsulamento • Um sistema não deve depender da sua implementação interna e sim de sua interface com o mundo exterior. • A interface de uma classe é a forma pela qual ela será acionada e se relacionará com as outras partes do sistema. Cliente Encapsulamento – acessar os dados através dos métodos da classe BuscarCliente() Nome Dt_nascim ListarCliente() ExcluirCliente() CadCliente()
1.2. Orientação a Objetos • Polimorfismo • Vários comportamentos que uma mesma operação pode assumir. • Polimorfismo (muitas formas) é a capacidade de um programa orientado a objetos distinguir, dentre métodos homônimos, qual deverá ser executado.
Empregado Retângulo Nome Funcao Dt_Admissao Desenhar(p1,p2,p3,p4) Desenhar(alt,larg) Empregado(nome) Empregado(nome,funcao,dt) Métodos na mesma classe com assinatura diferente - Sobrecarga 1.2. Orientação a Objetos Polimorfismo • Métodos Sobrecarregados - são os métodos homônimos dentro de uma mesma classe.
Vendedor comissão ObterEmpregado( ) 1.2. Orientação a Objetos • Polimorfismo • Métodos Sobrescritos - são métodos homônimos em uma relação de herança. Empregado nome ObterEmpregado( ) Métodos com a mesma assinatura em uma herança - Sobrescrita
1.2. Orientação a Objetos • Polimorfismo
1.2. Orientação a Objetos • Modularidade • É a separação dos serviços em um conjunto de módulos que guardam independência de compilação e execução. • A modularidade leva a uma separação entre a interface do sistema e o código que vai executar os serviços. • Otimiza o processo de manutenção de código.
1.2. Orientação a Objetos • Persistência • É o tempo total que um objeto permanece na memória (auxiliar ou principal). • Os objetos de negócio devem ser persistentes. • É comum a utilização de bancos de dados para tornar os objetos persistentes.
1.2. Orientação a Objetos • Abstração • É a ocultação de certos aspectos de implementação. • O objetivo é diminuir a complexidade, focando um problema por vez.
1.2. Orientação a Objetos • Classe Abstrata • E uma classe que define o comportamento e atributos para subclasses. • Não é instanciada diretamente.
1.2. Orientação a Objetos • Estereótipo • Os estereótipossão extensões de elementos do modelo. Podem ser usados para denotar especializações significativas de classes. • Os atores, por exemplo, são tratados pelas ferramentas de modelagem como classes estereotipadas. • Os estereótipos podem ser indicados através de ícones próprios, ou incluindo-se o nome do estereótipo em aspas francesas (os caracteres « », representados nos desenhos por << >>).
1.2. Orientação a Objetos • Estereótipo • Estereótipos são usados para criar especializações da UML em relação a determinadas áreas de modelagem. • Ivar Jacobson propõe a divisão das classes do Modelo de Análise de acordo com estereótipos, que foram incorporados ao padrão oficial da UML. Esses estereótipos podem ser representados por textos ou ícones. São eles: Entidades (tabelas), Fronteiras (telas) e de Controle (conexão com banco, gerenciador de impressão,...).
1.2. Orientação a Objetos • Exercício • Identifique as propriedades e métodos das classes listadas.
1.2. Conclusão da UA 1 • A Orientação a Objetos é uma TECNOLOGIA que envolve desde a concepção do sistema e da sua modelagem até a implementação utilizando linguagens orientadas a objetos.