Domain Driven Design assists in focusing on the client problems and guides in the direction of solving it by using conquer and divide techniques. Domain Driven Design is more than object orientation. It deals with the challenges of understanding an issue or problem space and communicating that understanding. Domain Driven Design also encourages the inclusion of areas like Test-Driven Development (TTD) by using patterns and continuous refactoring and guiding the design process to identify well sized microservices.
Software analysis and design in Tiba is based on Domain Driven Design (DDD). First, strategic analysis is performed and the necessary services are identified in order to increase reuse-ability, reduce dependency, and manage complexity at the macro level. Then, at the tactical level, the components of each service are identified and designed, and finally, at the detailed level, classes and methods are designed. Object-oriented design principles are followed at all levels, and the designs are based on SOLID principles. Architectural Patterns are used at the strategic and tactical level, and Design Patterns are widely used at the detailed level.