user:1577657:arquitetura_de_software_2019

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
user:1577657:arquitetura_de_software_2019 [2019/08/09 13:37]
1577657 [1º Bimestre]
user:1577657:arquitetura_de_software_2019 [2019/11/29 15:36] (atual)
1577657
Linha 23: Linha 23:
   ***Padrões de Software**   ***Padrões de Software**
     -Aula ({{ :​user:​1577657:​04.1-sa-estilos_e_padroes.pdf |pdf}})     -Aula ({{ :​user:​1577657:​04.1-sa-estilos_e_padroes.pdf |pdf}})
-    -Trabalhos:  +    -**Estilos Arquiteturais**:  
-      -Estilos Arquiteturais ​({{ :​user:​1577657:​05.1-sa-estilos_e_padroes_-_trabalho_1_-_estilos_arquiteturais.pdf |pdf}})+      -Trabalho ​({{ :​user:​1577657:​05.1-sa-estilos_e_padroes_-_trabalho_1_-_estilos_arquiteturais.pdf |pdf}})
       -[[Grupos-2019.2-SA-Papaiz|Grupos e Temas]]       -[[Grupos-2019.2-SA-Papaiz|Grupos e Temas]]
 +      -[[Pratica01-2019.2-SA-Papaiz|Prática]]
 +    -**Padrões de Projeto**: (//Design Patterns//)
 +      - ''​**Data Access Object (DAO)**''​
 +        - Aula ({{ :​user:​1577657:​06.1-sa-padroes_de_projeto_-_dao.pdf |pdf}})
 +      - ''​**Singleton**''​ e ''​**Object Pool**''​
 +        - Aula ({{ :​user:​1577657:​07.1-sa-padroes_de_projeto_-_singleton.pdf |pdf}}) (//Pool de conexões com o SGBD//)
 +      - ''​**Template Method**''​
 +        - Aula ({{ :​user:​1577657:​08.1-sa-padroes_de_projeto_-_template_method.pdf |pdf}}) ​
 +        - **Trabalho**:​
 +          - Aplicar o padrão ''//​Template Method//''​ nas classes DAO (''​CategoriaDAO''​ e ''​ProdutoDAO''​)
 +          - No máximo 02 pessoas
 +          - Entregar apresentação (slides) até o final da aula do dia ''​25/​OUT/​2019''​
 +    -**Seminário sobre Padrões de Projeto - Temas**
 +      -**Início das Apresentações:​ ''​29/​NOV/​2019''​**
 +        - Para cada Padrão de Projeto deve-se:
 +          - Citar o problema que este visa solucionar
 +          - Descrever a solução proposta pelo padrão
 +          - Ilustrar a estrutura geral do padrão (diagrama de classes, diagrama de sequência ou outro)
 +          - Mostrar pelo menos um exemplo de utilização em uma aplicação real
 +        -Avaliação das Apresentações:​
 +          - Demonstração de que compreendeu o padrão de projeto e a clareza na apresentação ​
 +          - Qualidade do exemplo utilizado para exemplificar o padrão de projeto ​
 +      ***Comportamentais**:​ (//​Behavioral Patterns//) (comunicação entre objetos)
 +        - Chain of Responsibility (Daniel e André)
 +        - Command (Samara, Wanderson e Gustavo Laires)
 +        - Observer (Emerson, Gustavo Lopes e Gerson)
 +        - Strategy (Hiury, Messias e Juciane)
 +        - Interpreter (Lucas, João Pedro, Isaac e Jackson)
 +        - Iterator (Elvis e Jonatas)
 +        - Mediator (Anderson e Yuri)
 +        - Memento (Lucas, João Pedro, Isaac e Jackson)
 +        - State (Jeconias, Lenilson e Pedro)
 +        - Visitor (Lucas, João Pedro, Isaac e Jackson)
 +        - <​del>''​Template Method''</​del>​
 +      ***Estruturais**:​ (//​Structural Patterns//) (Organização de Classes e Objetos, com uso de Herança e Interfaces)
 +        -Decorator (Luca e Igor)
 +        -Adapter (Samara, Wanderson e Gustavo Laires)
 +        -Bridge (Arthur e Pablo)
 +        -Composite (Elvis e Jonatas)
 +        -Facade (Anderson e Yuri)
 +        -Flyweight (Daniel e André)
 +        -Proxy (Emerson, Gustavo Lopes e Gerson)
 +        -<​del>''​Data Access Object - DAO''</​del>​
 +      ***Criacionais**:​ (//​Creational Patterns//) (Abstração da lógica para Criação de objetos - sem uso do ''​new''​)
 +        -Abstract Factory (Hiury, Messias e Juciane)
 +        -Builder (Luca e Igor)
 +        -Factory Method (Jeconias, Lenilson e Pedro)
 +        -Prototype (Arthur e Pablo)
 +        -<​del>''​Singleton''</​del>​
 +
 +      ***Apresentações dos grupos:** [[Arquitetura de Software 2019 Slides Design Patterns|Slides]]
 +
 +
 +----
 +
 +=== MATERIAL DE APOIO ===
 +----
 +
 +  * **JSF 2.2 API** (Para usar no Eclipse)
 +    * {{ :​user:​1577657:​javax.faces-2.2.8.jar.zip |JSF 2.2 API}}
 +
 +  * **Livros sobre JSF - //​JavaServer Pages//**
 +    * https://​drive.google.com/​file/​d/​13uo45bfJH-_ezx3TySOvnvCkIowjnZGD/​view?​usp=sharing
 +
 +----
 +
 +  * **SGBD PostgreSQL**
 +
 +    * **Instalação de SGDB:**
 +      * Baixar os Binários do Postgres: {{ :​user:​1577657:​papaiz-as-1-postgresql-9.4.24-1-linux-x64-binaries.zip |zip}} ​
 +        * Extrair o arquivo ''​zip'' ​
 +      * Criar a pasta ''​data''​ dentro de ''​postgresql-9.4.24-1-linux-x64-binaries/​pgsql/''​
 +      * Entrar na pasta ''​bin''​ e executar o comando ''​./​initdb -D ../​data/'' ​
 +        * **ATENÇÃO:​ somente 1 vez**
 +        * Este comando irá configurar uma instância do PostgreSQL dentro da pasta ''​data''​
 +      * Para iniciar o serviço do PostgreSQL executar o comando ''​./​postgres -D ../​data/''​ (dentro da pasta ''​bin''​)
 +        * O serviço será disponibilizado através da porta ''​5432'' ​
 +      * Para parar o serviço do PostgreSQL basta digitar ''​Ctrl+C''​
 +
 +    * **Driver JDBC do PostgreSQL** ({{ :​user:​1577657:​papaiz-as-postgresql-42.2.8.zip |zip}}) ​
 +      * Baixar e descompactar
 +      * Será utilizado para criar conexões com o PostgreSQL a partir no DBeaver e nos projetos Java no Eclipse ​    
 + 
 +    * **Instalar o DBeaver:**
 +      * Baixar e descompactar o arquivo ({{ :​user:​1577657:​dbeaver-ce-6.2.1-linux.gtk.x86_64.tar.gz |}})
 +      * Executar o arquivo ''​dbeaver'' ​
 +      * Criar uma nova conexão do tipo ''​PostgreSQL''​ com as seguintes configurações:​
 +        * {{:​user:​1577657:​papaiz-as-dbeaver-1.png?​400|}}
 +      * Clicar no botão ''​Edit Driver Settings''​ e configurar da seguinte forma:
 +        * Remover os drivers existentes e adicionar o driver JDBC do PostgreSQL baixado no passo anterior ​
 +        * {{:​user:​1577657:​papaiz-as-dbeaver.png?​400|}}
 +      * Antes de finalizar, clique no botão ''​Test connection...''​ para verificar se está OK
 +
 +    * **Criar o BD utilizado nas aulas:**
 +        * Abrir uma nova janela de Script SQL e executar o seguinte comando SQL para criar o banco de dados chamado ''​arq_soft'':​
 +        <​note>​ ''​CREATE DATABASE arq_soft;''</​note>​
 +        * Agora clique com o botão direito em cima da conexão ''​PostgreSQL - postgres''​ na aba ''​Database Navigator''​ e selecione ''​Edit connection''​
 +          * Altere o campo ''​Database''​ para ''​arq_soft''​ e depois clique em ''​OK''​
 +            * Será perguntado se deseja reconectar e escolha que sim
 +            * {{:​user:​1577657:​dbeaver-3.png?​400|}} ​
 +        * Abra uma nova janela de Script SQL e digite os seguintes comandos para criar as tabelas ''​Categoria''​ e ''​Produto''​ dentro do banco ''​arq_soft'':​
 +          <​note>''​create table Categoria(
 + id serial not null,
 + descricao varchar(100) not null,
 + primary key(id)
 +);''</​note>​
 +<​note>​
 +''​create table Produto(
 + id serial not null,
 + descricao varchar(100) not null,
 + preco_unitario numeric(10,​2) not null,
 + quantidade_estoque int not null,
 + categoria_id int not null,
 + primary key(id),
 + foreign key (categoria_id) references Categoria(id)
 +
 +);''​
 +</​note>  ​
 +        * {{:​user:​1577657:​papaiz-as-der1.png?​600|}} ​
 +        * {{:​user:​1577657:​papaiz-as-class_diagram0.png?​500|}}
 +
 +
 +----
 +
 +  * Projeto WebStore no gitlab do IFRN: 
 +    * [[https://​gitlab.devops.ifrn.edu.br/​1577657/​arquitetura_software_2019-2]]
 +
 +  * **Arquivo com ''​Eclipse+Tomcat+PostgreSQL+DBeaver'':​** {{ :​user:​1577657:​papaiz-as-arq_soft.zip |zip}}
  
  • user/1577657/arquitetura_de_software_2019.1565357839.txt.gz
  • Última modificação: 2019/08/09 13:37
  • por 1577657