Skip to content

joaopauloaramuni/projeto-de-software

Repository files navigation


pucminas


Repo Projeto de Software

GitHub repo size GitHub directory file count GitHub stars GitHub forks GitHub language count GitHub license GitHub commit activity GitHub last commit Views Counter

Disciplina do curso de Engenharia de Software da PUC Minas

  • 2°Sem 2024
  • 1°Sem 2025
  • 2°Sem 2025

Sumário:

Links úteis:

Calendário Acadêmico
📚 Referências gerais
📌 Conceituação de Projeto de Software
🏛️ Arquitetura de Software
🗿 Monólitos vs Microsserviços
🖼️ Modelagem Estrutural e Comportamental
📐 Padrões de Projeto
✔️ Qualidade de Projeto

📖 Periódicos científicos

🛠️ Ferramentas de desenho e diagramas

🧾 Artigos clássicos e leituras sugeridas

1. 🧱 The Big Ball of Mud
➤ Um artigo clássico que discute sistemas com arquitetura frágil e desorganizada. Útil para refletir sobre más práticas recorrentes e a necessidade de boas decisões arquiteturais.

2. 🧩 Microservices - Martin Fowler
➤ Explica o estilo de arquitetura baseado em microserviços, incluindo vantagens, desvantagens e comparações com arquiteturas monolíticas.

3. 💥 No Silver Bullet – Essence and Accidents of Software Engineering
➤ Um artigo influente de Frederick P. Brooks, Jr. que argumenta que não há solução única ("bala de prata") capaz de trazer melhorias drásticas na produtividade do desenvolvimento de software, destacando a distinção entre complexidade essencial e acidental.

4. 📜 On the Criteria To Be Used in Decomposing Systems into Modules – David Parnas
➤ Um marco na engenharia de software. Introduz a ideia de modularidade baseada em ocultação de informações, base para o design orientado à manutenção.

5. 🔧 Software Architecture: A Roadmap – David Garlan
➤ Um panorama da evolução da arquitetura de software até os anos 2000. Aponta caminhos futuros e reforça a importância da disciplina arquitetural.

6. 💣 Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells – Ran Mo et al.
➤ Apresenta padrões formais para identificar architecture smells em grandes sistemas, como hubs excessivamente conectados e dependências cíclicas. Traz uma abordagem automatizada para detecção de hotspots estruturais em arquiteturas complexas.

7. 🧠 Strategic Design and Domain-Driven Design – Eric Evans
➤ Introduz conceitos fundamentais do DDD como Bounded Contexts e alinhamento entre domínio e arquitetura. Essencial para projetos complexos.

8. 💣 Managing Technical Debt – Steve McConnell
➤ Explica como identificar, monitorar e mitigar dívidas técnicas ao longo do ciclo de vida do projeto.

9. 🧰 Documenting Architecture Decisions – Michael Nygard
➤ Apresenta o conceito de Architecture Decision Records (ADRs), uma forma leve e rastreável de registrar decisões arquiteturais ao longo do tempo. Útil para manter a memória técnica viva e justificar escolhas de design em projetos reais.

10. 📦 Hexagonal Architecture – Alistair Cockburn
➤ Propõe a separação entre lógica de negócio e infraestrutura por meio de portas e adaptadores. Uma abordagem que favorece testabilidade, flexibilidade e baixo acoplamento em arquiteturas modernas.

📚 Extras avançados

11. 📄 Parallel Changes in Large Scale Software Development: An Observational Case Study – Dewayne E. Perry, Harvey P. Siy, Lawrence G. Votta
➤ Estudo sobre os desafios e padrões do desenvolvimento paralelo em larga escala e seu impacto na qualidade e entrega do software.

📖 Manifestos

12. 🔄 The Reactive Manifesto
➤ Apresenta os princípios da Reactive Architecture (Responsiva, Resiliente, Elástica e Orientada a Mensagens). Útil para discutir arquiteturas modernas de sistemas distribuídos.

13.Agile Manifesto
➤ Define valores e princípios para desenvolvimento ágil, focando em colaboração, entrega rápida e adaptação a mudanças.


📜 Modelagem funcional com contratos

14. 📄 Object Constraint Language (OCL): a Definitive Guide - J. Cabot & M. Gogolla
➤ Apresenta uma visão abrangente do OCL como linguagem essencial na engenharia dirigida por modelos, com foco em restrições, consultas, transformações de modelos e geração de código.

15. 📐 Design by Contract – Bertrand Meyer (Extract from “Object-Oriented Software Construction”)
➤ Introduz o conceito de Design by Contract, no qual pré-condições, pós-condições e invariantes definem os direitos e deveres de métodos e classes. Base teórica por trás de abordagens como OCL e Eiffel.


🧩 OCL - Object Constraint Language

🚀 Recursos extras

🏗️ Roadmaps Software Design Architecture e Software Architect

Um roadmap é um guia visual que apresenta etapas, habilidades ou conhecimentos necessários para atingir um objetivo específico. Ele ajuda a organizar o aprendizado ou desenvolvimento ao longo do tempo, mostrando caminhos recomendados e prioridades.


🎥 Vídeos / Palestras

📊 Tendências e pesquisas
📈 Relatórios e estudos sobre o mercado de tecnologia e comportamento de desenvolvedores

Relatórios anuais e pesquisas globais ajudam a entender as principais linguagens, ferramentas, salários, preferências e tendências no mercado de desenvolvimento de software. São ótimos para orientar decisões de carreira e identificar habilidades em alta.


🎨 Figma
🖌️ Design de interfaces e prototipagem com Figma

O Figma é uma das principais ferramentas de design de interfaces e prototipagem colaborativa do mercado. Permite criar layouts, fluxos de navegação e componentes reutilizáveis de forma integrada entre designers e desenvolvedores. Com recursos de colaboração em tempo real, facilita a iteração rápida e a validação de ideias, sendo amplamente adotado por equipes ágeis e projetos orientados à experiência do usuário (UX/UI).

👨‍🏫 Figma - Education
🎨 Figma - Templates
🗂️ Figma - Templates gerais
💻 Figma - Portfólios Dev
☁️ Figma - Templates AWS / Arquitetura de sistemas
🔁 Figma - Diagramas de Classe
↔️ Figma - Diagramas de Estado
➡️ Figma - Diagramas de Sequência
🌐 Figma - APIs e Microserviços
👤 Figma - User Persona Template
🧱 Figma - C4 Model (Arquitetura de Software)

🎨 Templates e exemplos de Diagramas de Pacotes (UML)
📌 Ferramentas com modelos prontos
📖 Tutoriais e guias explicativos
📚 Exemplos de referência

pucminas

Releases

No releases published

Sponsor this project

 

Packages

No packages published