Show simple item record

dc.contributor.advisorTrần, Thanh Tùng
dc.contributor.authorNguyễn, Thị Mai Hương
dc.date.accessioned2025-02-19T03:07:33Z
dc.date.available2025-02-19T03:07:33Z
dc.date.issued2023
dc.identifier.urihttp://keep.hcmiu.edu.vn:8080/handle/123456789/6713
dc.description.abstractIt is obvious to agree that the two most important things in a business are creating and saving money. That’s true for all kinds of businesses, and it also is not the exception for tech companies. According to Tech’s ultimate success: Software developers are now more valuable to companies than money, Over 300% billion a year for propping up legacy system and ramifying bad software (handling "technical debt" - over 85% billion dollars were poured into fixing un-quality code in 2018. Therefore, producing an application with a clean, flexible, and testable codebase that is willing to change and extend, offering good performance brings incredible value to the business as it significantly reduces the maintenance cost. For this reason, Will Gaybrick predicts that expertise of software developers might add approximately 3 trillion dollars to global GDP over the next decade. Besides, the most complicated aspect of large software doesn’t lie in the implementation but in the real-world domain in which the software operates. Therefore, the more understanding of the domain, the more successful the software we can develop. Implementing a good code base while capturing deep business domain’s logic and rules is quite challenging due to the inevitable expansion in application requirements nowadays. Small systems can be implemented well with a monolithic architecture, but when they expand with a huge amount of features to adapt to the increasing customer needs, the system’s complexity increases, which might make the system harder to understand, maintain, or extend. For two of these above reasons, building a good domain model with suitable and scalable architecture, and applying tactical patterns will be the key to implementing a good code base while managing the system’s complexity. Although it is remarkably valuable for the software system, it’s not something easy to make. As a research result, the current trend of building complicated and large software will tackle almost all these problems. It is building microservice-based applications using domain-driven design patterns, that are applied successfully to build a large number of popular products in big tech companies such as Twitter, Netflix, Amazon, SoundCloud, etc. This thesis researched the essence and main concepts of that trending topic - Domaindriven design approach to build a microservice architecture system. I tried to research my best to distill out the concepts, advantages, and considerations of microservices versus monolithic architecture mostly utilized in legacy or small systems. The thesis also emphasizes the role of DDD in modern software development compared to the MVC model and its alignment with a popular software development methodology nowadays, the agile method. In addition, the essence of microservices also is discussed in section 2 which brings a general knowledge of those concepts and reveals the comparison of microservices architecture with the monolith and service-oriented architecture. After the concepts and foundation principles are discussed thoroughly, they will be applied to a case study - building a microservice-based asset management system to demonstrate the possibility, potential, and limitations of the research method.en_US
dc.subjectDomain-driven designen_US
dc.subjectmicroservices applicationen_US
dc.subjectubiquitous languageen_US
dc.subjectbounded contexten_US
dc.subjectsoftware design and architectureen_US
dc.subjectdomain modelen_US
dc.subjecttactical patternsen_US
dc.subjectstrategic designen_US
dc.subjectsoftware development processen_US
dc.titleBuilding An Asset Management System With Domain Driven Designen_US
dc.typeThesisen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record