Análise e Projeto de Sistemas - 2024.2
- Registro de presença: https://forms.gle/VkFqmfRKVkKouJyeA
- Canal no Discord: https://discord.gg/JBAkd2fdhn
Ementa
Técnicas avançadas de Análise e Projeto de Software empregadas no desenvolvimento de software. Técnicas utilizadas para melhorar o reuso de software usando o paradigma de Orientação a Objeto. Projeto de arquitetura de software. Padrões para atribuição de responsabilidades. Padrões de projeto.
Objetivos
Capacitar os alunos a utilizar técnicas avançadas de análise e projeto de software no desenvolvimento de sistemas robustos, reutilizáveis e de fácil manutenção. O curso busca proporcionar uma compreensão profunda do paradigma de orientação a objetos, promovendo o uso de boas práticas como princípios SOLID, padrões GRASP e padrões de projeto, além de abordar a modelagem de arquiteturas de software. Por meio de um projeto prático integrado, os alunos aplicam os conceitos em cenários reais, consolidando o aprendizado teórico na prática.
Conteúdo
- Revisão de Java e introdução ao desenvolvimento de projetos: Conceitos fundamentais de Java, Git, controle de versão e persistência de dados.
- Padrões GRASP: Atribuição de responsabilidades com foco em coesão, acoplamento e boas práticas de design.
- Princípios SOLID: Técnicas para garantir reuso, extensibilidade e manutenção de código.
- Arquitetura de software: Modelos arquiteturais, camadas, microsserviços, APIs RESTful e modelagem com C4Model.
- Padrões de projeto: Aplicação prática de padrões comportamentais, estruturais e criacionais.
Habilidades e Competências
Ao final da disciplina, os alunos serão capazes de:
- Analisar requisitos de sistemas e projetar soluções orientadas a objetos.
- Utilizar padrões GRASP, princípios SOLID e padrões de projeto para melhorar a qualidade do código.
- Desenvolver software reutilizável, coeso e com baixo acoplamento.
- Projetar arquiteturas de software em camadas, aplicando conceitos de APIs RESTful e microsserviços.
- Aplicar padrões de projeto comportamentais, estruturais e criacionais em soluções práticas.
Metodologia
A disciplina será conduzida de forma prática e dinâmica, com atividades de laboratório realizadas em todas as aulas. A cada encontro, os alunos terão contato com conteúdos teóricos que serão imediatamente aplicados no desenvolvimento de um projeto individual. Esse projeto será incrementado ao longo do curso, permitindo a aplicação direta de conceitos como princípios de design, padrões de responsabilidade, modelagem arquitetural e padrões de projeto. A integração entre teoria e prática visa fortalecer o aprendizado por meio da experimentação e resolução de problemas reais.
Procedimentos de Avaliação da Aprendizagem
A avaliação será realizada de forma contínua e prática, com foco no progresso e na qualidade do projeto individual. Durante as apresentações agendadas, o professor solicitará que os alunos realizem alterações e implementações específicas no projeto em tempo real, avaliando sua compreensão, capacidade de adaptação e domínio dos conceitos aplicados. A avaliação considerará critérios como a correta aplicação de padrões, coesão do código, reuso, e alinhamento com boas práticas de desenvolvimento, além da clareza na apresentação das soluções propostas.