O dinamismo do desenvolvimento e da evolução da área de Tecnologia da Informação exige que seus profissionais estejam em constante processo de reciclagem / aprendizagem. Para se desenvolver software de qualidade e que atendam às reais necessidades de seus usuários, é de suma importância a utilização de metodologias que conduzam de forma eficiente e eficaz esse processo. O curso apresenta uma visão crítica e prática do emprego da Engenharia de Software no processo de desenvolvimento de software para os mais variados ambientes organizacionais, abordando técnicas, tendências e estado da arte da Engenharia de Software, como desenvolvimento de aplicações web front-end e back-end, SCRUM, DevOps, DevSecOps, Design Thinking, Design Sprints, TDD, Generative AI, dentre outras. O curso é tradicional na PUC Minas, ocorrendo semestralmente desde 1999.
COMO FUNCIONA A MODALIDADE
OBJETIVOS
O Curso de Especialização em Engenharia de Software visa:
Desenvolver junto aos alunos habilidades de análise e utilização das tecnologias e metodologias da Engenharia de Software com o intuito de aplicá-las nos mais variados contextos organizacionais;
Capacitar os alunos a gerenciar projetos de software de forma ágil e eficiente, utilizando metodologias como Scrum, Kanban, e práticas DevOps e DevSecOps para promover uma cultura de colaboração e automação contínua;
Preparar os alunos para utilizar abordagens de design de software, incluindo Design Thinking e Domain-Driven Design, para criar soluções centradas no cliente;
Ensinar os fundamentos da engenharia de requisitos e da qualidade de software, com foco na garantia da qualidade e na satisfação do cliente;
Desenvolver habilidades para trabalhar com diferentes tecnologias e bancos de dados, incluindo relacionais e não relacionais.
Fornecer habilidades práticas para a criação e gestão de APIs seguras e eficientes e a utilização de bancos de dados relacionais e não relacionais para atender às necessidades de dados diversificadas;
Explorar a aplicação de IA no desenvolvimento de software para melhorar a produtividade e a qualidade do desenvolvimento de software.
Competências a serem desenvolvidas
Ao final do curso, o aluno será capaz de:
Compreender questões conceituais, padrões e práticas relacionadas à Engenharia de Software;
Aplicar metodologias ágeis, como Scrum e Kanban, para planejar, executar e monitorar projetos de software;
Implementar práticas de DevOps e DevSecOps, incluindo integração contínua, entrega contínua e segurança em todo o ciclo de vida do desenvolvimento;
Aplicar processos de engenharia de software, aplicando técnicas de Design Thinking, DDD, e desenvolvimento centrado no usuário;
Projetar designs intuitivos e acessíveis, utilizando ferramentas de prototipação e realizando testes de usabilidade;
realizar o levantamento, análise e gerenciamento de requisitos de software, assegurando que atendam as expectativas dos stakeholders;
Projetar soluções escaláveis e resilientes em ambientes de nuvem;
Implementar arquiteturas modernas para desenvolvimento front-end, incluindo SPAs, PWAs e responsividade
Aplicar padrões, protocolos, e frameworks para construção de soluções back-end ;
Projetar, desenvolver e gerenciar APIs, utilizando diferentes abordagens arquiteturais como REST e GraphQL;
Projetar e otimizar bancos de dados relacionais e não relacionais;
Realizar testes de software eficazmente, usando técnicas como TDD e integrando testes no fluxo de CI/CD;
Implementar processos de garantia de qualidade;
Aplicar técnicas de inteligência artificial para melhorar o desenvolvimento de software, como a geração de código e a automação de testes;
Implementar práticas de segurança no ciclo de desenvolvimento.
ÁREA DE ATUAÇÃO DO EGRESSO
O especialista em Engenharia de Software poderá atuar como Engenheiro de Software e, também, nas mais diversas áreas que demandam conhecimentos de desenvolvimento, evolução e operação de software. Além disso, ele poderá atuar nos mais diversos tipos de projetos inovadores em TI.
PÚBLICO-ALVO
Profissionais com formação superior:
Em Ciência da Computação, Engenharia de Computação, Engenharia de Software, Sistemas de Informação, tecnólogos da área de Tecnologia da Informação ou áreas afins;
Nas mais diversas áreas e que necessitam de competências emergentes para atuarem na área de Engenharia de Software;
Que já atuam na área de Engenharia de Software, mas que precisam aprofundar seus conhecimentos na área.
PROGRAMA DO CURSO
Estratégias para Desenvolvimento de Software
Design de Experiência do Usuário
Engenharia de Requisitos
Arquitetura de Soluções em Nuvem
Arquitetura de Front End
Arquitetura de Back End
APIs e Web Services
Bancos de Dados Relacionais e não Relacionais
Testes de Software
Práticas de Implementação e Evolução de Software
Qualidade de Software
IA Generativa em Desenvolvimento de software
Humanidades
Gerenciamento Ágil de Projetos
Cultura e Práticas DevOps
Cultura e Práticas DevSecOps
DETALHES DO PROGRAMA
Módulo 1: Fundamentos e Estratégias de Engenharia de Software
Estratégias para Desenvolvimento de Software
Ao final da disciplina, os alunos deverão ser capazes de:
Aplicar os processos de engenharia de software em projetos reais
Utilizar abordagens de Design Thinking no desenvolvimento de soluções
Aplicar princípios de DDD (Design Dirigido pelo Domínio) e FDD (Desenvolvimento Dirigido por Funcionalidades)
Implementar Design Sprints para acelerar a inovação
Otimizar a experiência do desenvolvedor (DevEx).
Engenharia de Requisitos
Ao final da disciplina, os alunos deverão ser capazes de:
Conduzir o levantamento, análise, especificação e validação de requisitos funcionais e não funcionais de software.
Diferenciar e especificar requisitos funcionais e não funcionais
Identificar e gerenciar stakeholders em projetos de software
Aplicar métodos de priorização e análise de requisitos
Criar casos de uso, cenários e histórias de usuário
Gerenciar mudanças nos requisitos ao longo do ciclo de vida do projeto
Integrar Design Thinking na Engenharia de Requisitos.
Design de Experiência do Usuário
Ao final da disciplina, os alunos deverão ser capazes de:
Criar personas e storyboards para representar usuários-alvo
Realizar pesquisas de UX e aplicar ferramentas de prototipação, garantindo acessibilidade e usabilidade através de testes como Testes A/B e Mapas de Calor
Criar designs responsivos e compatíveis com diferentes dispositivos
Desenvolver arquiteturas de informação eficientes
Criar protótipos e mockups usando ferramentas de design
Realizar e interpretar testes de usabilidade
Implementar layouts responsivos e style guides consistentes.
Qualidade de Software
Ao final da disciplina, os alunos deverão ser capazes de:
Aplicar fundamentos de qualidade de software, estabelecendo métricas e práticas para assegurar a qualidade do processo e produto
Definir e medir métricas de qualidade de processo e produto
Aplicar normas e modelos de maturidade para avaliar processos e garantir a certificação e melhoria contínua
Realizar avaliações de qualidade e auditorias de software
Compreender a importância da qualidade de software para os objetivos estratégicos do negócio.
Módulo 2: Metodologias Ágeis e DevOps
Gerenciamento Ágil de Projetos
Ao final da disciplina, os alunos deverão ser capazes de:
Compreender e aplicar fundamentos de gerenciamento de projetos, diferenciando abordagens tradicionais e ágeis
Implementar e adaptar frameworks ágeis como Scrum e Kanban
Fomentar uma cultura ágil em equipes de desenvolvimento
Definir e ajustar planos, acompanhar o progresso e fazer ajustes conforme necessário
Gerenciar mudanças em ambientes ágeis.
Cultura e Práticas DevOps
Ao final da disciplina, os alunos deverão ser capazes de:
Compreender a cultura DevOps e seus benefícios
Implementar CI/CD e infraestrutura como código utilizando ferramentas como Docker e Kubernetes
Projetar pipelines de build e deployment seguros e eficazes
Promover uma cultura de DevOps colaborativa e centrada na automação de testes e processos
Integrar práticas de DevOps em projetos de desenvolvimento soluções
Cultura e Práticas DevSecOps
Ao final da disciplina, os alunos deverão ser capazes de:
Conhecer os conceitos fundamentais de DevOps e DevSecOps
Entender do Secure Development Lifecycle (SDLC)
Implementar práticas de segurança end-to-end no desenvolvimento de software
Gerenciar e construir de pipelines DevSecOps .Aplicar as melhores práticas em DevSecOps
Usar técnicas de verificação de segurança (IAST, SAST, DAST, RASP)
Compreender Security Observability.
Módulo 3: Arquitetura e Desenvolvimento
Arquitetura de Soluções em Nuvem
Ao final da disciplina, os alunos deverão ser capazes de:
Avaliar diferentes provedores de nuvem (IaaS, SaaS, PaaS) para escolher a melhor solução baseada em necessidades específicas de elasticidade e disponibilidade
Projetar arquiteturas de nuvem seguras e escaláveis que suportem DevOps, proporcionando uma integração contínua e entrega ágil
Implementar soluções eficientes de multi-cloud e cloud híbrida, assegurando a interoperabilidade entre nuvens públicas e privadas
Realizar análises de viabilidade técnica e financeira para justificar o uso de certas tecnologias e abordagens de nuvem.
Arquitetura de Front End
Ao final da disciplina, os alunos deverão ser capazes de:
Dominar o ambiente de desenvolvimento moderno, incluindo IDEs, gerenciadores de pacotes, loaders e bundlers
Aplicar a abordagem Mobile First e responsividade
Utilizar frameworks e pré-processadores CSS
Aplicar abordagens arquiteturais para CSS (BEM, SMACSS, OOCSS, RSCSS, CSS-in-JS)
Implementar abordagens arquiteturais de front end (SPA, PWA, SSR, WebAssembly, Micro frontends)
Abordar aspectos de segurança no front end
Aplicar técnicas de otimização para motores de busca (SEO).
Arquitetura de Back End
Ao final da disciplina, os alunos deverão ser capazes de:
Compreender os estilos arquiteturais de back end
Aplicar mecanismos arquiteturais de back end
Dominar padrões, protocolos e especificações de back end
Implementar diferentes abordagens arquiteturais de back end
Selecionar tecnologias e frameworks adequados para a construção de back end.
APIs e Web Services
Ao final da disciplina, os alunos deverão ser capazes de:
Compreender os fundamentos e arquiteturas de APIs (SOAP, REST, GraphQL, etc.).
Projetar, documentar e testar APIs, assegurando segurança e boas práticas.
Implementar diferentes abordagens arquiteturais de APIs
Utilizar protocolos como REST e SOAP para criar e consumir APIs
Documentar APIs de forma clara e completa
Aplicar práticas de segurança no desenvolvimento de APIs
Gerenciar o ciclo de vida completo de API
Módulo 4: Implementação e Testes de Software
Bancos de Dados Relacionais e Não Relacionais
Ao final da disciplina, os alunos deverão ser capazes de:
Compreender e aplicar modelos relacionais e NoSQL, utilizando SQL e explorando os benefícios de cada abordagem.
Comparar e selecionar entre modelos relacionais e NoSQL para diferentes cenários
Implementar e gerenciar transações em diferentes tipos de bancos de dados
Utilizar eficientemente os principais SGBDs do mercado.
Práticas de Implementação e Evolução de Software
Ao final da disciplina, os alunos deverão ser capazes de:
Planejar e executar sprints de desenvolvimento
Modelar e projetar soluções de software
Implementar sistemas usando padrões arquiteturais como MVC
Integrar práticas de teste no processo de desenvolvimento
Planejar e executar implantações de software
Aplicar técnicas eficazes de manutenção de software.
Testes de Software
Ao final da disciplina, os alunos deverão ser capazes de:
Aplicar fundamentos de testes de software ao longo do ciclo de vida de desenvolvimento, utilizando abordagens como TDD
Integrar testes no fluxo de CI/CD, utilizando ferramentas de automação para assegurar a qualidade contínuaSelecionar e utilizar ferramentas de automação de testes
Configurar e gerenciar ambientes de teste
Implementar testes não funcionais automatizados
Analisar e reportar resultados de testes.
Módulo 5: Inovação e Tecnologias Emergentes
IA Generativa em Desenvolvimento de Software
Ao final da disciplina, os alunos deverão ser capazes de:
Aplicar técnicas de IA Generativa para automatizar tarefas de desenvolvimento de software.
Avaliar o impacto da IA Generativa na produtividade e qualidade do software.
utilizar e integrar ferramentas de IA Generativa no processo de desenvolvimento de software.
Comunicar os benefícios e desafios da IA Generativa para stakeholders.
Utilizar IAs Generativas para melhorar a experiência do usuário (UX) em interações com software.
Gerenciar e configurar soluções de AI-as-a-Service, AI-as-a-Commodity e AI Gateways.
Humanidades
Ao final da disciplina, os alunos deverão ser capazes de:
Refletir sobre o papel da ética e da espiritualidade no contexto científico e tecnológico.
Avaliar os impactos sociais e humanistas do uso de dados e tecnologia.
Desenvolver uma ética profissional sólida em ambientes de trabalho colaborativos e tecnológicos.
CORPO DOCENTE
Anderson da Silva Theobaldo - Mestre
Augusto Nogueira Zadra - Mestre
Isabella de Araujo Fonseca Campos - Mestre
Leonardo Bráulio de Oliveira e Silva - Mestre
Marcelo Nassau Malta - Mestre
Marco Aurélio de Souza Mendes - Mestre
Ricardo Brito Alves - Mestre
Samuel Almeida Cardoso - Mestre
Tiago Henrique Belotte - Mestre
Welington Costa Monteiro - Especialista
Zenilton Kleber Gonçalves do Patrocínio - Doutor
O corpo docente poderá sofrer alteração em caso de alguma eventualidade.
INSCRIÇÃO E MATRÍCULA
INSCRIÇÕES ABERTAS
2. MATRÍCULA
FAÇA SUA MATRÍCULA PARA GARANTIR A SUA VAGA!
IMPORTANTE
ATENÇÃO • REQUISITO PREVISTO EM LEI
- Eveline Alonso Veloso - Mestre
- Tadeu dos Reis Faria - Mestre
Área do Conhecimento
Tecnologias DigitaisPeríodo de Realização
Início: 07/04/2025Previsão de término: 17/06/2026
Carga Horária
444 horas/aula*.*Hora/aula de 50 minutos (carga horária total equivalente à 370 horas)
Horário
Aulas ao vivo, às segundas e quartas-feiras, das 19h às 22h30. Eventualmente, poderá ocorrer em outro dia da semana.Investimento
24 x R$ 492,00
18 x R$ 643,00
6 x R$ 1.847,00
À vista R$ 10.879,00
Pessoa Jurídica como responsável pelo pagamento das mensalidades
Requisitos Tecnológicos
O aluno deve ter acesso próprio a equipamentos de acordo com as configurações técnicas especificas. Acesse aqui os detalhes.
Trabalho de conclusão de curso
O TCC não é obrigatório para a finalização do curso de pós-graduação. Caso tenha interesse, o aluno pode contratar o serviço de tutoria específica para realizar um TCC. Mais informações, atendimentoiec@pucminas.br
Certificação
Dispensa de Disciplinas
Diploma estrangeiro
Alunos com diploma de graduação emitido fora do território nacional, devem acessar o link oficial do MEC para revalidar ou reconhecer seu diploma no Brasil.
Estágio
Estude na Melhor
Não decidiu qual curso fazer?
Faça um teste de orientação profissional para ajudar você na sua escolha.
Blog Conexão PUC Minas
Informações sobre sua formação profissional e mercado de trabalho.
Por que escolher a Puc Minas
- Inovação
A PUC Minas foi eleita uma das universidades mais inovadoras do país, segundo o RUF.
- Reputação
A maior universidade católica do mundo é também uma das melhores do mundo pela Times Higher Education.
- Intercâmbio
Convênio com mais de 160 instituições pelo mundo para ampliar a experiência acadêmica e criar um ambiente multicultural.
- Pesquisa
Programas de pesquisa que amplicam o conhecimento e a inovação no Estado e estreitam as relações com empresas
- Empregabilidade
Estudar em uma das 10 universidades mais respeitadas pelos empregadores do Brasil faz toda a diferença na sua formação.
- Estrutura de Ponta
Laboratórios com estrutura de ponta para você vivenciar em profundidade e realidade da profissão.
Entre em contato com a nossa central