Orientações de Estudo – Disciplina de Arquitetura de Software

Prezado(a) estudante,

Seja bem-vindo(a) à disciplina! Para um bom aproveitamento, é importante seguir uma rotina de estudos organizada e atenta às orientações abaixo.

📖 Como estudar os módulos

A disciplina está dividida em módulos. Em cada um deles, você deverá:

  1. Realizar a leitura dos capítulos indicados na bibliografia básica, conforme orientado no início do módulo.

  2. Durante a leitura, procure compreender os conceitos principais, como organização de sistemas, programação orientada a objetos e fundamentos de arquitetura.

  3. Caso necessário, releia os trechos mais importantes para fixar o conteúdo.

🧠 Dicas importantes

  • Estude com atenção, buscando entender os conceitos, não apenas memorizar.

  • Faça anotações dos pontos principais.

  • Relacione os conteúdos com exemplos práticos do dia a dia (como sistemas web, aplicativos, etc.).

🧪 Questionário avaliativo

Ao final de cada módulo, você deverá realizar um questionário objetivo, composto por questões de múltipla escolha.

  • O questionário é corrigido automaticamente pelo sistema (Moodle).

  • Leia atentamente cada questão antes de responder.

  • Em caso de mais de uma tentativa, utilize o feedback para melhorar seu desempenho.

⏱️ Organização do tempo

  • Reserve um período semanal para estudo (recomendado: 2 a 4 horas).

  • Não deixe para realizar o questionário no último momento.

  • Avance para o próximo módulo apenas após concluir o atual.

🎯 Objetivo

Ao final da disciplina, espera-se que você seja capaz de compreender a estrutura de sistemas, os princípios de organização e os fundamentos que sustentam a arquitetura de software.


Bons estudos e sucesso na sua aprendizagem!

Bibliografia básica:

FÁVERO, Eliane Maria de Bortoli. Organização e arquitetura de computadores. Pato Branco: Universidade Tecnológica Federal do Paraná, 2011.

BRÁULIO, Eduardo. Arquitetura de computadores. Natal: CEFET-RN, 2005. Disponível em: https://livrariapublica.com.br/livros/arquitetura-de-computadores-eduardo-braulio/. Acesso em: 10 mar. 2026.

SANTOS, Fabiano Gonçalves dos. Programação orientada a objetos.  Rio de Janeiro: SESES, 2017.

 

Ementa:

Conceitos e princípios de arquitetura de software. Atributos de qualidade (requisitos não funcionais): escalabilidade, disponibilidade, manutenibilidade e portabilidade. Padrões de arquitetura (Architectural Patterns): camadas, cliente-servidor, orientado a serviços (SOA) e microserviços. Arquitetura Limpa (Clean Architecture) e Hexagonal. Estilos de comunicação e integração de sistemas. Padrões de projeto (Design Patterns) aplicados à arquitetura. Documentação de arquitetura e visões de software. O papel do arquiteto no ciclo de vida de desenvolvimento.

Objetivos de Aprendizagem

  1. Diferenciar arquitetura de software de design de software, compreendendo as decisões de alto nível.
  2. Selecionar padrões arquiteturais adequados com base nos requisitos de negócio e restrições técnicas.
  3. Aplicar princípios de baixo acoplamento e alta coesão na estruturação de sistemas complexos.
  4. Documentar decisões arquiteturais de forma que possam ser comunicadas com clareza para equipes de desenvolvimento e stakeholders.

História e evolução dos videojogos. Introdução aos motores de jogo (Game Engines: Unity ou Unreal). Arquitetura de um motor de jogo: Game Loop, sistemas de componentes e cena. Lógica de programação aplicada a jogos: scripts, colisões, física e inteligência artificial para NPCs. Matemática e física para jogos (vetores, transformações e cinemática). Desenvolvimento de interfaces (UI/HUD) e experiência do utilizador (UX) em jogos. Introdução ao design de som e integração de assets 2D/3D. Ciclo de vida de um jogo: do protótipo ao deploy em diferentes plataformas (Desktop, Mobile e Web).

Objetivos de Aprendizagem

·       Compreender o funcionamento interno de um motor de jogo e o ciclo de execução em tempo real (Game Loop).

·       Aplicar conceitos de matemática e física para criar mecânicas de movimento e interação realistas.

·       Desenvolver sistemas de IA simples para controlar o comportamento de elementos não jogáveis.

·       Orquestrar a integração de diferentes tipos de média (gráficos, áudio e código) num projeto interativo coeso.