UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan - PDF Free Download
Download "UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan"
Gustavo Cordeiro Pedroso
1 Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação Orientada a Objetos - UML BLAHA, Michael; RUMBAUGH, James. Modelagem e Projetos Baseados em Objetos com UML 2. Campus, BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 2. ed. São Paulo: CAMPUS/Elsevier, BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. Rio de Janeiro: Campus, Programação Procedimental Programação Procedimental Usa-se um processo de refinamento baseado em passos: Divide a tarefa a ser realizada em subtarefas; Depois, em subtarefas menores; Até o momento que estas subtarefas estejam simples o bastante para implementação direta. Escreve-se procedimentos para resolver tarefas simples: Combiná-los com procedimentos mais sofisticados até obter as funcionalidades desejadas; A maioria dos programadores utilizam uma mistura das duas técnicas acima para resolver um problema de programação. 3 Fonte: Disponível em < Acesso em: 07-fev
2 Programação Procedimental O conceito de programação orientada por objetos não é novo. Final da década de 60 - linguagem Simula67 Meados de 70 - o Centro de Pesquisa da Xerox - linguagem Smalltalk. No início da década de 80, a AT&T lançou a Linguagem C++, uma evolução da linguagem g C em direção à OO Green Project * 7 - Oak (Gosling) Java J2EE Atualmente - grande parte das linguagens incorpora características de OO; Conceito de OO em sistemas operacionais - a partir do Windows 2000; Fonte: Disponível em < Acesso em: 07-fev-08. Banco de dados - Jasmine e a partir do Oracle8; 5 6 A grande dificuldade para compreender a programação OO é a diferença de abordagem do problema; Programação estruturada procedimentos e funções; OO objetos e seus relacionamentos; Além do conceito de objeto, a programação OO tem como alicerces os conceitos de encapsulamento, classe, herança, polimorfismo, etc. Foco: - reduzir a complexidade no desenvolvimento de software; - aumentar sua produtividade - reduzir custos. Os ambientes computacionais se tornaram complexos - são sistemas heterogêneos, distribuídos, em camadas e baseados em interfaces gráficas; OO é uma resposta a isto! 7 8 2
3 Visões de um projeto -I Quando se constrói uma casa ou um prédio de qualidade, faz-se um bom planejamento; Faz-se a previsão sobre a forma de construção, estimativas de tempo e material para a realização do projeto; Software de má qualidade d tem falhas na especificação; Modelagem contribui para o sucesso de um software; Para se fazer bons modelos utiliza-se uma linguagem dotada de diagramas que permitam a representação de sistemas, dos mais simples aos mais complexos, sob diferentes visões; Facilita o entendimento e padroniza a comunicação e organização do problema 9 10 Visões de um projeto -II GAP Semântico É a distância entre os conceitos que seres humanos conhecem e entendem e os conceitos que os computadores realizam e manipulam. OO (Iterativo e Incremental) REAL GAP COMPU- TACIONAL REAL COMPU- TACIONAL
4 Diferenças importantes Diferenças importantes Na OO, primeiro isola-se as classes do projeto, somente depois procura os métodos da classe; Cada método é associado com a classe responsável por executar operações; Para pequenos problemas a divisão em procedimentos funciona muito bem; Classes são fábricas para múltiplos objetos. Cria-se n instâncias de uma mesma classe. Não podemos obter este conceito na programação estruturada, nem mesmo utilizando módulos. Um módulo possui apenas uma instância Diferenças importantes Para problemas maiores, classes e métodos têm duas vantagens: Classes fornecem um conveniente mecanismo de agrupamentos de métodos; Um sistema simples utiliza aproximadamente 2000 procedimentos para implementação; Ideal criar 100 classes com uma média de 20 métodos por classe; O encapsulamento embutido nas classes ajuda a esconder suas representações de dados de todo o código, exceto dos métodos; Se ocorrer um erro e atrapalhar todo o código, é muito mais fácil procurar entre 20 métodos que tiveram acessos a estes dados do que em 2000 procedimentos. 15 Conceito fundamental da OO ABSTRAÇÃO: Rumbaugh Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vários graus de detalhe, dependendo do contexto corrente do problema. Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software. 16 4
5 Diferenças importantes Programação Orientada a Objetos Programação Estruturada Métodos Procedimentos e funções Instâncias de variáveis Variáveis Mensagens Chamadas a procedimentos e funções Classes Tipos de dados definidos pelo usuário Herança - Polimorfismo - 17 Fonte: Barbieri, C. 18 Fonte: Barbieri, C. 19 Fonte: Barbieri, C. 20 5
6 A programação orientada a objetos não tem a intenção de substituir a programação estruturada tradicional. OO é uma evolução de práticas que são recomendadas na programação estruturada, mas não formalizadas. Fonte: Barbieri, C UML Vantagens da OO - Fazer exatamente o que foi especificado. - 1 para 1. Unified Modeling Language - Linguagem de modelagem unificada - Paradigma da OO; - Padrão de mercado para modelagem de sistemas - Necessidade no mundo real (negócio) na mesma proporção do mundo computacional. Se aumentar de um lado, aumenta do outro. - Dar prioridade à qualidade de SW, atingindo a extensibilidade, reusabilidade, modularidade, etc. Linguagem de modelagem não proprietária; Não é uma metodologia, ou seja, não diz o que fazer primeiro, mas auxilia a visualizar o desenho e a comunicação entre objetos; Diagramas padronizados com notações gráficas, rica em semântica; Independe de processos porém, RUP (Rational Unified Process) foi especificamente desenvolvido utilizando UML;