Designing Robust Software Systems
Overview
Designing software systems that can be used, maintained, and extended over time is a critical skill for software engineers. Robust systems that will be used for years or even decades require careful consideration of design principles and practices. The goal of this course is to provide you with a thorough understanding of software architecture and design principles, enabling you to recognize and manage complexity in software systems, communicate your design effectively, and apply best practices for writing maintainable and scalable code.
Topics
📄️ Why Robustness Matters
An introduction to the importance of software design and architecture, focusing on building robust, reliable, and resilient systems that can evolve over time.
🗃️ Software Design Process
4 items
🗃️ Managing Complexity
3 items
🗃️ Software Design Techniques
2 items
🗃️ Designing for Non-Functional Requirements
5 items
🗃️ Improving Your Implementation
1 items
📄️ References and Additional Reading
Books