SlideShare uma empresa Scribd logo
1 de 23
Criando Frameworks
Conceitos, Estratégias e Dicas
Norton Guimarães
@nortoncg
Apresentação
Prof. Me. Norton Guimarães - www.ifgoiano.edu.br
SCJA|MTA
MTAC – www.facebook.com/MTACBrazil
Override IT community – www.override.net.br
GoJava – www.gojava.org
Mas... O que é um framework?
 É um sistema incompleto;
 Pode ser adaptado;
 Reduz o esforço no desenvolvimento;
 Projeto de software reutilizável;
 Conjunto de classes cooperantes;
 Quanto a orientação:
 Orientada a objetos;
 Componentes.
 Quanto ao aspecto:
 frozen spots;
 hot spots.
(Fayad)
Existe alguma coisa assim?
Como posso começar?
Entender a diferença entre Biblioteca de
classe e Framework
Entender o Princípio de Hollywood
Diferenciar Hot spot de Frozen spot
Frozen-spot
Mas... Por que devo criar um framework?
Minha recente experiência
 Sabença
Sabença - Um arcabouço computacional para aprendizagem semi-automatizada de
ontologias a partir de textos (Dissertação de Mestrado - INF/UFG)
Minha proposta de criação de um
framework?
 1 – Defina o domínio da aplicação;
 2 – Escolha a arquitetura do framework;
 3 – Projete suas classes;
 4 – Defina a linguagem de programação
 5 – Verifique se existem outros frameworks que auxiliem em pequenas tarefas
(Reuso);
 6 – Defina as licenças de uso (Recomendação)
 7 – Registre seu software (Recomendação)
 8 – Disponibilize para uso (Recomendação)
Mas... como assim definir o domínio?
 O termo domínio, no contexto da engenharia de software, é utilizado para denotar
ou agrupar um conjunto de sistemas ou de áreas funcionais, dentro dos sistemas,
que exibem funcionalidades similares.
 A engenharia de domínio, abrange as seguintes áreas:
 Definição do âmbito (definição do domínio)
 Análise do domínio
 Desenvolvimento da arquitetura do domínio
 Construção dos componentes
(LARMAN)
Desenhe a arquitetura do framework
Projete suas classes
 Basicamente, o Projeto Orientado a Objetos.
 Definição das Classes Abstratas
 Definição das Interfaces
 Definição dos Padrões de Projeto
 Definir as associações entre as classes.
Defina a linguagem de programação
Suporte Orientação a
Objetos.
E a melhor linguagem?
Eu prefiro: C# ou Java.
Verifique se existem outros frameworks
que auxiliem em pequenas tarefas
 Existem diversos frameworks prontos.
 Não devemos reinventar a roda
 Efetivamos o Reuso de Software
 Uma boa pesquisa ajuda.
 Reduz tempo de desenvolvimento.
Defina as licenças de uso
O seu software está protegido?
 A legislação brasileira equipara os programas de computadores às obras literárias.
 Natureza jurídica de um direito autoral.
 O registro no INPI possui reconhecimento internacional.
 Garante a exploração exclusiva por 50 anos.
Disponibilize para uso
Considerações finais
 Desenvolver um Framework é um trabalho árduo.
 Requer conhecimentos avançados de programação, arquitetura de software e
padrões de projetos.
 Definição adequada do domínio.
 Reutilizar outros softwares causa dependência da aplicação.
 Procure utilizar injeção de dependência.
 Boas práticas de programação.
 Paciência e determinação é fundamental para o sucesso.
 Registre seus softwares, mostre para o mundo que você existe.
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.
 AZEVEDO, Ricardo. O seu software está protegido? Disponível em:
http://imasters.com.br/infra/seguranca/o-seu-software-esta-protegido/. Acesso
em: 01 de dez. 2015.
 BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML 2. Elsevier Brasil,
Rio de Janeiro, RJ, Brasil, 2 edition, 2008.
 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.
 GUIMARÃES, Norton C.. SABENÇA – um arcabouço computacional baseado na
aprendizagem de ontologias a partir de textos, 2015. Dissertação (Mestrado em
Ciência da Computação) – Instituto de Informática, Universidade Federal de Goiás,
Goiânia. Disponível em: <https://repositorio.bc.ufg.br/tede/handle/tede/4712>.
Acesso em: 01 dez. 2015.
 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.
AGRADECIDO!!!
Prof. Me. Norton Guimarães - www.ifgoiano.edu.br
SCJA|MTA
e-mail: nortoncg@hotmail.com
Twitter: @nortoncg
Social: facebook.com/nortoncg
Skype: nortoncg
Slide: pt.slideshare.net/nortoncg1/

Mais conteúdo relacionado

Mais procurados

Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAndré Constantino da Silva
 
Modelagem de usuários
Modelagem de usuáriosModelagem de usuários
Modelagem de usuáriosLuciana Nunes
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informáticasocrahn
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
manual-da-ufcd-0693.pdf
manual-da-ufcd-0693.pdfmanual-da-ufcd-0693.pdf
manual-da-ufcd-0693.pdfNelson Namm
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaAlgoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaEder Samaniego
 
Tecnologias de informação e comunicação
Tecnologias de informação e comunicaçãoTecnologias de informação e comunicação
Tecnologias de informação e comunicaçãoNome Sobrenome
 
SLIDE SOBRE O LIBREOFFICE
SLIDE SOBRE O LIBREOFFICESLIDE SOBRE O LIBREOFFICE
SLIDE SOBRE O LIBREOFFICELiana Évily
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfCesar Braz
 
Memorial Descritivo Residencial - Projeto II
Memorial Descritivo Residencial -  Projeto IIMemorial Descritivo Residencial -  Projeto II
Memorial Descritivo Residencial - Projeto IIMoema L. B. Afonso
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignIntrodução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignGustavo Zimmermann
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Leinylson Fontinele
 

Mais procurados (20)

Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
 
Modelagem de usuários
Modelagem de usuáriosModelagem de usuários
Modelagem de usuários
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
manual-da-ufcd-0693.pdf
manual-da-ufcd-0693.pdfmanual-da-ufcd-0693.pdf
manual-da-ufcd-0693.pdf
 
Páginas dinâmicas
Páginas dinâmicasPáginas dinâmicas
Páginas dinâmicas
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaAlgoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
 
Gestão de Obras
Gestão de ObrasGestão de Obras
Gestão de Obras
 
Tecnologias de informação e comunicação
Tecnologias de informação e comunicaçãoTecnologias de informação e comunicação
Tecnologias de informação e comunicação
 
SLIDE SOBRE O LIBREOFFICE
SLIDE SOBRE O LIBREOFFICESLIDE SOBRE O LIBREOFFICE
SLIDE SOBRE O LIBREOFFICE
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Memorial Descritivo Residencial - Projeto II
Memorial Descritivo Residencial -  Projeto IIMemorial Descritivo Residencial -  Projeto II
Memorial Descritivo Residencial - Projeto II
 
Introdução ao HTML
Introdução ao HTMLIntrodução ao HTML
Introdução ao HTML
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignIntrodução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
IV - Lelé e Aravena
IV - Lelé e AravenaIV - Lelé e Aravena
IV - Lelé e Aravena
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 

Destaque

A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL G
A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL GA EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL G
A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL GNorton Guimarães
 
A informática educativa
A informática educativaA informática educativa
A informática educativakellyadamsj
 
Uso do computador na Educação
Uso do computador na EducaçãoUso do computador na Educação
Uso do computador na EducaçãoAna Paula Campos
 
Apoio do computador e da web à atividade educativa
Apoio do computador e da web à atividade educativaApoio do computador e da web à atividade educativa
Apoio do computador e da web à atividade educativaNorton Guimarães
 
O uso do Computador na Educação a Informatica Educativa
O uso do Computador na Educação a Informatica EducativaO uso do Computador na Educação a Informatica Educativa
O uso do Computador na Educação a Informatica EducativaRichard Reinaldo
 
O Uso do Computador na Educação: a Informática Educativa
O Uso do Computador na Educação: a Informática EducativaO Uso do Computador na Educação: a Informática Educativa
O Uso do Computador na Educação: a Informática Educativahanna1994
 
História contada por paulo freire
História contada por paulo freireHistória contada por paulo freire
História contada por paulo freireEliane1964
 
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...passeiosculturais1
 
Funcionamento da lingua
Funcionamento da linguaFuncionamento da lingua
Funcionamento da linguasuuuup
 
Funcionamento da Língua
Funcionamento da Língua Funcionamento da Língua
Funcionamento da Língua Lurdes Augusto
 
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãe
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãeMaria faz bagunça - Uma história contada por Steve e escrita pela mamãe
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãeJanynne Gomes
 
Funcionamento da língua - coordenação, subordinação
Funcionamento da língua - coordenação, subordinaçãoFuncionamento da língua - coordenação, subordinação
Funcionamento da língua - coordenação, subordinaçãoLurdes Augusto
 
Chegada da primavera
Chegada da primaveraChegada da primavera
Chegada da primaveraapmm
 
Génesis;Tribute to Earth- Master Photographer Sebastiao Salgado
Génesis;Tribute to Earth- Master Photographer Sebastiao SalgadoGénesis;Tribute to Earth- Master Photographer Sebastiao Salgado
Génesis;Tribute to Earth- Master Photographer Sebastiao Salgadomaditabalnco
 
Resumo, Síntese vs Reconto
Resumo, Síntese vs RecontoResumo, Síntese vs Reconto
Resumo, Síntese vs RecontoLurdes Augusto
 
O uso do computador na escola
O uso do computador na escolaO uso do computador na escola
O uso do computador na escolaFabiolapr91
 
Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaMarco Mendes
 

Destaque (20)

A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL G
A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL GA EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL G
A EXPERIÊNCIA NA DEFINIÇÃO DE UM PROCESSO BASEADO NO MPS.BR NÍVEL G
 
A informática educativa
A informática educativaA informática educativa
A informática educativa
 
Uso do computador na Educação
Uso do computador na EducaçãoUso do computador na Educação
Uso do computador na Educação
 
Apoio do computador e da web à atividade educativa
Apoio do computador e da web à atividade educativaApoio do computador e da web à atividade educativa
Apoio do computador e da web à atividade educativa
 
Slide infor. educ.
Slide infor. educ.Slide infor. educ.
Slide infor. educ.
 
O uso do Computador na Educação a Informatica Educativa
O uso do Computador na Educação a Informatica EducativaO uso do Computador na Educação a Informatica Educativa
O uso do Computador na Educação a Informatica Educativa
 
O Uso do Computador na Educação: a Informática Educativa
O Uso do Computador na Educação: a Informática EducativaO Uso do Computador na Educação: a Informática Educativa
O Uso do Computador na Educação: a Informática Educativa
 
História contada por paulo freire
História contada por paulo freireHistória contada por paulo freire
História contada por paulo freire
 
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...
Av. Ana Costa e o cruzamento de culturas africana, árabe e alemã - Passeios C...
 
Funcionamento da lingua
Funcionamento da linguaFuncionamento da lingua
Funcionamento da lingua
 
Poemas visuais 8c
Poemas visuais 8cPoemas visuais 8c
Poemas visuais 8c
 
Funcionamento da Língua
Funcionamento da Língua Funcionamento da Língua
Funcionamento da Língua
 
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãe
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãeMaria faz bagunça - Uma história contada por Steve e escrita pela mamãe
Maria faz bagunça - Uma história contada por Steve e escrita pela mamãe
 
Funcionamento da língua - coordenação, subordinação
Funcionamento da língua - coordenação, subordinaçãoFuncionamento da língua - coordenação, subordinação
Funcionamento da língua - coordenação, subordinação
 
Chegada da primavera
Chegada da primaveraChegada da primavera
Chegada da primavera
 
Génesis;Tribute to Earth- Master Photographer Sebastiao Salgado
Génesis;Tribute to Earth- Master Photographer Sebastiao SalgadoGénesis;Tribute to Earth- Master Photographer Sebastiao Salgado
Génesis;Tribute to Earth- Master Photographer Sebastiao Salgado
 
Resumo, Síntese vs Reconto
Resumo, Síntese vs RecontoResumo, Síntese vs Reconto
Resumo, Síntese vs Reconto
 
O uso do computador na escola
O uso do computador na escolaO uso do computador na escola
O uso do computador na escola
 
Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha Crítica
 
Sebastião salgado
Sebastião salgadoSebastião salgado
Sebastião salgado
 

Semelhante a Criando Frameworks em

DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Marcelo Zeferino
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioRalph Rassweiler
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisCaio Ribeiro Pereira
 
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoApresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoRogerio P C do Nascimento
 
Apresentação da Disciplina Fundamentos da Computação
Apresentação da Disciplina Fundamentos da ComputaçãoApresentação da Disciplina Fundamentos da Computação
Apresentação da Disciplina Fundamentos da ComputaçãoRogerio P C do Nascimento
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemassauloroos01
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 

Semelhante a Criando Frameworks em (20)

DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
3 oo-concepts
3 oo-concepts3 oo-concepts
3 oo-concepts
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
 
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoApresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
 
Apresentação da Disciplina Fundamentos da Computação
Apresentação da Disciplina Fundamentos da ComputaçãoApresentação da Disciplina Fundamentos da Computação
Apresentação da Disciplina Fundamentos da Computação
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
Poo frank
Poo frankPoo frank
Poo frank
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 

Mais de Norton Guimarães

DIVERSIDADE DA ESCOLA - Meninos vestem azul
DIVERSIDADE DA ESCOLA - Meninos vestem azulDIVERSIDADE DA ESCOLA - Meninos vestem azul
DIVERSIDADE DA ESCOLA - Meninos vestem azulNorton Guimarães
 
Mini Curso - Cultura Maker e Design Thinking.pptx
Mini Curso - Cultura Maker e Design Thinking.pptxMini Curso - Cultura Maker e Design Thinking.pptx
Mini Curso - Cultura Maker e Design Thinking.pptxNorton Guimarães
 
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdf
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdfPoster - Diversidade na Escola Ulbra - Karine e Norton.pdf
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdfNorton Guimarães
 
Novas Tendências na Educação pós pandemia
Novas Tendências na Educação pós pandemiaNovas Tendências na Educação pós pandemia
Novas Tendências na Educação pós pandemiaNorton Guimarães
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.xNorton Guimarães
 
Ensino híbrido planejamento e criação de aulas
Ensino híbrido   planejamento e criação de aulasEnsino híbrido   planejamento e criação de aulas
Ensino híbrido planejamento e criação de aulasNorton Guimarães
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
A evolução histórica da EaD
A evolução histórica da EaDA evolução histórica da EaD
A evolução histórica da EaDNorton Guimarães
 
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB Norton Guimarães
 
Tutor EaD - importância e funções
Tutor EaD - importância e funçõesTutor EaD - importância e funções
Tutor EaD - importância e funçõesNorton Guimarães
 
Produção de conteúdo colaborativo em sala de aula
Produção de conteúdo colaborativo em sala de aulaProdução de conteúdo colaborativo em sala de aula
Produção de conteúdo colaborativo em sala de aulaNorton Guimarães
 
O cenário atual da ead no Brasil
O cenário atual da ead no BrasilO cenário atual da ead no Brasil
O cenário atual da ead no BrasilNorton Guimarães
 
Ensino Híbrido - Visão Geral
Ensino Híbrido - Visão GeralEnsino Híbrido - Visão Geral
Ensino Híbrido - Visão GeralNorton Guimarães
 
Avaliação da aprendizagem na EAD
Avaliação da aprendizagem na EADAvaliação da aprendizagem na EAD
Avaliação da aprendizagem na EADNorton Guimarães
 
O uso de recursos multimídia em sala de aula
O uso de recursos multimídia em sala de aulaO uso de recursos multimídia em sala de aula
O uso de recursos multimídia em sala de aulaNorton Guimarães
 
Planejamento e organização de sistemas de ead
Planejamento e organização de sistemas de eadPlanejamento e organização de sistemas de ead
Planejamento e organização de sistemas de eadNorton Guimarães
 
As políticas públicas em EaD no Brasil
As políticas públicas em EaD no BrasilAs políticas públicas em EaD no Brasil
As políticas públicas em EaD no BrasilNorton Guimarães
 
A evolução histórica da EaD no Brasil
A evolução histórica da EaD no BrasilA evolução histórica da EaD no Brasil
A evolução histórica da EaD no BrasilNorton Guimarães
 
Ferramentas para TIC na educação
Ferramentas para TIC na educaçãoFerramentas para TIC na educação
Ferramentas para TIC na educaçãoNorton Guimarães
 

Mais de Norton Guimarães (20)

DIVERSIDADE DA ESCOLA - Meninos vestem azul
DIVERSIDADE DA ESCOLA - Meninos vestem azulDIVERSIDADE DA ESCOLA - Meninos vestem azul
DIVERSIDADE DA ESCOLA - Meninos vestem azul
 
Mini Curso - Cultura Maker e Design Thinking.pptx
Mini Curso - Cultura Maker e Design Thinking.pptxMini Curso - Cultura Maker e Design Thinking.pptx
Mini Curso - Cultura Maker e Design Thinking.pptx
 
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdf
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdfPoster - Diversidade na Escola Ulbra - Karine e Norton.pdf
Poster - Diversidade na Escola Ulbra - Karine e Norton.pdf
 
Novas Tendências na Educação pós pandemia
Novas Tendências na Educação pós pandemiaNovas Tendências na Educação pós pandemia
Novas Tendências na Educação pós pandemia
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 
Ensino híbrido planejamento e criação de aulas
Ensino híbrido   planejamento e criação de aulasEnsino híbrido   planejamento e criação de aulas
Ensino híbrido planejamento e criação de aulas
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
A evolução histórica da EaD
A evolução histórica da EaDA evolução histórica da EaD
A evolução histórica da EaD
 
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB
COMÉRCIO ELETRÔNICO DE PRODUTOS VIA WEB
 
Tutor EaD - importância e funções
Tutor EaD - importância e funçõesTutor EaD - importância e funções
Tutor EaD - importância e funções
 
Produção de conteúdo colaborativo em sala de aula
Produção de conteúdo colaborativo em sala de aulaProdução de conteúdo colaborativo em sala de aula
Produção de conteúdo colaborativo em sala de aula
 
O cenário atual da ead no Brasil
O cenário atual da ead no BrasilO cenário atual da ead no Brasil
O cenário atual da ead no Brasil
 
Ensino Híbrido - Visão Geral
Ensino Híbrido - Visão GeralEnsino Híbrido - Visão Geral
Ensino Híbrido - Visão Geral
 
Avaliação da aprendizagem na EAD
Avaliação da aprendizagem na EADAvaliação da aprendizagem na EAD
Avaliação da aprendizagem na EAD
 
O uso de recursos multimídia em sala de aula
O uso de recursos multimídia em sala de aulaO uso de recursos multimídia em sala de aula
O uso de recursos multimídia em sala de aula
 
Planejamento e organização de sistemas de ead
Planejamento e organização de sistemas de eadPlanejamento e organização de sistemas de ead
Planejamento e organização de sistemas de ead
 
As políticas públicas em EaD no Brasil
As políticas públicas em EaD no BrasilAs políticas públicas em EaD no Brasil
As políticas públicas em EaD no Brasil
 
A evolução histórica da EaD no Brasil
A evolução histórica da EaD no BrasilA evolução histórica da EaD no Brasil
A evolução histórica da EaD no Brasil
 
Ferramentas para TIC na educação
Ferramentas para TIC na educaçãoFerramentas para TIC na educação
Ferramentas para TIC na educação
 

Criando Frameworks em

  • 1. Criando Frameworks Conceitos, Estratégias e Dicas Norton Guimarães @nortoncg
  • 2. Apresentação Prof. Me. Norton Guimarães - www.ifgoiano.edu.br SCJA|MTA MTAC – www.facebook.com/MTACBrazil Override IT community – www.override.net.br GoJava – www.gojava.org
  • 3. Mas... O que é um framework?  É um sistema incompleto;  Pode ser adaptado;  Reduz o esforço no desenvolvimento;  Projeto de software reutilizável;  Conjunto de classes cooperantes;  Quanto a orientação:  Orientada a objetos;  Componentes.  Quanto ao aspecto:  frozen spots;  hot spots. (Fayad)
  • 6. Entender a diferença entre Biblioteca de classe e Framework
  • 7. Entender o Princípio de Hollywood
  • 8. Diferenciar Hot spot de Frozen spot Frozen-spot
  • 9. Mas... Por que devo criar um framework?
  • 10. Minha recente experiência  Sabença Sabença - Um arcabouço computacional para aprendizagem semi-automatizada de ontologias a partir de textos (Dissertação de Mestrado - INF/UFG)
  • 11. Minha proposta de criação de um framework?  1 – Defina o domínio da aplicação;  2 – Escolha a arquitetura do framework;  3 – Projete suas classes;  4 – Defina a linguagem de programação  5 – Verifique se existem outros frameworks que auxiliem em pequenas tarefas (Reuso);  6 – Defina as licenças de uso (Recomendação)  7 – Registre seu software (Recomendação)  8 – Disponibilize para uso (Recomendação)
  • 12. Mas... como assim definir o domínio?  O termo domínio, no contexto da engenharia de software, é utilizado para denotar ou agrupar um conjunto de sistemas ou de áreas funcionais, dentro dos sistemas, que exibem funcionalidades similares.  A engenharia de domínio, abrange as seguintes áreas:  Definição do âmbito (definição do domínio)  Análise do domínio  Desenvolvimento da arquitetura do domínio  Construção dos componentes (LARMAN)
  • 13. Desenhe a arquitetura do framework
  • 14. Projete suas classes  Basicamente, o Projeto Orientado a Objetos.  Definição das Classes Abstratas  Definição das Interfaces  Definição dos Padrões de Projeto  Definir as associações entre as classes.
  • 15. Defina a linguagem de programação Suporte Orientação a Objetos. E a melhor linguagem? Eu prefiro: C# ou Java.
  • 16. Verifique se existem outros frameworks que auxiliem em pequenas tarefas  Existem diversos frameworks prontos.  Não devemos reinventar a roda  Efetivamos o Reuso de Software  Uma boa pesquisa ajuda.  Reduz tempo de desenvolvimento.
  • 18. O seu software está protegido?  A legislação brasileira equipara os programas de computadores às obras literárias.  Natureza jurídica de um direito autoral.  O registro no INPI possui reconhecimento internacional.  Garante a exploração exclusiva por 50 anos.
  • 20. Considerações finais  Desenvolver um Framework é um trabalho árduo.  Requer conhecimentos avançados de programação, arquitetura de software e padrões de projetos.  Definição adequada do domínio.  Reutilizar outros softwares causa dependência da aplicação.  Procure utilizar injeção de dependência.  Boas práticas de programação.  Paciência e determinação é fundamental para o sucesso.  Registre seus softwares, mostre para o mundo que você existe.
  • 21. 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.  AZEVEDO, Ricardo. O seu software está protegido? Disponível em: http://imasters.com.br/infra/seguranca/o-seu-software-esta-protegido/. Acesso em: 01 de dez. 2015.  BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML 2. Elsevier Brasil, Rio de Janeiro, RJ, Brasil, 2 edition, 2008.  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.
  • 22.  GAMMA, E.; JOHNSON, R.; HELM, R.; VLISSIDES, J. Padrões de Projetos: Soluções Reutilizáveis. Bookman, Porto Alegre, RS, Brasil, 2006.  GUIMARÃES, Norton C.. SABENÇA – um arcabouço computacional baseado na aprendizagem de ontologias a partir de textos, 2015. Dissertação (Mestrado em Ciência da Computação) – Instituto de Informática, Universidade Federal de Goiás, Goiânia. Disponível em: <https://repositorio.bc.ufg.br/tede/handle/tede/4712>. Acesso em: 01 dez. 2015.  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.
  • 23. AGRADECIDO!!! Prof. Me. Norton Guimarães - www.ifgoiano.edu.br SCJA|MTA e-mail: nortoncg@hotmail.com Twitter: @nortoncg Social: facebook.com/nortoncg Skype: nortoncg Slide: pt.slideshare.net/nortoncg1/

Notas do Editor

  1. (Problema)(requisitos, designs, código, documentação)
  2. MVC, Modular, Plugin, Modelo em N camadas, Orientada a Serviço, entre outros.
  3. (UML)
  4. (C#, Java, Python, C++, e etc.);
  5. (Importante)
  6. Silney Lopes – Mundo TI Brasil