2012/01-ltp-09-arquitetura de software

Upload: helderseixas

Post on 05-Apr-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 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