Apresentação do PowerPoint - Rede Linux IME-USP

Propaganda
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:
Hibernate
Usuario.java
Id
Nome
Descricao
Usuario.xml
Id_user
Nome
descricao
Mapeamento
ORM
BD
- 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)
Frameworks para Injeção de Dependência

Promovem o acoplamento fraco entre componentes através de
injeção de dependência
Forum
<<Interface>>
Mensagem
<<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
- 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
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
Módulo Cadastro
Banco de
Dados
Módulo Monitoração
Email
Módulo Estatística
Servidor
Ldap
Módulo Transacional
Módulo Auditoria
Módulo Gerenciamento
Módulo Distribuição Versão
CANAIS DE ATENDIMENTO
(APPLICATION FRONTENDS)
Figura 4 – Visão Macro de Processos
MIDDLEWARE JAVA
CAMADA DE RECURSOS
Sistemas
Legados
Camada Recursos
Segurança
Módulo Controle Versão
Resultados Obtidos: Sistema Opus ibank
Camada apresentação
Front
JSP
Controller
Componentes
JSF
JSF
JSF
Backing Bean
Usa
VO
Intercepting Filter
Camada Negócios + Integração
Service
Locator
IFaçade
Localiza
IFaçade
Delega
Obtém
Referencia
Local
Business
ou Remota
Delegate
BDBDBD
Filter
Filter
Filter
Chamada
VO
VO
VO
Value Object
como valor de
retorno.
Proxy Remoto
(Spring)
Usa
Data Access
Objects
DAO
DAO
DAO
Usa
Usa
Hibernate
Mapeamento O-R
Chamada
Clientes
Log
Façade
VO
Internet
Web Browser
Proxy (Spring)
Beans
Serviço
Serviço
Serviço
Remoto
Transação
Aplicação
Terminal
Apresentação
+
Negócios
Web
Service
Firewall
Retorno
BD
Sistemas
Legados
Camada de recursos
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
Download