p2 aula7 - ufrnanderson/ftp/dca0120/p2_aula7.pdftitle: microsoft powerpoint - p2_aula7 author:...
TRANSCRIPT
![Page 1: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/1.jpg)
Classes de Projeto
Prof. Anderson Cavalcanti
UFRN-CT-DCA
![Page 2: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/2.jpg)
Linhas Gerais sobre as Classes de Projetode Projeto
![Page 3: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/3.jpg)
Especificação de Classes deProjeto
• Especificação de classes de fronteira
– Responsáveis pela interação com os atores
• Especificação das classes de entidade
– Representação dos conceitos do domínio do problema– Representação dos conceitos do domínio do problema
• Especificação das classes de controle
– Responsáveis pela coordenação da interação entre os
outros objetos
• Especificação de classes auxiliares
![Page 4: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/4.jpg)
Classes de Fronteira
• Tradução de boundary classes
• Interação com os elementos externos
– Apresentação de informações
– Captação de informação– Captação de informação
• Classes de fronteira NÃO devem terresponsabilidades relativas as regras de negócio da
aplicação
• Exemplo: uma classe para representar um formulário
de inscrição em uma escola
![Page 5: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/5.jpg)
Classes de Fronteira
• Tipos de fronteira:
– Classes de interface com o usuário
– Classes de interface com equipamentos
– Classes de interface com outros sistemas– Classes de interface com outros sistemas
• As formas de interação do sistema com o ambiente
influenciam no projeto arquitetural do mesmo
![Page 6: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/6.jpg)
Classes de Fronteira
• Clientes WEB clássicos
– Representação na forma de classes de páginas WEB
estáticas e dinâmicas
• Clientes móveis• Clientes móveis
– Classes de fronteira em protocolos específicos
• Clientes stand-alone
– Janelas, menus, formulários, botões, etc.
• Serviços WEB (WEB services)
– Serviços da aplicação disponíveis pela Internet
![Page 7: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/7.jpg)
Classes de Entidade
• Representação dos conceitos do domínio do
problema
– Informações e regras de negócio que direcionam a
manipulação dessas informações
• Também chamadas de classes de negócio
• A maioria já descoberta na fase de análise
• Aspecto importante a analisar: quais geram objetos
que devam ser persistentes
– Definir o mecanismo de persistência
![Page 8: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/8.jpg)
Classes de Entidade
• Prática interessante:
– Para ajudar na identificação única de objetos de uma
classe, sugere-se a criação de um atributo
identificador de implementação (“identificador” ou
“id”) do tipo inteiro“id”) do tipo inteiro
• Muito úteis em caso de mapeamento para
mecanismos de armazenamento persistente
![Page 9: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/9.jpg)
Classes de Controle
• Responsáveis por coordenar a interação entre os
demais objetos
• Normalmente podem haver várias classes de
controle em uma aplicação
– Uma para cada aspecto da solução
![Page 10: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/10.jpg)
Classes de Controle
• Responsabilidades:
– Preenchimento de controles da interface gráfica
– Autenticação de usuários
– Controle de acesso às funcionalidades do sistema– Controle de acesso às funcionalidades do sistema
![Page 11: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/11.jpg)
Classes de Controle
• Tipo comum de classe de controle é o controlador de
caso de uso
– Coordenar a realização de um caso de uso
– Servir de canal de comunicação entre os objetos de–
fronteira e os objetos de entidade
• Mapeando ações dos atores em mensagens para
objetos de entidade
– Comunicar-se com outros controladores, quando for
necessário
– Estar apto a manipular exceções
![Page 12: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/12.jpg)
Classes de Controle
• Em uma aplicação WEB é comum o uso de um “front
controller” (FC)
– Receber as requisições de um cliente
– Identificar o controlador adequado para processar a–
requisição
– Redirecionar para o controlador adequado
• Características a serem evitadas
– Acoplamento excessivo
– Repetição de código
![Page 13: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/13.jpg)
Classes Auxiliares
• Identificação de classes que completem asfuncionalidades das classes já identificadas
• Aspectos que devem ser levados em consideraçãonessa identificação:
– Comunicação entre as partes do sistema– Comunicação entre as partes do sistema
– Segurança, autenticação e autorização
– Controle de transação
– Registro das operações realizadas (log)
– Armazenamento persistente
– etc.
![Page 14: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/14.jpg)
Classes Auxiliares
• Para atender aos aspectos relacionados, pode-se
desenvolver classes próprias, ou utilizar classes já
existentes definidas em:
– Padrões de projeto
– Bibliotecas de classes prontas
– Frameworks
![Page 15: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/15.jpg)
Classes Auxiliares
• Exemplos segundo os aspectos a serem observados:
– Sistemas distribuídos Classes Proxy (RMI, CORBA,
DCOM, etc.)
– Interface gráfica
• Classes View Helpers (formatar informações)
– Armazenamento persistente
• Classes DAO (Data Access Object) – encapsulam e
implementam operações CRUD (create-retrieve-
update- delete)
• Classes “fábrica” possibilitam a criação dos DAOs
![Page 16: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/16.jpg)
Classes Auxiliares
• Padrões de Projeto
– Descrição da essência da solução para um problema
de ocorrência comum
– Descreve como os objetos colaboram para resolver o
problemaproblema
– Permitem uma maior produtividade
– Exemplo: classes VH, DAO e Front Controller são
padrões descritos no catálogo JEE
![Page 17: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/17.jpg)
Classes Auxiliares
• Frameworks
– Coleção de classes prontas que colaboram para
resolver problemas comuns encontrados no
desenvolvimento de sistemas
Aceleram o desenvolvimento de aplicações– Aceleram o desenvolvimento de aplicações
– Exemplo 1: Hibernate,http://www.hibernate.org
• Persistência de objetos em SGBD relacional
– Exemplo 2: JUnit, http://www.junit.org
• Automatização de testes de unidade
![Page 18: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/18.jpg)
Classes Auxiliares
• Bibliotecas de classes prontas
– Coleção de classes prontas que possuem um objetivo
específico
– Exemplos:
• JDBC
• Swing
• Log4J
• Próprias da plataforma de desenvolvimento
– Java ou .NET
![Page 19: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/19.jpg)
Diagrama de Classes
![Page 20: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/20.jpg)
Especificação de Atributos
• Notação UML
– visibilidade nome: tipo = valor inicial
• Opções de visibilidade:
– Pública (+)
– Protegida (#)– Protegida (#)
– Privada (-)
– Pacote (~)
• Tipos de variáveis podem ser: primitivos (inteiro,real, etc.) ou tipos abstratos de dados (Data, Horário,Endereço, etc.)
![Page 21: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/21.jpg)
Especificação de Atributos
• Atributos derivados são antecedidos por “/”
– Valores derivados a partir de outros atributos
• Atributos da classe (estáticos)
– Atributos estáticos aparecem sublinhados no– Atributos estáticos aparecem sublinhados no
diagrama de classes
– Exemplo:
![Page 22: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/22.jpg)
Especificação de Operações
• Identificadas nos diagramas de interação
• Notação UML
– visibilidade nome(parâmetros: tipo): tipo-retorno{propriedades}
• Dicas• Dicas
– <verbo>+<complemento>
– Nome segundo uma perspectiva externa
– O nome deve deixar claro o que ela produz e não como elao faz
• Utilização da técnica de projeto por contrato – design bycontract (DbC)
![Page 23: P2 Aula7 - UFRNanderson/FTP/dca0120/P2_Aula7.pdfTitle: Microsoft PowerPoint - P2_Aula7 Author: Anderson Created Date: 6/15/2009 8:52:31 AM](https://reader033.vdocuments.mx/reader033/viewer/2022051915/6006723ccfa0327083474383/html5/thumbnails/23.jpg)
Referências
• ALLEIXO, F. Notas de aula da disciplina de Análise e
Projeto Orientado a Objeto, CEFET/RN, 2007.
• SCOTT, K. O Processo Unificado Explicado. Ed.
Bookman, 2003.