1 / 15

PADROES DE PROJETO

PADROES DE PROJETO. PROF. OSIEL MARLON. PADRÕES DE PROJETO. INTRODUÇÃO

tatum
Download Presentation

PADROES DE PROJETO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PADROES DE PROJETO PROF. OSIEL MARLON

  2. PADRÕES DE PROJETO • INTRODUÇÃO • Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria da qualidade de software. Eles enfatizam a identificação e comunicação entre pessoas de elementos dos melhores exemplos e práticas em software. • Entretanto, não substituem as abordagens correntes, e sim as complementam com o preenchimento de lacunas que não estavam sendo tratadas adequadamente. • A principal lacuna é a deficiência no compartilhamento dos melhores exemplos e práticas em software. • O enfoque nestes aspectos tem gerado um grande número de “soluções” para os problemas do software que não tem tido os resultados práticos esperados, agravando o que é conhecido como a “crônica crise do software”.

  3. Os padrões de projeto tornam mais fáceis reutilizar projetos e arquiteturas bem-sucedidas. • Ajudam a escolher alternativas de projeto que tornam um sistema mais reutilizável e a evitar alternativas que comprometam a utilização.

  4. PRINCIPAIS CONCEITOS • A idéia central de Padrões de Projeto está fortemente baseada nos trabalhos de Christopher Alexander, que propôs uma nova atitude para arquitetura, construção e planejamento de cidades, comunidades, prédios e casas.

  5. Um padrão descreve uma solução para um problema que ocorre com freqüência durante o desenvolvimento de software, podendo ser considerado como um par “problema/solução”. • Os padrões de software podem se referir aos diferentes níveis de abstração no desenvolvimento de sistemas orientados a objetos.

  6. Um padrão de projeto sistematicamente nomeia, explica e avalia um projeto importante e recorrente em sistemas orientados a objetos, descrevendo “moldes” para a arquitetura de software.

  7. ELEMENTOS ESSENCIAIS • A abordagem Padrões de Projeto pode ser definida por meio de quatro perspectivas complementares: nome, problema, solução, conseqüências. • Nome - referência a descrição de um problema de projeto, suas soluções e conseqüências, em uma ou duas palavras. Dar nome a um padrão aumenta imediatamente o vocabulário de projeto. • Problema - descreve quando aplicar um padrão, defi nindo o contexto do sistema, as estruturas de classe e a lista de condições que devem ser satisfeitas para que faça sentido aplicar o padrão. • Solução - descreve os elementos que compõem o projeto, seus relacionamentos, suas responsabilidades e colaborações, além de mostrar um arranjo geral de elementos que resolvem um determinado problema. É feito o uso de UML para descrição de soluções. • Conseqüências: é feita uma análise crítica do padrão fornecido, incluindo vantagens, desvantagens e limitações, definindo elementos que infl uenciam decisivamente na escolha de um padrão, como solução para um problema.

  8. CLASSIFICAÇÃO DE PADRÕES • Padrões se referem à comunicação de problemas e soluções, permitindo documentar um problema conhecido recorrente a sua solução em um contexto específico, repassando esse conhecimento para outras pessoas. • Padrões de projeto – descrevem soluções para problemas de projeto de software. • Padrões de interface – defi nem soluções para problemas comuns no projeto de interfaces de sistemas. • Padrões de programação – descrevem soluções de programação particulares de uma determinada linguagem de programação ou regras gerais de estilo de programação. • Padrões de persistência – descrevem soluções para problemas de armazenamento de informação em arquivos ou bancos de dados. • Padrões para hipertextos – descrevem soluções para problemas encontrados no projeto de hipertextos. • Padrões para hipermídia – descrevem soluções para problemas encontrados no desenvolvimento de aplicações multimídia.

  9. EXEMPLO DE UMA ARQUITETURA • Um padrão de projeto servirá para auxiliar o trabalho, comunicação e entendimento entre os desenvolvedores sobre a natureza do problema. • Um exemplo de padrão, que será mostrado como exemplo, é o façade (fachada) [Gamma]. A finalidade do façade é estabelecer uma única interface de comunicação entre a classe cliente e a classe de negócio. • A utilização deste padrão facilita na manutenção, portabilidade e produção de novos sistemas, já que toda a comunicação entre as classes já foi estabelecida.

  10. Dentre os benefícios que se obtêm com a implementação do fachada, podem ser destacados: • separação entre os clientes e os componentes do subsistema, diminuindo o número de objetos que têm que se comunicar com os clientes; • baixo acoplamento entre o subsistema e os clientes, permitindo que haja alterações dos componentes do subsistema sem que isso afete os clientes; • não há restrições, caso seja necessário utilizar as classes do sistema nas aplicações, sendo possível optar por facilidade de uso ou generalidade.

  11. Facade-Fachada • Estrutura-Uma única interface é definida para comunicação com o banco de dados. Padrão Façade aplicado a uma classe de um projeto.

  12. Facade-Fachada • Considerações sobre implementação • Redução do acoplamento do cliente-subsistema. • Ocorre tornando o Facade uma classe abstrata com subclasses concretas. • Classe de subsistemas: públicas ou privadas ? • A classe Facade deve ser naturalmente pública. As classes envolvidas no processo podem ser privadas, mas por convenção de padronização independente de linguagem de programação devem ser públicas.

  13. Considerações Finais • Ao usar um padrão de projeto é importante: • Ler e entender o padrão por inteiro; • Estudar como os padrões se interrelacionam; • Estudar padrões com finalidades semelhantes; • Definir de maneira clara as classes e operações que suportem as responsabilidades e colaborações presentes no padrão. • Os padrões de projetonãodevem ser aplicados indiscriminadamente, mas apenas quando a flexibilidade que eles oferecem é realmente necessária.

  14. Referência Bibliográfica • Salviano, Clenio. Introdução à Software Patterns • Tutorial SBES’97 ftp://st.cs.uiuc.edu/pub/patterns/presentations/nswpatt.zip • Alur,Deepak- Core J2EE patterns: as melhoeres práticas e estratégias de design • Gamma,Erich et all- Padrões de projeto:Soluções reutilizáveis de software orientada a objeto

More Related