Frameworks orientados a objetos. Por Sergio Crespo



Documentos relacionados
Frameworks O que é um framework?

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

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

Engenharia de software para desenvolvimento com LabVIEW: Validação

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

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

Prototype, um Design Patterns de Criação

Padrões de projeto 1

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

Frameworks. Pasteur Ottoni de Miranda Junior

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

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

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha

1Introdução Helder da Rocha

Computação II Orientação a Objetos

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Padrões GoF. Leonardo Gresta Paulino Murta

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

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

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

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

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

TRABALHO BIBLIOTECA MD5

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Desenvolvimento híbrido versus desenvolvimento nativo de aplicativos móveis

Tópicos Avançados em Engenharia de Software

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

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

BPMN Business Process Modeling Notation

Java. Marcio de Carvalho Victorino

Table 1. Dados do trabalho

Padrões. Projeto (Design) de Software

Padrões de Projeto de Software Orientado a Objetos

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Programação Orientada por Objetos

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

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

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Análise de Pontos de Função. Por Denize Terra Pimenta

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

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

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

UML Aspectos de projetos em Diagramas de classes

Tópicos em Engenharia de Computação

Modelagemde Software Orientadaa Objetos com UML

2 Diagrama de Caso de Uso

Sobre a apresentação (About(

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

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software

User interface evaluation experiences: A brief comparison between usability and communicability testing

Modelagem de Processos. Prof.: Fernando Ascani

Verificação e Validação

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

FATEsC - Uma Ferramenta de apoio ao teste estrutural de componentes

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

Design Patterns. Viviane Torres da Silva

MC536 Bancos de Dados: Teoria e Prática

Orientação a Objetos

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

DESIGN PATTERNS CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA. Prof. Cesar Augusto Tacla. UTFPR/Campus Curitiba

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

Padrões de Desenho (Design Patterns)

Um Arcabouço open source em Python para DBC com

Organização e Arquitetura de Computadores I. de Computadores

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Introdução à Programação OO

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Persistência e Banco de Dados em Jogos Digitais

Análise e Projeto Orientados por Objetos

Prova de pré-requisito

PASSO A PASSO COMO CRIAR UM NOVO PROJETO EM SCHEMATIC NO SOFTWARE QUARTUS II

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

Banco de Dados. Prof. Antonio

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Análise e Projeto Orientado a Objetos

Especificação do 3º Trabalho

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

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

PROGRAMAÇÃO EM C# COM VISUAL STUDIO.NET

PROGRAMAÇÃO MVC E ZEND FRAMEWORK

Fundamentos de Banco de Dados e Modelagem de Dados

INF011 Padrões de Projeto. 02 Creational Patterns

Conhecendo o Visual FoxPro 8.0 Parte 2

Noções de. Microsoft SQL Server. Microsoft SQL Server

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Categorias de Padrões

Transcrição:

Frameworks orientados a objetos Por Sergio Crespo

Frameworks O que é um Framework??? Um framework é um conjunto de classes que constitui um design abstrato para soluções de uma família de problemas - Johnson e Foote - 1988 Um framework é um conjunto de objetos que colaboram com o objetivo de cumprir um conjunto de responsabilidades para uma aplicação ou um domínio de um subsistema. - Johnson -1991 Uma arquitetura desenvolvida com o objetivo de se obter a máxima reutilização, representada como um conjunto de classes abstratas e concretas, com grande potencial de especialização. - Mattsson - 1996

Frameworks... Particularização n Particularização 2 Particularização 1 hot spot Kernel Framework

hot spot hot spot Framework

Framework hot spots

Input_Data Sort_Data GetData( ) SetData( ) Sort_Proc( ) Show_Vect( ) hot spot Sort_Proc --Bolha --Quicksort --etc...

Frameworks Framework vs outras abordagens Design pattern orientado a objeto. Linguagem de pattern. Biblioteca de classes. Uma aplicação orientada a objetos.

Frameworks Design Pattern orientado a objeto Design patterns são mais abstratos do que um framework. Design patterns possuem uma arquitetura menor do que um framework. Um framework pode conter vários Patterns, no entanto o oposto não se aplica. Frameworks são mais especializados do que patterns. Frameworks estão sempre relacionados a um domíno de aplicação, enquanto patterns são mais genéricos e podem ser aplicados em vários domínios de aplicação. [Mattsson - 1996]

Frameworks Linguagem de pattern Descreve como fazer um design, enquanto um framework é o próprio design. Complementam frameworks desde que ensinem aos projetistas como utilizá-lo e a descrever porque ele foi projetado desta maneira. [Mattsson - 1996]

Frameworks Biblioteca de classes São um conjunto de classes relacionadas que tem funcionalidades de propósitos gerais Suas classes não são relacionadas a um domínio de aplicação específica, como no caso de classes de um framework. A diferença é o grau de reutilização e o seu impacto na arquitetura da aplicação. Uma classe da uma biblioteca é reutilizada sozinha, enquanto uma classe de um framework é reutilizada juntamente com as outras em uma instanciação. [Mattsson - 1996]

Frameworks Uma aplicação orientada a objeto Descreve a execução um programa que atende a todos os requisitos de uma especificação. Um framework captura as funcionalidades de diversas aplicações no domínio, mas não é executável, já que não cobre o comportamento de uma aplicação específica. [Mattsson - 1996]

Frameworks Análise Design Aplicação Desenvolvimento tradicional orientado a objetos Análise do domínio Framework design Aplicação 1 Aplicação 2 processo de desenvolvimento... Aplicação n Desenvolvimento de aplicações baseado em frameworks O processo de desenvolvimento de um framework é mais difícil e trabalhoso, já que estuda se agora soluções para um conjunto de problemas de um determinado domínio. Na análise do domínio, observa se as caracteristicas comuns das diversas aplicações. Desenvolve se o framework e as diversas aplicações serão feitas a partir da instanciação do framework.

Frameworks Caracterização quanto ao Uso Um framework orientado a objetos pode ser usado de duas formas: Derivando se as classes do framework. ( architecture-driven ou inheritance-focused ou white box ) Combinado classes existentes. ( data-driven ou composition-focused ou black box ).

Frameworks Diretrizes de desenvolvimento Existe um pequeno número de diretrizes para o desenvolvimento de framework. Uma das mais importantes que se deve ter em mente quando se está desenvolvendo um framework é como criar a interação entre o framework e o seu usuário, de maneira que a sua instanciação seja feita sem muito esforço. O foco deverá estar em como o usuário interaje com o framework. Quando o usuário for desenvolver uma aplicação instanciando o framework, é necessário determinar quais os passos que serão realizados pelo framework e quais serão realizados pelo usuário.

Frameworks Diretrizes de desenvolvimento É importante identificar quais as classes e operações do framework que o usuário terá que utilizar. A quantidade de código escrita deverá ser reduzida a um mínimo, e isto é possível pelos seguintes motivos: Implementações concretas do framework que poderão ser utilizadas sem nenhuma modificação. O número de classes que devem ser derivadas devem ser reduzidas ao menor número possível.

Como instanciar um framework Formas de se instanciar um framework. Conectando componentes já existentes reutiliza a interface do framework reutiliza regras para a conexão dos componentes Criando novas sub-classes concretas as sub-classes são bem acopladas a super-classe é necessário ter um maior conhecimento das classes abstratas

Frameworks Documentação de Frameworks Público X Documentação Propósito do Aplicações de Como Utilizar Framework Exemplo Decisão de Uso X Utilização X X X Manutenção X X X

Frameworks - exemplos ET++ UniDraw HotDraw

ET++ Framework ET++: A Portable Application Framework André Weinand Erich Gamma ET++ is a portable application framework, used to make platform-independent GUI-based application programs, at The University of Illinois at Urbana-Champaign.

Arquitetura

exemplo1

exemplo2

exemplo3

Unidraw Framework Unidraw: a framework for building domain specific graphical editors John Vlissides / IBM Unidraw é um framework C++ para a criação de editores gráficos customizáveis que usa a bliblioteca IterViews. http://www.vectaport.com/pub/doc/unidraw.ps

O que é o Unidraw Unidraw é um framework para a criação de editores gráficos orientados a objetos para domínios como desenho técnico e artístico, composição de músicas e design de circuitos eletrônicos. A arquitetura Unidraw simplifica a construção desses editores provendo níveis de abstrações que são comuns aos vários domínios.

Unidraw O uso do framework Unidraw busca alcançar os três pontos básicos a seguir : Dá suporte a uma variedade de editores de objetos gráficos para vários domínios; Diminui significativamente o tempo para desenvolver um editor específico comparado com uma implementação especialista (voltada especificamente para um determinado domínio); Pode ser usado para criar editores stand alone com performance e utilidade comparáveis àqueles desenvolvidos especificamente.

Abstrações do Unidraw Unidraw define quatro abstrações básicas : Componentes (components) : encapsulam a aparência e a semântica dos objetos de um domínio; Ferramentas (tools) : provêm a manipulação direta dos componentes; Comandos (commands) : definem as operações dos componentes e objetos; Representação externa (external representation) : define como será o arquivo de saída gerado pelo editor.

UniDraw Framework

Unidraw exemplo 1

Unidraw exemplo 2

Unidraw exemplo 3

HotDraw Framework

HotDraw Framework HotDraw is a two-dimensional graphics framework for structured drawing editors that is written in VisualWorks Smalltalk. It has been used to create many different editors from CASE tools to a HyperCard clone. You can easily create new figures and special manipulation tools for your drawings. Unlike many other drawing editors, HotDraw drawings can be animated. http://st-www.cs.uiuc.edu/users/brant/hotdraw/

HotDraw Framework

HotPaint - HotDraw The HotPaint program is a simple painting program. This program shows how to create new figures, as well as, how to create new tools.

Hotdraw The DrawingInspector program is a visual inspector for Smalltalk. Objects in Smalltalk are represented by figures, and references between objects are represented by directed lines.

HotDraw The MovingDrawing program is a simple animated program. You can draw rectangles. The rectangles move closer to each other until they come together in some central location. This program can be useful to learn how to animate drawings.

HotDraw The NetworkEditor program uses animation to solve the n body problem. You specify the nodes and the weights between the nodes in the bottom part of the window, and the top part displays the nodes. The editor also allows you to move the nodes if they reach a stable but un optimal positioning.

ObjectWorld - HotDraw The ObjectWorld program can be used for teaching some Smalltalk basics. You can draw figures in the bottom of the window, and animate them by entering Smalltalk commands in the top part of the window.

PERTChart - HotDraw The PERTChart program allows you to create and edit PERT charts. You can create new PERT figures and specify their name and start date. Their ending date will be automatically computed.