Đặt vấn đề kỹ thuật sang một bên, mỗi đối tƣợng trong thiết kế đóng vai trò một khái niệm đƣợc mô tả trong mô hình. Có nhiều cách trừu tƣợng hóa một miền và cũng có nhiều cách thiết kế có thể giải quyết vấn đề của ứng dụng. Đây chính là thứ làm cho việc liên kết chặt chẽ mô hình và thiết kế trở nên thực tế. Liên kết này không khiến cho mô hình phân tích bị suy yếu, tổn hại bởi việc xem xét các yếu tố kỹ thuật; hay phải chấp nhận các thiết kế phản ánh ý tƣởng miền vụng về nhƣng không sử dụng các nguyên tắc thiết kế phần mềm.
Khi một mô hình dƣờng nhƣ không phù hợp với thực tế cài đặt hoặc không thể hiện một cách trung thực các khái niệm thì mô hình đó nên đƣợc thay thế. Do đó, quy trình mô hình hóa và thiết kế trở thành một vòng lặp tiếp tục. Yêu cầu liên kết chặt chẽ giữa mô hình miền và thiết kế cung cấp thêm một tiêu chí cho việc lựa chọn các mô hình hữu ích trong vô số mô hình có thể có. Từ mô hình, thuật ngữ đƣợc sử dụng trong thiết kế và phân công công việc.
Mã nguồn trở thành sự thể hiện của mô hình, vì vậy, một sự thay đổi mã nguồn có thể là một thay đổi mô hình. Ảnh hƣởng của nó chắc chắn sẽ lan ra hoạt động còn lại của dự án. Việc gắn cài đặt với mô hình thƣờng yêu cầu các công cụ và ngôn ngữ phát triển phần mềm hỗ trợ mô hình hóa nhƣ lập trình hƣớng đối tƣợng. Thiết kế hƣớng mô hình là trái tim của thiết kế hƣớng miền [2].
mô tả các thành phần cơ bản cấu thành nên thiết kế hƣớng mô hình. 6 TIEU LUAN MOI download : skknchat@gmail.1: Các thành phần cơ bản của thiết kế hướng mô hình [2] Trong các phần tiếp, các thành phần cơ bản này sẽ đƣợc trình bày một cách chi tiết. Cô lập miền Trong phần mềm, việc giải quyết các vấn đề cụ thể từ miền thƣờng chỉ chiếm một phần nhỏ trong toàn bộ phần mềm mặc dù nó rất quan trọng. Các thành phần của mô hình cần đƣợc xem xét nhƣ một hệ thống và các đối tƣợng miền cần đƣợc tách biệt khỏi các chức năng khác của hệ thống để tránh gây nhầm lẫn khái niệm miền với khái niệm khác chỉ liên quan đến công nghệ phần mềm.
Các kỹ thuật phức tạp cho sự cô lập này đã xuất hiện. Đây là nền tảng vững chắc, quan trọng đối với việc áp dụng thành công các nguyên tắc mô hình hóa miền từ quan điểm hƣớng miền [2]. Có rất nhiều cách phân chia một hệ thống phần mềm, nhƣng trong ngành công nghiệp phần mềm, kiến trúc phân tầng (layer) đƣợc sử dụng rộng rãi. Nguyên tắc cơ là bất kỳ thành phần nào của một layer chỉ phụ thuộc vào các thành phần khác trong cùng layer hoặc layer bên dƣới.
Mặc dù có nhiều biến thể nhƣng hầu hết các kiến trúc thành công đều sử dụng một số phiên bản của bốn layer khái niệm sau: 7 TIEU LUAN MOI download : skknchat@gmail.2: Kiến trúc phân lớp [2] Tầng giao diện ngƣời dùng Chịu trách nhiệm cho việc hiển thị thông tin cho ngƣời dùng và diễn giải các lệnh của ngƣời dùng. Tác nhân bên ngoài đôi khi có thể là một hệ thống khác chứ không phải con ngƣời. Tầng ứng dụng Định nghĩa các công việc mà phần mềm sẽ thực hiện và điều khiển các đối tƣợng miền giải quyết các vấn đề. Các nhiệm vụ của layer này là phối hợp các xử lý cho tƣơng tác với các layer ứng dụng của các hệ thống khác.
Tầng nghiệp vụ Chịu trách nhiệm cho việc biểu diễn các khái niệm, thông tin về nghiệp vụ trong hệ thống. Logic nghiệp vụ đƣợc điều khiển và sử dụng ở đây, mặc dù các chi tiết kỹ thuật lƣu trữ nó đƣợc giao cho cơ sở hạ tầng. Tầng cơ sở hạ tầng Cung cấp khả năng kỹ thuật chung hỗ trợ các layer cao hơn nhƣ: gửi các bản tin cho ứng dụng, sự tồn tại lâu bền cho miền, vẽ các widget cho UI, … Layer này cũng có thể hỗ trợ mô hình tƣơng tác giữa bốn layer thông qua một nền tảng kiến trúc. Khi cơ sở hạ tầng đƣợc cung cấp dƣới dạng các dịch vụ đƣợc gọi thông qua các giao diện thì nó khá trực quan (layer làm việc nhƣ thế nào và làm sao để duy trì liên kết lỏng lẻo giữa các layer).
Nhƣng một số vấn đề kỹ thuật đòi hỏi nhiều dạng cơ sở hạ tầng hơn nên các nền tảng tích hợp nhiều cơ sở hạ tầng thƣờng đƣợc yêu cầu cho các layer khác. Khi áp dụng một nền tảng, các mục tiêu phải cần đƣợc tập trung là xây dựng một cài đặt thể hiện cho một mô hình miền và sử dụng nó để giải quyết các vấn đề. Kiến trúc phân tầng đƣợc sử dụng trong hầu hết các hệ thống hiện nay theo các sơ đồ phân tầng khác nhau. Tuy nhiên, thiết kế hƣớng miền chỉ yêu cầu một tầng cụ thể phải tồn tại đó là tầng nghiệp vụ.
8 TIEU LUAN MOI download : skknchat@gmail.com Mô hình miền là một tập hợp các khái niệm. Tầng nghiệp vụ là sự thể hiện của mô hình đó và tất cả các thành phần thiết kế trực tiếp liên quan đến. Thiết kế và cài đặt logic nghiệp vụ tạo thành tầng nghiệp vụ. Trong thiết kế hƣớng mô hình, các cấu trúc phần mềm của tầng nghiệp vụ phản ánh các khái niệm mô hình.
Nói cách khác, mô hình đƣợc tồn tại trong tầng nghiệp vụ. Để thu đƣợc mô hình miền trong khi logic miền đƣợc trộn lẫn với các mối quan tâm khác của chƣơng trình là không thực tế. Việc cô lập cài đặt miền là một điều kiện tiên quyết cho thiết kế hƣớng miền. Mô hình được thể hiện trong phần mềm Để hài hòa với cài đặt mà không làm mất điểm mạnh của một thiết kế hƣớng mô hình yêu cầu phải tập hợp lại các nền tảng cơ bản.
Kết nối mô hình và cài đặt phải đƣợc thực hiện trong nhiều mức chi tiết. Đầu tiên là những vấn đề liên quan đến thiết kế và tinh giảm các liên kết. Liên kết giữa các đối tƣợng rất đơn giản để tƣởng tƣợng và vẽ ra, nhƣng cài đặt chúng là một vũng lầy tiềm ẩn. Các liên kết minh họa các quyết định triển khai chi tiết, quan trọng đối với khả năng tồn tại của thiết kế hƣớng mô hình.
Tự mình chuyển sang đối tƣợng, nhƣng tiếp tục xem xét mối quan hệ giữa các lựa chọn mô hình chi tiết và các mối quan tâm đến cài đặt, ba mẫu của các thành phần mô hình đƣợc sử dụng để thể hiện mô hình: thực thể, đối tƣợng của giá trị và các dịch vụ [2]. Xác định các đối tƣợng nắm bắt các khái niệm miền dƣờng nhƣ là rất trực quan bên ngoài, nhƣng ẩn dấu nhiều thử thách nghiêm trọng bên trong sắc thái ý nghĩa. Một số khác biệt đã xuất hiện, làm rõ nghĩa của các thành phần mô hình và gắn vào khung của thiết kế để tạo ra các loại đối tƣợng cụ thể. Một đối tƣợng có đại diện cho một thứ gì đó có tính liên tục, có định danh và theo dõi đƣợc thông qua các trạng thái khác nhau hoặc thậm chí các cài đặt khác nhau; hay nó là một thuộc tính mô tả trạng thái của thứ gì khác.
Đây là sự khác biệt cơ bản giữa thực thể và đối tƣợng của giá trị. Việc xác định rõ ràng các đối tƣợng theo một pattern làm cho đối tƣợng ít mơ hồ hơn và đƣa ra phƣơng hƣớng cho việc lựa chọn một thiết kế tốt nhất. Sau đó, các khía cạnh của miền đƣợc thể hiện rõ ràng hơn dƣới dạng hành động hoặc hoạt động chứ không chỉ là đối tƣợng. Mặc dù là một xuất phát nhỏ từ mô hình hƣớng đối tƣợng truyền thống, nhƣng tốt nhất, thể hiện chúng dƣới dạng các dịch vụ thay vì buộc phải gán trách nhiệm cho một hoạt động trên thực thể hay đối tƣợng của giá trị.
Một dịch vụ là thứ gì đó đƣợc thực hiện do client theo yêu cầu. Cuối cùng, mô-đun đƣợc sử dụng để dẫn đến quan điểm rằng mọi quyết định thiết kế nên đƣợc thúc đẩy bởi một số hiểu biết sâu sắc về miền. Ý tƣởng về sự gắn kết chặt chẽ và gắn kết lỏng lẻo thƣờng đƣợc coi là các tiêu chí kỹ thuật có thể đƣợc áp dụng cho chính các khái niệm đó. Trong thiết kế hƣớng mô hình, mô-đun là một phần của mô hình và chúng nên phản ánh các khái niệm trong mô hình.
Các liên kết Sự tƣơng tác giữa mô hình hóa và các cài đặt đặc biệt phức tạp do những liên kết 9 TIEU LUAN MOI download : skknchat@gmail.com giữa các đối tƣợng. Một mô hình cho thấy liên kết giữa một khách hàng và đại diện bán hàng tƣơng ứng với hai thứ. Một là nó trừu tƣợng quan hệ giữa hai ngƣời thực, hai là nó tƣơng ứng với một con trỏ giữa hai đối tƣợng Java; hoặc một sự đóng gói của tra cứu cơ sở dữ liệu. Ví dụ, một liên kết one-to-many có thể đƣợc cài đặt nhƣ một tập hợp các instance của đối tƣợng.
Nhƣng thiết kế không cần thiết quá rõ ràng. Có thể không có tập hợp nào; một phƣơng thức truy nhập truy vấn cơ sở dữ liệu để tìm các bản ghi phù hợp và khởi tạo các đối tƣợng dựa trên chúng. Tất cả thiết kế cùng phản ánh cùng mô hình. Thiết kế phải xác định một cơ chế truyền tải cụ thể mà hành vi của nó nhất quán với liên kết trong mô hình.
Các thực thể Thực thể đƣợc biết đến là đối tƣợng tham chiếu. Nhiều đối tƣợng không đƣợc xác định một cách cơ bản bởi các thuộc tính của chúng mà bởi một chuỗi liên tục và định danh. Ví dụ, một ngƣời có định danh kéo dài từ khi sinh ra đến khi chết đi và thậm chí sau đó. Các thuộc tính vật lý của ngƣời đó biến đổi và cuối cùng biến mất, thuộc tính của ngƣời có thể thay đổi nhƣng danh tính luôn tồn tại.
Mô hình hóa đối tƣợng có xu hƣớng tập trung các thuộc tính của một đối tƣợng nhƣng khái niệm cơ bản của một thực thể là một chuỗi liên tục trừu tƣợng hóa qua một vòng đời và thậm chí đi qua nhiều trạng thái. Đối tƣợng đại diện cho một chuỗi định danh qua thời gian. Đôi khi, một đối tƣợng phải đƣợc khớp với một đối tƣợng khác mặc dù thuộc tính của chúng khác nhau. Một đối tƣợng phải đƣợc phân biệt với đối tƣợng khác dù chúng có thể có cùng thuộc tính.
Nhần lẫn định danh có thể dẫn tới những sai hỏng dữ liệu.