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

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

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Engenharia Informática – Engenharia de Software Design Patterns Cláudio PedroN.º 3805.

Apresentações semelhantes


Apresentação em tema: "Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Engenharia Informática – Engenharia de Software Design Patterns Cláudio PedroN.º 3805."— Transcrição da apresentação:

1 Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Engenharia Informática – Engenharia de Software Design Patterns Cláudio PedroN.º 3805 Francisco RochaN.º 3747 Docente Responsável: Dra. Isabel Brito

2 Design Patterns2 Histórico A ideia de armazenar informação sobre patterns, observados num contexto, pode ser atribuída ao arquitecto Christopher Alexander e foi elaborada no contexto de arquitectura Um pattern descreve um problema que se repete várias vezes num determinado meio, e em seguida descreve o núcleo da sua solução, de modo que esta solução possa ser usada milhares e milhares de vezes. (Alexander, 1978)

3 Design Patterns3 Histórico (Cont.) Em 1995, 4 autores – Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides – conhecidos como The Gang of Four, publicaram o primeiro catálogo de Design Patterns para programas orientados a objetos, com o título: Design Patterns: Elements of Reusable Object-Oriented Software

4 Design Patterns4 Em que consistem? Documentação de soluções genéricas e reutilizáveis, aplicáveis em problemas recorrentes Descrição de soluções que funcionaram e se tornaram receitas para situações similares Conjunto de classes e objectos relacionados que representam uma solução para um problema abstracto, e que serão particularizados em cada situação concreta

5 Design Patterns5 Objectivos Fornecer uma solução provada para problemas relacionados com o desenvolvimento de software Isolar a variabilidade que pode existir nos requisitos do sistema Tornar o sistema mais fácil de entender e manter

6 Design Patterns6 Objectivos (Cont.) Tornar a comunicação entre os designers de software mais eficiente Permitir que os designers de software visualizem imediatamente o projecto de alto nível nas suas mentes, quando eles sabem o nome do pattern utilizado para determinado problema Aumentar a produtividade na fase de design e a qualidade do software produzido

7 Design Patterns7 Características Descrição Classificação

8 Design Patterns8 Características - Descrição Nome e Classificação Identifica o pattern Propósito Tipo de problema que o pattern trata Outros nomes Conjunto de outros nomes para o pattern Motivação Um cenário que ilustra o problema e como o pattern o resolve

9 Design Patterns9 Características - Descrição (Cont.) Aplicação Situações em que este pattern pode ser aplicado Estrutura Representação gráfica das classes do pattern Participantes Classes que participam no pattern e respectivas responsabilidades

10 Design Patterns10 Características - Descrição (Cont.) Colaborações Como os participantes interagem para cumprir as suas responsabilidades Consequências Resultados e efeitos causados pelo uso do pattern Implementação Dicas e técnicas que o designer deve saber, e possíveis armadilhas para as quais deve estar preparado

11 Design Patterns11 Características - Descrição (Cont.) Exemplo de código Fragmentos de código que ilustram como o pattern deve ser implementado Usos conhecidos Exemplos de utilização do pattern em sistemas já implementados Patterns relacionados Patterns fortemente relacionados com o pattern em questão e príncipais diferenças

12 Design Patterns12 Características – Classificação Quanto ao seu propósito: Criacão Descreve a melhor maneira de criar um objecto Estrutural Diz respeito à composição de objectos e classes Comportamental Caracteriza o modo como classes e objectos interagem e compartilham responsabilidades

13 Design Patterns13 Características – Classificação (Cont.) Quanto ao escopo: Classes Tratam do relacionamento entre classes e subclasses Objectos Tratam relacionamentos entre objectos que podem ser alterados em tempo de execução Exemplo Um pattern estrutural de classes utiliza herança para compor as classes, enquanto que um pattern estrutural de objectos descreve como estes devem ser agrupados

14 Design Patterns14 Características – Classificação (Cont.) Fig. 1 – Os 23 design patterns clássicos organizados segundo a sua classificação

15 Design Patterns15 Design Patterns & Reutilização Em que consiste a reutilização? Utilização de produtos de software, construídos ao longo do processo de desenvolvimento, numa situação diferente daquela para a qual foram originalmente produzidos. (Freeman, 1980) Objectivo da reutilização Aumentar a qualidade e produtividade no desenvolvimento de software

16 Design Patterns16 Design Patterns & Reutilização (Cont.) Reutilização foi provavelmente a grande motivação para o desenvolvimento de design patterns É fulcral compreender os aspectos fundamentais que possibilitam a reutilização, para depois se poder propor um pattern específico de reutilização

17 Design Patterns17 Design Patterns & Framework Em que consiste um framework? Técnica de reutilização orientada a objectos que compreende tanto design como código, com uma representação física em termos de classes, métodos e objectos Objectivo de um framework Diminuir a quantidade de código necessária para implementar aplicações similares

18 Design Patterns18 Design Patterns & Framework (Cont.) Design Patterns são soluções mais abstractas e genéricas do que as frameworks, que sendo mais específicas se relacionam sempre com apenas um domínio de aplicação Design Patterns permitem a reutilização da arquitectura Frameworks permitem a reutilização do código

19 Design Patterns19 Design Patterns & Framework (Cont.) Design Patterns possuem menores arquitecturas Um framework pode conter em si vários patterns Design Patterns descrevem como fazer um design, enquanto que um framework é o próprio design

20 Design Patterns20 Exemplo Desenvolvimento de um framework para cálculo de impostos Existe a necessidade de criar uma única instância da classe Emissor, pois uma vez instanciada, poderá ser usada pelo resto da aplicação. Deverá então ser utilizado o pattern Singleton na implementação do framework

21 Design Patterns21 Exemplo (Cont.) Nome e Classificação: Singleton Pattern de criação Propósito: Garantir que uma classe só tenha uma única instância e prever um ponto de acesso global a essa instância Motivação Garantir que apenas um objecto exista, independentemente do número de requisições que receber para criá-lo

22 Design Patterns22 Exemplo (Cont.) Estrutura:

23 Design Patterns23 Exemplo (Cont.) Consequências: Acesso controlado à instância única Espaço de nomes reduzido Permite refinamento de operações e representação Permite um número variável de instancias Mais flexível do que operações de classes Implementação: Garantir a existência de uma única instância Criando subclasses da classe Singleton

24 Design Patterns24 Exemplo (Cont.) Fig. 2 – Diagrama de classes da classe Emissor implementando o pattern Singleton

25 Design Patterns25 Relação com Engenharia de Software Engenharia de Software estabelece e usa sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e eficaz Design Patterns são então uma ferramenta documental para a resolução de problemas durante a fase de design do software, compreendida na Engenharia de Software

26 Design Patterns26 Referências Bibliográficas Formato convencional Gamma, Helm, Johnson, Vlissides – Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing Company, 1995 Buschmann, Meunier, Rohnert, Sommerlad, Stal – Pattern-Oriented Software Architecture: A System of Patterns, J. Wiley and Sons Ltd., 1996 Formato digital

27 Design Patterns FIM


Carregar ppt "Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Engenharia Informática – Engenharia de Software Design Patterns Cláudio PedroN.º 3805."

Apresentações semelhantes


Anúncios Google