Alexandre Eiki Onishi Supervisor(IME): Prof. Siang Wun Song

Slides:



Advertisements
Apresentações semelhantes
3/24/2017 7:59 AM © 2005 Microsoft Corporation. All rights reserved.
Advertisements

Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Banco de Dados Aula 01: Conceitos Básicos
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
Computação: Cursos, Atuação e Interação Profissional Marcos José Santana Departamento de Ciências de Computação e Estatística ICMC-USP - São Carlos.
D i r e i t o s R e s e r v a d o s a o C P q D Outubro/2002 Arquitetura de Desenvolvimento OO e Java DSB – Diretoria de Soluções em Billing.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
CCS – Centro de Componentes Semicondutores Luiz Carlos Moreira/Jacobus W. Swart ASIC´s – Application Specific Integrated Circuits.
Extreme Programmig Programação em Duplas Dificuldades e Benefícios.
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
UML - Unified Modeling Language
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Sistemas Operacionais
Aplicações da informática na administração e assistência
Balanced Scorecard (BSC)
Gustavo Vieira Pereira
Compressão por Hardware
Governo do Estado do Tocantins Secretaria da Educação e Cultura
Webcast Gestão da Manutenção Histórico de Aplicações e Manutenções.
Servidores e Programação Web Redes de Computadores.
Supply Chain Management
O Fluxo de Testes © Alexandre Vasconcelos
Introdução Software para Laboratórios de Análises Clínicas
Planejando seu site Objetivos Abordagem Sílvia Dota.
Metodologias de Construção de Sites
UNIVERSIDADE FEDERAL DE SANTA CATARINA PPGEP - Jornalismo On-line
Curso de Engenharia Industrial Madeireira – UFPR Prof. Umberto Klock
Sarajane Marques Peres
Arquitetura de Sistemas de Informação
ENCONTRO NACIONAL DE TECONOLOGIA DA INFORMAÇÃO PARA OS MUNICÍPIOS e do SOFTWARE PÚBLICO BRASILEIRO 1º Encontro Banco de Talentos.
Sistema Integrado de Gestão de Serviços de Saneamento GSAN
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
CSC E-CNS CE-235 Sistemas Embarcados de Tempo Real 2° Semestre de 2006 Componente de Software de Computador de Comunicação, Navegação, Vigilância CSC E-CNS.
Segurança de Dados no MAER.
Gerenciamento de Dados Instituto Tecnológico da Aeronáutica – ITA CE-245 Tecnologias da Informação Professor Adilson Marques da Cunha Aluna: Michelle.
Gestão Estratégica de Pessoas para Construção de Resultados.
Organização e Redução de Custos
REALINHAMENTO ESTRATÉGICO E RECOMENDAÇÕES AO ATUAL MODELO DE GESTÃO Conclusão do Projeto Companhia de Desenvolvimento dos Vales do São Francisco e do Parnaíba.
III – Uso Infraestrutura – Empresa Digital Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
III – Uso da Infraestrutura Tecnológica Tecnologias de Informação e Comunicação em Desenvolvimento de Produtos III – Uso da Infraestrutura Tecnológica.
I – Descrição da Infraestrutura Tecnológica Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
III – Uso da Infraestrutura Tecnológica Tecnologias de Informação e Comunicação em Desenvolvimento de Produtos III – Uso da Infraestrutura Tecnológica.
I – Comunicação – Redes – Gerenciamento Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
II – Gestão da Infraestrutura Tecnológica Tecnologias de Informação e Comunicação em Desenvolvimento de Produtos II – Gestão da Infraestrutura Tecnológica.
Empreendedorismo DRUCKER ROBBINS
Conceitos e características dos Projetos
Marketing de Relacionamento
MAC 499 Trabalho de Formatura Supervisionado André Takemoto nº USP
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
BlastPhen Aluno: Ricardo Nishikido Pereira
MAC 499 Henrico Scaranello Emprego: Nov/ Hoje Universidade Anhembi-Morumbi.
Trabalho de Formatura Supervisionado – MAC499 Aluno: Danilo Toshiaki Sato Orientador: Marco Dimas Gubitoso Estágio: Mai/2002 – Dez/2003.
Content Management Aluno: Antonio José Gonzales Alves Orientador: Prof. Dr. João Eduardo Ferreira Tipo de Trabalho: Estágio Supervisionado.
M e d A d m i n. Quem é o público alvo da ideia? Profissionais vinculados à área da saúde, em particular, àqueles responsáveis pela administração de medicamentos,
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Apresentação de Estágio Supervisionado
VENDAS NO CONTEXTO DE MARKETING
METODOLOGIA DE PESQUISA EM EDUCAÇÃO INTRODUÇÃO A PESQUISA ACADÊMICA Roberval Francisco de Lima SÃO ROQUE 2006.
Unified Modeling Language
LINGUAGENS DE PROGRAMAÇÃO
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
Empreendedorismo Prof. Dr. José Dornelas.
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
Transcrição da apresentação:

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas Alexandre Eiki Onishi http://www.linux.ime.usp.br/~xandonix/mac499 Supervisor(IME): Prof. Siang Wun Song Supervisor(OPUS): Wen Hung Khang Tipo de Trabalho: Estágio Supervisionado www.opuscom.com.br

Objetivos Estruturar um conhecimento em Reuso de Software enfatizando técnicas de reuso, a fim de que fornecesse o conhecimento necessário para melhorar o processo de desenvolvimento de um software de automação bancária implementado em Java e em futuras aplicações da empresa.

Conteúdo Introdução Reuso de Software Frameworks Arquitetura Orientada a Serviços (SOA) Resultados Obtidos Sistema Opus ibank

Introdução - Demanda por software aumentou muito nas últimas décadas - Necessidade de se manter competitivo no mercado obriga as empresas a serem cada vez mais ágeis - Fazer software é difícil, lento e caro Como aumentar a produtividade no desenvolvimento de software? Trabalhe mais rápido automação, ferramentas, ambientes Melhore processos Reuse soluções previamente desenvolvidas, desenvolva para o reuso. Será que devemos começar o desenvolvimento tudo do zero de novo sempre ?

Reuso de Software Reuso de Software Reuso de Software é o processo de incorporar no desenvolvimento de um novo produto: - Código fonte - Plano de testes - Especificações, análise, modelos arquiteturais - Enfim qualquer produto gerado durante desenvolvimentos anteriores

Reuso de software Benefícios da reutilização: Aumento da produção com redução do esforço de desenvolvimento Redução dos custos e prazo de entrega Aumento da qualidade do produto Padronização da arquitetura Dificuldades : Identificação de um componente reutilizável Indiferença com relação a reutilizar seja pela falta de apoio por parte da gestão, dúvida com relação a reutilização, entre outros

Reuso de Software Desafio é como reutilizar: - Como fazer isso? - Que técnicas de reuso usar?

Reuso de Software Atualmente Técnicas para reuso Atualmente a idéia de reuso se cristalizou com: - Patterns Padrões de projeto, arquiteturais, integração, teste, ..... - Frameworks Frameworks web, mapeamento objeto relacional, injeção de dependências, testes, serviços remotos, ..... - Componentes ESBC, DBC, processos de desenvolvimento de componentes (RUP, CATALASYS, UML COMPONENTS), Tecnologia de componentes EJB, CORBA, .......

Frameworks Framework é uma técnica de reuso orientado a objeto que compreende reuso de análise, arquitetura, código, modelo de interação entre objetos e até testes. Muito reuso ! Um framework é uma aplicação quase completa, mas com ganchos para que sejam especializados mais tarde em uma aplicação específica. Ou seja provê uma infra-estrutura genérica para construção de aplicações dentro de uma família de problemas semelhantes, de forma que esta infra-estrutura genérica deve ser adaptada para geração de uma aplicação específica. O principal problema com frameworks é a sua complexidade e o tempo que se leva para aprender a utiliza-los.

Frameworks Web Frameworks que implementam o MVC e que oferecem recursos para a construção de interfaces HTML/HTTP Alguns frameworks web: JavaServer Faces, Cocoon, Struts, Webwork, Tapestry Características do Java Server Faces: - Framework de componentes que engloba componentes de interface de usuário, validação e conversão de dados. - Implementa MVC

Frameworks ORM Tratam da persistência de dados em banco Mapeiam classes em tabelas do banco de dados Garantem portabilidade do código entre bancos Frameworks ORM de mapeamento completo gratuitos: Hibernate, Apache OJB, iBATIS, JDO Características do Hibernate: - Mapeamento de objetos em tabelas através de arquivos XML - API capaz de realizar inserções, remoções, atualizações e consultas - Linguagem de seleção orientada a objetos (Hibernate Query Language) Hibernate BD Usuario.java Id Nome Descricao Usuario.xml Id_user Nome descricao Mapeamento ORM

Frameworks para Injeção de Dependência Promovem o acoplamento fraco entre componentes através de injeção de dependência - Frameworks para Dependency Injection / Lightweight containeres: Excalibur, Hivemind, NanoContainer, PicoContainer, Spring Características do Spring: Gerenciamento de transações, segurança Programação distribuída, Programação orientada a aspectos <<Interface>> Mensagem Forum <<Interface>> Mensagem Forum <<setMensagem>> MensagemImpl <<create>> Montador MensagemImpl <<create>> Figura 1-Relações sem Injeção de dependência Figura 2-Relações com Injeção de dependência

Arquiteturas Orientadas a Serviços (SOA) Lógica de negócios disponibilizada como uma coleção de serviços O desenvolvimento novas aplicações se resumiria em selecionar os serviços disponíveis e encaixa-los numa determinada seqüência de execução, de acordo com as regras de negócio a serem atendidas. Um serviço é a menor unidade de uma aplicação SOA. Representa a realização de uma tarefa dentro de um processo de negócio. Ex: verificar saldo, registrar pedido, obter cotação, entre outras. Todas as funções em SOA são agregadas como serviços reutilizáveis; Web Services é a tecnologia atual mais difundida que dá suporte a implementação deste tipo de arquitetura.

Arquiteturas Orientadas a Serviços (SOA) Uma das áreas onde arquitetura orientada a serviços mais vem sendo empregada é a integração de aplicações corporativas (EAI – Enterprise Application Integration). Figura 3 – Arquitetura de acesso a sistemas legados

Resultados Obtidos: Sistema Opus ibank - O sistema opus ibank é um software de automação bancária que visa o gerenciamento operacional entre todos os terminais da agência e além do gerenciamento de todas as informações operacionais de um banco, como transação bancária, cadastro de funcionários e gerenciamento de equipamentos da rede. - Tecnologias utilizadas: Frameworks Hibernate, Java Server Faces e Spring API Java reflection APIs de criptografia Serviços remotos: EJB, Web Services Log4J apache Commons Chain e Commons BeanUtils Programação orientada a aspectos com Aspect J

Resultados Obtidos: Sistema Opus ibank Banco de Dados Camada Recursos Segurança Módulo Cadastro Módulo Monitoração Email Módulo Controle Versão Servidor Ldap Módulo Estatística Módulo Transacional Módulo Auditoria Módulo Gerenciamento Módulo Distribuição Versão CANAIS DE ATENDIMENTO (APPLICATION FRONTENDS) MIDDLEWARE JAVA CAMADA DE RECURSOS Figura 4 – Visão Macro de Processos Sistemas Legados

Resultados Obtidos: Sistema Opus ibank Clientes Camada apresentação Data Access Objects DAO BD Hibernate Mapeamento O-R Sistemas Legados Usa Camada de recursos Façade VO IFaçade Proxy (Spring) Beans Serviço Remoto Transação JSF JSP Componentes Front Controller Backing Bean Service Locator Localiza Obtém Referencia Local ou Remota Business Delegate Value Object como valor de retorno. Chamada Delega Proxy Remoto (Spring) Intercepting Filter Filter Web Service Internet Web Browser Aplicação Terminal Apresentação + Negócios Camada Negócios + Integração Firewall Log Retorno Figura 5 – Arquitetura técnica do Servidor ibank

MAC0499-Trabalho de Formatura Alexandre Eiki Onishi http://www.linux.ime.usp.br/~xandonix/mac499 Supervisor(IME): Prof. Siang Wun Song Supervisor(OPUS): Wen Hung Khang Tipo de Trabalho: Estágio Supervisionado www.opuscom.com.br