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; Escrita de Programas; Técnicas de Teste e 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, TDD, Refactoring, Design e Builds; SCRUM: Princípios, Utilização prática, Retrospectiva, Liderança de Times; SCRUM: Criação de Backlogs, Reuniões, Arrumação do Ambiente e Equipes Distribuídas.
Métricas de Desenvolvimento de Software:
Medidas, Métricas e Indicadores; Métricas de Processo e de Projeto; Medidas Diretas e Indiretas; Métricas Orientadas ao Tamanho e por Função.
Projeto de bloco:
Desenvolvimento de um planejamento de projeto de software detalhado, utilizando RUP, XP e/ou SCRUM, incluindo a especificação das métricas apropriadas.
Desenvolvimento Orientado a Objetos com .NET
180 horas/aula
Análise e Projeto de Sistemas Orientados a Objetos:
Modelagem de Sistemas, Orientação a Objetos (OO) e Unified Modelling Language (UML); OO: Classes, Objetos, Herança e Polimorfismo e Interfaces; Diagramas UML: Uso, Classes e 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 dos diagramas geração de código.
Programação Orientada a Objetos com .NET:
Framework .NET, Visual Studio e Aplicação Windows Forms; Fundamentos de programação em .NET: Fluxo, Estrutura, Coleções, Arrays; Classes: Herança e Polimorfismo, Classes Abstratas, Interfaces, Enums e Criação de Componentes; Tratamento de erros: Exceptions, Assertions e Teste Unitário – NUnit.
Desenvolvimento de Aplicações com .NET:
ADO: Conexão com Banco de Dados, Consulta, Atualização, Deleção e Inserção de Dados; Coleções: Object-based Collections, Generic Collections, Specialized Collections; Depuração, Configuração, Instalação e Monitoramento; Arquivos: Leitura, Escrita e Serialização.
Tópicos Avançados:
Segurança: Code Access Security, Policies, Access Control, Autenticação e Autorização; Interoperabilidade: Integração de objetos COM e aplicações .NET; Internacionalização: Cultures, Formatação e Classificação de dados; Manipulação e Codificação de texto e Expressões Regulares; Criptografia, Decriptografia e Hashing; Threads e Aplicações multithread.
Projeto de bloco:
Elaboração de projeto em UML/.NET para implantação de um Sistema Orientado a Objetos
Desenvolvimento Web e Componentes com .NET
120 horas/aula
Desenvolvimento de Aplicações Web com .NET:
Criação de Aplicações e Componente com ASP.NET; Web Forms: Controles, Master Pages e Eventos; Funcionalidades Web: Page_Load, Eventos de Click, Validação de Formulários ; Funcionalidades Web: Controles de Usuário, Tracing; Acesso a dados com ADO.NET; Manipulação de dados em XML; AJAX: Extenções, Ajax Control Toolkit e Silverlight; Web Services; Gerenciamento de Estado: Variáveis de Aplicação, Sessão e Cookies; Configuração: Cache, Aplicações, Formas de Autenticação.
Aplicações Web Avançadas:
Visão Geral do Windows Communication Foundation (WCF); Criação e Configuração de serviço WCF; Implementação de Endpoints e Behaviors; Depuração e Diagnóstico; Projeto e Definição de contratos para troca de dados; Manipulação de Erros; Gerência de performance, Disponibilidade, Concorrência e Instâncias; Implementação de segurança; Garantia da Integridade de dados usando transações.
Projeto de bloco:
Desenvolvimento de um projeto completo, desde os casos de uso em UML até sua implementação utilizando as tecnologias aprendidas no bloco.
Fechamento
10 horas/aula
TCC: Desenvolvimento individual de um sistema completo, comprovadamente de aplicação comercial, utilizando os conhecimentos adquiridos durante o curso. Inclui um relatório a respeito do projeto, bem como o projeto funcionando, com a documentação e seus códigos-fonte.