frameworks orientados a objetos. agenda crash course! um problema conceitos classificação...
TRANSCRIPT
![Page 1: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/1.jpg)
Frameworks Orientados a Objetos
![Page 2: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/2.jpg)
Agenda Crash Course!
Um problema
Conceitos
Classificação
Framework vs Outras Abordagens
Processo de desenvolvimento
Documentação/Instanciação
Trade-offs
Exemplos de Frameworks
Conclusão
2010Frameworks2
![Page 3: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/3.jpg)
Crash Course!! Lápis...
....Ou Lapiseira?
2010Frameworks3
Fácil de Idealizar/Construir
Útil Pouco Flexível Necessita de outras
“ferramentas” Apontador!
Difícil de Idealizar/Construir
Útil, mas precisa de “manual”
Flexível Aceita vários tipos de
grafite Restrição
Diâmetro do Grafite!
![Page 4: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/4.jpg)
Um problema Controle de qualidade
A B
TriggerEfetuador
Sensor
1
2 Líquidoopacidade
3
4
2010 Frameworks 4
![Page 5: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/5.jpg)
Um problema(2) Empresa especializada em software para controle
de qualidade em manufaturas. Diminuir custos com o desenvolvimento de novos
sistemas. Mas muita coisa muda…
Sensores Câmeras, balanças, termômetros, etc…
Efetuadores Braço mecânico, rotulador, etc…
Critérios de qualidade variados Itens diferentes
2010Frameworks5
![Page 6: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/6.jpg)
Um problema(3) Mas tudo muda?
A dinâmica do processo é sempre a mesma: Trigger Sensor Adaptações Algoritmos de
classificação do item Executar ação no efetuador.
2010Frameworks6
![Page 7: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/7.jpg)
Uma Solução
Separar o que é fixo(frozen-spot) do que é variável(hot-spot).
Permitir a reutilização da parte fixa.
2010 Frameworks 7
![Page 8: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/8.jpg)
Frameworks
Introdução
![Page 9: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/9.jpg)
Motivação Reuso:
Reutilizar software não é simples A maioria dos esforços resultam na reutilização de pequenos
componentes.
Framework Orientado a Objeto é uma técnica de reuso
Provê reutilização de projeto e de código.
As principais vantagens do uso de frameworks incluem: diminuição do tempo para produção de uma família de aplicações.
2010Frameworks9
![Page 10: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/10.jpg)
O que é um Framework? É uma aplicação “semi-acabada” que captura
os conceitos mais gerais de um domínio: Uma aplicação gerada a partir de framework
especializa ou estende os conceitos capturados pelo framework podendo ainda adicionar novos conceitos.
2010Frameworks10
![Page 11: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/11.jpg)
Algumas definições
“Um framework é um conjunto de classes que constitui um design abstrato para soluções de uma família de problemas”
[Johnson e Foote – 1988] “Um framework é um conjunto de objetos que
colaboram para cumprir uma série de responsabilidades em uma aplicação ou em um domínio de um subsistema.”
[Johnson -1991]
2010Frameworks11
![Page 12: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/12.jpg)
+ duas “Um framework é uma arquitetura desenvolvida
visando reutilizar ao máximo projeto e código. Este reuso se dá através da representação de um conjunto de classes abstratas e concretas, essas com grande potencial de especialização.”
[Mattsson – 1996] Uma framework é mais que uma hierarquia de
classes. É uma hierarquia de classes mais um modelo de interação entre os objetos instanciados a partir do framework.
[Lewis95]
2010Frameworks12
![Page 13: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/13.jpg)
Por que reutilizar design?
A reutilização de código é um tanto restritiva, pois no processo de implementação de uma determinada abstração em uma linguagem de programação específica, as idéias originais (a abstração) são normalmente intercaladas e escondidas pelo idioma da linguagem utilizada. Isto não permite que todo ou parte do conhecimento adquirido durante o processo de desenvolvimento do artefato reutilizável seja reaproveitado em situações diversas.
2010Frameworks13
![Page 14: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/14.jpg)
Reuso de Design Melhoria no entendimento do sistema em
geral, através do uso de uma representação de alto nível (próximo à abstração), não vinculada a um idioma (próximo à implementação).
Melhoria na captura de erros de projeto, uma vez que a reutilização é decidida em fases iniciais do desenvolvimento.
Induz à reutilização de código, uma vez que este design necessita de uma representação “executável” que comprove sua utilidade.
2010Frameworks14
![Page 15: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/15.jpg)
Frameworks
Conceito Básico
![Page 16: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/16.jpg)
Framework é composto por:
2010Frameworks16
![Page 17: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/17.jpg)
Frozen spot Partes fixas do framework (kernel)
São partes de código já implementadas no framework que chamam um ou mais hot spots definidos em cada instância.
Templates de códido. Ex: Call Trigger Call Sensor Call Adaptações Call Algoritmos de classificação do item Call Executar ação no efetuador
2010Frameworks17
![Page 18: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/18.jpg)
Hot spot Ou pontos de flexibilização
Pedaços do framework que são passíveis de customização e extensão
Os hot spots expressam aspectos do domínio do framework que não podem ser antecipados.
Os hot spots são descobertos na análise do domínio ou providos por um especialista no domínio da aplicação.
2010Frameworks18
![Page 19: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/19.jpg)
Exemplo....
2010Frameworks19
![Page 20: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/20.jpg)
Frameworks
Instanciação
![Page 21: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/21.jpg)
Abstração
Um framework é uma abstração e não é executável. Para produzir uma
aplicação completa e executável deve-se instanciar o framework implementando código específico a aplicação para cada hot spot.
2010Frameworks21
![Page 22: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/22.jpg)
Aplicação
Instanciação
Processo de preenchimento / adaptação dos pontos de flexibilização (hot-spots) de uma framework.
2010 Frameworks 22
![Page 23: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/23.jpg)
Processo de Instanciação
Aplicação
Tempo
Requisitos Análise deDomínio
Intanciação/Design Testes
{Modelos da
Aplicação geramIncrementos da
Aplicação relativosao framework
Modelos DoFramework
Outros Incrementosda Aplicação
Design Final da Aplicação
Composição
Codificação
2010Frameworks23
![Page 24: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/24.jpg)
Abordagens para Instanciação UML-F [Fontoura99]
Decoração para Diagramas de Classe UML
Cookbook [Krasner88] Especificação em Linguagem Natural semi-
estruturada
Hooks [Froelich96] Especificação em Linguagem Natural semi-
estruturada
2010Frameworks24
![Page 25: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/25.jpg)
+ Instanciação RDL[Oliveira01]
Reuse Description Language Linguagem de prósito específico que descreve o
processo de instanciação de frameworks orientados a objetos.
ReuseTool[Oliveira10] (in the making :)) Máquina de Execução para RDL (em breve....)
2010Frameworks25
![Page 26: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/26.jpg)
Exemplo
2010Frameworks26
![Page 27: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/27.jpg)
Frameworks
Documentação
![Page 28: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/28.jpg)
Documentação
• Documentação deve se adaptar a diferentes públicos, três exemplos são dados abaixo:
Neste caso deve-se descrever como o uso de framework foi planejado.
ESs que já decidiram usar o framework
Neste caso, a descrição deve ser mais elaborada, contendo os algoritmos abstratos e o modelo de colaboração.
ESs que desejam realizar algum tipo de manutenção no framework.
Neste caso uma breve descrição das capacidades é suficiente.
ESs que decidem qual framework utilizar.
Documentação Público
2010Frameworks28
![Page 29: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/29.jpg)
Documentação Para atender a todo o tipo de público a
documentação deve ter diferentes níveis de abstração. O propósito do framework Como usar os fundamentos do framework O propósito das aplicações: exemplos O design do framework
2010Frameworks29
![Page 30: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/30.jpg)
Documentação Propósito do framework
Breve descrição do propósito do framework O domínio do problema para o qual foi desenvolvido.
Como usar os fundamentos do framework Está é a mais importante documentação para garantir a reutilização do
framework. Deve-se descrever como utilizar o framework sem entrar em detalhes
sobre como ele funciona.
Propósito das aplicações: exemplos Exemplos concretos ajudam a entender melhor o framework.
Design do framework Deve conter as classes, seus relacionamentos e colaborações.
[Johnson92]
2010Frameworks30
![Page 31: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/31.jpg)
Exemplo
2010Frameworks31
Nome: SimpleFigure Tool
Propósito do framework Apresentar o nome da Figura no console.
Como usar os fundamentos do framework Definir as figuras que serão utilizadas pela aplicação.
Propósito das aplicações: exemplos Slides anteriores.
Design do framework Slides anteriores e próximo slide.
[Johnson92]
![Page 32: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/32.jpg)
Colaboração
2010Frameworks32
![Page 33: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/33.jpg)
Frameworks
Processo de Desenvolvimento
![Page 34: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/34.jpg)
Desenvolvimento de um Framework
Análise daaplicação Design Aplicação
Análise dodomínio
Frameworkdesign Aplicação 1
Aplicação 2
Aplicação n
................
Desenvolvimento tradicional orientado a objetos
Desenvolvimento de aplicações baseado em frameworks
2010Frameworks34
![Page 35: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/35.jpg)
Processo de Desenvolvimento Processo baseado na experiência
Processo baseado na análise do domínio
Processo utilizando design patterns
Caso geral
2010Frameworks35
![Page 36: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/36.jpg)
Processo de desenvolvimento baseado na experiência
Desenvolvimento daAplicação
Desenvolvimento doFramework
1. Elementos em Comum
2. Experiência
Inicio do desenvolvimento de n aplicações
1. Re - desenvolver as n aplicações usando o Framework
2. Desenvolver as aplicações n+1,n+2, ... usando o Framework
Atividade de manutenção usando a experiência
2010Frameworks36
![Page 37: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/37.jpg)
Processo de desenvolvimento baseado na análise de domínio
Desenvolvimento daAplicação
Desenvolvimento doFramework
Análise do Domínio
1. Identificar abstrações eelementos em comum
2. Usar3. Experiência
4. Atividade de manutençãousando a experiência
2010Frameworks37
![Page 38: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/38.jpg)
Processo de desenvolvimento utilizando design de patterns
Desenvolvimento daAplicação
Desenvolvimento doFramework
4. Atividade de manutenção
usando a experiência
2. Usar3. Experiência
Desenvolver a primeiraaplicação
Conjunto de Design Patterns
1. Aplicação sistemática
2010Frameworks38
![Page 39: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/39.jpg)
Processo de desenvolvimento – Caso Geral
Testar o Frameworkdesenvolvendo de Aplicações
Desenvolvimento doFramework
3. Atividade de manutençãousando a experiência
1. Usar2. Erros e Experiência
Análise do domínio doproblema
2010Frameworks39
![Page 40: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/40.jpg)
Cuidado!
Abstração 2
Escopo1
+ fácil utilizar
- abrangente
+ facil desenvolver
- fácil utilizar
+ abrangente
- fácil desenvolver
1 - Quantidade de classes envolvidas2 - Quantidade de pontos de extensão envolvidos
2010Frameworks40
![Page 41: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/41.jpg)
Frameworks
Classificação
![Page 42: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/42.jpg)
Quanto ao escopo
Infra-estrutura System infrastruture frameworks
Integração Middleware integration frameworks
Corporativos Enterprise application frameworks
[Fayad99]
2010Frameworks42
![Page 43: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/43.jpg)
Infra-estrutura
Frameworks de infraestrutura simplificam o desenvolvimento de sistemas portáteis e eficientes como sistemas operacionais, comunicações e interface com o usuário. Em geral, são usados internamente como um
software da organização e não são vendidos para clientes diretamente.
2010Frameworks43
![Page 44: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/44.jpg)
Integração São comumente utilizados para integrar
sistemas distribuídos permitindo a troca de dados entre sistemas heterogêneos. São projetados para aumentar a habilidade de
desenvolvimento de software de infra-estrutura para trabalharem similarmente em um ambiente distribuído.
Ex. Corba,DCOM, DSOM
2010Frameworks44
![Page 45: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/45.jpg)
Corporativos Estes frameworks são direcionados para
amplos domínios de aplicação como telecomunicações, manufatura e finanças. Ex. SAP e seus milhares pontos de flexibilização.
2010Frameworks45
![Page 46: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/46.jpg)
Quanto à técnica de extensão WhiteBox
BlackBox
GrayBox
2010Frameworks46
![Page 47: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/47.jpg)
Whitebox Fortemente ligado às características de
linguagens OO: Herança e classes abstratas.
O reuso e a extensão das funcionalidades existentes são feitos através da criação de novas classes utilizando herança e implementação de métodos.
O usuário do framework deve entendê-lo muito bem para que possa criar uma instância.
2010Frameworks47
![Page 48: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/48.jpg)
Exemplo: herança
A B
TriggerEfetuador
Sensor
1
2Cerveja
opacidade
3
4
Cervejaopacidade
Item
Frangopeso
2010Frameworks48
![Page 49: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/49.jpg)
Blackbox
Instanciados a partir de scripts ou de algum tipo de configuração: XML Wizard Gráfico
Para produzir uma instância o usuário do framework não precisa entender detalhes internos apenas a interface.
Promovem menos flexibilidade que os frameworks do tipo whitebox.
2010Frameworks49
![Page 50: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/50.jpg)
Componentes Frameworks com estas características
(blackbox) são comumente chamados de Componentes [Mattson2000].
2010Frameworks50
![Page 51: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/51.jpg)
Graybox Criado para evitar as desvantagens presentes
nos frameworks whitebox e blackbox.
Permitem um certo grau de extensibilidade sem a necessidade de se expor informações internas. Frameworks visuais como o Borland VCL são exemplos, pois permitem instanciação a partir da ligação de componentes e ainda provêm parametrização via herança.
2010Frameworks51
![Page 52: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/52.jpg)
Classificação de Frameworks por técnicas de extensão
2010 Frameworks 52
![Page 53: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/53.jpg)
Instanciação
blackbox
whitebox
Conectando componentes já existentes:
• Reutiliza a interface do framework.
• Reutiliza regras para a conexão dos componentes.
Criando novas sub-classes concretas:
• Sub-classes são bem acopladas à super-classe
• É necessário ter um maior conhecimento das classes abstratas.
• Adicionando novas operações e variáveis.
2010Frameworks53
![Page 54: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/54.jpg)
Instanciação WhiteBox
2010Frameworks54
![Page 55: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/55.jpg)
Instanciação Blackbox
2010Frameworks55
![Page 56: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/56.jpg)
Frameworks
Frameworks vs Outras Abordagens
![Page 57: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/57.jpg)
Framework vs Outras Abordagens Abordagens de reutilização de software:
Design Pattern Biblioteca de classes Uma aplicação orientada a objeto Linhas de Produto de Software
2010Frameworks57
![Page 58: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/58.jpg)
Design Pattern
Design patterns são mais abstratos do que um framework.
Frameworks estão sempre relacionados a um domínio de aplicação, enquanto patterns são mais genéricos e podem ser aplicados a vários domínios de aplicação.
Design patterns possuem uma arquitetura menor do que um framework. Um framework pode conter vários patterns, no entanto o
oposto não se aplica.2010Frameworks58
![Page 59: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/59.jpg)
Biblioteca de classes
São um conjunto de classes relacionadas que tem funcionalidades de propósito geral. Suas classes não necessariamente estão relacionadas a
um domínio de aplicação específico, como no caso das classes de um framework.
A diferença é o grau de reutilização e o seu impacto na arquitetura da aplicação.
Uma classe em uma biblioteca é reutilizada sozinha, enquanto uma classe de um framework é reutilizada juntamente com as outras em uma instanciação.
2010Frameworks59
![Page 60: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/60.jpg)
Hollywood Principle O fluxo de controle é inverso quando se
utiliza um Framework. “don't call us, we'll call you” call backs ou herança O framework é quem tem a thread principal de
execução Na utilização de bibliotecas, quem
controla as interações com o artefato reutilizável é o artefato reutilizador.
2010Frameworks60
![Page 61: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/61.jpg)
Uma aplicação orientada a objeto
Aplicação: Descreve um programa executável completo
que atende a todos os requisitos de uma especificação.
Framework: Captura as funcionalidades de diversas
aplicações de um domínio. Não é executável:
Não cobre o comportamento de uma aplicação específica
2010Frameworks61
![Page 62: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/62.jpg)
Linha de Produto de Software
LPS: É um conceito de marketing que relaciona
produtos afins com objetivo melhorar as vendas/lucros.
Framework: É um conceito de engenharia (de software) que
pode ser utilizado para apoiar uma LPS. Arquitetura de Referência.
2010Frameworks62
![Page 63: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/63.jpg)
Frameworks
Trade–offs
![Page 64: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/64.jpg)
Vantagens Modularidade
Reusabilidade
Extensibilidade
Inversão de Controle
Reuso de Design
2010Frameworks64
![Page 65: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/65.jpg)
Modularidade
Frameworks melhoram a modularidade de um design através do encapsulamento de detalhes de implementação por trás de interfaces estáveis. Esta modularidade torna possível incrementar a qualidade do software, uma vez que os impactos causados por alterações de design e implementação são localizados, reduzindo o esforço necessário para o entendimento e manutenção do software existente.
2010Frameworks65
![Page 66: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/66.jpg)
Reusabilidade As interfaces estáveis de um framework
incentivam reusabilidade uma vez que definem um componente genérico que pode ser re-aplicado para criar novas aplicações. Esta reusabilidade carrega o conhecimento em um domínio e o esforço prévio de desenvolvedores experientes, para evitar re-criação e re-validação de soluções comuns presentes em requisitos de aplicações recorrentes.
2010Frameworks66
![Page 67: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/67.jpg)
Extensibilidade Frameworks aprimoram extensibilidade
através da definição de pontos de extensão que permitem a uma aplicação estender suas interfaces estáveis. Estes pontos de extensão permitem o desacoplamento sistemático da parte fixa do framework, presente no domínio da aplicação, da parte variável introduzida pelo processo de instanciação.
2010Frameworks67
![Page 68: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/68.jpg)
Resumindo
pontos deflexibilização
Incremento da aplicação
Framework Aplicação
Parte oriunda doframework
Componentesmodulares
Organizaçãodas partes
1) Modilaridade - O usuário doframework só alltera os pontos deflexibilização.
2) Reuso - Grande parte do código/design da aplicação final vem doframework.
3) Extensibilidade - Pontos deflexibilização permitem acustomização do framework
2010Frameworks68
![Page 69: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/69.jpg)
Inversão de Controle (WB) Uma novidade trazida pela reutilização de
frameworks é a possibilidade da inversão do fluxo de controle, isto é, quem comanda o fluxo de execução principal do programa é o artefato reutilizável e não o artefato reutilizador.
Este conceito permite que uma aplicação especifique seu funcionamento como um todo, principalmente no que se refere à coordenação de seus componentes principais. Em abordagens convencionais como as encontradas na reutilização de bibliotecas e componentes o artefato reutilizável é passivo, o que torna seu desenvolvimento muito mais complexo uma vez que o contexto em que este artefato será inserido é totalmente desconhecido pelo seu projetista.
2010Frameworks69
![Page 70: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/70.jpg)
Inversão de Controle A inversão de controle está intimamente ligada
aos mecanismos de extensão presentes em linguagens orientadas a objetos nos quais frameworks se baseiam.
Estes mecanismos, como polimorfismo e late-binding, permitem que objetos “executem” um código a ser definido futuramente pelo desenvolvedor da aplicação, durante o processo de instanciação. Esta execução se dá através de um protocolo bem definido, normalmente especificado pelo mecanismo de herança. É esta inversão de controle que, em última análise, possibilita a criação dos esqueletos de aplicação mencionados por Johnson [Johnson88].
2010Frameworks70
![Page 71: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/71.jpg)
Inversão de Controle
FrameworksArtefatoReutilizável
ArtefatoReutilizador
Bibliotecas
Aplicação Aplicação
ReusoPassivo
ReusoAtivo
2010Frameworks71
![Page 72: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/72.jpg)
Reuso de Design
Frameworks oferecem reutilização de código e design o que facilita a transferência de conhecimento/experiência de alto nível ao reutilizador do framwork.
2010Frameworks72
![Page 73: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/73.jpg)
Desvantagens Esforço de Desenvolvimento
Curva de Aprendizado
Integrabilidade
Manutenibilidade
Eficiência
2010Frameworks73
![Page 74: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/74.jpg)
Esforço de Desenvolvimento Uma vez que o desenvolvimento de
sistemas complexos é difícil, o desenvolvimento destes sistemas de forma abstrata tendo em mente reutilização é ainda mais difícil. É necessário além de tempo, o auxílio de especialistas no domínio para o qual frameworks está sendo desenvolvido bem como uma boa dose de criatividade.
2010Frameworks74
![Page 75: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/75.jpg)
Curva de Aprendizado Um problema comum no processo de reutilização
é o tempo necessário para se tornar capacitado para obter vantagens desta reutilização. Quando tratamos de frameworks isto não é diferente.
Foi constatado em [Fayad99a] que são necessários de 6 a 12 meses para um desenvolvedor se tornar produtivo na utilização de frameworks para interfaces gráficas como MFC [Mfc]. Sendo assim a menos que o custo de aprendizagem seja amortizado por vários projetos ou que o ganho de produtividade e qualidade sejam expressivos, este investimento não se tornará atraente.
2010Frameworks75
![Page 76: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/76.jpg)
Integrabilidade A maioria dos frameworks são
desenvolvidos exclusivamente para o propósito de extensão e não integração com outros artefatos de software. Sendo assim problemas difíceis de serem solucionados, como, por exemplo, quem comanda do fluxo de controle da aplicação final, podem surgir e dificultar este processo de integração. Este tipo de problema é muito comum quando se tenta integrar frameworks[Mattsson00][Garlan96].
2010Frameworks76
![Page 77: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/77.jpg)
Manutenibilidade Como todo artefato de software, seus
requisitos iniciais evoluem no tempo, obrigando a criação de novas versões do framework. Sendo assim, as aplicações instanciadas a partir de um dado framework também devem evoluir com a finalidade de se manterem de acordo com a especificação do framework. Entretanto, uma vez gerada, esta aplicação “perde” o vínculo com o framework.
2010Frameworks77
![Page 78: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/78.jpg)
Eficiência Frameworks promovem extensibilidade
empregando níveis de indireção adicionais através de mecanismos como polimorfismo e late-binding, presentes em linguagens orientadas a objetos. Esta indireção usualmente provoca queda na eficiência do código final, uma vez que chamadas adicionais a tabelas virtuais de métodos serão necessárias para executar uma determinada tarefa.
Sistemas com restrições de tempo, como telecomunicações, precisam de ferramentas adicionais para gerar/transformar o código instanciado a partir do framework, de forma eficiente na plataforma alvo [Carvalho98].
2010Frameworks78
![Page 79: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/79.jpg)
Exemplos de Framework Agenda
VMarket
Junit
JBOSS – Hibernate, Seam, JPDL
Eclipse – Pluggins
J2EE/ .NET2010Frameworks79
![Page 80: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/80.jpg)
Agenda - Descrição Serviço de agenda eletrônica para a WWW
O serviço conta com as seguintes facilidades: cadastro do usuário registro em eventos da agenda
tarefas, compromissos, aniversários e programas de TV (disponibilizados futuramente).
eventos registrados podem possuir alarmes para lembrar ao usuário da sua ocorrência
alarmes meios de comunicação
Hotspots Canais de de comunicação tipos de eventos
2010Frameworks80
![Page 81: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/81.jpg)
Agenda - Diag. de Classe do Framework
NewClass
Sistema
Usuário Evento
0..*1
Alarme
0..*1
Canal1..*
11 0..* 1 0..*
1
1..*
NewClass
Hotspot
2010Frameworks81
![Page 82: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/82.jpg)
Agenda - Diag. Classe da Aplicação
CompromissoTarefa
Canal
Alarme
1
1..*
1
1..*
Evento
1 0..*1 0..*
Usuário
1 0..*1 0..*
Sistema
Aniversario
Celular
2010Frameworks82
![Page 83: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/83.jpg)
VMarket - Descrição Framework para sistemas de comércio eletrônico voltados para
Mercados Virtuais mediados por Agentes de Software
Descrição do item
Agentes de compra
Agentes de venda
Negociação do item entre um agente de compra e um de venda
Hot-spots item estados do agente tipos de agentes estratégia de negociação
2010Frameworks83
![Page 84: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/84.jpg)
VMarket - Descrição
INT
ER
FA
CE
MARKETPLACE SERVER
C om puter
W orksta tion
Laptop
PD A
Agente
Negócios são fechados dentro domarketplace através da intermediação de agentes
2010Frameworks84
![Page 85: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/85.jpg)
VMarket - Item Exemplo em XML de uma descrição de item
2010Frameworks85
![Page 86: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/86.jpg)
VMarket - Diag. de Classe
Hotspot
2010Frameworks86
![Page 87: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/87.jpg)
JUnit JUnit is a testing framework written by Erich
Gamma and Kent Beck. It is used by the developer who implements unit tests in Java.
2010Frameworks87
![Page 88: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/88.jpg)
JUnit Design
2010Frameworks88
![Page 89: Frameworks Orientados a Objetos. Agenda Crash Course! Um problema Conceitos Classificação Framework vs Outras Abordagens Processo de desenvolvimento Documentação/Instanciação](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10d497959413d8c4427/html5/thumbnails/89.jpg)
JUnit – Como Utilizar http://junit.sourceforge.net/doc/testinfected/
testing.htm
2010Frameworks89