Frameworks

É com a experiência dos programadores que foram surgindo os frameworksConstruir um software do zero é muito custoso, por isso se usa uma base já implementada

Benefícios de se usar um framework

  • O benefício básico de se usar um framework é a produtividade
  • Melhora da qualidade através da reutilização do framework, já que ele é mais usado e se detecta mais falhas

Com restrições de prazo e custo, os desenvolvedores devem-se utilizar de componentes, frameworks e padrões de projeto para realização do projeto

Definições

Framework é uma técnica que se beneficia de três características das linguagens de programação orientadas a objeto: abstração de dados, poliformismo e herança; O framework é uma arquitetura semi-acabada e passível de reutilização para um domínio de aplicação;Framework é uma aplicação genérica que permite a criação de diferentes aplicações em um determinado domínio;Um framework define uma arquitetura para uma família de sistemas, fornecendo partes predefinidas para sua construção;

Conceitos de Frozen Spots e Hot Spots

Frozen Spots: definem uma arquitetura global de um sistema que permanece inalterado em qualquer instanciação do framework;Hot Spots: são pontos do framework onde ocorrem a especialização (definir classes adicionais para sobrepor métodos, etc.) e adaptação.

Esquema de HotSopts

  • Uma classe abstrata de base, que vai definir a interface
  • Classes concretas derivadas, representando cada uma das diferentes alternativas para os aspectos variáveis
  • Parte opcional com relacionamentos e classes adicionais

Benefícios

  • Modulariação
  • Reutilização
  • Extensão de interfaces
  • Framework controla estrutura e abordagem do programa

UML-F

Usada para fazer modelagem de frameworks e utiliza conceitos comuns e mecanismos de extensão (como estereótipos) da própria UML.

  • Estereótipos

  • São mecanismos para permitir adicionar novos blocos de construção semelhantes aos existentes

  • É representado graficamente por << e >>

  • Tag values

  • São meios para proporcionar a criação de novas propriedades. É apresentado como uma sequencia de caracteres entre chaves, colocado abaixo de outro elemento.

  • Restrições

  • São mecanismos para especificar uma nova semântica de algum elemento UML. É representada como uma sequencia de caracteres colocada próxima ao elemento associado.

Hot Spots

Há três tipos de hot spots em um framework orientado a objetos:

  • Métodos variáveis: possuem uma interface bem definida, mas que podem variar sua implementação de acordo com a instanciação do framework;
  • Classes estendidas: podem ser estendidas durante a instanciação do framework, recebendo novos métodos;
  • Interfaces estendidas ou classes abstratas: permitem a criação de subclasses concretas na instanciação do framework. Essas classes são chamadas de classes de aplicação.

Os três tipos podem ser estáticos (instanciação não é requerida em tempo de execução) ou dinâmicos (é requerida em tempo de execução)

Tags utilizadas em UML-F

  • Variable: é aplicado aos métodos de uma classe e representa o hot spot Métodos Variáveis;
  • Extensible: é aplicada a uma classe e indica o hot spot Classes Estendidas.
  • Incomplete: representa o hot spot Interfaces Estendidas. Colocada ao lado do simbolo de generalização;
  • Tag appl-class: Complementa a definição de classes estendidas. Indica um aditivo na estrutura de um framework;
  • static e dynamic: complementam a notação dos hot spots, indicando se o mesmo requer instanciação ou não.