O arcabouço computacional ou framework é um conjunto de classes cooperantes que compõem um projeto de software reutilizável (GAMMA et.al., 2006), por ser um sistema incompleto, pode ser adaptado para implementar aplicações completas em um determinado domínio, reduzindo o esforço na implementação de aplicativos (FAYAD et. al., 1999).
Na estrutura do arcabouço computacional, podemos utilizar o paradigma da orientação a objetos visando a reutilização dos artefatos do desenvolvimento de software (MATTSSON, 2000) e pode ser classificado como aplicação orientada a objetos e componentes (AREVALO, 2014).
De acordo com Pree (PREE, 1994), os arcabouços computacionais consistem em frozen spots e hot spots. Os frozen spots são serviços disponíveis no arcabouço computacional que geralmente realizam chamadas indiretas. Os hot spots são funcionalidades ou serviços, que devem ser implementados, com base nas características das classes abstratas, pelos desenvolvedores, inserindo códigos referentes ao domínio da aplicação (FAYAD et. al., 1999).
A combinação dos padrões de projetos, bibliotecas de classes e componentes, aumenta a qualidade de software e reduz o esforço de desenvolvimento (FAYAD et. al., 1999).
A qualidade de um arcabouço computacional, depende da arquitetura e suas interfaces de comunicação que permitam suas funções básicas serem chamadas por outras aplicações ou serem estendidas (LARMAN, 2004).
A evolução de um arcabouço computacional, pode ser feita gradualmente e/ou em partes, dependendo dos objetivos da organização e da intenção de uso dos componentes. Um componente, implementado na arquitetura, representa uma funcionalidade particular do domínio (MATTSSON, 2000).
Um arcabouço computacional deve atender aos seguintes princípios (LARMAN, 2004):
- Ter um conjunto coeso de interfaces e classes para fornecer serviços;
- Conter classes concretas e abstratas, que definem interfaces a serem seguidas;
- Permitir que o usuário personalize e estenda os serviços existentes;
- Possuir classes abstratas com métodos concretos;
- Depender do Princípio de Hollywood (“Não ligue, nós ligaremos para você”), ou
seja, as classes definidas pelo usuário recebem mensagens das classes predefinidas no arcabouço computacional.
Os processos de desenvolvimento, usualmente utilizados em arcabouço computacional, compreendem em: análise do problema/domínio, projeto, codificação e instanciação (MATTSSON, 2000).
Conclusão
Neste artigo, conceituamos a temática arcabouço computacional de acordo com as teorias aplicadas na Ciência da Computação. Nos próximos artigos abordaremos a aplicação desses conceitos.
Até o próximo artigo!
Prof. Norton Guimarães
@nortoncg
Referências
AREVALO, G. B. Object oriented architectural description of frameworks, 2000. Tese (Doutorado em Ciência e Tecnologia da Informação e de Matemática) – École des Mines de Nantes, Nantes, França. Disponível em: <http://www.emn.fr/zinfo/ emoose/alumni/>. Acesso em: 18 out. 2014.
FAYAD, M. E.; SCHMIDT, D. C.; JOHNSON, R. E. Implementing Application Frameworks: Object-oriented Frameworks at Work. John Wiley & Sons, Inc., New York, NY, USA, 1999.
GAMMA, E.; JOHNSON, R.; HELM, R.; VLISSIDES, J. Padrões de Projetos: Soluções Reutilizáveis. Bookman, Porto Alegre, RS, Brasil, 2006.
LARMAN, C. Utilizando UML e Padrões: uma introdução à análise e ao projeto orientados a objetos e ao Processo Unificado. Bookman, Porto Alegre, RS, Brasil, 2 edition, 2004.
MATTSSON, M.; BOSCH, J. Stability assessment of evolving industrial object-oriented frameworks. Journal of Software Maintenance, 12(2):79–102, Mar. 2000.
PREE, W (1994), “Meta Patterns: A Means for Capturing the Essentials of Reusable Object-Oriented Design”, Proceedings of the 8th European Conference on Object-Oriented Programming (Springer-Verlag): 150–162.