Este arquivo contem os seminários que podem ser passados para você no decorrer da disciplina.
Sumário:
- Seminários de Engenharia de Software II
- Objetivos da Atividade
- Tópicos dos Seminários
- 1. Práticas de Refatoração de Código
- 2. Engenharia de Software Dirigida por Testes (TDD)
- 3. Desenvolvimento de Software Orientado a Serviços (SOA)
- 4. Engenharia de Software para Sistemas Embarcados
- 5. Engenharia de Software para Aplicações em Tempo Real
- 6. Engenharia de Software Dirigida por Modelos (MDE)
- 7. Engenharia de Software Baseada em Componentes
O objetivo destes seminários é avaliar suas competências e aptidões com relação às seguintes habilidades:
- Organização e estruturação do pensamento lógico-dedutivo
- Clareza, encadeamento, coesão e coerência de ideias e pensamentos
- Fluência na comunicação de ideias de moderada / alta complexidade
- Capacidade de explicar / ensinar conteúdos de natureza técnica, adaptando as metodologias, jargões, modelos e afins ao público-alvo
- Capacidade de contextualizar, justificar e descrever suas ideias e soluções
- Capacidades associadas ao trabalho em equipe
- Divisão e coordenação de esforços entre membros de um equipe, considerando as aptidões e habilidades individuais
- Gerenciamento de projetos e atividades de moderada / alta complexidade
- Planejamento e organização de calendários / cronogramas de execução de atividades
- Planejamento, organização e concepção de documentações, relatórios e modelos
Seguem abaixo as especificações de cada tópico de seminário. Leia cada instrução com atenção para evitar erros e interpretações erradas.
ATENÇÃO: A interpretação da atividade é parte integral da avaliação.
Descrição: Explorar as práticas de refatoração de código para melhorar a legibilidade, manutenção e desempenho do software. Subtópicos: Conceitos de refatoração Técnicas comuns de refatoração Ferramentas de suporte à refatoração (IntelliJ, Eclipse) Exemplos práticos de refatoração
Descrição: Discutir a abordagem de desenvolvimento dirigido por testes e seus benefícios para a qualidade do software. Subtópicos: Conceitos de TDD e tipos de testes automatizados (unitário, sistema) Ciclo TDD (Red-Green-Refactor) Ferramentas para TDD (JUnit, Mockito) Ferramentas de automação de testes (Selenium, JUnit)
Descrição: Explorar o desenvolvimento de software utilizando uma arquitetura orientada a serviços (SOA).
Subtópicos:
- Conceitos de SOA
- Design e implementação de serviços
- Protocolos e padrões (SOAP, REST)
- Casos de uso e exemplos práticos
Descrição: Discutir as especificidades e desafios do desenvolvimento de software para sistemas embarcados.
Subtópicos:
- Características de sistemas embarcados
- Ferramentas e técnicas de desenvolvimento
- Testes de sistemas embarcados
- Exemplos de sistemas embarcados (automotivo, dispositivos médicos)
Descrição: Abordar os desafios e práticas no desenvolvimento de aplicações que requerem respostas dentro de limites de tempo rigorosos.
Subtópicos:
- Características de sistemas em tempo real
- Planejamento e escalonamento de tarefas
- Ferramentas e linguagens para sistemas em tempo real
- Exemplos de aplicações em tempo real (controle de tráfego aéreo, sistemas de manufatura)
Descrição: Abordar o desenvolvimento de software utilizando modelos como principais artefatos, incluindo os benefícios e desafios dessa abordagem. Subtópicos: Conceitos de MDE Ferramentas de modelagem (Eclipse Modeling Framework, Enterprise Architect) Transformações de modelos Casos de uso e exemplos práticos
Descrição: Discutir a abordagem baseada em componentes para o desenvolvimento de software e seus benefícios para a modularidade e reuso. Subtópicos: Conceitos de software baseado em componentes Design e implementação de componentes Ferramentas e frameworks (EJB, OSGi) Exemplo de sistemas baseados em componentes