Mestrado em Engenharia de Software
ESIEA - Escola de Engenharia para um Digital Útil
A ESIEA é uma escola de engenharia francesa fundada em 1958, credenciada pela Comissão de Títulos de Engenheiro (CTI). A escola forma engenheiros digitais capazes de enfrentar os desafios tecnológicos atuais e futuros. O título 'Especialista em Engenharia de Software' é uma certificação RNCP Nível 7 (equivalente a Mestrado) certificada pela ESIEA. Este programa cobre todas as competências necessárias para projetar, desenvolver, testar, proteger e gerenciar projetos de software complexos em um ambiente profissional exigente.
Abordagem de aprendizado baseada em projetos combinando conhecimento teórico aprofundado com aplicações reais em empresas. Os alunos trabalham em projetos de nível profissional ao longo do currículo, cobrindo todo o ciclo de desenvolvimento de software: do design arquitetural ao deploy em produção, incluindo desenvolvimento, testes e segurança. O programa é projetado para formar especialistas capazes de projetar, desenvolver, testar, proteger e gerenciar projetos de software complexos.
- Coletar e analisar as necessidades do cliente, adotar uma abordagem consultiva oferecendo soluções de software adaptadas
- Atender as expectativas dos negócios entregando o valor esperado, com a qualidade adequada, controlando custos e prazos
- Prototipar, projetar, desenvolver, entregar e manter soluções de software multiplataforma
- Usar inteligência artificial e processamento massivo de dados no desenvolvimento de aplicações empresariais
- Dominar as linguagens de programação essenciais e os ambientes de desenvolvimento correspondentes
- Proteger aplicações web aplicando as recomendações OWASP e as melhores práticas de cibersegurança
- Validar a qualidade do software por meio de estratégias de testes automatizados, testes de desempenho e integração contínua
43
temáticas
186
objetivos pedagógicos
1.151
formações
738h
horas de formação
Bloco 1 - Gestão do relacionamento com o cliente em engenharia de software
Análise funcional de um projeto de SI
- Explicar o papel da análise funcional em um projeto de SI
- Conduzir uma análise funcional (requisitos funcionais e não funcionais)
- Redigir um caderno de específicações funcionais
- Traduzir as necessidades em user stories e tarefas técnicas
Iniciar eficazmente um projeto de SI
- Analisar a estrutura e os desafios de um sistema de informação
- Identificar, avaliar e priorizar projetos de SI
- Estimar custos, prazos e recursos de um projeto de SI
- Explorar e construir um business case
- Comunicar e acompanhar a gestão de mudanças em projetos de SI
Direito dos contratos de TI
- Aplicar os princípios jurídicos dos contratos profissionais (B2B)
- Identificar os mecanismos de propriedade intelectual aplicáveis às soluções de TI
- Detectar as cláusulas essenciais dos contratos de desenvolvimento ou fornecimento de soluções de TI
- Identificar e analisar os contratos úteis para garantir o fornecimento e uso de soluções de TI
- Compreender os riscos jurídicos específicos dos contratos internacionais
UX e Wireframing
- Compreender os desafios é o escopo do UX Design
- Descobrir as diferentes etapas da métodologia
- Identificar os usuários, suas necessidades, expectativas e barreiras
- Projetar uma interface utilizando e combinando os elementos que a compõem
- Testar seu projeto para identificar oportunidades de melhoria
Design Thinking
- Aplicar a métodologia de design thinking e técnicas de pesquisa com usuários
- Estimular a criatividade dentro de um grupo e gerar ideias inovadoras
- Dominar as ferramentas de prototipagem para dar vida às soluções
- Testar e iterar soluções com os usuários para otimizar sua proposta de valor
- Conceber e facilitar workshops de inteligência coletiva usando técnicas de facilitação
Gestão transversal
- Implementar ferramentas e comportamentos-chave da gestão transversal
- Adaptar-se a diferentes perfis comportamentais para colaborar efetivamente
- Organizar e coordenar uma equipe sem vínculo hierárquico
- Gerir resistências e desenvolver liderança transversal
Animar e liderar uma equipe
- Adquirir ferramentas e métodos para uma gestão eficaz da equipe
- Adaptar o estilo de gestão em função dos perfis e das situações
- Dominar as técnicas de comunicação (CNV) e de gestão de conflitos
- Ativar os mecanismos de motivação individuais e coletivos
Bloco 2 - Pilotagem de projeto de engenharia de software
Executar e pilotar a realização de um projeto de Engenharia de Software
- Analisar e compreender o ambiente do projeto
- Escolher e implementar um framework de execução adequado
- Identificar e estimar o trabalho e os recursos do projeto
- Organizar e sequenciar a execução do trabalho
- Acompanhar e comunicar o progresso do projeto
Métodos Ágeis avançados / Scrum
- Diferenciar as abordagens tradicionais das abordagens ágeis e de produto
- Dominar o framework Scrum: papéis, artefatos, cerimônias e estimativas
- Organizar um backlog de produto, redigir user stories e planejar um roadmap
- Aplicar Kanban e os princípios de melhoria contínua
Liderança e Gestão
- Compreender os desafios da liderança em relação à gestão
- Descobrir técnicas de autoconhecimento que fortalecem a liderança do gestor
- Desenvolver competências interpessoais a serviço do engajamento da equipe
- Lidar com situações difíceis (síndrome do impostor, tensões, estresse, sexismo..)
Comunicar em modo projeto
- Conhecer os fundamentos da comunicação de projetos
- Compreender como elaborar um plano de comunicação eficaz
- Identificar os suportes de comunicação essenciais em modo projeto
- Dominar a comunicação no encerramento do projeto
Bloco 3 - Integração, indústrialização e implantação do software
JavaScript: iniciação e programação orientada a objetos
- Compreender o uso do JavaScript no desenvolvimento front-end
- Dominar a sintaxe e os fundamentos essenciais da linguagem JavaScript
- Aplicar os fundamentos da POO (Programação Orientada a Objetos) comum a todas as linguagens web
- Conceber código utilizando métodos específicos do JavaScript
JavaScript: programação orientada a eventos e assíncrona
- Manipular a estrutura DOM de uma página web
- Manipular folhas de estilo CSS
- Práticar a programação orientada a eventos e assíncrona
- Dominar a API Fetch
Desenvolva suas aplicações web com TypeScript
- Dominar os tipos do TypeScript
- Implementar controles com interfaces
- Estruturar um projeto com módulos e namespaces
- Aprofundar-se em programação orientada a objetos (POO)
- Utilizar TypeScript em diferentes ambientes
Fundamentos do desenvolvimento Front-end com Angular
- Dominar o funcionamento de uma aplicação Angular
- Aplicar os blocos fundamentais do Angular: Componentes, Serviços e Diretivas
- Debugar uma aplicação Angular
- Utilizar observables
Aprofundamento do desenvolvimento Front-end com Angular
- Criar uma aplicação Angular completa
- Criar e navegar entre páginas usando o roteador
- Criar formulários complexos usando model-driven forms ou template-driven forms
- Utilizar pipes e criar pipes personalizados
- Fazer requisições HTTP (GET, POST..)
- Utilizar interceptadores
Dominar Java SE
- Desenvolver classes Java
- Dominar as principais palavras-chave da linguagem
- Implementar camadas de software utilizando interfaces
- Utilizar a API Stream e as lambdas
- Compreender a ferramenta Maven, as bibliotecas Lombok e Log4J é o framework JUnit
Desenvolver em Java com Spring e Hibernate
- Dominar Jakarta Persistence e Hibernate para persistência de dados
- Desenvolver uma aplicação empresarial com o framework Spring
- Projetar e expor uma API REST com Spring Boot
- Documentar uma API com Swagger e aplicar programação orientada a aspectos
Git avançado - GitHub e GitLab
- Dominar os comandos e conceitos do Git
- Dominar Pull Requests no GitHub
- Gerenciar um projeto no GitLab
- Aplicar os conceitos internos do Git
Dominar Docker e DevOps
- Compreender os conceitos fundamentais do Docker
- Utilizar as ferramentas Docker Compose para definir e gerenciar aplicações multi-contêiner
- Implantar e gerenciar aplicações usando Docker Swarm
- Utilizar ferramentas de integração contínua com Docker para automatizar processos de implantação
Implantação de uma aplicação
- Descrever e executar a implantação de uma aplicação
- Escolher um modo de implantação adequado ao tipo de hospedagem
- Preparar a implantação de uma aplicação web e microsserviço
- Considerar a segurança na implantação de aplicações
Kubernetes para orquestrar seus containers
- Compreender os conceitos fundamentais do Kubernetes
- Dominar os fundamentos de contêineres e demonstrar como o Kubernetes facilita sua gestão
- Implantar uma aplicação simples no Kubernetes
- Criar um serviço para expor uma aplicação em um cluster
- Utilizar kubectl para monitorar o estado do cluster e recuperar logs
Dominar a linguagem Kotlin
- Dominar os fundamentos e a sintaxe da linguagem Kotlin
- Aplicar programação orientada a objetos e funcional em Kotlin
- Consumir APIs REST e manipular dados JSON
- Gerenciar tarefas assíncronas com threads
Desenvolver aplicações mobile Android em Kotlin
- Criar uma aplicação nativa Android em Kotlin
- Projetar e manipular interfaces gráficas (RecyclerView, menus, temas)
- Consumir APIs REST com Retrofit e a arquitetura MVVM
- Gerenciar o ciclo de vida das atividades, permissões e erros
Construir uma API REST com Spring Boot
- Descobrir o conceito de API REST
- Aprender a gerar um projeto Spring Boot
- Saber interagir com uma API REST como cliente
- Documentar sua API para facilitar a compreensão
- Validar seus dados com annotations
Bloco 4 - Concepção avançada da arquitetura do software
Princípios SOLID em Java
- Identificar os desafios do clean code
- Compreender os princípios SOLID
- Implementar os princípios SOLID em Java
Arquitetura de software
- Identificar e comparar as principais arquiteturas de software (monolítica, SOA, microsserviços, orientada a eventos, centrada em dados)
- Avaliar os casos de uso adequados a cada tipo de arquitetura
- Implementar uma arquitetura de software em Java
Concepção de aplicação complexa com UML
- Produzir código fonte a partir de um diagrama de classes
- Representar um cenário complexo utilizando um diagrama de sequência
- Ilustrar uma arquitetura de software utilizando um diagrama de componentes
- Elaborar um diagrama de implantação
- Produzir um diagrama de pacotes a partir do código fonte
Design Patterns em Java
- Conhecer os 23 Design Patterns do Gang of Four (GoF)
- Aplicar os principais padrões de criação em Java (Singleton, Factory, Abstract Factory)
- Aplicar os principais padrões estruturais em Java (Adapter, Proxy, Composite, Facade, Decorator)
- Aplicar os principais padrões comportamentais em Java (Observer, Strategy, Iterator, Interpreter, Chain of Responsibility)
- Adaptar um ou mais padrões de projeto a situações reais
Segurança de aplicações web
- Compreender as recomendações OWASP
- Conhecer os modos de autenticação para aplicações web
- Implementar autenticação baseada em tokens em Java com Spring Security
Algoritmia avançada
- Ser capaz de comparar dois algoritmos
- Melhorar um algoritmo em termos de tempo de execução
- Melhorar um algoritmo em termos de uso de memória
- Aplicar uma estratégia de resolução de problemas
Programação funcional em Scala
- Compreender os conceitos fundamentais da programação funcional
- Saber utilizar funções como valores
- Dominar as técnicas de manipulação de dados imutáveis
- Aplicar os conceitos de recursividade e funções de ordem superior
- Utilizar Scala para práticar os conceitos de programação funcional
Arquitetura distribuída e Big Data
- Compreender os desafios do Big Data
- Dominar o armazenamento relacional e NoSQL: suas garantias e limitações
- Explorar as características dos sistemas distribuídos
- Dominar os fundamentos do processamento em lote: MapReduce, Data Flow Engines (Spark..)
- Analisar dados em tempo real com Streaming
NoSQL
- Comparar os modelos de bancos de dados relacionais e NoSQL
- Dominar os bancos NoSQL: chave-valor (Redis), coluna (Cassandra), documento (MongoDB), grafo (Neo4j)
- Projetar e gerenciar bancos de dados em um ambiente distribuído
- Compreender a distribuição de carga, a consistência de dados e a tolerância a falhas
Estrutura de dados
- Compreender as estruturas não lineares através da estrutura de grafos
- Representar um grafo em uma linguagem de programação
- Percorrer um grafo
- Resolver problemas comuns utilizando grafos
Planos de testes de uma aplicação
- Construir e executar um plano de testes adaptado à métodologia de desenvolvimento
- Diferenciar os tipos de testes e escolher uma estratégia adequada ao contexto
- Criar e executar testes automatizados em ambientes adequados
- Analisar a segurança de uma aplicação e aplicar correções segundo as recomendações da OWASP
Introdução ao Machine Learning
- Definir machine learning e seus componentes
- Ser capaz de preparar dados
- Saber treinar e utilizar um modelo de machine learning
- Identificar casos de uso relevantes de machine learning
Bloco 5 - Preparação para o seu nível de inglês
Inglês comercial
- Saber acolher, informar e fazer preencher uma ficha de informação
- Ser capaz de comunicar e dominar as bases do inglês comercial
- Tratar reclamações de clientes por escrito
- Enriquecer e utilizar um vocabulário específico e adequado
Inglês Comercial Nível Avançado
- Melhorar as habilidades de comunicação em inglês de negócios
- Desenvolver técnicas e estratégias avançadas de vendas
- Aprimorar habilidades de comunicação intercultural para negócios internacionais
- Aplicar habilidades de vendas B2B e gestão de contas
- Compreender habilidades de marketing e comunicação com clientes
Inglês Comercial Nível Intermediário
- Comunicar-se efetivamente com colaboradores, clientes ou fornecedores em inglês
- Descobrir métodos para melhorar a pronúncia e a articulação em inglês
- Dominar as técnicas de apresentação eficaz em inglês para cativar a audiência
- Compreender as necessidades dos clientes e reformulá-las
- Formular propostas comerciais e responder a objeções
Inglês: preparação para o TOEIC
- Familiarizar-se com o formato do teste TOEIC
- Identificar os pontos gramaticais a dominar é o vocabulário a adquirir
- Evitar as "armadilhas" do TOEIC
- Maximizar sua pontuação no TOEIC com dicas de preparação e simulado
Bloco 6 - Módulos de nívelamento preparatório e reforço
Inglês de Recursos Humanos
- Conceber e adaptar estratégias de comunicação em inglês para situações de RH complexas e internacionais
- Desenvolver e enriquecer um léxico de RH especializado para formular com precisão políticas e procedimentos de RH em inglês
- Elaborar mensagens e materiais de RH (e-mails, entrevistas, apresentações) em inglês integrando dimensões linguísticas e interculturais
- Produzir uma comunicação de RH coerente, clara e credível, adaptada a interlocutores multiculturais e contextos organizacionais variados
Rankings nacionais de escolas de engenharia na França (2024-2026)
| Posição | Especialidade |
|---|---|
| 1 º | Especialidade em Informática |
| 3 º | Escolas especializadas em Informática |
| 4 º | IA & Ciência de Dados |
| 5 º | Top 20 Informática Pós-Bac |
| 6 º | Engenharia Informática |
| 10 º | Ranking Geral Pós-Bac |
| 11 º | Escolas de Engenharia Pós-Bac |
| 13 º | Engenharia Generalista Pós-Bac |
26 Competência técnica · 8 Competência humana
Competência técnica
Projetar sistemas de software escaláveis usando padrões arquiteturais como arquitetura em camadas, arquitetura hexagonal, microsserviços, arquitetura orientada a eventos e CQRS.
Aplicar os princípios SOLID (Responsabilidade Única, Aberto/Fechado, Substituição de Liskov, Segregação de Interfaces, Inversão de Dependências) e práticas de código limpo para software manutenível.
Implementar os design patterns do Gang of Four (Criacionais, Estruturais, Comportamentais) para resolver problemas de design recorrentes e construir software orientado a objetos flexível e reutilizável.
Definir e executar estratégias de testes abrangentes incluindo testes unitários, testes de integração, testes de ponta a ponta, práticas TDD/BDD e processos de garantia de qualidade de software.
Proteger aplicações web aplicando as diretrizes OWASP Top 10, implementando autenticação/autorização, prevenindo ataques de injeção, XSS, CSRF e realizando auditorias de segurança.
Dominar os paradigmas de programação JavaScript incluindo programação orientada a objetos, arquitetura orientada a eventos, padrões assíncronos (Promises, async/await) e funcionalidades modernas ES6+.
Desenvolver aplicações type-safe com TypeScript, aproveitando sistemas de tipos avançados, genéricos, decoradores, interfaces e integração com frameworks e ferramentas de build modernos.
Programar aplicações robustas em Java SE, dominando conceitos fundamentais como coleções, genéricos, streams, multithreading, I/O é o ecossistema JVM.
Desenvolver aplicações empresariais usando o framework Spring (Boot, MVC, Security, Data) e Hibernate ORM para persistência de dados, gerenciamento de transações e desenvolvimento de APIs RESTful.
Projetar e implementar APIs RESTful seguindo boas práticas incluindo modelagem de recursos, métodos HTTP, códigos de status, autenticação, versionamento, documentação e segurança de APIs.
Containerizar aplicações com Docker, criar imagens otimizadas, gerenciar ambientes multi-contêiner com Docker Compose e integrar práticas DevOps para entrega contínua.
Aplicar workflows Git avançados incluindo estratégias de branching (GitFlow, trunk-based), pull requests, revisões de código, integração CI/CD e colaboração nas plataformas GitHub e GitLab.
Aplicar práticas avançadas de Agile e Scrum incluindo planejamento de sprints, refinamento de backlog, acompanhamento de velocidade, retrospectivas e frameworks de escalabilidade para projetos de software complexos.
Executar e pilotar projetos de engenharia de software de ponta a ponta, gerenciando escopo, prazos, orçamentos, entregas e expectativas dos stakeholders ao longo do ciclo de vida do projeto.
Analisar e projetar algoritmos eficientes, compreender complexidade computacional (notação Big O) e aplicar estruturas de dados avançadas e estratégias algorítmicas para resolver problemas complexos.
Modelar designs de aplicações complexas usando diagramas UML incluindo diagramas de classes, de sequência, de casos de uso, de componentes e de implantação.
Construir aplicações front-end de nível empresarial com Angular, incluindo componentes, serviços, injeção de dependências, roteamento, formulários reativos, observáveis RxJS e gerenciamento de estado.
Desenvolver aplicações Android nativas usando Kotlin, incluindo design de UI com Jetpack Compose, arquitetura MVVM, persistência de dados, integração de API e boas práticas para dispositivos móveis.
Projetar e implementar sistemas distribuídos e arquiteturas Big Data usando tecnologias como Hadoop, Spark, Kafka e bancos de dados distribuídos para processamento de dados em larga escala.
Trabalhar com sistemas de bancos de dados NoSQL incluindo Redis (chave-valor), MongoDB (documento), Cassandra (coluna) e Neo4j (grafo), selecionando o modelo aprópriado para cada caso de uso.
Aplicar paradigmas de programação funcional com Scala, incluindo imutabilidade, funções de ordem superior, pattern matching, monads e abordagens funcionais para programação concorrente.
Compreender e aplicar os fundamentos de machine learning incluindo aprendizado supervisionado/não supervisionado, redes neurais, avaliação de modelos e integração de capacidades de IA em aplicações de software.
Coletar e analisar as necessidades do cliente, modelar específicações funcionais e traduzir requisitos de negócio em requisitos de software acionáveis usando técnicas como casos de uso, user stories e matrizes de rastreabilidade de requisitos.
Projetar interfaces centradas no usuário através de pesquisa UX, wireframing, prototipagem, testes de usabilidade e aplicação de princípios de design para criar produtos digitais intuitivos e acessíveis.
Desenvolver e executar estratégias de comunicação de projeto incluindo relatórios para stakeholders, dashboards de progresso, comunicação de riscos e técnicas de alinhamento de equipe.
Compreender o direito contratual de TI incluindo SLAs, propriedade intelectual, conformidade com LGPD/GDPR, cláusulas de responsabilidade e marcos legais que regem o desenvolvimento de software e serviços digitais.
Competência humana
Liderar e orientar equipes de desenvolvimento através de mentoria, delegação, motivação, feedback de desempenho e promoção de uma cultura de aprendizado contínuo e crescimento profissional.
Coordenar equipes multifuncionais, alinhar stakeholders diversos e gerenciar projetos transversais abrangendo múltiplos departamentos com diferentes prioridades e restrições.
Colaborar efetivamente dentro de equipes Ágeis através de pair programming, revisões de código, cerimônias de sprint, compartilhamento de conhecimento e práticas de trabalho em equipe multifuncional.
Aplicar a métodologia Design Thinking para impulsionar a inovação, incluindo mapeamento de empatia, ideação, prototipagem rápida e validação iterativa com usuários finais.
Construir e manter relacionamentos de confiança com clientes através de consultoria em TI, análise de necessidades, propostas de soluções e serviços de assessoria alinhando tecnologia com objetivos de negócio.
Produzir documentação técnica clara, redigir comunicações de projeto eficazes, criar registros de decisão arquitetural e apresentar conceitos técnicos complexos para públicos diversos.
Comunicar-se efetivamente em inglês profissional em documentação técnica, apresentações, reuniões e colaboração internacional com equipes de desenvolvimento globais.
Navegar na comunicação de RH em contextos internacionais e multiculturais, incluindo conscientização intercultural, gestão da diversidade e comunicação eficaz além das fronteiras culturais.
MagicPlaylist - Descoberta Musical Android e Gerador de Playlists
Aplicação Android nativa gerando playlists musicais a partir de faixas selecionadas via dados de similaridade do Shazam e exportando para o Spotify - 5.666 linhas de Kotlin, 22 componentes UI Compose, pipeline de mapping com 5 estratégias, construido em 2 dias com desenvolvimento assistido por IA.
Plataforma Colaborativa de Gerenciamento de Projetos
Aplicação web full-stack para gerenciamento de projetos em equipe com autenticação JWT, controle de acesso por funções, dashboards em tempo real, notificações por email e pipeline CI/CD completo - 30.555 linhas de código, 12 user stories, 7 tabelas no banco de dados, deploy no Docker Hub.
GamesUP - Plataforma E-Commerce de Jogos de Tabuleiro com Recomendações ML
API backend completa para uma plataforma e-commerce de jogos de tabuleiro com motor de recomendação KNN, segurança JWT, arquitetura SOLID e 81% de cobertura de testes - 32,6K linhas de código, 364 testes, 65+ endpoints REST, 4 contêineres Docker, construida com Spring Boot 3, Python FastAPI e Docker.







