Análise e Projeto de Sistemas - 2024.2

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

  1. 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.
  2. Padrões GRASP: Atribuição de responsabilidades com foco em coesão, acoplamento e boas práticas de design.
  3. Princípios SOLID: Técnicas para garantir reuso, extensibilidade e manutenção de código.
  4. Arquitetura de software: Modelos arquiteturais, camadas, microsserviços, APIs RESTful e modelagem com C4Model.
  5. 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:

  1. Analisar requisitos de sistemas e projetar soluções orientadas a objetos.
  2. Utilizar padrões GRASP, princípios SOLID e padrões de projeto para melhorar a qualidade do código.
  3. Desenvolver software reutilizável, coeso e com baixo acoplamento.
  4. Projetar arquiteturas de software em camadas, aplicando conceitos de APIs RESTful e microsserviços.
  5. 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.