SlideShare una empresa de 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/

Más contenido relacionado

La actualidad más candente

Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxALEXANDRELISBADASILV
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks jsandreluizlc
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoLetticia Nicoli
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeansSliedesharessbarbosa
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosFernando Dantas
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Relatório de desenvolvimento de website
Relatório de desenvolvimento de websiteRelatório de desenvolvimento de website
Relatório de desenvolvimento de websitenenhuma
 
Empreendedorismo: Startups
Empreendedorismo: StartupsEmpreendedorismo: Startups
Empreendedorismo: StartupsRenato Melo
 
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.pdfDouglas Siviotti
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
O que são Startups?
O que são Startups? O que são Startups?
O que são Startups? Bruno Perin
 

La actualidad más candente (20)

Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptx
 
Design Centrado no Ser Humano
Design Centrado no Ser HumanoDesign Centrado no Ser Humano
Design Centrado no Ser Humano
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Princípios S.O.L.I.D.
Princípios S.O.L.I.D.Princípios S.O.L.I.D.
Princípios S.O.L.I.D.
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x Nativo
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Educação corporativa
Educação corporativaEducação corporativa
Educação corporativa
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de Projetos
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Marketing pessoal 2.0
Marketing pessoal  2.0Marketing pessoal  2.0
Marketing pessoal 2.0
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Relatório de desenvolvimento de website
Relatório de desenvolvimento de websiteRelatório de desenvolvimento de website
Relatório de desenvolvimento de website
 
Empreendedorismo: Startups
Empreendedorismo: StartupsEmpreendedorismo: Startups
Empreendedorismo: Startups
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
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
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
O que são Startups?
O que são Startups? O que são Startups?
O que são Startups?
 

Destacado

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
 

Destacado (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
 

Similar 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
 

Similar 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
 

Más 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
 

Más 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 del 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