Download - 2012/01-LTP-09-Arquitetura de Software
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
1/15
Linguagem e Tcnica de Programao
Tecnologia Java
Professor: Hlder Seixas LimaE-mail: [email protected]
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
2/15
Fundamentos da Arquitetura de Software eArquitetura em 3 Camadas
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
3/15
Arquitetura de Software
A Arquitetura de Software a organizaofundamental de um sistema, incluindo seuscomponentes, o relacionamento entre esses
componentes e com o ambiente e os princpiosque definem o desenho e a evoluo doscomponentes. Fonte: IEEE 1471/2000 Recommended Practice for
Architectural Description of Software-IntensiveSystems
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
4/15
Elementos ao projetar aarquitetura objetivos
requisitos funcionais e no-funcionais do software sendoprojetado;
restries
definem o contexto de uma arquitetura tornando-a vivel ouno;
alternativas
diferentes possibilidades de solues e a escolha da soluoeleita;
representaes
diferentes formas de representar a arquitetura de um sistema;
solues
descries possibilitando a construo do sistema.
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
5/15
Decomposio da arquitetura
A arquitetura consiste em projetar as partes deum software e como elas se relacionaro. Ouseja, definir a arquitetura um processo de
decomposio das partes do software,tambm chamada de componentes.
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
6/15
Arquitetura em camadas
A decomposio em camadas divide o softwareconforme funes especficas: interao com ousurio (telas), regras de negcio, persistnciade dados, etc...
Visa com a separao em camada evitarcdigos confusos e ilegveis que misturamem um mesmo arquivo cdigos relacionados tela, regras de negcio e persistncia dedados.
O grande benefcio alcanado oreaproveitamento de cdigo e baixo
acoplamento.
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
7/15
Arquitetura em 3 camadas
i
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
8/15
Padro de projeto (DesignPattern)
uma experincia estruturada de design,pronta para ser reusada para solucionarproblemas recorrentes.
Um padro de projeto define elementos,relaes e regras a serem seguidas que jtiveram sua utilidade avaliada em solues deproblemas passados.
Arquitetura em camadas um padro deprojeto.
d d j (D i
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
9/15
Padro de projeto (DesignPattern)
Um padro de projeto define: Nome; Problema; Soluo; Quando aplicar esta soluo; Consequncias.
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
10/15
Data Transfer Object - DTO
Nome: Data Transfer Object (Objeto deTransferncia de Dados);
Problema: transferncia dos dados entre as
camadas; Soluo: criar classes que representem as
entidades do domnio do sistema;
Referncia do padro:http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/transfer-object/
http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/transfer-object/http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/transfer-object/ -
7/31/2019 2012/01-LTP-09-Arquitetura de Software
11/15
Data Access Object - DAO
Nome: Data Access Object (Objeto de Acessoaos Dados);
Problema: Se precisar mudar a forma
persistncia de dados tenho que modificar osistema inteiro; Soluo: Criar objetos que isolam questes
especficas do acesso persistncia dosdados.
Referncia:http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/dao/
http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/dao/http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/patterns/dao/ -
7/31/2019 2012/01-LTP-09-Arquitetura de Software
12/15
Business Object - BO
Nome: Business Object (Objeto de Negcios); Problema: As regras de negcio ficam
misturadas com regras de tela e acesso ao
banco de dados; Soluo: Criar objetos que isolam questes
especficas das regras de negcio.
Referncia:http://www.corej2eepatterns.com/Patterns2ndEd/BusinessObject.htm
http://www.corej2eepatterns.com/Patterns2ndEd/BusinessObject.htmhttp://www.corej2eepatterns.com/Patterns2ndEd/BusinessObject.htm -
7/31/2019 2012/01-LTP-09-Arquitetura de Software
13/15
Singleton
Nome: Singleton (Filho nico) Problema: Restringir a instanciao de objetos
de uma classe a um nico objeto. Soluo: Tornar o construtor da classe como
privado e permitir acesso ao objeto atravs deum mtodo esttico.
Referncia: http://www.javabuilding.com/academy/patterns/singleton.html
http://www.javabuilding.com/academy/patterns/singleton.htmlhttp://www.javabuilding.com/academy/patterns/singleton.html -
7/31/2019 2012/01-LTP-09-Arquitetura de Software
14/15
Como funciona isso na prtica?
O objetivo agora decompor o cdigo donosso Sistema Bancrio em 3 camadasaplicando os padres de projetos conhecidos.
APRESENTAO
NEGCIO
PERSISTNCIA
-
7/31/2019 2012/01-LTP-09-Arquitetura de Software
15/15
Arquitetura proposta