Skip to main content

Epidata Corporate Courses

Software Architecture: Design Principles

Objective

Dive deep into the most important principles, techniques, tactics, and architectural design styles for conceiving the architecture of a complex information system.

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

Keep innovation close