SlideShare a Scribd company logo
BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
Ngành: Công Nghệ Thông Tin
Thiết Kế Và Kiểm Thử Domain Driven Design Framework
Cho Công Ty Cổ Phẩn DEHA Việt Nam Dựa Trên Nền Tảng PHP
Viện Đại Học Mở Hà Nội
Khoa Công Nghệ Thông Tin
Giảng viên hướng dẫn:
ThS. Trần Duy Hùng
Sinh viên thực hiện:
Hoàng Giang Biển - 1210A03
Nội dung trình bày
• Ý tưởng
• Tìm hiểu về Domain Driven Design
• Xây dựng Domain Driven Design Framework
• Kết quả đạt được – hướng phát triển
• Tài liệu tham khảo
2/24
Ý tưởng
3/24
Kết quả cần đạt được
4/24
● Hiểu và áp dụng được Domain Driven Design
● Xây dựng được một Framework hướng Domain Driven Design
● Sử dụng thực tế tại môi trường sản xuất
● Đóng góp mã nguồn cho cộng đồng nguồn mở
Công nghệ
5/24
● PHP
● MySQL
● PHPUnit
Phần I
KHÁI QUÁT DOMAIN DRIVEN DESIGN
6/24
Domain Driven Design là gì?
DDD là một hướng tiếp cận để phát triển phần mềm cho các
nhu cầu phức tạp bằng cách kết nối sâu sắc việc thực thi với
mô hình phát triển ý tưởng kinh doanh cốt lõi.
7/24
Đặc điểm của Domain Driven Design
• Đặt trọng tâm chính của dự án trên miền giá trị cốt lõi và
miền logic nghiệp vụ
• Đặt các thiết kế phức tạp dựa trên một mô hình
• Bắt đầu bằng việc trao đổi liên tục giữa những người làm
kỹ thuật và người am hiểu nghiệp vụ (Domain Expert)
cho tới khi đi tới tâm điểm của vấn đề.
8/24
Các trụ cột của Domain Driven Design
• Ngôn ngữ chung
• Domain Modeling
• Model-Driven Design
• Duy trì tính toàn vẹn
9/24
Các trụ cột của Domain Driven Design
• Ngôn ngữ chung
Là ngôn ngữ được sử dụng rộng rãi trong 1 dự án phần mềm.
Ngôn ngữ chung đóng vai trò là công cụ giao tiếp giữa các
nhà phát triển và các chuyên gia lĩnh vực.
10/24
Các trụ cột của Domain Driven Design
• Domain Modeling
Là một mô hình dựa trên lĩnh vực. Mô hình này đảm bảo các
thiết kế về lĩnh vực phải được các bên liên quan tiếp thu. Mô
hình này là một thể hiện của ngôn ngữ chung. Mô hình lĩnh
vực có thể được tạo ra bằng nhiều cách như viết, hình vẽ, sơ
đồ….
11/24
Các trụ cột của Domain Driven Design
• Model Driven Design
Là tập hợp các cấu thành nền tảng (building block) cho việc
xây dựng một mô hình lĩnh vực.
12/24
Các trụ cột của Domain Driven Design
• Duy trì tính toàn vẹn
1. Tái cấu trúc liên tục
2. Tích hợp liên tục
3. Ngữ cảnh ánh xạ
4. Nhân chung
5. Chưng cất
13/24
Ưu điểm của Domain Driven Design
• Giải quyết tốt các bài toán có nghiệp vụ phức tạp
• Tư duy mới mẻ về hệ thống
• Phần mềm trở lên linh hoạt
• Phần mềm phản ánh đúng tư duy của khách hàng
• Logic nghiệp vụ nằm ở một chỗ, dễ quản lí
• Mã nguồn tổ chức tốt, dễ Test
• Nhiều Design Pattern hữu ích
14/24
Nhược điểm của Domain Driven Design
• Khó học, kiến thức mới
• Khó thông thạo
• Chi phí lớn
• Khó khăn trong giao tiếp
15/24
Phần II
XÂY DỰNG DOMAIN DRIVEN DESIGN FRAMEWORK
16/24
Khái quát về DDD Framework
• Xây dựng dựa trên Layered Architecture
17/24
Khái quát về DDD Framework
• Xây dựng dựa trên các Contracts
18/24
Design by Contracts là một phương pháp thiết kế dựa vào
việc xây dựng nên các Contracts (Hợp đồng) trong hệ
thống. Giúp cho toàn bộ các thành phần đều phải tuân thủ
cùng một qui tắc thiết kế
Khái quát về DDD Framework
• Cấu trúc thực tế của DDD Framework trên mã nguồn
19/24
Khái quát về DDD Framework
• Sơ đồ luồng dữ liệu
20/24
DEMO ỨNG DỤNG
21/24
22/24
Hướng Hoàn Thiện - Phát Triển
● Đi sâu vào kiến trúc Event Architect
● Xây dựng thêm các thành phần bổ trợ cho Framework
● Hoàn thiện theo hướng phát triển Domain Driven Design
● Thực hiện đầy đủ các mã kiểm thử cho các thành phần còn lại
Phần III: Kết Quả Đạt Được
● Hiểu được về Domain Driven Design và các mô hình thiết kế phần mềm tân tiến.
● Khảo sát, xây dựng, áp dụng mô hình thiết kế vào xây dựng Framework dựa trên nền tảng PHP
● Phân tích và kiểm thử đơn vị - tích hợp
● Biết về quá trình xây dựng một ứng dụng mã nguồn mở.
Tài Liệu Tham Khảo
1. [1]. Eric Evan, Build Your Domain-Driven Design: Tackling Complexity in the Heart of
Software, Addison-Wesley Professional, 2003.
2. [2]. Vaughn Vernon, Implementing Domain-Driven Design, Addison-Wesley Professional,
2013.
3. [3] InfoQ, Domain Driven Design Quickly, InfoQ.com, 2006.
4. [4] Grady Booch, Object-Oriented Analysis and Design with Applications 3th, Addison-
Wesley Professional, 2007
23/24
LỜI CẢM ƠN
24/24

More Related Content

What's hot

Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1laducqb
 
Design Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kếDesign Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kế
Nhật Nguyễn Khắc
 
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
nataliej4
 
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOTLuận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Low code development platform
Low code development platformLow code development platform
Low code development platform
Ehsan Hakimi
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử website
Dotnet Open Group
 
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOTLuận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidPhuong Ngo
 
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPTBÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
MasterCode.vn
 
Project plan
Project planProject plan
Project plan
khoa khoa
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Hiệu Nguyễn
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Tú Cao
 
Build pipelines with bitbucket for Magento
Build pipelines with bitbucket for MagentoBuild pipelines with bitbucket for Magento
Build pipelines with bitbucket for Magento
Rrap Software Pvt Ltd
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
nataliej4
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?
Marc Hornbeek
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OS
Nguyễn Anh
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềm
Thuyet Nguyen
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
BIC
 
Mẫu thiết kế Profile Công ty CNTT VDC
Mẫu thiết kế Profile Công ty CNTT VDCMẫu thiết kế Profile Công ty CNTT VDC
Mẫu thiết kế Profile Công ty CNTT VDC
SaoKim.com.vn
 

What's hot (20)

Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1
 
Design Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kếDesign Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kế
 
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
 
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOTLuận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
Luận văn: Tìm hiểu giải pháp ảo hóa docker và ứng dụng, HOT
 
Low code development platform
Low code development platformLow code development platform
Low code development platform
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử website
 
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOTLuận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
Luận văn: Xây dựng ứng dụng Android nghe nhạc offline, HOT
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành android
 
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPTBÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
BÀI 6 Sử dụng hiệu ứng, độ trong suốt và xuất file - Giáo trình FPT
 
Project plan
Project planProject plan
Project plan
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Build pipelines with bitbucket for Magento
Build pipelines with bitbucket for MagentoBuild pipelines with bitbucket for Magento
Build pipelines with bitbucket for Magento
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OS
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềm
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 
Mẫu thiết kế Profile Công ty CNTT VDC
Mẫu thiết kế Profile Công ty CNTT VDCMẫu thiết kế Profile Công ty CNTT VDC
Mẫu thiết kế Profile Công ty CNTT VDC
 

Viewers also liked

Framework for the analysis and design of encryption strategies based on d...
Framework for the analysis and design of encryption strategies     based on d...Framework for the analysis and design of encryption strategies     based on d...
Framework for the analysis and design of encryption strategies based on d...
darg0001
 
Nimble framework
Nimble frameworkNimble framework
Nimble framework
tusjain
 
Overview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company indiaOverview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company india
Jignesh Aakoliya
 
Framework Design Guidelines For Brussels Users Group
Framework Design Guidelines For Brussels Users GroupFramework Design Guidelines For Brussels Users Group
Framework Design Guidelines For Brussels Users Group
brada
 
Process Design on Prabandhan Framework
Process Design on Prabandhan FrameworkProcess Design on Prabandhan Framework
Process Design on Prabandhan Framework
Anil Mande
 
DRE REPORT- 2014 (1)
DRE REPORT- 2014 (1)DRE REPORT- 2014 (1)
DRE REPORT- 2014 (1)
Gladys Sanchez
 
E learning analysis and design framework
E learning analysis and design frameworkE learning analysis and design framework
E learning analysis and design framework
Eric Kluijfhout
 
OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015
Ryan A. Pavlik
 
Software Engineering - 02. Framework
Software Engineering - 02. FrameworkSoftware Engineering - 02. Framework
Software Engineering - 02. Framework
Arry Arman
 
Design Frameworks for Analysis and Synthesis of Complex Systems
Design Frameworks for Analysis and Synthesis of Complex SystemsDesign Frameworks for Analysis and Synthesis of Complex Systems
Design Frameworks for Analysis and Synthesis of Complex Systems
drjanroodt
 
Teaching requirements analysis REET 2014 at RE2014
Teaching requirements analysis REET 2014 at RE2014Teaching requirements analysis REET 2014 at RE2014
Teaching requirements analysis REET 2014 at RE2014
Luisa Mich
 
Software Frameworks for Music Information Retrieval
Software Frameworks for Music Information RetrievalSoftware Frameworks for Music Information Retrieval
Software Frameworks for Music Information Retrieval
Xavier Amatriain
 
How UI Framework improves design process
How UI Framework improves design processHow UI Framework improves design process
How UI Framework improves design process
Marian Mota
 
ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up Front
Hayim Makabee
 
A modern approach to game analysis and design: the AGE framework
A modern approach to game analysis and design: the AGE frameworkA modern approach to game analysis and design: the AGE framework
A modern approach to game analysis and design: the AGE framework
Roberto Dillon
 
Using Environment as a Framework for Urban Design
Using Environment as a Framework for Urban DesignUsing Environment as a Framework for Urban Design
Using Environment as a Framework for Urban Design
Rutgers University
 
How UI Framework improves design process - 2015 (Dribbble meetup)
How UI Framework improves design process - 2015  (Dribbble meetup)How UI Framework improves design process - 2015  (Dribbble meetup)
How UI Framework improves design process - 2015 (Dribbble meetup)
Marian Mota
 
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
shailesh.bohra
 
Frameworks Are The Future of Design
Frameworks  Are The Future of DesignFrameworks  Are The Future of Design
Frameworks Are The Future of Design
Joe Lamantia
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 

Viewers also liked (20)

Framework for the analysis and design of encryption strategies based on d...
Framework for the analysis and design of encryption strategies     based on d...Framework for the analysis and design of encryption strategies     based on d...
Framework for the analysis and design of encryption strategies based on d...
 
Nimble framework
Nimble frameworkNimble framework
Nimble framework
 
Overview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company indiaOverview of entity framework by software outsourcing company india
Overview of entity framework by software outsourcing company india
 
Framework Design Guidelines For Brussels Users Group
Framework Design Guidelines For Brussels Users GroupFramework Design Guidelines For Brussels Users Group
Framework Design Guidelines For Brussels Users Group
 
Process Design on Prabandhan Framework
Process Design on Prabandhan FrameworkProcess Design on Prabandhan Framework
Process Design on Prabandhan Framework
 
DRE REPORT- 2014 (1)
DRE REPORT- 2014 (1)DRE REPORT- 2014 (1)
DRE REPORT- 2014 (1)
 
E learning analysis and design framework
E learning analysis and design frameworkE learning analysis and design framework
E learning analysis and design framework
 
OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015
 
Software Engineering - 02. Framework
Software Engineering - 02. FrameworkSoftware Engineering - 02. Framework
Software Engineering - 02. Framework
 
Design Frameworks for Analysis and Synthesis of Complex Systems
Design Frameworks for Analysis and Synthesis of Complex SystemsDesign Frameworks for Analysis and Synthesis of Complex Systems
Design Frameworks for Analysis and Synthesis of Complex Systems
 
Teaching requirements analysis REET 2014 at RE2014
Teaching requirements analysis REET 2014 at RE2014Teaching requirements analysis REET 2014 at RE2014
Teaching requirements analysis REET 2014 at RE2014
 
Software Frameworks for Music Information Retrieval
Software Frameworks for Music Information RetrievalSoftware Frameworks for Music Information Retrieval
Software Frameworks for Music Information Retrieval
 
How UI Framework improves design process
How UI Framework improves design processHow UI Framework improves design process
How UI Framework improves design process
 
ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up Front
 
A modern approach to game analysis and design: the AGE framework
A modern approach to game analysis and design: the AGE frameworkA modern approach to game analysis and design: the AGE framework
A modern approach to game analysis and design: the AGE framework
 
Using Environment as a Framework for Urban Design
Using Environment as a Framework for Urban DesignUsing Environment as a Framework for Urban Design
Using Environment as a Framework for Urban Design
 
How UI Framework improves design process - 2015 (Dribbble meetup)
How UI Framework improves design process - 2015  (Dribbble meetup)How UI Framework improves design process - 2015  (Dribbble meetup)
How UI Framework improves design process - 2015 (Dribbble meetup)
 
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
 
Frameworks Are The Future of Design
Frameworks  Are The Future of DesignFrameworks  Are The Future of Design
Frameworks Are The Future of Design
 
Design engineering
Design engineeringDesign engineering
Design engineering
 

Similar to Domain Driven Design Framework

Revit_4KSXD_HTU
Revit_4KSXD_HTURevit_4KSXD_HTU
Revit_4KSXD_HTU
ssuser43edcc
 
Một số Ví dụ về triển khai
Một số Ví dụ về triển khaiMột số Ví dụ về triển khai
Một số Ví dụ về triển khai
Huytraining
 
Autodesk Revit Architecture Review for Autodesk Certified Professional
Autodesk Revit Architecture Review for Autodesk Certified ProfessionalAutodesk Revit Architecture Review for Autodesk Certified Professional
Autodesk Revit Architecture Review for Autodesk Certified Professional
Châu Hải
 
Project Kickoff Presentation.pptx
Project Kickoff Presentation.pptxProject Kickoff Presentation.pptx
Project Kickoff Presentation.pptx
TrnQuangPht
 
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
nataliej4
 
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
VTrung46
 
Code Camp #1
Code Camp #1Code Camp #1
Code Camp #1
Dat Le Viet
 
Progressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiếtProgressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiết
Trung Nguyen
 
mo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdfmo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdf
ZACNguyenHoang
 
1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#Duy Lê Văn
 
PM-COFICO-VN2022 final(1)_compressed.pdf
PM-COFICO-VN2022 final(1)_compressed.pdfPM-COFICO-VN2022 final(1)_compressed.pdf
PM-COFICO-VN2022 final(1)_compressed.pdf
AbrahamLinh
 
Autodesk Revit Structure Review for Autodesk Certified Professional
Autodesk Revit Structure Review for Autodesk Certified ProfessionalAutodesk Revit Structure Review for Autodesk Certified Professional
Autodesk Revit Structure Review for Autodesk Certified Professional
Châu Hải
 
Phong cách phát triển mở (MHST 2014)
Phong cách phát triển mở (MHST 2014)Phong cách phát triển mở (MHST 2014)
Phong cách phát triển mở (MHST 2014)
Vu Hung Nguyen
 
WEB.pptx
WEB.pptxWEB.pptx
Qlda 4-lapkehoachduan[easyvn.net]
Qlda 4-lapkehoachduan[easyvn.net]Qlda 4-lapkehoachduan[easyvn.net]
Qlda 4-lapkehoachduan[easyvn.net]huongntt16
 
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự ánBài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
MasterCode.vn
 
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo AgileỨng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
So sánh 5 phần mềm BIM 4D
So sánh 5 phần mềm BIM 4DSo sánh 5 phần mềm BIM 4D
So sánh 5 phần mềm BIM 4D
Đàm Tài Cap
 
Báo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhàBáo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhà
Kali Back Tracker
 

Similar to Domain Driven Design Framework (20)

Revit_4KSXD_HTU
Revit_4KSXD_HTURevit_4KSXD_HTU
Revit_4KSXD_HTU
 
Một số Ví dụ về triển khai
Một số Ví dụ về triển khaiMột số Ví dụ về triển khai
Một số Ví dụ về triển khai
 
Autodesk Revit Architecture Review for Autodesk Certified Professional
Autodesk Revit Architecture Review for Autodesk Certified ProfessionalAutodesk Revit Architecture Review for Autodesk Certified Professional
Autodesk Revit Architecture Review for Autodesk Certified Professional
 
Project Kickoff Presentation.pptx
Project Kickoff Presentation.pptxProject Kickoff Presentation.pptx
Project Kickoff Presentation.pptx
 
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
CƠ CẤU CỦA TIẾN TRÌNH QUẢN LÝ DỰ ÁN PHẦN MỀM
 
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
 
Code Camp #1
Code Camp #1Code Camp #1
Code Camp #1
 
Progressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiếtProgressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiết
 
mo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdfmo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdf
 
Mhst12 01
Mhst12 01Mhst12 01
Mhst12 01
 
1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#
 
PM-COFICO-VN2022 final(1)_compressed.pdf
PM-COFICO-VN2022 final(1)_compressed.pdfPM-COFICO-VN2022 final(1)_compressed.pdf
PM-COFICO-VN2022 final(1)_compressed.pdf
 
Autodesk Revit Structure Review for Autodesk Certified Professional
Autodesk Revit Structure Review for Autodesk Certified ProfessionalAutodesk Revit Structure Review for Autodesk Certified Professional
Autodesk Revit Structure Review for Autodesk Certified Professional
 
Phong cách phát triển mở (MHST 2014)
Phong cách phát triển mở (MHST 2014)Phong cách phát triển mở (MHST 2014)
Phong cách phát triển mở (MHST 2014)
 
WEB.pptx
WEB.pptxWEB.pptx
WEB.pptx
 
Qlda 4-lapkehoachduan[easyvn.net]
Qlda 4-lapkehoachduan[easyvn.net]Qlda 4-lapkehoachduan[easyvn.net]
Qlda 4-lapkehoachduan[easyvn.net]
 
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự ánBài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
Bài 2: Tổng quan về quản lý dự án & Lựa chọn và lập kế hoạch cho dự án
 
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo AgileỨng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile
 
So sánh 5 phần mềm BIM 4D
So sánh 5 phần mềm BIM 4DSo sánh 5 phần mềm BIM 4D
So sánh 5 phần mềm BIM 4D
 
Báo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhàBáo cáo UML hệ thống cho thuê nhà
Báo cáo UML hệ thống cho thuê nhà
 

Domain Driven Design Framework

  • 1. BÁO CÁO ĐỒ ÁN TỐT NGHIỆP Ngành: Công Nghệ Thông Tin Thiết Kế Và Kiểm Thử Domain Driven Design Framework Cho Công Ty Cổ Phẩn DEHA Việt Nam Dựa Trên Nền Tảng PHP Viện Đại Học Mở Hà Nội Khoa Công Nghệ Thông Tin Giảng viên hướng dẫn: ThS. Trần Duy Hùng Sinh viên thực hiện: Hoàng Giang Biển - 1210A03
  • 2. Nội dung trình bày • Ý tưởng • Tìm hiểu về Domain Driven Design • Xây dựng Domain Driven Design Framework • Kết quả đạt được – hướng phát triển • Tài liệu tham khảo 2/24
  • 4. Kết quả cần đạt được 4/24 ● Hiểu và áp dụng được Domain Driven Design ● Xây dựng được một Framework hướng Domain Driven Design ● Sử dụng thực tế tại môi trường sản xuất ● Đóng góp mã nguồn cho cộng đồng nguồn mở
  • 5. Công nghệ 5/24 ● PHP ● MySQL ● PHPUnit
  • 6. Phần I KHÁI QUÁT DOMAIN DRIVEN DESIGN 6/24
  • 7. Domain Driven Design là gì? DDD là một hướng tiếp cận để phát triển phần mềm cho các nhu cầu phức tạp bằng cách kết nối sâu sắc việc thực thi với mô hình phát triển ý tưởng kinh doanh cốt lõi. 7/24
  • 8. Đặc điểm của Domain Driven Design • Đặt trọng tâm chính của dự án trên miền giá trị cốt lõi và miền logic nghiệp vụ • Đặt các thiết kế phức tạp dựa trên một mô hình • Bắt đầu bằng việc trao đổi liên tục giữa những người làm kỹ thuật và người am hiểu nghiệp vụ (Domain Expert) cho tới khi đi tới tâm điểm của vấn đề. 8/24
  • 9. Các trụ cột của Domain Driven Design • Ngôn ngữ chung • Domain Modeling • Model-Driven Design • Duy trì tính toàn vẹn 9/24
  • 10. Các trụ cột của Domain Driven Design • Ngôn ngữ chung Là ngôn ngữ được sử dụng rộng rãi trong 1 dự án phần mềm. Ngôn ngữ chung đóng vai trò là công cụ giao tiếp giữa các nhà phát triển và các chuyên gia lĩnh vực. 10/24
  • 11. Các trụ cột của Domain Driven Design • Domain Modeling Là một mô hình dựa trên lĩnh vực. Mô hình này đảm bảo các thiết kế về lĩnh vực phải được các bên liên quan tiếp thu. Mô hình này là một thể hiện của ngôn ngữ chung. Mô hình lĩnh vực có thể được tạo ra bằng nhiều cách như viết, hình vẽ, sơ đồ…. 11/24
  • 12. Các trụ cột của Domain Driven Design • Model Driven Design Là tập hợp các cấu thành nền tảng (building block) cho việc xây dựng một mô hình lĩnh vực. 12/24
  • 13. Các trụ cột của Domain Driven Design • Duy trì tính toàn vẹn 1. Tái cấu trúc liên tục 2. Tích hợp liên tục 3. Ngữ cảnh ánh xạ 4. Nhân chung 5. Chưng cất 13/24
  • 14. Ưu điểm của Domain Driven Design • Giải quyết tốt các bài toán có nghiệp vụ phức tạp • Tư duy mới mẻ về hệ thống • Phần mềm trở lên linh hoạt • Phần mềm phản ánh đúng tư duy của khách hàng • Logic nghiệp vụ nằm ở một chỗ, dễ quản lí • Mã nguồn tổ chức tốt, dễ Test • Nhiều Design Pattern hữu ích 14/24
  • 15. Nhược điểm của Domain Driven Design • Khó học, kiến thức mới • Khó thông thạo • Chi phí lớn • Khó khăn trong giao tiếp 15/24
  • 16. Phần II XÂY DỰNG DOMAIN DRIVEN DESIGN FRAMEWORK 16/24
  • 17. Khái quát về DDD Framework • Xây dựng dựa trên Layered Architecture 17/24
  • 18. Khái quát về DDD Framework • Xây dựng dựa trên các Contracts 18/24 Design by Contracts là một phương pháp thiết kế dựa vào việc xây dựng nên các Contracts (Hợp đồng) trong hệ thống. Giúp cho toàn bộ các thành phần đều phải tuân thủ cùng một qui tắc thiết kế
  • 19. Khái quát về DDD Framework • Cấu trúc thực tế của DDD Framework trên mã nguồn 19/24
  • 20. Khái quát về DDD Framework • Sơ đồ luồng dữ liệu 20/24
  • 22. 22/24 Hướng Hoàn Thiện - Phát Triển ● Đi sâu vào kiến trúc Event Architect ● Xây dựng thêm các thành phần bổ trợ cho Framework ● Hoàn thiện theo hướng phát triển Domain Driven Design ● Thực hiện đầy đủ các mã kiểm thử cho các thành phần còn lại Phần III: Kết Quả Đạt Được ● Hiểu được về Domain Driven Design và các mô hình thiết kế phần mềm tân tiến. ● Khảo sát, xây dựng, áp dụng mô hình thiết kế vào xây dựng Framework dựa trên nền tảng PHP ● Phân tích và kiểm thử đơn vị - tích hợp ● Biết về quá trình xây dựng một ứng dụng mã nguồn mở.
  • 23. Tài Liệu Tham Khảo 1. [1]. Eric Evan, Build Your Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley Professional, 2003. 2. [2]. Vaughn Vernon, Implementing Domain-Driven Design, Addison-Wesley Professional, 2013. 3. [3] InfoQ, Domain Driven Design Quickly, InfoQ.com, 2006. 4. [4] Grady Booch, Object-Oriented Analysis and Design with Applications 3th, Addison- Wesley Professional, 2007 23/24