Frameworks O que é um framework?



Documentos relacionados
Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Padrões. Projeto (Design) de Software

Padrões de projeto 1

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

Análise e Projeto Orientados a Objeto

Padrão Básico de Projeto: Interfaces e Polimorfismo

Prototype, um Design Patterns de Criação

Frameworks. Viviane Torres da Silva

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Tratamento de Eventos

2 Diagrama de Caso de Uso

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Projeto de Arquitetura

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Engenharia de Software I

Introdução à Plataforma Eclipse. Leandro Daflon

Orientação à Objetos. Aécio Costa

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

MVC e Camadas - Fragmental Bliki

Factory Method. Edeyson Andrade Gomes

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Padrão Arquitetura em Camadas

REQUISITOS. Prof. Msc. Hélio Esperidião

PHC Serviços CS. A gestão de processos de prestação de serviços

Prof.ª Esp. Talita Pagani

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Técnicas de Programação II

Categorias de Padrões

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

PMONow! Serviço de Implantação de um Escritório de Projetos

Tópicos Avançados em Engenharia de Software

Prof. Roberto Desenvolvimento Web Avançado

Módulo 07 Características Avançadas de Classes

Atividade: COBIT : Entendendo seus principais fundamentos

Frameworks - Grails. Aécio Costa

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Introdução ao OpenUP (Open Unified Process)

PHC Serviços CS. A gestão de processos de prestação de serviços

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Documento de Arquitetura

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas

Programação Orientada a Objetos. Padrões de Criação

2 Geração Dinâmica de Conteúdo e Templates de Composição

Teste de Software. Profa. Cátia dos Reis Machado

Curso de Aprendizado Industrial Desenvolvedor WEB

Padrão Básico de Projeto: Herança versus Composição

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

2 Engenharia de Software

O Processo de Desenvolvimento de Software

Relatório do GPES. Arquitetura Geral do Framework

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Análise e Projeto Orientados por Objetos

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Visão Geral de Sistemas Operacionais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

3 SCS: Sistema de Componentes de Software

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

Padrões de Projeto de Software Orientado a Objetos

Frameworks orientados a objetos. Por Sergio Crespo

Principais Comandos SQL Usados no MySql

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

IBM Software Demos The Front-End to SOA

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Curso - Padrões de Projeto Módulo 1: Introdução

Entendendo como funciona o NAT

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Comparação da Metodologia TenStep PGP (Processo de Gerenciamento de Projetos), com o Guia PMBOK 4ª Edição - PMI

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Padrões de Projeto. Prof. Jefersson Alex dos Santos

Introdução à Engenharia de Software

Definições: quando usar cada um?

HISTÓRIAREAL. Como o Rodrigo passou do estresse total para uma vida mais balanceada. Rodrigo Pinto. Microsoft

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br

Processo de Desenvolvimento de Software. Engenharia de Software.

Histórico: Linha de Produção. Linha de Produtos de Software. Reuso vs. Customização. Mercado Competitivo. Linha de Produtos de Software

Dadas a base e a altura de um triangulo, determinar sua área.

Tópicos em Engenharia de Computação

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Arquitetura de Informação

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

WebApps em Java com uso de Frameworks

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Engenharia de Requisitos

Análise e Projeto de Sistemas

INF011 Padrões de Projeto. 02 Creational Patterns

Redes Sociais. Engajamento do Cliente Porque devo investir um tempo do meu dia em minhas redes sociais. Redes Sociais 2015.

Transcrição:

Frameworks Qual é o problema? Programar é difícil Onde está a maior dificuldade? "Interface design and functional factoring constitute the key intelectual content of software and is far more difficult to create or re-create than code" (Peter Deutsch) Mas nossos programadores são mortais "It shouldn't take a good programmer to build a good program" Solução: Temos que fornecer formas de re-uso que vão além de código: re-uso de análise, design, código. Framework orientado a objeto O que é um Framework? Um framework captura a funcionalidade comum a várias aplicações As aplicações devem ter algo razoavelmente grande em comum: pertencem a um mesmo domínio de problema Página 1 de 6

Há várias definições de frameworks (ver aqui) A definição que usamos foca quatro características principais de um framework (Orientado a Objeto): "Um framework provê uma solução para uma família de problemas semelhantes, Usando um conjunto de classes e interfaces que mostra como decompor a família de problemas, E como objetos dessas classes colaboram para cumprir suas responsabilidades, O conjunto de classes deve ser flexível e extensível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as particularidades de cada aplicação" Observe que um framework é uma aplicação quase completa, mas com pedaços faltando Ao receber um framework, seu trabalho consiste em prover os pedaços que são específicos para sua aplicação As técnicas básicas são Template Method e Composição Diferenças entre um Framework e uma Biblioteca de Classes OO Numa biblioteca de classes, cada classe é única e independente das outras Página 2 de 6

Num framework, as dependências/colaborações estão embutidas (wired-in interconnections) Com biblioteca, as aplicações criam as colaborações Vê-se portanto que um framework impõe um modelo de colaboração (o resultado da análise e design) ao qual você deve se adaptar Já que a comunicação entre objetos já está definida, o projetista de aplicações não precisa saber quando chamar cada método: é o framework que faz isso Não se pode embutir conhecimento do domínio (análise + design) numa biblioteca de classes O framework é usado de acordo com o Hollywood Principle ("Don't call us, we'll call you") É o framework que chama o código da aplicação (que trata das particularidades dessa aplicação) Framework = Upside-down library Página 3 de 6

Exemplo do Hollywood Principle Modelo de eventos em Java/AWT AWT é um framework No código abaixo, mouseclicked() e mousepressed () são chamados pelo framework (AWT) public class MeuMouseListener implements MouseListener { public void mouseclicked(mouseevent event) { } public void mousepressed(mouseevent event) { } } MeuMouseListener mouselistener = new MeuMouseListener(); JButton meubotão = new JButton("clique aqui"); // O seguinte método estabelece a interação entre o objeto // meubotão e o objeto mouselistener meubotão.addmouselistener(mouselistener); A diferença entre um framework e uma biblioteca de classes não é binária Página 4 de 6

Diferenças entre Frameworks e Design Patterns Aparentemente, os dois consistem de classes, interfaces e colaborações prontas As diferenças são: Design patterns são mais abstratos do que frameworks Um framework inclui código, um design pattern não (só um exemplo do uso de um pattern) Devido à presença de código, um framework pode ser estudado a nível de código, executado, e reusado diretamente Design patterns são elementos arquiteturais menores do que frameworks Um framework típico contém vários design patterns mas o contrário nunca ocorre Exemplo: Design patterns são frequentemente usados para documentar frameworks Design patterns são menos especializados do que frameworks Frameworks sempre têm um domínio de aplicação particular enquanto design patterns não ditam uma arquitetura de aplicação particular Características Básicas de Frameworks Página 5 de 6

Um framework deve ser reusável É o propósito final! Para ser reusável, deve primeiro ser usável Bem documentado Fácil de usar Deve ser extensível O framework contém funcionalidade abstrata (sem implementação) que deve ser completada Deve ser de uso seguro O desenvolvedor de aplicações não pode destruir o framework Deve ser eficiente Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência Deve ser completo Para endereçar o domínio do problema pretendido frame-1 programa próxima Página 6 de 6