[Tópicos I]
Facetas da Reusabilidade de
Software
Prof. Fábio R. Pillatt
pillatt@unicruz.edu.br
2003.01
Universidade de Cruz
Alta
Ciência da Computação
Tópicos Especiais
2
[Tópicos I]
O
que são Frameworks?
Um framework é uma aplicação quase
completa onde características que estão faltando devem ser acopladas.
Domínio: Aplicação de
E-Commerce
A
B
C
Framework
8
[Tópicos I]
O que são Design
Patterns?
Design Patterns: "Cada padrão
descreve um problema que ocorre freqüentemente e então descreve o cerne da
solução ao problema de forma a poder reusar a solução milhões de vezes em
situações diferentes" [Christopher Alexander]
Reuso de idéia, não de código.
Contém o somatório da experiência
dos melhores projetistas O-O!
Estão revolucionando o projeto de
software desde 1995 quando o famoso livro da "Gang of Four" (GoF) apareceu com
o primeiro catálogo de 23 padrões.
Padrões de Projeto: Soluções
Reutilizáveis de Software Orientado a Objetos (Gamma, Helm, Johnson e
Vlissides)
9
[Tópicos I]
O que são
Componentes?
Componentes: "Um pacote coerente
de artefatos de software que pode ser desenvolvido independentemente e
entregue como unidade e que pode se composto, sem mudança, com outros
componentes para construir algo maior" [Desmond D'Sousa].
Encapsula as particularidades de
cada aplicação e pluga-se ao framework.
Framework
A
A
C
C
B
B
B
B
Aplicação B
10
[Tópicos I]
Considerações Finais sobre
Reuso
Mesmo com a ajuda de tecnologias
como design patterns, frameworks e componentes, o custo monetário e de
complexidade de desenvolvimento é alto para se alcançar o
reuso.
Gasta muito tempo para bolar boas
abstrações.
Bons programadores são
caros.
Programadores comuns terão
dificuldades para produzir software reutilizável.
Você não quer ser um programador
comum??
Primeiro passo: Leia o livro da
GoF.
Padrões de Projeto: Soluções
Reutilizáveis de Software Orientado a Objetos (Gamma, Helm, Johnson e
Vlissides)
11
[Tópicos I]
Considerações Finais sobre
Reuso
A
implantação da cultura de reuso de uma empresa requer:
Um processo de desenvolvimento
adequado.
Além de desenvolver um produto,
queremos criar abstrações reutilizáveis e aumentar o patrimônio da empresa
Novos papéis.
Para coordenar o reuso entre times
(equipes) diferentes.
Treinamento.
A equipe de desenvolvimento deve
estar a par de tecnologias tais como design patterns, frameworks e
componentes.
Incentivo apropriado para o
reuso
Convencer a equipe de
desenvolvimento que implantar a cultura do reuso pode ser uma boa
idéia.
12
[Tópicos I]
Considerações Finais sobre
Reuso
Reuso é um investimento a longo
prazo!
O reuso de software se dará na
medida que houver a necessidade da criação de novas aplicações semelhantes
(facilitada pelo uso de frameworks) ou inserção de novos requisitos no projeto
original (encapsulados em componentes que poderão ser plugados em
frameworks).
Uma ótima idéia para software
houses.
Desde já
agradeço,
Afonso Fagundes
Nast