Ir para o conteúdo. | Ir para a navegação

Ferramentas Pessoais

This is SunRain Plone Theme

Navegação

Disciplinas

  1. Desenvolvimento de Software em Java

 Professores Responsáveis: Prof. Dr. Daniel Lucredio, Prof. Ms. Ivan João Foschini, Profa. Dra. Márcia Luciana Aguena, Prof. Ms. Reinaldo de Oliveira Castro

CARGA HORÁRIA: 80 horas

OBJETIVOS:

Apresentar a linguagem Java com alguns de seus frameworks e APIs mais utilizados no mercado para desenvolvimento de software em camadas, com acesso a banco de dados e com funcionalidades de negócio que podem ser expostas em múltiplas arquiteturas. O módulo visa tanto o aprendizado da parte tecnológica (ferramentas, frameworks e APIs), como também prover um forte embasamento nas questões da qualidade de código (focando principalmente na legibilidade e reutilização), padrões de projeto e métodos para diminuição da complexidade no desenvolvimento de sistemas de software. O módulo aborda todos os conceitos usando uma metodologia orientada a problemas e por meio de implementação de um estudo de caso de uma aplicação financeira.

EMENTA:

1. Java e Qualidade de Código – Orientação a objetos nas perspectivas de qualidade de código e manutenção de sistemas de software. Conceitos e padrões para qualidade de código: Lei de Demeter, Padrões GRASP (General Responsibility Assignment Software Patterns) e Princípios SOLID.

2. Padrões de Projeto em Java – Aplicação dos principais padrões de projeto criacionais, estruturais e comportamentais em Java para a obtenção de código flexível e reutilizável.

3. Frameworks de Persistência Objeto-Relacional em Java –Utilização efetiva da Java Persistence API (JPA) como forma de persistência em banco de dados relacionais, abordando as principais formas de mapeamento de classes e relacionamentos para tabelas.

4. Domain-Driven Design (DDD) com Java – Princípios, conceitos e terminologia de DDD. Aplicação DDD como uma abordagem de desenvolvimento que favorece a diminuição na complexidade de sistemas de software e o ganho na reutilização de código por meio de uma abstração maior na separação dos domínios do problema. Apresentação dos principais padrões de projeto utilizados em DDD.

5. Java e arquitetura das aplicações na Web: Características das aplicações para Web, Protocolo HTTP, Modelo requisição-resposta, Modelo em múltiplas camadas, Visão geral da plataforma Java para Web, Containers, Frameworks, Servidores, Ferramentas, Camada do cliente, Conteúdo estático (HTML/CSS), Conteúdo dinâmico (Javascript).Tecnologia Java Servlets: Ciclo de vida, Objetos de escopo, Manutenção de estado do cliente.          Tecnologia Java Server Pages (JSP): Ciclo de vida, Conteúdo estático / dinâmico, Expression Language (EL), JSP Standard Tag Library.

6. Web services e arquitetura RESTful em Java - Utilização do Spring Boot para exposição de regras de negócio como serviços web RESTful. Implementação de mecanismos de segurança para serviços web RESTful. Visão geral sobre testes e documentação de serviços serviços web.

Embora a plataforma Java seja a utilizada durante o módulo, os princípios e conceitos de qualidade de código, legibilidade, reutilização e diminuição de complexidade aprendidos são independentes de tecnologia e facilmente empregados em diferentes contextos .

 

2.    Teste Funcional e Estrutural em Aplicações Web e Aplicações Móveis

Professor Responsável - Prof. Dr. Auri Marcelo Rizzo Vincenzi

CARGA HORÁRIA: 40 horas

OBJETIVOS:

Apresentar conceitos e terminologia relacionados ao Teste Funcional e Estrutural, abordando os principais critérios de teste associados, com ênfase em critérios largamente adotados na indústria como o Particionamento de Equivalência, Análise de Valor LImite e Análise de Fluxo de Controle. Apresentar ferramentas que automatizam o teste funcional e estrutural com ênfase nas que apoiam o teste de aplicações Web desenvolvidas em Java e aplicações móveis para Plataforma Android. Demonstrar a integração de arcabouços de teste unitátio ou de ferramentas de captura e reprodução para aplicações web com ferramentas de teste funcional e estrutural.

EMENTA:

1. Conceitos e terminologia sobre Teste Funcional e Teste Estrutural.

2. Critérios de Teste Funcionais.

3. Critérios de Teste Estruturais baseados em complexidade, fluxo de controle e de dados.

4. Automatização de critérios de teste funcionais.

5. Automatização de critérios de teste estruturais baseados em fluxo de controle.

6. Integração de arcabouços de teste unitário com ferramentas de apoio ao teste funcional.

7. Integração de arcabouços de teste unitário com ferramentas de apoio ao teste estrutura.

8. Integração de ferramentas de captura e reprodução com ferramentas de apoio ao teste funcional e estrutural

 

3. Academia Ágil

 Professor Responsável - Prof. Dr. Valter Camargo (DC/UFSCar)

 Colaborador: Gustavo Henrique Castellano (Consultor na Adaptworks)

 CARGA HORÁRIA: 40 horas

 OBJETIVOS:

Este módulo objetiva capacitar o aluno a atuar como membro de times ágeis, implantar frameworks ágeis em larga escala, vivênciar o dia a dia de uma iniciativa ágil e iniciar na prática uma iniciativa ágil.

 EMENTA:

  1. Objetivos da Academia ágil, gerenciamento de projetos versus gerenciamento de produtos, iniciativas ágeis versus iniciativas tradicionais, manifesto ágil (e Modern Agile) e o framework cynefin;
  2. O Framework Scrum: visão geral, o scrum team, eventos, artefatos e transparência (essa parte do curso é preparatória para a certificação PSM I da scrum.org);
  3. Gestão de Produtos: criando um produto na prática;
  4. O Framework SAFe 4.5: Full SAFe, Large Solution SAFe, Portfolio SAFe, Essential SAFe e a ferramenta CA Agile Central.
  5. Se tornando um facilitador, a carreira de agilista e prova teórica.


4.    User eXperience [para todos] na Web

Professores Responsáveis  -  Profa. Dra. Vânia Paula de Almeida Neris, Profa. Dra. Kamila R.H. Rodrigues e Profa. Ms. Tatiana Silva de Alencar

CARGA HORÁRIA - 40 horas

OBJETIVOS:
Propiciar aos alunos um embasamento nos princípios, conceitos e vertentes de User eXperience (UX), explorando suas bases e relações com a Interação Humano-Computador. Também serão detalhados e trabalhados de maneira prática os conceitos de usabilidade e acessibilidade e técnicas para o design e a avaliação de sistemas Web para serem aplicados como vantagem competitiva em mercado.

EMENTA:

1- Princípios, conceitos e vertentes de User eXperience (UX) para todos na web.

2- Técnicas de design e avaliação de usabilidade na web: Personas, guidelines, rapid prototyping – baixa fidelidade, Avaliação Heurística e Testes com Usuário.

3- Técnicas de design e avaliação de acessibilidade na web: guidelines, rapid prototyping – média fidelidade, Avaliação Simplificada de Acessibilidade, Avaliações semi automáticas

 

5. Desenvolvimento de Software do front ao back-end

 Professores Responsáveis - Prof. Ms. Rafael Tomé de Souza, Prof. Esp. Fábio Velloso e Prof. Samuel Lopes Grigolato

OBJETOS:

Capacitar o aluno a compreender tecnologias que podem ser utilizadas como parte das soluções web a serem propostas no seu dia a dia de trabalho. A disciplina tem como propósito apresentar a linguagem JavaScript a ser utilizada com as tecnologias Node.Js e React. e explorar a linguagem TypeScript juntamente com o framework Angular. React e Angular são as opções que podem ser adotadas para criação de interfaces para as aplicações e com a adoção do runtime Node.js, pode usar a linguagem JavaScript como ferramenta para desenvolvimento de APIs de dados. Será apresentado o framework Express para construção de APIs RESTful, o uso de SQL Query Builder Knex para trabalhar com dados, conceitos base do Node.js, conceitos do servidor stateless em oposição aos tradicionais stateful abordando questões como sticky session, autenticação stateless e uso de cache. Será apresentado uma abordagem da evolução da arquitetura de software com seus paradigmas, design, camadas e padrões e o impacto nos modelos e metodologias de desenvolvimento.

EMENTA:

1. Desenvolvimento de Front-End

1.1 HTML5/CSS: O HTML e CSS é a base para qualquer página web. Neste tópico entraremos no mundo das tags, APIs e conceitualização do CSS. Conteúdo preparatório para os outros temas deste tópico.

1.2 JavaScript: explorar a criação script com JavaScript, novidades do ECMASCript, conceito de variáveis, escopo, operadores, estrutura de controle, funções, clousure, patterns para JavaScript, promise, conceitos de programação funcional e melhores práticas.

1.3 React: estrutura de um projeto react, componentes, estados, roteamento, redux e criação de testes.

1.4 Angular: diferenças entre as versões do angular, estrutura de um projeto Angular, typescript, angular CLI, componentes, rotas, data binding, serviços, formulários e integração com Back-End.

 2 - Desenvolvimento de APIs com Node.js

2.1. Introdução ao Node.js: Apresentação do JavaScript como alternativa de linguagem para desenvolvimento de APIs de dados. Análise da arquitetura baseada em eventos do Node.js, com foco nos benefícios de performance e concorrência trazidos por ela.

2.2. Desenvolvendo APIs de dados com Express: Aprofundamento no framework Express para o desenvolvimento de APIs de dados, buscando cobrir casos excepcionais como recebimento de arquivos (upload) e envio de imagens pré-processadas, além do CRUD básico.

2.3. Trabalhando com dados usando Knex: Adicionar persistência de dados na nossa aplicação através do framework de construção de SQL Knex. Gerenciar a evolução da base de dados através da ferramenta db-migrate.

2.4. Servidores Stateless vs. Stateful: Análise conceitual de servidores stateless e servidores stateful, incluindo o conceito de sticky session. Desenvolvimento de mecanismo de autenticação totalmente stateless.

2.5. Usando cache para aumentar a performance da API: Apresentação do uso de cache em diversas camadas da aplicação e análise dos ganhos de performance obtidos.

3 - Evolução da arquitetura de software.

3.1. Paradigmas, design, camadas e padrões e o impacto nos modelos e metodologias de desenvolvimento.

3.2. Exemplos de arquitetura com suas boas práticas, conceitos e  paradigmas.

3.3. Arquiteturas Client/server, 3 camadas e servidores de aplicação,  Microservices, Peer-to-peer,  SOA, REST e APIS.

3.4 Evolução de arquiteturas de integração Cloud Computing, Virtualização e Containers

 

6- Big Data com o Melhor dos dois Mundos: BDs Relacionais e NoSQL

Professores Responsáveis   -  Profa. Dra. Marilde Terezinha Prado Santos, Prof. Ms. Reinaldo de Oliveira Castro e Prof. Dr. Renato Bueno

CARGA HORÁRIA: 40 horas

OBJETIVOS:

Capacitar o aluno em tecnologias de banco de dados atualmente utilizadas no mercado de trabalho, apresentando distintas estratégias de desenvolvimento para explorar os paradigmas relacionais e NoSQL, focando na escalabilidade de armazenamento.

EMENTA

 1.  Projeto de Banco de Dados Relacionais: dos requisitos à implementação do Banco de Dados Relacional – Seleção de requisitos para a definição do banco de dados em um caso de uso da aplicação financeira. Projeto Conceitual de Banco de Dados – modelo entidade-relacionamento. Projeto Lógico de Banco de Dados – modelo relacional. Projeto Físico e Normalização de Banco de Dados Relacional. Acompanhamento Projeto da Disciplina: Banco de Dados Relacional.

2.  Projeto de Banco de Dados Não-Relacionais: desenvolvimento com NoSQL. Bancos de Dados NoSQL: chave-valor, orientados a documentos, orientados a colunas e orientados a grafos.  Projeto Lógico do Banco de Dados Não-Relacional em um caso de uso da aplicação financeira. Acompanhamento Projeto da Disciplina: BD NoSQL.

3.  Otimização do banco de dados relacional. Arquiterura de SGBDR. Utilização e eficiência de índices. Otimização de consultas. Estimativas de custo e coleta de estatísticas. Outros aspectos relacionados ao ajuste fino de SGBDR.  Avaliação de Desempenho do Sistema de Banco de Dados Relacional em um caso de uso da aplicação financeira. Acompanhamento Projeto da Disciplina: Avaliação de Desempenho do Sistema de Banco de Dados Relacional.

4.  Padrões de Projetos para Banco de Dados Relacionais e NoSQL visando escalabilidade. Definição de padrões de projeto. Padrão de projeto Observer. Padrão de projeto Command-Query Responsibility Segregation (CQRS): como unificar bancos de dados relacionais e NoSQL para ganho de desempenho e escalabilidade em aplicações de alta demanda, mantendo a segurança e integridade dos dados. Implementação do CQRS em um caso de uso da aplicação financeira. Acompanhamento Projeto da Disciplina: Implementação do CQRS.

5.  Avaliação Final dos Projetos da Disciplina.

Os conteúdos serão apresentados a partir de um caso de uso da aplicação financeira. Os alunos serão avaliados pelo desenvolvimento de um projeto durante a disciplina

 

7. Metodologia de Pesquisa – Revisão Sistemática

Professor Responsável: Profa. Dra. Sandra Camargo Pinto Ferraz Fabbri

Colaboradora: Elis Cristina Montoro Hernandes

CARGA HORÁRIA: 40 horas

OBJETIVOS:

Capacitar o aluno para a realização de levantamento bibliográfico seguindo o processo de Revisão Sistemática, com suporte computacional.

EMENTA:

1. Tipos de trabalhos acadêmicos.

2. A importância do levantamento bibliográfico, principalmente nos trabalhos acadêmicos.

3. O que é Revisão Sistemática (RS) e Mapeamento Sistemático (MS).

4. Os processos de RS e MS.

5. A pesquisa nas máquinas de busca.

6. A ferramenta StArt.

 

8. Tópicos em Desenvolvimento de Software

Professor Responsável   -  Prof. Dr. Sergio Donizetti Zorzo

CARGA HORÁRIA:  20 horas

OBJETIVOS:

Apresentar ferramentas, metodologias, e estratégias de desenvolvimento de software por empresas de desenvolvimento ou que as utilizam, objetivando trazer ao aluno a engenharia de software empregada no mercado de trabalho.

EMENTA:

palestras -  tópicos atuais em desenvolvimento na área de Engenharia de Software, como engenharia de negócios, controle de versão, projeto de interface, desenvolvimento ágil de projetos, etc.

Palestra - Bruno Lourenço Lopes - Apresentação das diferenças entre máquinas virtuais e containers. Utilização de containers Docker para avaliação rápida e simples de novas ferramentas. Emprego de containers Docker no ambiente de desenvolvimento de modo isolado, e definição de um ambiente integrado e replicável de desenvolvimento utilizando Docker Compose.

 

 

« Dezembro 2017 »
Dezembro
DoSeTeQuQuSeSa
12
3456789
10111213141516
17181920212223
24252627282930
31
Árvore Símbolo do Curso de Pós-Graduação "Lato Sensu" em Computação

Árvore plantada na cerimônia de conclusão de curso da primeira turma do curso de Pós Graduação "Lato Sensu" em Computação - Desenvolvimento de Software para Web, no ano de 2004.

Árvore Lato Sensu