Blocos e Ementas
Engenharia de Software
130 horas/aula
Introdução à Engenharia de Software:
Engenharia de Software e Ciência da Computação; Processos de Desenvolvimento de Software; Melhoria dos Processos e Software; Princípios de Análise de Requisitos; Ciclo de Vida; Fundamentos e Descrição dos Projetos de Software; Desenvolvimento de Programas com Qualidade; Técnicas de Teste; Garantia de Qualidade de Software; Gerenciamento de Configuração de Software.
Processos de Desenvolvimento de Software:
Rational Unified Process: RUP; RUP: Gestão de Requisitos e uso de Arquitetura baseada em Componentes; RUP: Uso de Softwares de Modelos Visuais; RUP: Qualidade, Gestão e Controle de Mudanças; RUP: Fases de Concepção, Elaboração, Construção e Transição; RUP: Melhores Práticas, Desenvolvimento Interativo e Qualidade; Extreme Programming: XP; XP: Princípios, codificação, unit testing, refactoring, design e builds; Scrum.
Métricas de Desenvolvimento de Software:
Medidas, Métricas e Especificação de Indicadores; Métricas de Processo e de Projeto; Métricas Orientadas ao amanho; Métricas Orientadas por Função, Análise de Pontos de Função: Procedimento de Contagem de Pontos de Função; Processo de Estimativas de Projetos de Software, baseado na métrica Análise de Pontos de Função (APF).
Projeto de bloco:
Desenvolvimento de um planejamento de projeto de software detalhado, utilizando RUP ou XP, e respectivas métricas.
Desenvolvimento Orientado a Objetos com Java
140 horas/aula
Análise e Projetos de Sistemas Orientados a Objetos:
Modelagem de Sistemas, Orientação a Objetos (OO) e Unified Modeling Language (UML); OO: Classes, Objetos, Herança, Polimorfismo e Interfaces; Diagramas UML: Uso, Classes, Objetos, Sequência, Comunicação, Temporal, Estados e Atividades; Design Patterns: Criação, Estrutura e Comportamento; Três Estudos de Caso: 1. Relacionamento entre as fases do projeto e os diagramas; 2. Levantamento de requisitos, análise e projeto; 3. Elaboração de diagramas e geração de código.
Programação Orientada a Objetos com Java:
Tipos primitivos, Operadores aritméticos, Compostos, Relacionais e Lógicos; Condições e Repetições, Arrays unidimensionais, Bidimensionais e Multidimensionais; Java Virtual Machine e Garbage Colector; Conversão de Objetos - Tipos Primitivos; String, StringBuilder e StringBuffer; File IO, Formatação, Parsing, Internacionalização e Resource Files; Criação de Classes, Herança, Polimorfismo, Interfaces, Enums e Criação de Componentes; Classes Abstratas, Internas e Anônimas; Tratamento de Erros, Exceptions, Assertivos e Teste Unitário - Junit.
Acesso a Dados, Coleções e Interface Gráfica em Java:
Java Database Connectivity: JDBC; JDBC: Conexão com Bancos de Dados, Consulta, Atualização, Deleção e Inserção de Dados; JDBC: Tipos de Dados Especiais: Data, Hora, Blobs, Clobs; JDBC: Cursores, Batch e Relatórios (JReport e IReport); Coleções: Collection, Set, Map, List, Comparable e Comparator; Generics; Swing: Componentes Básicos, Layouts, Look and feel; Swing: Tratamento de Eventos e Componentes Avançados.
Projeto de bloco:
Desenvolvimento de um projeto em UML e sua respectiva implementação em Java.
Desenvolvimento Web e Componentes com Java
160 horas/aula
Aplicações Web:
Questões avançadas de desenvolvimento de aplicações Web; Frameworks para aplicações Web.
Aplicações na Camada de Negócios:
Objetos Distribuídos: RMI; Localização de Serviços: JNDI; Design Patterns: Service Locator e Business Delegate; Enterprise Java Beans: Session Beans, Design Pattern, Session Facade, Acesso a Bancos de Dados, Transação, Relacionamento e Segurança, Message Beans; Spring: Programação Orientada a Aspectos, Data Access Objects (DAO), Mapeamento Objetos-BD: ORM; Spring: Design Pattern - Model View Controller (MVC) e Web Services: Definição, vantagens e classes Java.
Tópicos Avançados:
Segurança em Redes: Tipos de Ataque e Níveis de Segurança; Segurança em Java: Recomendações e Modelos de Segurança; Security Manager e Security Policy; Segurança em Java: Criptografia e Certificados Digitais; Segurança em J2EE: Segurança para Web, EJB, Autenticação e Autorização com SSL; Segurança em J2EE: Java Authentication and Authorization Service (JAAS) e Mecanismos de Segurança: Lightweight Directory Access Protocol (LDAP).
Projeto de bloco:
Desenvolvimento de um projeto completo, desde os casos de uso em UML até sua implementação utilizando uma das tecnologias apresentadas (web e/ou negócios).
Fechamento
10 horas/aula
TCC: O Trabalho de Conclusão de Curso tem como objetivo a construção de um sistema complexo, comprovadamente de aplicação prática e comercial, utilizando os conhecimentos adquiridos durante o curso