SlideShare uma empresa Scribd logo
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

PMO - Escritório de Projetos | Workshop
PMO - Escritório de Projetos | WorkshopPMO - Escritório de Projetos | Workshop
PMO - Escritório de Projetos | Workshop
CompanyWeb
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
Mauricio Cesar Santos da Purificação
 
Planejamento e Gestão de Mídias Sociais por Rafael Terra
Planejamento e Gestão de Mídias Sociais por Rafael TerraPlanejamento e Gestão de Mídias Sociais por Rafael Terra
Planejamento e Gestão de Mídias Sociais por Rafael Terra
Rafael Terra
 
Lista de verbos para projeto de pesquisa
Lista de verbos para projeto de pesquisaLista de verbos para projeto de pesquisa
Lista de verbos para projeto de pesquisa
marildabacana
 
Técnico em Redes de Computadores
Técnico em Redes de ComputadoresTécnico em Redes de Computadores
Técnico em Redes de Computadores
tiredes
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
Da orientação à apresentação do tcc
Da orientação à apresentação do tccDa orientação à apresentação do tcc
Da orientação à apresentação do tcc
profguilhermeterra
 
Dicas de apresentação TCC
Dicas de apresentação TCCDicas de apresentação TCC
Dicas de apresentação TCC
Diego Moreau
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
HealthMinds Academy
 
Experiência do usuário
Experiência do usuárioExperiência do usuário
Experiência do usuário
Victor Rubens
 
Gerenciamento de projetos - Iniciação
Gerenciamento de projetos - IniciaçãoGerenciamento de projetos - Iniciação
Gerenciamento de projetos - Iniciação
Paulo Junior
 
Como fazer uma resenha abnt
Como fazer uma resenha abntComo fazer uma resenha abnt
Como fazer uma resenha abnt
Jose Gomes DE Abreu
 
Gerenciamento da Comunicação
Gerenciamento da ComunicaçãoGerenciamento da Comunicação
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock1
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
Fabio Souza
 
Escola de Criatividade
Escola de CriatividadeEscola de Criatividade
Escola de Criatividade
EscolaDeCriatividade
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
Douglas Siviotti
 
MVP - Produto Mínimo Viável
MVP - Produto Mínimo ViávelMVP - Produto Mínimo Viável
MVP - Produto Mínimo Viável
José Bringel Filho
 
Como Elaborar Um Projeto De Pesquisa
Como Elaborar Um Projeto De PesquisaComo Elaborar Um Projeto De Pesquisa
Como Elaborar Um Projeto De Pesquisa
mauricio aquino
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
Álvaro Farias Pinheiro
 

Mais procurados (20)

PMO - Escritório de Projetos | Workshop
PMO - Escritório de Projetos | WorkshopPMO - Escritório de Projetos | Workshop
PMO - Escritório de Projetos | Workshop
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Planejamento e Gestão de Mídias Sociais por Rafael Terra
Planejamento e Gestão de Mídias Sociais por Rafael TerraPlanejamento e Gestão de Mídias Sociais por Rafael Terra
Planejamento e Gestão de Mídias Sociais por Rafael Terra
 
Lista de verbos para projeto de pesquisa
Lista de verbos para projeto de pesquisaLista de verbos para projeto de pesquisa
Lista de verbos para projeto de pesquisa
 
Técnico em Redes de Computadores
Técnico em Redes de ComputadoresTécnico em Redes de Computadores
Técnico em Redes de Computadores
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Da orientação à apresentação do tcc
Da orientação à apresentação do tccDa orientação à apresentação do tcc
Da orientação à apresentação do tcc
 
Dicas de apresentação TCC
Dicas de apresentação TCCDicas de apresentação TCC
Dicas de apresentação TCC
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
 
Experiência do usuário
Experiência do usuárioExperiência do usuário
Experiência do usuário
 
Gerenciamento de projetos - Iniciação
Gerenciamento de projetos - IniciaçãoGerenciamento de projetos - Iniciação
Gerenciamento de projetos - Iniciação
 
Como fazer uma resenha abnt
Como fazer uma resenha abntComo fazer uma resenha abnt
Como fazer uma resenha abnt
 
Gerenciamento da Comunicação
Gerenciamento da ComunicaçãoGerenciamento da Comunicação
Gerenciamento da Comunicação
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Escola de Criatividade
Escola de CriatividadeEscola de Criatividade
Escola de Criatividade
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
MVP - Produto Mínimo Viável
MVP - Produto Mínimo ViávelMVP - Produto Mínimo Viável
MVP - Produto Mínimo Viável
 
Como Elaborar Um Projeto De Pesquisa
Como Elaborar Um Projeto De PesquisaComo Elaborar Um Projeto De Pesquisa
Como Elaborar Um Projeto De Pesquisa
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 

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 G
Norton Guimarães
 
A informática educativa
A informática educativaA informática educativa
A informática educativa
kellyadamsj
 
Uso do computador na Educação
Uso do computador na EducaçãoUso do computador na Educação
Uso do computador na Educação
Ana 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 educativa
Norton Guimarães
 
Slide infor. educ.
Slide infor. educ.Slide infor. educ.
Slide infor. educ.
maria cristina
 
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
Richard 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 Educativa
hanna1994
 
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 lingua
suuuup
 
Poemas visuais 8c
Poemas visuais 8cPoemas visuais 8c
Poemas visuais 8c
José Ferreira
 
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ãe
Janynne 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ção
Lurdes Augusto
 
Chegada da primavera
Chegada da primaveraChegada da primavera
Chegada da primavera
apmm
 
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
maditabalnco
 
Resumo, Síntese vs Reconto
Resumo, Síntese vs RecontoResumo, Síntese vs Reconto
Resumo, Síntese vs Reconto
Lurdes Augusto
 
O uso do computador na escola
O uso do computador na escolaO uso do computador na escola
O uso do computador na escola
Fabiolapr91
 
Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha Crítica
Marco Mendes
 
Sebastião salgado
Sebastião salgadoSebastião salgado
Sebastião salgado
Guilherme Gonçalves
 

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 Framework - Conceitos, Estratégias e Dicas

DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
Luí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 TheWebMind
Jaydson 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) v1
Marcelo Zeferino
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Comunidade NetPonto
 
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
Ralph Rassweiler
 
Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
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
Charles Jungbeck
 
3 oo-concepts
3 oo-concepts3 oo-concepts
3 oo-concepts
Valdomiro Morais
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
elliando 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 Operacionais
Caio Ribeiro Pereira
 
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
Rogerio P C do Nascimento
 
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
Rogerio P C do Nascimento
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
sauloroos01
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
Lucas Simões Maistro
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
Rogerio P C do Nascimento
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
munosai
 
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
Giuseppe Lopes
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
Universidade Federal do Ceará
 
Poo frank
Poo frankPoo frank
Poo frank
Francelma
 
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
Ricardo Guerra Freitas
 

Semelhante a Criando Framework - Conceitos, Estratégias e Dicas (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 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
 
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
 
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 azul
Norton 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.pptx
Norton 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.pdf
Norton 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 pandemia
Norton Guimarães
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
Norton 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.x
Norton 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 aulas
Norton Guimarães
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
Norton 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 EaD
Norton 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ções
Norton 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 aula
Norton 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 Brasil
Norton Guimarães
 
Ensino Híbrido - Visão Geral
Ensino Híbrido - Visão GeralEnsino Híbrido - Visão Geral
Ensino Híbrido - Visão Geral
Norton Guimarães
 
Avaliação da aprendizagem na EAD
Avaliação da aprendizagem na EADAvaliação da aprendizagem na EAD
Avaliação da aprendizagem na EAD
Norton 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 aula
Norton 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 ead
Norton 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 Brasil
Norton 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 Brasil
Norton Guimarães
 
Ferramentas para TIC na educação
Ferramentas para TIC na educaçãoFerramentas para TIC na educação
Ferramentas para TIC na educação
Norton 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
 

Último

DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (6)

DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

Criando Framework - Conceitos, Estratégias e Dicas

  • 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