Engenharia de Software

Engenharia de Software

Turmas

A distância - AO VIVO

Objetivo

Capacitar profissionais para o desenvolvimento, gerenciamento e implantação de sistemas de software com o uso de técnicas de Ciência de Dados e Inteligência Artificial, promovendo inovação e eficiência nos processos tecnológicos.

Perfil do Especialista

O egresso do curso de pós-graduação em Engenharia de Software, com ênfase em Ciência de Dados e Inteligência Artificial, será um profissional altamente qualificado, preparado para atuar em ambientes tecnológicos complexos e em constante evolução. Ele estará capacitado para projetar, desenvolver e gerenciar sistemas de software robustos e de alta complexidade, aplicando metodologias modernas de engenharia de software. Além disso, terá domínio sobre técnicas avançadas de aprendizado de máquina, análise de dados e inteligência artificial, integrando essas competências no ciclo de desenvolvimento de software para criar soluções inteligentes e preditivas. Com habilidades de liderança e visão estratégica, o egresso será apto a coordenar equipes multidisciplinares, promovendo a inovação tecnológica em organizações de diferentes setores. Sua formação permitirá resolver problemas desafiadores e propor soluções eficientes, utilizando modelos preditivos e sistemas inteligentes que agreguem valor às empresas e contribuam para o avanço da transformação digital.

Programa

Carga Horária: 378h

Fundamentos da Engenharia de Software
• Conceitos e histórico da Engenharia de Software
• Ciclo de vida do desenvolvimento de software
• Modelos de processo de software (Cascata, Iterativo, Ágil)
Engenharia de Requisitos
• Tipos de requisitos: funcionais e não funcionais
• Técnicas de elicitação e especificação
• Ferramentas e documentação de requisitos
Arquitetura e Modelagem de Software
• Introdução à UML e diagramas principais
• Padrões de projeto (Design Patterns)
• Arquitetura de software e boas práticas
Metodologias e Qualidade de Software
• Metodologias ágeis (Scrum, Kanban) e tradicionais
• Testes de software: tipos e ferramentas
• Métricas e qualidade de software
Gerenciamento e Automação no Desenvolvimento
• Gerenciamento de projetos de software (PMBOK, Agile)
• Práticas de DevOps e Integração Contínua
• Ferramentas modernas de desenvolvimento (Git, Docker, CI/CD)
Estudo de Caso e Aplicação Prática
• Análise de um projeto real de software
• Discussão de boas práticas na indústria
• Mini-projeto prático com modelagem e implementação

Fundamentos da Qualidade de Software
• Conceitos e definições de qualidade de software.
• Importância da qualidade no ciclo de vida do desenvolvimento de software.
• Qualidade de software x Qualidade do processo de desenvolvimento.
• Princípios da engenharia de software e garantia da qualidade.
• Modelos e abordagens de qualidade: controle versus garantia de qualidade.
Modelos de Qualidade e Normas
• ISO/IEC 9126 e ISO/IEC 25010: Modelos de qualidade do software.
• ISO 9001 e CMMI (Capability Maturity Model Integration) para melhoria de processos.
• MPS.BR (Melhoria de Processo do Software Brasileiro).
• Qualidade de software em ambientes ágeis e DevOps.
• Processos de auditoria e certificação de qualidade.
Métricas e Indicadores de Qualidade
• Métricas de qualidade de software: produtividade, eficiência e usabilidade.
• Métricas de código-fonte: complexidade ciclomática, cobertura de código e manutenibilidade.
• Medidas de qualidade do produto: confiabilidade, desempenho, escalabilidade e segurança.
• Indicadores de qualidade e análise de defeitos.
• Ferramentas para análise de métricas e monitoramento contínuo.
Verificação, Validação e Testes de Software
• Diferença entre verificação e validação no processo de qualidade.
• Técnicas de revisão e inspeção de código.
• Tipos de testes: unitários, integração, sistema, aceitação, regressão e desempenho.
• Critérios para cobertura de testes e rastreabilidade de requisitos.
• Ferramentas para gestão de testes e rastreamento de defeitos.
Automação de Testes e DevOps
• Introdução à automação de testes: vantagens e desafios.
• Ferramentas de automação de testes funcionais e não funcionais.
• Integração contínua, entrega contínua (CI/CD) e qualidade no DevOps.
• Monitoramento e manutenção da qualidade em ambientes de software dinâmicos.
• Testes de segurança e conformidade com boas práticas de desenvolvimento seguro.
Qualidade em Projetos de Software e Estudos de Caso
• Qualidade em desenvolvimento ágil e práticas de QA em Scrum e Kanban.
• Gerenciamento de riscos em qualidade de software.
• Melhoria contínua de processos de qualidade.
• Estudo de casos reais: análise de falhas e impactos na indústria de software.
• Tendências futuras na qualidade de software e inteligência artificial aplicada a QA.

Introdução à Modelagem de Dados para Ciência de Dados
• Conceitos fundamentais de modelagem de dados para Ciência de Dados.
• Modelos de dados: conceitual, lógico e físico.
• A importância de uma boa modelagem para a análise eficiente de grandes volumes de dados.
• Entidades, atributos, relacionamentos e cardinalidade no contexto de Ciência de Dados.
Modelagem Conceitual e Diagramas Entidade-Relacionamento (DER)
• Uso de Diagramas ER para representação gráfica da estrutura dos dados.
• Ferramentas de modelagem de dados e integração com ferramentas de análise.
• Transformação de modelos conceituais em modelos lógicos e físicos para suportar análises avançadas.
Normalização e Integridade dos Dados
• Princípios da normalização e formas normais (1FN a 5FN) em projetos de Ciência de Dados.
• Eliminação de redundância e dependências funcionais.
• Garantia de integridade referencial e regras de validação para garantir a qualidade dos dados.
Bancos de Dados Relacionais e SQL para Ciência de Dados
• Arquitetura e princípios dos bancos de dados relacionais no contexto de análise de dados.
• Comandos SQL: SELECT, INSERT, UPDATE, DELETE (CRUD) aplicados a grandes conjuntos de dados.
• Consultas avançadas: JOINs, GROUP BY, HAVING, funções agregadas e otimização de performance.
Integração de Bancos de Dados com Ferramentas de Análise de Dados
• Conexão de bancos de dados relacionais com Python e R para análise de dados.
• Extração, transformação e carga (ETL) de dados para análise.
• Ferramentas de visualização de dados e análise exploratória de dados integradas com SQL.
• Exemplos práticos de integração com bibliotecas como Pandas, NumPy e Matplotlib em Python.
Modelagem de Dados para Big Data e Aplicações Modernas
• Modelagem de dados para Big Data: comparação entre bancos de dados relacionais e NoSQL.
• Integração de bancos de dados relacionais com plataformas de Big Data e ferramentas analíticas.
• Boas práticas na modelagem de dados para suportar análise em tempo real e predições com modelos de Machine Learning.

Fundamentos da Programação em Python
• Introdução à linguagem Python: sintaxe, operadores e tipos de dados.
• Estruturas de controle: condicionais, loops e tratamento de exceções.
• Funções, parâmetros e retorno de valores.
• Estruturas de dados em Python: listas, tuplas, dicionários e sets.
Manipulação e Pré-processamento de Dados com Python
• Leitura e escrita de arquivos: CSV, Excel e JSON.
• Manipulação de dados com Pandas: Series, DataFrames e operações básicas.
• Limpeza de dados: tratamento de valores ausentes, duplicados e conversões de tipo.
• Filtragem, agregação e transformação de dados.
Análise Estatística e Visualização de Dados
• Análise estatística básica: medidas de tendência central, dispersão e distribuições.
• Bibliotecas de visualização: Matplotlib, Seaborn e Plotly.
• Criação de gráficos: gráficos de dispersão, histograma, boxplot e heatmaps.
• Visualização interativa e customização de gráficos.
Algoritmos e Estruturas de Dados em Python
• Algoritmos de busca e ordenação.
• Estruturas de dados avançadas: pilhas, filas, listas encadeadas e árvores.
• Complexidade computacional e análise de eficiência.
• Implementação de algoritmos de manipulação de dados em Python.
Introdução ao Machine Learning com Python
• Bibliotecas para Machine Learning: Scikit-learn e TensorFlow.
• Fundamentos de aprendizado supervisionado e não supervisionado.
• Implementação de modelos de regressão e classificação com Scikit-learn.
• Avaliação de modelos: métricas de performance, validação cruzada e overfitting.
Integração de Python com Bancos de Dados Relacionais e Aplicações Práticas
• Conexão e manipulação de bancos de dados relacionais com Python (biblioteca SQLite).
• Consultas SQL dentro de Python e integração com Pandas.
• Desenvolvimento de mini-projetos: análise de dados, processamento e modelagem de dados para aplicações de Engenharia de Software.
• Estudos de caso de integração de Python com sistemas de software e análise de dados.

Introdução à Engenharia de Dados e Big Data
• Definição e importância da Engenharia de Dados para Ciência de Dados e Big Data.
• Arquitetura de dados: camadas e componentes principais.
• Características e desafios do Big Data: Volume, Velocidade, Variedade, Veracidade e Valor (V’s do Big Data).
• Tecnologias emergentes em Engenharia de Dados: Hadoop, Spark e NoSQL.
Arquiteturas de Dados Distribuídas
• Fundamentos da arquitetura distribuída para Big Data.
• Hadoop: estrutura, HDFS (Hadoop Distributed File System) e MapReduce.
• Introdução ao Apache Spark: processamento em memória, RDDs (Resilient Distributed Datasets).
• Comparação entre Hadoop e Spark: quando usar cada um.
Bancos de Dados NoSQL
• Introdução aos bancos de dados NoSQL: tipos e características.
• Bancos de dados chave-valor, orientados a coluna, grafos e documentos.
• MongoDB e Cassandra: arquiteturas e uso em Big Data.
• Implementação de soluções NoSQL para dados não estruturados.
Processamento de Dados e Pipelines
• Arquitetura de pipelines de dados: ingestão, processamento e armazenamento.
• Ferramentas e frameworks para orquestração de pipelines: Apache Kafka, Apache Airflow.
• Processamento em lote vs. processamento em tempo real (streaming).
• Análise e transformação de dados com Apache Spark e PySpark.
Armazenamento e Processamento em Tempo Real
• Big Data em tempo real: importância e desafios.
• Tecnologias para processamento em tempo real: Apache Kafka, Apache Flink e Apache Storm.
• Armazenamento em tempo real: HBase, Cassandra e bancos de dados em memória.
• Casos de uso para dados em tempo real em Ciência de Dados e Big Data.
Integração de Dados e Aplicações Práticas
• Integração de dados estruturados, semi-estruturados e não estruturados.
• Ferramentas de integração e ETL (Extract, Transform, Load) para Big Data.
• Mini-projeto prático de implementação de um pipeline de dados usando Hadoop, Spark e bancos NoSQL.
• Estudo de caso: soluções de Big Data em empresas e aplicações práticas.

Fundamentos da Engenharia de Machine Learning
• Introdução à Engenharia de ML e seu papel na Ciência de Dados.
• Fluxo de trabalho de Machine Learning: desde a coleta de dados até a implantação.
• Diferença entre Ciência de Dados, Engenharia de ML e Engenharia de Dados.
• Principais desafios na produção de modelos de ML.
• Ferramentas e tecnologias para Engenharia de ML.
Engenharia de Dados e Pré-processamento
• Coleta, limpeza e transformação de dados para ML.
• Técnicas de engenharia de features e seleção de variáveis.
• Estratégias de balanceamento de dados e tratamento de desbalanceamento.
• Feature stores e reutilização de features em pipelines de ML.
• Introdução ao versionamento de dados e experimentos.
Treinamento e Avaliação de Modelos
• Seleção de modelos e tuning de hiperparâmetros.
• Métricas de avaliação e validação cruzada.
• Comparação entre algoritmos supervisionados e não supervisionados.
• Estratégias para evitar overfitting e underfitting.
• Uso de AutoML para experimentação e otimização automática.
Pipelines e Automação com MLOps
• Arquitetura de pipelines de Machine Learning.
• Automação de experimentos com MLflow e Kubeflow.
• Gerenciamento de modelos e reprodutibilidade de experimentos.
• Monitoramento de modelos em produção: data drift e model drift.
• Práticas de CI/CD para Machine Learning.
Escalabilidade e Deploy de Modelos
• Técnicas de deploy: batch, online e edge deployment.
• APIs para Machine Learning com Flask, FastAPI e TensorFlow Serving.
• Deploy de modelos em ambientes cloud (AWS, GCP, Azure).
• Estratégias para escalabilidade e performance de modelos.
• Modelos serverless e uso de contêineres (Docker e Kubernetes).
Aplicações Avançadas e Estudos de Caso
• Aprendizado contínuo e atualização de modelos em produção.
• Engenharia de Machine Learning para IA generativa.
• Casos de uso reais em finanças, saúde, indústria e tecnologia.
• Desafios e tendências futuras na Engenharia de ML.
• Análise de arquiteturas de ML bem-sucedidas no mercado.

Fundamentos da Engenharia de IA
• Definição e histórico da Inteligência Artificial.
• Princípios e aplicações da IA na indústria.
• Diferenças entre IA simbólica, aprendizado de máquina e aprendizado profundo.
• Arquitetura de sistemas de IA: modelos, dados e infraestrutura.
• Introdução a frameworks e ferramentas de IA (TensorFlow, PyTorch, Scikit-learn).
Engenharia de Dados para IA
• Coleta, armazenamento e processamento de dados para IA.
• Pré-processamento e engenharia de features.
• Big Data e IA: arquiteturas escaláveis para grandes volumes de dados.
• Versionamento e gerenciamento de datasets para modelos de IA.
• Ética na manipulação de dados e viés algorítmico.
Algoritmos de Aprendizado de Máquina
• Modelos supervisionados: regressão, árvores de decisão, SVM, redes neurais.
• Modelos não supervisionados: agrupamento, redução de dimensionalidade.
• Algoritmos de aprendizado por reforço.
• Estratégias para otimização e avaliação de modelos.
• Introdução ao AutoML para automação da modelagem.
Deep Learning e Modelos Generativos
• Arquitetura de redes neurais profundas.
• Redes convolucionais (CNN) e redes recorrentes (RNN/LSTM).
• Transformers e modelos de IA generativa (ChatGPT, DALL·E).
• Transfer learning e fine-tuning de modelos pré-treinados.
• Implementação prática de redes neurais com TensorFlow e PyTorch.
Escalabilidade e Automação de IA
• Arquitetura de pipelines de IA em produção.
• MLOps: práticas de automação, monitoramento e gestão de modelos.
• Deploy de modelos na nuvem (AWS, GCP, Azure).
• Uso de contêineres (Docker, Kubernetes) para IA escalável.
• Monitoramento e manutenção contínua de modelos em produção.
Ética, Impacto Social e Tendências em IA
• Viés algorítmico e IA responsável.
• Regulamentações e desafios legais na aplicação da IA.
• IA na automação do trabalho e impacto no mercado.
• Perspectivas futuras da Inteligência Artificial.
• Estudos de caso e aplicações inovadoras.

Fundamentos de JavaScript para Web
• Introdução ao JavaScript: sintaxe básica, tipos de dados, estruturas de controle.
• Manipulação do DOM (Document Object Model): criação de interfaces interativas.
• Eventos e manipulação assíncrona: callbacks, promessas, async/await.
• Ferramentas e frameworks modernos para desenvolvimento web com JavaScript (React.js, Vue.js, Angular).
Visualização de Dados com JavaScript
• Introdução à visualização de dados em aplicações web.
• Uso de D3.js para criar gráficos e visualizações dinâmicas.
• Manipulação e visualização de grandes conjuntos de dados no navegador.
• Implementação de gráficos interativos e dashboards.
Introdução à Ciência de Dados com JavaScript
• Bibliotecas JavaScript para Ciência de Dados: TensorFlow.js, Plotly.js, Danfo.js.
• Manipulação de dados com Danfo.js: dataframes, séries temporais e operações matemáticas.
• Análise de dados no navegador: filtragem, agrupamento e transformação de dados.
• Exploração de dados com gráficos interativos.
Aplicando Inteligência Artificial com JavaScript
• Introdução ao TensorFlow.js: redes neurais, aprendizado supervisionado e não supervisionado.
• Implementação de modelos de aprendizado de máquina no navegador com TensorFlow.js.
• Treinamento de modelos simples para classificação e regressão.
• Inferência de modelos de IA em tempo real em uma aplicação web.
Desenvolvimento de Aplicações Web com IA
• Criação de uma API com Node.js para integrar JavaScript com Inteligência Artificial.
• Conectando back-end e front-end em uma aplicação web com modelos de IA.
• Armazenamento e processamento de dados em tempo real com WebSockets e APIs REST.
• Implantação de modelos treinados em servidores web.
Projeto Final e Aplicações Práticas
• Desenvolvimento de uma aplicação web que integre visualização de dados e modelos de IA.
• Estudo de caso: implementação de um modelo de IA para análise de dados em tempo real.
• Discussão de boas práticas no desenvolvimento de aplicações web interativas com IA.
• Apresentação de um mini-projeto final com aplicação prática dos conceitos aprendidos.

Introdução ao Django e Desenvolvimento Web
• O que é Django: visão geral e arquitetura MVC (Model-View-Controller).
• Instalação e configuração do ambiente de desenvolvimento Django.
• Criando e configurando o primeiro projeto Django.
• Estrutura de diretórios e arquivos no Django.
• Trabalhando com templates e formulários.
Desenvolvimento de APIs com Django REST Framework
• Introdução ao Django REST Framework (DRF).
• Criação de APIs RESTful no Django para consumir e manipular dados.
• Serializadores e viewsets.
• Autenticação e permissão de usuários nas APIs.
• Validação de dados e tratamento de exceções.
• Integração de APIs com front-end e bancos de dados.
Integração de Modelos de IA com Django
• Introdução à Integração de IA com Django.
• Como carregar e executar modelos de aprendizado de máquina em uma aplicação Django.
• Aplicação de modelos de IA com scikit-learn e TensorFlow para previsão de dados.
• Criando endpoints para realizar previsões em tempo real.
• Integração de modelos de IA com a interface web para análises interativas.
Ciência de Dados e Manipulação de Dados com Django
• Utilizando bibliotecas de manipulação de dados (Pandas, Numpy) no Django.
• Processamento de grandes volumes de dados no Django.
• Realizando operações de agregação e análise de dados no back-end.
• Visualização de dados no Django utilizando bibliotecas como Matplotlib e Plotly.
• Criando dashboards interativos para visualização de dados no front-end.
Boas Práticas de Desenvolvimento, Segurança e Performance
• Boas práticas de desenvolvimento com Django: estruturação do código, modularização, testes.
• Garantindo a segurança de dados e de usuários: proteção contra injeção SQL, CSRF, XSS e autenticação robusta.
• Melhoria de performance com Django: caching, otimização de consultas e utilização de Celery para tarefas assíncronas.
• Implementando Docker para containerização de aplicações Django com IA.
• Desdobrando aplicações Django com escalabilidade e alta disponibilidade.
Projeto Final – Desenvolvimento de Aplicação Web com Django e IA
• Desenvolvimento de uma aplicação web que combine Ciência de Dados e Inteligência Artificial com Django.
• Análise de um caso de uso prático e desenvolvimento do protótipo.
• Integração de banco de dados, visualização de dados e modelos preditivos em uma aplicação real.
• Testes, implantação e apresentação de um projeto funcional.
• Discussão sobre boas práticas e desafios enfrentados no desenvolvimento da aplicação.

Introdução à Gestão de Projetos de Software Inteligentes
• Conceitos fundamentais de gestão de projetos de software.
• Características de projetos de software inteligente.
• Tecnologias emergentes no desenvolvimento de software inteligente: IA, aprendizado de máquina e automação.
• Desafios específicos na gestão de projetos de software inteligente.
• Modelos de ciclo de vida de projetos de software: Waterfall, Iterativo, Ágil.
Metodologias Ágeis e Tradicionais para Projetos Inteligentes
• Introdução às metodologias ágeis (Scrum, Kanban, Lean) e sua aplicação em projetos de software inteligente.
• Comparação entre metodologias ágeis e tradicionais no contexto de IA e software inteligente.
• Gestão de requisitos e mudanças em projetos de software inteligente.
• Planejamento e execução de sprints e entregas em projetos de IA.
Planejamento de Projetos de Software Inteligentes
• Definição de escopo e objetivos em projetos de software inteligente.
• Estruturação de cronogramas e orçamentos.
• Planejamento de recursos e alocação de equipes multidisciplinares.
• Gestão de riscos em projetos de IA e software inteligente.
• Ferramentas para gestão de projetos (Jira, Trello, Microsoft Project, etc.).
Desenvolvimento e Implementação de Software Inteligente
• Fases de desenvolvimento de software inteligente: prototipagem, teste, deployment e manutenção.
• Integração de IA e aprendizado de máquina em sistemas de software.
• Boas práticas para integração de dados e modelos inteligentes no ciclo de desenvolvimento.
• Gerenciamento de pipelines de dados e automação de tarefas.
• Controle de versão e colaboração em equipes de desenvolvimento (Git, GitHub, GitLab).
Garantia de Qualidade e Métricas em Software Inteligente
• Testes de software inteligente: tipos e técnicas.
• Testes de desempenho e escalabilidade em sistemas inteligentes.
• Métricas de sucesso e qualidade de software inteligente.
• Gerenciamento de bugs e controle de qualidade contínuo em projetos de IA.
• Uso de ferramentas de monitoramento de performance de IA e sistemas inteligentes.
Aspectos Éticos, Legais e Futuro dos Projetos de Software Inteligentes
• Questões éticas no desenvolvimento de software inteligente e IA.
• Regulamentações e leis relacionadas à IA, privacidade e dados.
• Impactos da inteligência artificial no mercado de trabalho e na sociedade.
• Tendências futuras em software inteligente e IA.
• Preparação para enfrentar os desafios futuros em gestão de projetos de IA.

Redação Técnica e Metodologia de Pesquisa. Estrutura do Trabalho de Conclusão de Curso TCC. Discussão dos temas de TCC.

Certificação

De acordo com a legislação do MEC em vigor, serão concedidos certificados de Pós-Graduação – Lato Sensu, Especialização ou MBA dos cursos ministrados pela Universidade Católica de Petrópolis aos alunos que obtiverem aproveitamento mínimo requerido (nota 7) em cada disciplina e seu Trabalho de Conclusão de Curso ( TCC) aprovado.

Aos alunos que não entregarem o Trabalho de Conclusão de Curso (TCC), será concedido certificado de Qualificação Profissional emitido pelo IPETEC – Instituto de Pesquisa, Educação e Tecnologia.

Documentação necessária

  • Identidade e CPF
  • Certidão de nascimento ou casamento
  • Comprovante de Residência
  • Diploma de Graduação
  • Histórico da Graduação
  • Foto 3×4

Engenharia de Software

  • 24x de R$ 378,92 * Mensalidade até o dia 10
  • Taxa de matrícula: R$ 100,00 Mensalidade sem desconto: R$ 631,53
  • *Desconto de 40% para pagamento efetuado até o dia 10 de cada mês.