BLOCO 01 BLOCO 02 BLOCO 03 Engenharia de Software Desenvolvimento Orientado a Objeto com Java Desenvolvimento Web com Java ENGENHARIA DE SOFTWARE APLICADA Princípios e padrões de engenharia de software; Paradigma de orientação a objetos e de componentização; Análise de requisitos e sua relação com métricas de software; Fundamentos e descrição dos projetos de software; Técnicas de teste e garantia de qualidade de software; Gerenciamento da configuração de software; Análise de negócio; Análise e projeto de sistema; Modelagem, padrões de projeto e frameworks; Arquitetura e orientação a serviços. Análise e Projetos de Sistemas Orientado a Objeto Modelagem de Sistemas, Orientação a Objetos (OO) e Unified Modeling Language (UML); Diagramas UML: caso de uso, classes, sequência, estados e atividades; Classes e objetos, herança, polimorfismo e interfaces; Princípios SOLID e Padrões GRASP; Design Patterns: Criação, estrutura e comportamento; Domain Driven Design (DDD) e MVC. Aplicações Web Aplicações Web: arquitetura e protocolo HTTP; Design pattern: Model View Controller (MVC); Servlets: ciclo de vida, requisição e resposta; JSP: Expression Language (EL) e Java Standard Tag Libraries (JSTL); Gerenciamento de sessão e Java Beans; Design pattern - Transfer object e intercepting filters; Integração com Model; Design pattern - Facade e business delegate; Frameworks: importância do uso de frameworks; Acesso a Banco de Dados (JPA); Java Server Faces (JSF). APLICAÇÕES CORPORATIVAS PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Rational Unified Process: RUP; Gestão de requisitos e uso de arquitetura baseada em componentes; Uso de software de modelos visuais, qualidade, gestão e controle de mudanças; Fases de concepção, elaboração, construção e transição; Extreme Programming: XP; Princípios, codificação, refactoring, design e builds; SCRUM: Princípios, utilização prática de SCRUM, liderança de times; Visão geral de MPS-BR e CMMI. 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; 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. Projeto de Bloco Elaboração de um planejamento de projeto de software detalhado, empregando princípios e padrões de Engenharia de Software, RUP (Rational Unified Process), XP (Extreme Programming) e/ou SCRUM, incluindo a especificação das métricas apropriadas. Programação Orientada a Objeto com Java Tipos primitivos, Operadores aritméticos, compostos, relacionais e lógicos; Condições e repetições, arrays unidimensionais e multidimensionais; Java virtual machine e garbage collector; Conversão Objetos- Tipos primitivos; String, StringBuilder e StringBuffer; Tratamento de erros e exceptions; NIO2,formatação e parsing, internacionalização e resource files; Criação de classes, herança e polimorfismo, interfaces, enum; Classes abstratas, internas e anônimas; Coleções: Collection, set, map, list, comparable e comparator; Assertions e teste unitário – JUnit; Swing: componentes básicos e layout managers. Acesso a Dados, Multithreading e Interface Gráfica em Java Programação concorrente (Multithreading); JDBC:Conexão com Banco de Dados; Consulta, atualização, deleção e inserção de dados; Joins, transações; Tipos de Dados Especiais: data, hora, blobs, clobs, cursores, batch, design pattern, DAO. Projeto de Bloco Elaboração de projeto, com documentação em UML, de um sistema proposto pelo curso com os conhecimentos adquiridos no bloco. Design patterns: inversion of control e dependency injection; Service locator e business delegate; Enterprise Java beans 3: session beans, message beans; Design pattern - session facade; JPA: ORM:framework hibernate; Spring: fábrica de beans e anotações; Programação orientada a aspectos; Framework Model View Controller (MVC); Web services: definição, vantagens e classes Java; Segurança em JEE: segurança para Web, EJB, autenticação e autorização com SSL. Tópicos Avançados Tópicos avançados e novas tecnologias: tecnologias de ponta relevantes para o desenvolvedor Java EE como cloud computing e segurança. Projeto de Bloco Desenvolvimento de um projeto Web completo, desde os casos de uso em UML até sua implementação, utilizando-se das tecnologias apresentadas no bloco. Bloco de Fechamento - 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. depoimentos A pós-graduação capacita profissionais em Engenharia de Software com foco na plataforma Java. O programa permite ao aluno fazer de um grupo seleto de profissionais com amplo domínio das técnicas de Engenharia de Software aplicadas a uma das plataformas mais demandadas pelas organizações. Estes profissionais são altamente reconhecidos e valorizados pelo mercado de hoje. “O egresso do curso está apto a entender requisitos, projetar e desenvolver software em Java, dominando UML, Métodos àgeis e ferramentas CASE. Além de ganhar experiência prática no desenvolvimento das aplicações, o profissional torna-se preparado para fazer os exames oficiais da linguagem.” Aquino Botelho, Engenheiro de Software “Sempre acreditei que estudar no Instituto Infnet me traria boas oportunidades de crescimento profissional. Em 2009, quando iniciei os estudos, ainda era operador em uma subsidiária da Petrobrás. Foi difícil conciliar com o trabalho, e muitas vezes precisei sair direto da aula para o turno da noite. Mas persisti no sonho e hoje sou Analista de Sistemas da Siemens. Foi uma vitória: com um 85 em meu TCC, hoje posso curtir o título de pós-graduado em Engenharia de Software. Agradeço ao Infnet por fazer parte do meu sucesso!” Leandro Mascarenhas Fernandes, Aluno do Infnet Fabrício Silva, Coordenador Pedagógico Mestre em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro e Doutor em Architecture des Systèmes Intégrés/Informatique pela Université Pierre et Marie Curie (Paris VI). Coordenou projetos de pesquisa financiados pelo CNPq, RNP e HP Brasil e um programa de mestrado recomendado pela CAPES. Entre Janeiro de 2008 e Agosto de 2010 foi professor convidado do Departamento de Informática da Universidade de Lisboa, membro do corpo docente do programa M.Sc. in Information Security (parceria CMU-Portugal) e pesquisador do LASIGE. Atualmente está afiliado ao Centro Tecnológico do Exército e faz parte do corpo de pesquisadores do programa Rádio Definido por Software de Defesa do CTEx/Ministério da Defesa, atuando ainda como integrante do Corpo Docente do Programa de Pós-Graduação em Engenharia de Defesa do Instituto Militar de Engenharia e professor da graduação em Engenharia de Computação do Instituto Infnet. www.infnet.edu.br | [email protected] | Central de Atendimento: (21) 2122-8800 localização educa ç ã o superior orientada ao mercado