2ULHQWDomR D 2EMHWRVD 7HRULD j 3UiWLFD HP -DYD               CCUEC/Unicamp                 outubro/99
Roteiro5HXWLOL]DomR GH 3URMHWR H 6RIWZDUH 3 Design Patterns (Padrões de Projeto) 3 Frameworks 3 Componentes 3 RMI (Remote ...
Reutilização de Projeto3 HVLJQ 3DWWHUQV - padrões de projeto e análise3 )UDPHZRUNV orientados a objetos
Padrões de Projeto e Análise              3DGU}HV GH RUJDQL]DomR GH KLHUDUTXLDV GHFODVVHV SURWRFRORV H GLVWULEXLomR GH UHV...
Padrões de Projeto e AnáliseDescrição padrão de um “design pattern”      objetivo      motivação      aplicabilidade      ...
Padrões de Projeto2EVHUYHUSuponhamos uma aplicação de Administração de Solicitação de Serviços (ASS) de uma empresa presta...
Padrões de Projeto2EVHUYHU: define uma dependência de um para muitos entre objetos de tal forma             que quando um ...
Padrões de Projeto6WDWH  Suponhamos que na nossa aplicação ASS, serviços-objeto, dependendo do estado em que se encontram ...
Padrões de Projeto6WDWH: permite um objeto alterar seu comportamento quando seu estado           interno se altera. Parece...
Padrões de ProjetoRPSRVLWH   Na nossa aplicação ASS, um serviço pode ser um serviço derede, de produção, de suporte ou de ...
Padrões de ProjetoRPSRVLWH                                                   Representa hierarquias do                    ...
Padrões de Projeto5HFRQKHFLPHQWR GH XP SDGUmR GH SURMHWR
Padrões de ProjetoRPR XVDU SDGU}HV GH IRUPD HILFD] Estude os padrões aos quais você já tenha acesso Procure por conceitos ...
Padrões de Projeto9DQWDJHQV  Aumentam a produtividade dos desenvolvedores  Aumentam a consistência entre as aplicações  Sã...
FrameworksClasses abstratas funcionam como um molde para as suas                       subclasses.  Da mesma forma, um pro...
Frameworks - Visão Conceitual                          Estrutura de controle                                              ...
Frameworks - Exemplo09  0RGHO9LHZRQWUROOHUModelo: contém os dados da aplicação junto com a lógica dos negócios          qu...
Framework MVC               0RGHOR            Mudei!Mudei !               Por favor,               me passe os     9LVmR  ...
Framework MVC           0RGHOR                          Altere dados9LVmR                          RQWURODGRU         Alte...
MVC - ExemploMVC - Model/View/Controller                   0RGHOR    Visão                            Visão               ...
Reutilização de Software 3 3DFRWHV 3DFNDJHV
3 RPSRQHQWHV 3 :UDSSHUV
Packages3DFNDJHV são conjuntos de classes relacionadas entre si   de forma que ofereçam facilidades uma às outras.Java tra...
Packages$OJXQV H[HPSORV GH 3DFNDJHV HP -DYDMDYDODQJ - base da linguagem Java          (Boolean, Character, Double, Float, ...
Packages - Exemploimport java.applet.*;import java.awt.*;import java.util.Date;public class LJLWDOORFN extends java.applet...
Packages - Exemplo    public void UXQ ()    { while (true)             { theDate = new Date(); repaint();                t...
ComponentesUm componente é um pedaço de código encapsulado e    acessível apenas a partir de sua interfaceUm componente po...
Componentes           Componentes de negócio são essencialmente REMHWRV    Cada componente implementa a OyJLFD GH QHJyFLR ...
Java Beans - Componentes Java    Arquitetura Java de FRPSRQHQWHV UHXWLOL]iYHLV             independente de plataforma.Um -...
Projeto SanFrancisco - IBM
Wrappers - legacy systems    Um ZUDSSHU é um componente que fornece serviços         implementados por aplicações OHJDF.Um...
Objetos Distribuídos em Java O sistema RMI (Remote Method Invocation) permite que um     objeto rodando em uma máquina vir...
RMI - Ambiente de Execução 0iTXLQD OLHQWH                       0iTXLQD 6HUYLGRUD                                         ...
Metodologia de Desenvolvimento3   Visão geral - metodologias e UML3   Técnicas de Análise3   Projeto: Objetos, Interface e...
MetodologiaColeção de WpFQLFDV H GLUHWUL]HV para construção,manutenção e melhoria em produtos de software.Fornece uma base...
Fases Clássicas$QiOLVH GH                             ,PSOHPHQWDomR          Teste de Unidades5HTXLVLWRV                  ...
Estratégia Paralela                                                     Estudo Piloto                                     ...
Modelo Espiral                3ODQHMDPHQWR        $QiOLVH GH 5LVFRVAnálise derequisitosPlanejamento                       ...
Metodologia OO2 TXH ID] FRP TXH XPD PHWRGRORJLD GH GHVHQYROYLPHQWR GH     VLVWHPDV VHMD FRQVLGHUDGD 2ULHQWDGD D 2EMHWRV
Metodologia OO    Uma metodologia de desenvolvimento de sistemas éconsiderada Orientada a Objetos se ela orienta a constru...
Metodologia OO4XDLV VmR DV SULQFLSDLV DWLYLGDGHV   • Entender quais são os REMHWRV envolvidos no domínio do problema  • En...
Metodologia OO4XDLV DV SULQFLSDLV WpFQLFDV XWLOL]DGDV  • Entendimento do mundo real - Revisão de processos, Use cases  • O...
Métodos de Desenvolvimento OO%RRFK - Object-Oriented Design with Applications:LUIV%URFN - Designing Object-Oriented Softwa...
Métodos de Desenvolvimento OO                   (VWUDWpJLDEscolher um Método como sendo o método SULQFLSDO    para ser seg...
UML - Unified Modeling Language                              Rumbaugh             Booch                                   ...
Análise Orientada a Objetos
Análise Dinâmica vs Análise EstáticaA $QiOLVH (VWiWLFD descreve a estruturas e os relacionamentos          entre os objeto...
Análise - Use Case                                             Ator: Usuário                                             A...
Análise - Modelo de Classes            Solicitação        gera           Serviço     executado      Funcionáriodata solici...
Análise - CRCClasses/responsabilidades/colaboradores            ODVVH 6HUYLoR            6XSHUFODVVH           5HVSRQVDELO...
Análise - Diagrama de Interação (DI)5HJLVWUDU 6ROLFLWDomR QR VLVWHPD SHOR XVXiULR
Cliente    Área técnica       Serviço   Solicitação   Solicitação   ÁreaTécnica E-mailárea receptora                    re...
Análise - Diagrama Transição de Estado             alocar(recurso)             (recurso não é suficiente)                 ...
Relacionamento entre as Técnicas de Análise               Use case               Modelo de                Classes         ...
AnáliseNo final da análise, já sabemos quais os objetos do “negócio”  envolvidos e como eles devem interagir de forma gera...
Projeto Orientado a Objetos
Projeto6HUi TXH DV FODVVHV GH QHJyFLR VmR VXILFLHQWHV SDUD D            LPSOHPHQWDomR GR VLVWHPD   3 O modelo de objetos p...
ProjetoTanto o domínio do problema, como o domínio da solução      devem ser entendidos como um conjunto de               ...
Projeto3ULQFLSDLV DWLYLGDGHV GH SURMHWR3URMHWR GH 2EMHWRV    • Otimização e refinamento do modelo de classes da análise   ...
Projeto                       7HFQRORJLDV GH DSRLR3URMHWR GH 2EMHWRV    • Design Patterns (padrões de projeto)     • Packa...
Projeto de InterfaceEtapas principais3   Análise de usuários e tarefas3   Projeto inicial da interface3   Avaliação da int...
Projeto de InterfacePrincípios básicos         3 Transparência         3   Robustez         3   Orientação         3   Pro...
Projeto de InterfacePrincípios básicos (cont)        3 Controle        3   Clusterização        3   Visibilidade        3 ...
Projeto de ObjetosEtapas básicas3   Projetar algoritmos para implementar os métodos3   Otimizar caminhos de acesso aos dad...
Projeto de ObjetosExemplo de refinamento do modelo de classes da análise        AreaTecnica       responsável      Produto...
Projeto de ObjetosExemplo de refinamento do modelo de classes da análise        Area Técnica           executa      Solici...
Projeto de SistemasQuestões básicas para a Arquitetura da Aplicação  3   Organização geral e estrutura de controle global ...
Tecnologias de Implementação3 Linguagens Orientadas a Objetos     Java, C++, Smalltalk3 Ambientes de Desenvolvimento     V...
Método Integrado                                             Fase 2                               Implementação          G...
Aprendizado,PSOHPHQWDomR GH XPD PHWRGRORJLD 223 Mudança de paradigma - treinamento intensivo3 Protótipos sem compromissos3...
Orientação a ObjetosBenefícios3 Reaproveitamento3 Estabilidade3 Projetista pensa em termos de comportamento dos objetos e ...
Upcoming SlideShare
Loading in …5
×

Orientação a objetos da teoria a prática em java

1,334 views
1,277 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,334
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Orientação a objetos da teoria a prática em java

  1. 1. 2ULHQWDomR D 2EMHWRVD 7HRULD j 3UiWLFD HP -DYD CCUEC/Unicamp outubro/99
  2. 2. Roteiro5HXWLOL]DomR GH 3URMHWR H 6RIWZDUH 3 Design Patterns (Padrões de Projeto) 3 Frameworks 3 Componentes 3 RMI (Remote Method Invocation)
  3. 3. Reutilização de Projeto3 HVLJQ 3DWWHUQV - padrões de projeto e análise3 )UDPHZRUNV orientados a objetos
  4. 4. Padrões de Projeto e Análise 3DGU}HV GH RUJDQL]DomR GH KLHUDUTXLDV GHFODVVHV SURWRFRORV H GLVWULEXLomR GH UHVSRQVDELOLGDGHV HQWUH FODVVHV TXH FDUDFWHUL]DP FRQVWUXo}HV HOHPHQWDUHV GH SURMHWR RULHQWDGR D REMHWRV 8P SDGUmR GH SURMHWR p XP HVWUXWXUD TXH DSDUHFH UHSHWLGDPHQWH QRV SURMHWRV RULHQWDGRV D REMHWRV SDUD UHVROYHU XP GHWHUPLQDGR SUREOHPD GH IRUPD IOH[tYHO H DGDSWiYHO GLQDPLFDPHQWH
  5. 5. Padrões de Projeto e AnáliseDescrição padrão de um “design pattern” objetivo motivação aplicabilidade estrutura participantes colaborações conseqüências implementação exemplo de codificação
  6. 6. Padrões de Projeto2EVHUYHUSuponhamos uma aplicação de Administração de Solicitação de Serviços (ASS) de uma empresa prestadora de serviços, onde serviços-objeto devem ser sempre comunicados a respeito da alteração do estado do funcionário-objeto responsável pela sua execução. Como modelar a estrutura de dados e os métodos das classes Serviço e Funcionário para atender esse requisito?
  7. 7. Padrões de Projeto2EVHUYHU: define uma dependência de um para muitos entre objetos de tal forma que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente observers Subject Observer Attach(Observer) Detach(Observer) for all o in observers{ Update() Notify() o .Update()} ConcreteObserver ConcreteSubject subject Update() GetState() return subjectState SetState() observerState subjectState observerState= subject.GetState()
  8. 8. Padrões de Projeto6WDWH Suponhamos que na nossa aplicação ASS, serviços-objeto, dependendo do estado em que se encontram (espera, parado,em andamento, finalizado), tenham comportamentos diferentes, ou seja, reajem diferentemente à mesma mensagem. Por exemplo: calculaValor() Como modelar a estrutura de dados e os métodos da classe Serviço para atender a esse requisito?
  9. 9. Padrões de Projeto6WDWH: permite um objeto alterar seu comportamento quando seu estado interno se altera. Parecerá que o objeto mudou de classe. state Context State Request() Handle() State Handle() ConcreteStateA ConcreteStateB Handle() Handle()
  10. 10. Padrões de ProjetoRPSRVLWH Na nossa aplicação ASS, um serviço pode ser um serviço derede, de produção, de suporte ou de desenvolvimento de sistemas. Este último é na verdade uma composição de serviços que devem ser executados pela área de desenvolvimento e pelas outras especialidades mencionadas acima. Quando um objeto-serviço receber a mensagem “descrever()”, não queremos nos preocupar com o tipo de serviço que está recebendo a mensagem. Como estruturar a classe Serviço de forma a permitir essa facilidade?
  11. 11. Padrões de ProjetoRPSRVLWH Representa hierarquias do tipo parte-todo Client Component Operation() Clientes ignoram a diferença Add(Component) entre composições de objetos Remove(Component) e objetos individuais GetChild(int) children Leaf Composite Operation() Operation() Forall g in children Add(component) g.Operation(); Remove(Component) GetChild(int)
  12. 12. Padrões de Projeto5HFRQKHFLPHQWR GH XP SDGUmR GH SURMHWR
  13. 13. Padrões de ProjetoRPR XVDU SDGU}HV GH IRUPD HILFD] Estude os padrões aos quais você já tenha acesso Procure por conceitos básicos similares Aplique o padrão Não espere que tudo possa ser resolvido pelos padrõesRPR GHVFREULU QRYRV SDGU}HV O padrão pode ser utilizado em outros lugares? Utilize o padrão várias vezes Espere fazer mudanças em seu diagrama de classes
  14. 14. Padrões de Projeto9DQWDJHQV Aumentam a produtividade dos desenvolvedores Aumentam a consistência entre as aplicações São potencialmente melhores do que os códigos reutilizáveis Podem ser utilizados em combinação para resolverem problemas difíceis Existem novos padrões sendo desenvolvidos todos os diasHVYDQWDJHQV Precisamos aprender um grande número de padrões Alguns desenvolvedores não estão abertos a aceitar o trabalho dos outros Os padrões não são códigos
  15. 15. FrameworksClasses abstratas funcionam como um molde para as suas subclasses. Da mesma forma, um projeto constituído por classes abstratas funciona como um molde para aplicações.Um projeto constituído por classes abstratas é denominado IUDPHZRUN GH DSOLFDo}HV RULHQWDGR D REMHWRV Um framework pode ser considerado como uma infra-estrutura de classes que provêem o comportamento necessário para implementar aplicações dentro de um domínio através dos mecanismos de especialização e composição de objetos, típicos das linguagens orientadas a objetos
  16. 16. Frameworks - Visão Conceitual Estrutura de controle Classes abstratas )UDPHZRUNChamadas a operações Chamadas a operaçõesimplementadas pelo implementadas pelo frameworkusuário $SOLFDomR HVSHFtILFD Classes específicas implementadas pelo usuário Visão conceitual da estrutura de um framework
  17. 17. Frameworks - Exemplo09 0RGHO9LHZRQWUROOHUModelo: contém os dados da aplicação junto com a lógica dos negócios que define como alterar e acessar os dados; o modelo pode ser compartilhado entre vários objetos, visões e controladores.Visão: é a forma de apresentação dos dados do modelo para o mundo externo, pode ser na forma de GUI, fala, som, listagens ou mesmo em uma saída não orientada a usuários, como ligar um ar condicionado.Controlador: é a forma de tratar a entrada do usuário ou outro meio e dar feedback para o modelo, normalmente alterando alguns de seus dados.
  18. 18. Framework MVC 0RGHOR Mudei!Mudei ! Por favor, me passe os 9LVmR dados RQWURODGRU
  19. 19. Framework MVC 0RGHOR Altere dados9LVmR RQWURODGRU Altere apresentação O usuário interage
  20. 20. MVC - ExemploMVC - Model/View/Controller 0RGHOR Visão Visão Controlador DWHJRULD 9DORU Controlador Controlador
  21. 21. Reutilização de Software 3 3DFRWHV 3DFNDJHV
  22. 22. 3 RPSRQHQWHV 3 :UDSSHUV
  23. 23. Packages3DFNDJHV são conjuntos de classes relacionadas entre si de forma que ofereçam facilidades uma às outras.Java traz uma grande quantidade de classes agrupadas em pacotes que estão prontas para serem utilizadas pelo programador.
  24. 24. Packages$OJXQV H[HPSORV GH 3DFNDJHV HP -DYDMDYDODQJ - base da linguagem Java (Boolean, Character, Double, Float, Integer, Long, math, Object, String,..)MDYDLR - pacote que permite manipulação de streams lendo ou gravando em arquivos (DataInputStream, FileInputStream, FileOutputStream, PrintScreen)MDYDXWLO - pacote que provê uma miscelânea de classes úteis incluindo estrutura de dados, time, date, geração de números randômicos, etc..MDYDDZW - pacote que provê um conjunto de manipulações de interface para o usuário tais como windows, caixas de diálogo, botões, cores, checkboxes..MDYDDSSOHW - pacote que habilita a criação de applets através da classe Applet e também provê recursos de áudio
  25. 25. Packages - Exemploimport java.applet.*;import java.awt.*;import java.util.Date;public class LJLWDOORFN extends java.applet.Applet implements Runnable { Font theFont = new Font(“TimesRoman”, Font.BOLD, 24); Date theDate; Thread runner; public void VWDUW () { if ( runner == null ) { runner = new Thread(this); runner.start();} } public void VWRS () { if (runner != null) { runner.stop(); runner = null;} }
  26. 26. Packages - Exemplo public void UXQ () { while (true) { theDate = new Date(); repaint(); try { Thread.sleep(1000);} catch (InterruptedException e) {} } } public void SDLQW (Graphics g) { g.setFont(theFont); g.drawString(theDate.toString(), 10, 50); }}
  27. 27. ComponentesUm componente é um pedaço de código encapsulado e acessível apenas a partir de sua interfaceUm componente possui:• seu FRPSRUWDPHQWR H[WHUQR (o que ele faz) que é definidona sua especificação• suas RSHUDo}HV LQWHUQDV (como ele faz o que se propõe a fazer)que está escondido do mundo externo e pode ser entendidoapenas se examinarmos seu código fonte• seu H[HFXWiYHO (runtime binário .exe .dll)
  28. 28. Componentes Componentes de negócio são essencialmente REMHWRV Cada componente implementa a OyJLFD GH QHJyFLR e as propriedades relativas a uma entidade do mundo real. O que os distingue dos objetos tradicionais é a capacidade de ser utilizadospor aplicações produzidas em GLIHUHQWHV OLQJXDJHQV H WHFQRORJLDV, rodando sobre diferentes sistemas operacionais. A tecnologia de componentes altera radicalmente a forma como os sistemas de informação são desenvolvidos. Os componentes podem ser considerados como blocos básicos de construção. 3DUD FULDU XP QRYR VLVWHPD RV GHVHQYROYHGRUHV DSHQDV FRPELQDP FRPSRQHQWHV
  29. 29. Java Beans - Componentes Java Arquitetura Java de FRPSRQHQWHV UHXWLOL]iYHLV independente de plataforma.Um -DYD%HDQ é um componente de software reutilizável que pode ser manipulado visualmente em uma ferramenta de construção (construtor de páginas Web, construtor visual de aplicações, construtor de GUIs)
  30. 30. Projeto SanFrancisco - IBM
  31. 31. Wrappers - legacy systems Um ZUDSSHU é um componente que fornece serviços implementados por aplicações OHJDF.Um ZUDSSHU pode ser utilizado para eliminar as dependências entre os sistemas atuais e fornecer a funcionalidade das aplicações OHJDF para novas soluções baseadas em componentes.
  32. 32. Objetos Distribuídos em Java O sistema RMI (Remote Method Invocation) permite que um objeto rodando em uma máquina virtual Java (JVM)chame métodos de um objeto que esteja rodando em outra JVM. RMI permite a comunicação remota entre programas escritos em Java. RMI provê um mecanismo através do qual o servidor e o cliente se comunicam e passam informações. Estas aplicações são chamadas de aplicações de REMHWRV GLVWULEXtGRV
  33. 33. RMI - Ambiente de Execução 0iTXLQD OLHQWH 0iTXLQD 6HUYLGRUD 1 Server Lookup RMI Registry Interface Server Register 7 4 OLHQW Server 6 2 3Security 5 6HUYHU SecurityManager Manager 8 8 9 9 8 Stub 9 Skeleton
  34. 34. Metodologia de Desenvolvimento3 Visão geral - metodologias e UML3 Técnicas de Análise3 Projeto: Objetos, Interface e Sistema3 Método Integrado3 Considerações Gerais3 Java Studio
  35. 35. MetodologiaColeção de WpFQLFDV H GLUHWUL]HV para construção,manutenção e melhoria em produtos de software.Fornece uma base de comunicação, um conjunto de técnicas e uma base para engenharia de software.
  36. 36. Fases Clássicas$QiOLVH GH ,PSOHPHQWDomR Teste de Unidades5HTXLVLWRV Teste do Sistema Teste de Aceitação $QiOLVH 7HVWH ,PSODQWDomR 3URMHWR FRQYHUVmR
  37. 37. Estratégia Paralela Estudo Piloto Abordagem Faseada
  38. 38. Modelo Espiral 3ODQHMDPHQWR $QiOLVH GH 5LVFRVAnálise derequisitosPlanejamento continua ou não ?baseado nosrequisitos do (P GLUHomR DRusuário VLVWHPD FRPSOHWR $YDOLDomR (QJHQKDULD GR XVXiULR (processo de desenvolvimento)
  39. 39. Metodologia OO2 TXH ID] FRP TXH XPD PHWRGRORJLD GH GHVHQYROYLPHQWR GH VLVWHPDV VHMD FRQVLGHUDGD 2ULHQWDGD D 2EMHWRV
  40. 40. Metodologia OO Uma metodologia de desenvolvimento de sistemas éconsiderada Orientada a Objetos se ela orienta a construção de sistemas a partir do entendimento do mundo real comoum conjunto de objetos que comunicam-se entre si de forma coordenada
  41. 41. Metodologia OO4XDLV VmR DV SULQFLSDLV DWLYLGDGHV • Entender quais são os REMHWRV envolvidos no domínio do problema • Entender como se FRPXQLFDP no mundo real • 3URMHWDU a forma como devem ser LPSOHPHQWDGRV
  42. 42. Metodologia OO4XDLV DV SULQFLSDLV WpFQLFDV XWLOL]DGDV • Entendimento do mundo real - Revisão de processos, Use cases • Objetos e seus relacionamentos - Modelo de Objetos, CRC, DTE, DI • Projeto - Padrões de projeto, frameworks, componentes • Implementação - ambientes de desenvolvimento, middleware (RMI), banco de dados
  43. 43. Métodos de Desenvolvimento OO%RRFK - Object-Oriented Design with Applications:LUIV%URFN - Designing Object-Oriented Software (5)5XPEDXJK - Object-Oriented Modeling and Design (207)RDGRXUGRQ - Object-Oriented Analysis-DFREVRQ - OO Software Engineering - A 8VH DVH Driven Approach6KODHU0HOORU - Object /LIHFFOHV-Modeling the World in StatesROHPDQ et al: Fusion - OO Development: The )XVLRQ Method
  44. 44. Métodos de Desenvolvimento OO (VWUDWpJLDEscolher um Método como sendo o método SULQFLSDO para ser seguido e ater-se à sua notação para todo o ciclo de vida.Usar WpFQLFDV GH RXWURV PpWRGRV para dar suporte aos esforços de modelagem e desenvolvimento.
  45. 45. UML - Unified Modeling Language Rumbaugh Booch Jacobson Odell (classificação) MeyerShlaer-Mellor 80/ (condições pré e pós)(ciclo de vida) Harel (diag. de estado)Gamma et al(Frameworks, padrões) Wirfs-Brock Fusion (responsabilidades) (desc.operações, numeração de mensagens)
  46. 46. Análise Orientada a Objetos
  47. 47. Análise Dinâmica vs Análise EstáticaA $QiOLVH (VWiWLFD descreve a estruturas e os relacionamentos entre os objetos do domínio do problema (Modelo de Classes de Objetos)A $QiOLVH LQkPLFD descreve o comportamento dos objetos em termos de suas mudanças ao longo do tempo (DTE, DI)
  48. 48. Análise - Use Case Ator: Usuário Atividade: Registrar solicitação no sistema Evento: necessidade de execução de um serviço Registrar Solicitação Curso básico de ação: 1) cliente informa nome, e-mail, telefone,.... Ler nova solicitação 2) cliente informa área destino dentro do CPDUsuário 3) cliente escolhe produto na lista de produtos existentes Gerente 4) o sistema gera um número de solicitação Consulta s solicitação 5) apresentar opção de vincular solicitação a outra já existente 6) avisar área destino que existe uma nova solicitação para ela LDJUDPD GR 8VH DVH HVFULomR GR 8VH DVH
  49. 49. Análise - Modelo de Classes Solicitação gera Serviço executado Funcionáriodata solicitação descrição nomeusuário data-início funçãodescrição responsável e-mail data-finaljustificativa recebe executa Área Técnica trabalha autoriza chefia nome objetivo LDJUDPD GH FODVVHV H[WUDtGR D SDUWLU GD DQiOLVH GRV 8VH DVHV
  50. 50. Análise - CRCClasses/responsabilidades/colaboradores ODVVH 6HUYLoR 6XSHUFODVVH 5HVSRQVDELOLGDGHV RODERUDGRUHV $incluir $obter o no. de serviços ativos $obter no. solic por serviço Solicitação obter identificação obter data previsão inicio .... obter usuários por produto Solicitação obter área responsável Área técnica )HHGEDFN SDUD YDOLGDU RV PpWRGRV GD FODVVH
  51. 51. Análise - Diagrama de Interação (DI)5HJLVWUDU 6ROLFLWDomR QR VLVWHPD SHOR XVXiULR
  52. 52. Cliente Área técnica Serviço Solicitação Solicitação ÁreaTécnica E-mailárea receptora receber(sol)Produto/serviçoDados da solicitaçãoVincular(sol)
  53. 53. Análise - Diagrama Transição de Estado alocar(recurso) (recurso não é suficiente) alocar(recurso) DEULU (recurso é suficiente) $JXDUGDQGR (P FXUVR desalocar(recurso) (recurso não é suficiente) desalocar(recurso) (recurso é suficiente)
  54. 54. Relacionamento entre as Técnicas de Análise Use case Modelo de Classes CRC DI DTE
  55. 55. AnáliseNo final da análise, já sabemos quais os objetos do “negócio” envolvidos e como eles devem interagir de forma geral, através do modelo de classes e do diagrama de interação
  56. 56. Projeto Orientado a Objetos
  57. 57. Projeto6HUi TXH DV FODVVHV GH QHJyFLR VmR VXILFLHQWHV SDUD D LPSOHPHQWDomR GR VLVWHPD 3 O modelo de objetos pode ser otimizado ? 3 Como o usuário vai interagir com o sistema ? 3 Quem irá controlar o fluxo de mensagens ? 3 Quem vai interagir com o banco de dados ?
  58. 58. ProjetoTanto o domínio do problema, como o domínio da solução devem ser entendidos como um conjunto de classes de objetos • ODVVHV GH LQWHUIDFH - interação com o usuário • ODVVHV GH FRQWUROH - seqüência das mensagens • ODVVHV GH EDQFR GH GDGRV - persistência dos dados • ODVVHV GH QHJyFLR - relacionadas no modelo de análise
  59. 59. Projeto3ULQFLSDLV DWLYLGDGHV GH SURMHWR3URMHWR GH 2EMHWRV • Otimização e refinamento do modelo de classes da análise • Conversão para o modelo relacional de banco de dados3URMHWR GH ,QWHUIDFH Define a forma de interação dos usuários com a aplicação sendo construída3URMHWR GH 6LVWHPD Produz uma arquitetura de aplicação a qual inclui decisões sobre a organização do sistema e a alocação de módulos em componentes de hardware e software
  60. 60. Projeto 7HFQRORJLDV GH DSRLR3URMHWR GH 2EMHWRV • Design Patterns (padrões de projeto) • Packages3URMHWR GH ,QWHUIDFH Utilização segundo um Guia de Estilo que oriente a utilização correta de recursos gráficos (GUIs), formulários, frames e outros, considerando o ambiente de implementação (por exemplo, Web)3URMHWR GH 6LVWHPD Arquiteturas de aplicação , frameworks, componentes
  61. 61. Projeto de InterfaceEtapas principais3 Análise de usuários e tarefas3 Projeto inicial da interface3 Avaliação da interface sem o usuário3 Teste da interface com os usuários3 Construção da interface3 Acompanhar a utilização da interface pelos usuários3 Adaptar o projeto de interface
  62. 62. Projeto de InterfacePrincípios básicos 3 Transparência 3 Robustez 3 Orientação 3 Produtividade 3 Integridade
  63. 63. Projeto de InterfacePrincípios básicos (cont) 3 Controle 3 Clusterização 3 Visibilidade 3 Consistência Inteligente 3 Utilização de cores como complemento
  64. 64. Projeto de ObjetosEtapas básicas3 Projetar algoritmos para implementar os métodos3 Otimizar caminhos de acesso aos dados3 Implementar controle para interações externas3 Ajustar a estrutura de classes para aumentar a herança3 Projetar associações3 Determinar a representação de objetos3 Empacotar classes e associações em módulos
  65. 65. Projeto de ObjetosExemplo de refinamento do modelo de classes da análise AreaTecnica responsável Produto ObterAreaTecnica() AreaTecnica Produto area:AreaTecnica ObterAreaTecnica() Associações de mão única são atravessadas apenas em uma direção Regra Geral: implementada como atributos de ponteiro
  66. 66. Projeto de ObjetosExemplo de refinamento do modelo de classes da análise Area Técnica executa Solicitação adicionarSolicita(so) Area Técnica Solicitação sol: set Solicitacao não nulo area: AreaTecnica adicionarSolicita(so) conectar_area(area) Associação bidirecional: execução bem-sucedida de QHZ 6ROLFLWDomR requer execução bem-sucedida de FRQHFWDUBDUHD de maneira a ter um vínculo bidirecional consistente
  67. 67. Projeto de SistemasQuestões básicas para a Arquitetura da Aplicação 3 Organização geral e estrutura de controle global 3 Atribuição de funcionalidade aos módulos 3 Composição dos módulos 3 Distribuição física dos módulos 3 Protocolos para comunicação 3 Sincronização e acesso aos dados 3 Expansão e desempenho
  68. 68. Tecnologias de Implementação3 Linguagens Orientadas a Objetos Java, C++, Smalltalk3 Ambientes de Desenvolvimento VisualAge for Java(IBM) Visual Café (Symantec) Jbuilder 3 (Borland)3 Banco de Dados Orientado a Objetos O2 (O2 Technology) Objectstore (Object Design Inc.) Gemstone (Servio Logic) Jasmine (Computer Associates)
  69. 69. Método Integrado Fase 2 Implementação Gerenciamento do Processo do Processo Fase 1 4P 5PEntendimento Análise do Projeto do do Negócio Processo Processo Projeto Implem 1 2 3 Requisitos Análise B 4S 5S Visão Geral 6S 7S Fase 3
  70. 70. Aprendizado,PSOHPHQWDomR GH XPD PHWRGRORJLD 223 Mudança de paradigma - treinamento intensivo3 Protótipos sem compromissos3 Primeiros sistemas devem ser livres...3 Grupo formal de metodologia - proposta e treinamento3 Acerto do ambiente de desenvolvimento - suporte, padrões3 Administração de classes/objetos - Biblioteca de Classes3 Ferramenta CASE
  71. 71. Orientação a ObjetosBenefícios3 Reaproveitamento3 Estabilidade3 Projetista pensa em termos de comportamento dos objetos e não em detalhes de baixo nível3 Construção de objetos cada vez mais complexos3 Confiabilidade3 Verificação de precisão3 Novos mercados de software3 Desenvolvimento acelerado3 Integridade
  72. 72. Orientação a ObjetosBenefícios3 Programação facilitada3 Manutenção facilitada3 Ciclo de vida dinâmico3 Refinamento durante a construção3 Modelagem mais realista3 Melhor comunicação entre profissionais de sistema e clientes3 Interoperabilidade3 Processamento cliente-servidor3 Processamento distribuído e em paralelo3 Bibliotecas de classes industrializadas e corporativas
  73. 73. Java Studio8P DPELHQWH GH GHVHQYROYLPHQWR 2ULHQWDGR D 2EMHWRV
  74. 74. Referências(1) Análise e Projeto Orientados a Objetos Scott W. Ambler (IBPI Press)(2) Modelagem e Projetos Baseados em Objetos J. Rumbaugh et. al (Campus)(3) Princípios de Análise e Projeto Baseados em Objetos James Martin (Campus)(4) Design Patterns - Elements os Reusable Object-Oriented Software Erich Gamma et. al (Addison-Wesley)(5) Manual do Visual Age for Java(6) Software Engineering - A Practitioner´s Approach Roger S. Pressman

×