Dive deep into the most important principles, techniques, tactics, and architectural design styles for conceiving the architecture of a complex information system.
Epidata Corporate Courses
Software Architecture: Design Principles
Content
Unit 1: design principles
- Cohesion, coupling, and connascence.
- Quality attributes.
- S.O.L.I.D. design principles.
- Agile design principles.
- Design principles for components.
- Domain-Driven Design (DDD).
Unit 2: architecture design
- Architectural drivers.
- Tactics.
- Reference architectures.
- Architectural patterns.
- Attribute-Driven Design (ADD).
Unit 3: architectural styles
- Monolithic vs. distributed architecture.
- Layered architecture.
- Other monolithic architectures: Pipeline, microkernel.
- Service-based architecture.
- Event-driven architecture.
- Space-based architecture.
- Microservices.
Skills developed
- apply key concepts that define software design quality
- Learn the five object-oriented design principles: the Single Responsibility Principle, the Open/Closed Principle, the Liskov Substitution Principle, the Interface Segregation Principle, and the Dependency Inversion Principle.
- Understand the concepts and principles of DDD, a software design methodology that focuses on the problem domain and aims to model software according to the language and logic of the business.
Course characteristics
Format and Duration
Online 27 hrs
Who it's for
Architects, developers, technical leads
Course Instructors
Herman Schinca
Instructor in Software Design, Architecture, and Quality
Hernán Melgratti
Ph.D. in Engineering, Information Systems Engineer