Bài giảng Nhập môn Công nghệ phần mềm - Chương 8: Thiết kế hướng đối tượng - Nguyễn Văn Hiệp
8.1 Nhiệm vụ của thiết kế
8.2 Các artifacts cần tạo ra
8.3 Các worker tham gia thiết kế
8.4 Qui trình thiết kế
8.5 Thiết kế kiến trúc
8.6 Thiết kế từng use-case
8.7 Thiết kế từng class
8.8 Thiết kế các hệ thống con
8.9 Kết chương
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương 8: Thiết kế hướng đối tượng - Nguyễn Văn Hiệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Nhập môn Công nghệ phần mềm - Chương 8: Thiết kế hướng đối tượng - Nguyễn Văn Hiệp
Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 1 8.1 Nhiệm vụ của thiết kế 8.2 Các artifacts cần tạo ra 8.3 Các worker tham gia thiết kế 8.4 Qui trình thiết kế 8.5 Thiết kế kiến trúc 8.6 Thiết kế từng use-case 8.7 Thiết kế từng class 8.8 Thiết kế các hệ thống con 8.9 Kết chương Chương 8 Thiết kế hướng ₫ối tượng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 2 8.1 Nhiệm vụ của thiết kế Cụ thể hóa, chi tiết hóa các bản phát họa cách thức giải quyết chức năng tương ứng. Nếu dùng kỹ thuật thiết kế hướng ₫ối tượng, bản thiết kế cách giải quyết chức năng là các class ₫ối tượng cụ thể, mối quan hệ giữa chúng và các thông tin cụ thể, chi tiết kèm theo. Thí dụ mỗi class ₫ều có tên, có các thuộc tính chi tiết và các tác vụ chức năng (có thể kèm theo giải thuật của tác vụ ₫ó) Workflow thiết kế sẽ cụ thể hóa, chi tiết hóa tất cả các bản phát họa cách giải quyết mọi yêu cầu chức năng của hệ thống phần mềm. Workflow thiết kế cũng sẽ ₫ặc tả ₫ược kiến trúc cụ thể, chi tiết của hệ thống phần mềm. Toàn bộ các artifacts ₫ược tạo ra và duy trì trong workflow thiết kế ₫ược gọi là mô hình thiết kế và mô hình triển khai. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 3 8.1 Nhiệm vụ của thiết kế Mục ₫ích của các artifacts ₫ược tạo ra trong workflow thiết kế là : Giúp nắm bắt các hệ thống con, các class thiết kế, interface giữa chúng (interface ↔ interface, interface ↔ class class ↔ class). Giúp ta xem xét dễ dàng bảng thiết kế bằng cách dùng các ký hiệu của ngôn ngữ ₫ặc tả ₫ể miêu tả, hiển thị artifacts. Giúp người nghiên cứu hệ thống ₫ạt ₫ược sự hiểu biết sâu sắc các ràng buộc, các yêu cầu không chức năng liên quan ₫ến ngôn ngữ lập trình ₫ược dùng ₫ể hiện thực, việc dùng lại linh kiện có sẵn, HĐH, công nghệ phân tán, xử lý ₫ồng thời, database, giao diện, quản lý giao tác Tạo ra mức trừu tượng ₫ể làm ₫ầu vào trực tiếp cho hoạt ₫ộng hiện thực hệ thống phần mềm. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 4 8.2 Các artifacts cần tạo ra Mô hình thiết kế = hệ thống các kết quả thiết kế, nó chứa : các hệ thống con, nếu có, mỗi hệ thống con chứa : o các dẫn xuất use-case ở cấp thiết kế, mỗi dẫn xuất chứa : à các lược ₫ồ class ở cấp thiết kế. à các lược ₫ồ tương tác giữa các ₫ối tượng cấp thiết kế. à 'flow of events' ở cấp thiết kế. à các yêu cầu ₫ặc biệt của từng use-case, hay của toàn bộ các use-case cho workflow hiện thực. Đặc tả kiến trúc hệ thống phần mềm theo góc nhìn thiết kế (view of design model) Mô hình triển khai : Sẽ là ₫ặc tả kiến trúc phần mềm theo góc nhìn triển khai. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 5 8.2 Các artifacts cần tạo ra Desgin Class Design Model Desgin System Use-Case Realization - Design Interface Design Subsystem * * * * * * * *1 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 6 8.3 Các worker tham gia thiết kế Use-Case Engineer Component Engineer Desgin Model Deployment Model Architecture Description Use-Case Realization - Desgin Design class Design Subsystem Interface Architect Chịu trách nhiệm về Chịu trách nhiệm về Chịu trách nhiệm về Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 7 8.4 Qui trình thiết kế Architect Use-Case Engineer Architectural Design Design a Use-Case Design a Class Design a SubsystemComponentEngineer Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 8 8.5 Thiết kế kiến trúc Nhiệm vụ của hoạt ₫ộng thiết kế kiến trúc là xây dựng mô hình thiết kế, mô hình triển khai và kiến trúc của hệ thống phần mềm theo 2 góc nhìn tương ứng. Để xây dựng mô hình triển khai, ta nhận dạng các thông tin sau : Các nút tính toán và các cấu hình mạng của chúng. Để phục vụ xây dựng mô hình thiết kế, ta nhận dạng các thông tin sau : Các hệ thống con và interface của chúng. Các class thiết kế có ý nghĩa kiến trúc (như class chủ ₫ộng). Các cơ chế thiết kế tổng quát ₫ể xử lý các yêu cầu chung như tính bền vững, tính hiệu quả mà ta ₫ã nắm bắt ₫ược trong workflow phân tích. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 9 8.5 Thiết kế kiến trúc Nhận dạng các nút và cấu hình mạng nối kết Cấu hình mạng vật lý sẽ ảnh hưởng ₫ến kiến trúc phần mềm, gồm các khía cạnh sau : Các nút nào liên quan, khả năng về bộ nhớ và công suất tính toán của từng nút. Kiểu kết nối và giao thức giữa các nút. Các tính chất của kết nối và giao thức như băng thông, ₫ộ sẵn sàng, chất lượng, Mức ₫ộ cần thiết của tính dư thừa, ₫ề kháng lỗi, di cư process, sao lưu dữ liệu Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 10 8.5 Thiết kế kiến trúc Nhận dạng các hệ thống con và interface của chúng Được thực hiện từ ₫ầu hay khi mô hình thiết kế phát triển lên ₫ộ phức tạp cao nên cần phải chia nhỏ. Một số hệ thống con có thể ₫ược dùng lại từ các project khác. Các hoạt ₫ộng cụ thể : Nhận dạng các hệ thống con ở cấp ứng dụng. Nhận dạng các hệ thống con cấp giữa (middleware) và cấp hệ thống. Định nghĩa sự phụ thuộc giữa các hệ thống con. Nhận dạng interface giao tiếp của từng hệ thống con Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 11 8.5 Thiết kế kiến trúc Nhận dạng các hệ thống con và interface của chúng Các hệ thống xử lý cùng lĩnh vực thường có kiến trúc giống nhau, do ₫ó ta có thể chọn 1 trong các mẫu kiến trúc phổ biến có sẵn ₫ể làm kiến trúc của 1 hệ thống phần mềm cần thiết kế. Mẫu là phương tiện miêu tả, dùng chung và dùng lại kiến thức của nhiều người. Một mẫu kiến trúc là ₫ặc tả kiến trúc có rồi, ₫ược thiết kế tốt, ₫ã ₫ược dùng và kiểm chứng trong nhiều ứng dụng khác nhau. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 12 8.5 Thiết kế kiến trúc Kiến trúc MVC (Model-View-Controller) Đặc tả : Hệ thống gồm 3 thành phần luận lý tương tác lẫn nhau : Model quản lý dữ liệu và các tác vụ liên quan ₫ến dữ liệu này. View ₫ịnh nghĩa và quản lý cách thức dữ liệu ₫ược trình bày cho user. Controller quản lý các tương tác với user như ấn phím, click chuột và gởi thông tin tương tác này tới View và/hoặc Model. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 13 8.5 Thiết kế kiến trúc Kiến trúc MVC (Model-View-Controller) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 14 8.5 Thiết kế kiến trúc Kiến trúc MVC (Model-View-Controller) Thí dụ : Hệ thống web dùng kiến trúc MVC : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 15 8.5 Thiết kế kiến trúc Kiến trúc MVC (Model-View-Controller) Tình huống nên dùng : Hệ thống có nhiều cách ₫ể view và tương tác với dữ liệu, hoặc ta chưa biết trước các yêu cầu tương lai về sự tương tác và biểu diễn dữ liệu của chương trình. Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộc lập với cách thức thể hiện nó và ngược lại. Khuyết ₫iểm : có thể cần nhiều code hơn và code có thể phức tạp hơn khi mô hình dữ liệu và sự tương tác chỉ ở mức ₫ộ ₫ơn giản. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 16 8.5 Thiết kế kiến trúc Kiến trúc nhiều cấp (Layered architecture) Đặc tả : Hệ thống gồm nhiều cấp dạng chồng lên nhau, mỗi layer có chức năng cụ thể, rõ ràng và cung cấp các dịch vụ cho layer ngay trên mình. Các layer cấp thấp nhất chứa các dịch vụ cơ bản nhất và ₫ược dùng cho toàn hệ thống. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 17 8.5 Thiết kế kiến trúc Kiến trúc nhiều cấp (Layered architecture) Thí dụ : Hệ thống dùng chung các tài liệu copy ở các thư viện khác nhau. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 18 8.5 Thiết kế kiến trúc Kiến trúc nhiều cấp (Layered architecture) Tình huống nên dùng : xây dựng các khả năng mới trên hệ thống có sẵn, hay khi có nhiều nhóm phát triển khác nhau, mỗi nhóm chịu trách nhiệm về 1 layer chức năng cụ thể, hay khi có yêu cầu bảo mật nhiều cấp. Ưu ₫iểm : cho phép thay ₫ổi toàn bộ layer bất kỳ sao cho interface không ₫ổi. Có thể giải quyết 1 chức năng nào ₫ó (xác nhận user) ở nhiều cấp theo cách thức tăng dần. Khuyết ₫iểm : khó tách bạch chức năng của từng cấp, layer trên khó tương tác với layer phía dưới nó nhưng không liền kề. Hiệu quả giảm sút khi nhiều layer phải tương tác nhau ₫ể giải quyết 1 chức năng nào ₫ó. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 19 8.5 Thiết kế kiến trúc Kiến trúc kho (Repository Architecture) Đặc tả : Tất cả dữ liệu của hệ thống ₫ược quản lý trong 1 kho chứa tập trung, mọi thành phần chức năng của hệ thống ₫ều có thể truy xuất kho chứa này. Các thành phần không tương tác trực tiếp với nhau, chỉ thông qua kho chứa tập trung. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 20 8.5 Thiết kế kiến trúc Kiến trúc kho (Repository Architecture) Thí dụ : Môi trường IDE gồm nhiều thành phần dùng chung kho thông tin, mỗi tool tạo thông tin và ₫ể trong kho ₫ể các tool khác dùng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 21 8.5 Thiết kế kiến trúc Kiến trúc kho (Repository Architecture) Tình huống nên dùng : khi hệ thống tạo và chứa 1 lượng rất lớn thông tin trong thời gian dài, hay trong các hệ thống dựa vào dữ liệu, ở ₫ó việc chứa thông tin vào kho sẽ kích hoạt 1 tool hay 1 chức năng hoạt ₫ộng. Ưu ₫iểm : các thành phần ₫ộc lập nhau, không ai biết gì về ai khác. Khuyết ₫iểm : kho là ₫iểm yếu nhất, nếu có lỗi sẽ ảnh hưởng toàn bộ các thành phần chức năng. Có vấn ₫ề về truy xuất ₫ồng thời kho, phân tán kho trên nhiều máy cũng khó khăn. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 22 8.5 Thiết kế kiến trúc Kiến trúc client-server (client-server Architecture) Đặc tả : Hệ thống gồm 2 loại phần tử chức năng : server cung cấp 1 số dịch vụ, client là phần tử sử dụng dịch vụ bằng cách truy xuất ₫ến server tương ứng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 23 8.5 Thiết kế kiến trúc Kiến trúc client-server (client-server Architecture) Thí dụ : Hệ thống quản lý phim ảnh dùng mô hình client-server Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 24 8.5 Thiết kế kiến trúc Kiến trúc client-server (client-server Architecture) Tình huống nên dùng : khi database dùng chung từ nhiều vị trí khác nhau hay khi tải hệ thống thay ₫ổi ₫ộng (nhân bản server thành nhiều phần tử). Ưu ₫iểm : server có thể phân tán tự do trên mạng. Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào mạng và hệ thống nên khó lường trước. Nếu các server ₫ược quản lý bởi các tổ chức khác nhau thì có vấn ₫ề về quản lý chúng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 25 8.5 Thiết kế kiến trúc Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture) Đặc tả : Xử lý dữ liệu thông qua 1 ống gồm nhiều thành phần xử lý (filter) rời rạc và nối tiếp nhau, mỗi filter thực hiện 1 hoạt ₫ộng chuyển ₫ổi dữ liệu từ dạng ₫ầu vào thành dạng ₫ầu ra ₫ể thành phần sau xử lý tiếp. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 26 8.5 Thiết kế kiến trúc Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture) Thí dụ : Hệ thống xử lý hóa ₫ơn ₫ặt hàng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 27 8.5 Thiết kế kiến trúc Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture) Tình huống nên dùng : trong các ứng dụng xử lý dữ liệu mà dữ liệu nhập cần ₫ược xử lý bởi nhiều công ₫oạn khác nhau trước khi tạo ra kết quả cuối cùng (compiler). Ưu ₫iểm : dễ dàng dùng lại từng filter của hệ thống cũ, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp bằng cách thêm filter mới. Khuyết ₫iểm : ₫ịnh dạng dữ liệu phải thỏa mãn ₫ồng thời bởi 2 filter liền kề : filter tạo kết quả và filter dùng kết quả ₫ó. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 28 8.5 Thiết kế kiến trúc Nhận dạng các class quan trọng về mặt kiến trúc Cần nhận dạng các class thiết kế quan trọng về mặt kiến trúc ₫ể làm tiền ₫ề cho hoạt ₫ộng thiết kế chi tiết, các class khác sẽ ₫ược nhận dạng trong khi thiết kế từng use-case : Nhận dạng các class thiết kế từ các class phân tích tương ứng. Nhận dạng các class chủ ₫ộng khi chú ý yêu cầu ₫ồng thời của hệ thống : à Các yêu cầu về ₫ộ hiệu quả, ₫ộ sẵn sàng, công suất hệ thống à Sự phân tán hệ thống phần mềm trên các nút. à Các yêu cầu khác như khởi ₫ộng, kết thúc, tránh deadlock, tránh bảo hòa, cấu hình lại các nút, khả năng nối kết Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 29 8.5 Thiết kế kiến trúc Nhận dạng các cơ chế thiết kế tổng quát Từ các yêu cầu chung và ₫ặc biệt ₫ã ₫ược nhận dạng trong workflow phân tích, ta quyết ₫ịnh xử lý chúng dựa trên công nghệ thiết kế và hiện thực sẵn có. Kết quả là 1 tập các cơ chế thiết kế tổng quát. Các yêu cầu cần xử lý thường liên quan ₫ến : Tính bền vững. Sự phân tán và ₫ồng thời. Các tính chất an toàn dữ liệu. Đề kháng với lỗi. Quản lý giao tác. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 30 8.6 Thiết kế từng use-case Nhiệm vụ thiết kế use-case là ₫ể : Nhận dạng các hệ thống con và các class thiết kế có ₫ối tượng của mình tham gia vào việc thực hiện các hoạt ₫ộng tồn tại trong “flow of events ở cấp thiết kế” của use-case tương ứng. Thể hiện sự tương tác giữa các hệ thống con, giữa hệ thống con với ₫ối tượng thiết kế, giữa các ₫ối tượng thiết kế trong việc thực hiện use-case thông qua các lược ₫ồ ₫ộng như lược ₫ồ trình tự, lược ₫ồ cộng tác, lược ₫ồ hoạt ₫ộng, lược ₫ồ trạng thái. Nhận dạng thêm 1 số yêu cầu ₫ặc biệt và phi chức năng cho việc thực hiện từng tác vụ, từng class và từng hệ thống con. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 31 8.6 Thiết kế từng use-case Nhận dạng các class thiết kế thực hiện 1 use-case Ở bước này, ta sẽ : Nghiên cứu các class biên, thực thể, ₫iều khiển trong dẫn xuất use-case cấp phân tích tương ứng ₫ể nhận dạng các class thiết kế ₫ược dẫn xuất từ class phân tích này. Nghiên cứu các yêu cầu ₫ặc biệt trong dẫn xuất use-case cấp phân tích tương ứng ₫ể nhận dạng các class thiết kế hiện thực ₫ược các yêu cầu ₫ặc biệt này. Có thể liên hệ với kiến trúc sư và kỹ sư linh kiện ₫ể bàn bạc hầu nhận dạng thêm các class khác. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 32 8.6 Thiết kế từng use-case Nhận dạng các class thiết kế thực hiện 1 use-case Ở bước này, ta sẽ (tt) : Gán nghĩa vụ cho từng class thiết kế tìm ₫ược. Xác ₫ịnh cụ thể các mối quan hệ giữa các class thiết kế tìm ₫ược. Tập hợp các class tìm ₫ược, mối quan hệ giữa chúng thành 1 hay nhiều lược ₫ồ class. Các lược ₫ồ class này sẽ là nội dung thiết yếu ₫ể xây dựng dẫn xuất use-case tương ứng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 33 8.6 Thiết kế từng use-case Xây dựng các lược ₫ồ trình tự Lược ₫ồ trình tự chứa các phần tử actor, ₫ối tượng thiết kế và các thông báo ₫ược gởi giữa chúng theo thứ tự thời gian. Nếu use-case có nhiều luồng ₫iều khiển khác nhau, ta nên tạo lược ₫ồ trình tự cho từng luồng. Nên chuyển lược ₫ồ cộng tác ở cấp phân tích thành lược ₫ồ trình tự ban ₫ầu, từ ₫ó phát triển thêm chi tiết. Dùng “flow of events ở cấp thiết kế”, duyệt các bước trong nó ₫ể xác ₫ịnh các thông báo cần thiết giữa actor và ₫ối tượng thiết kế, hay giữa 2 ₫ối tượng thiết kế. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 34 8.6 Thiết kế từng use-case Xây dựng các lược ₫ồ trình tự Cần chú ý các ₫iểm sau trong việc xây dựng các lược ₫ồ trình tự : Nên tập trung thông tin thiết yếu là trình tự các thông báo. Thường lúc ₫ầu, actor sẽ gởi thông báo ₫ến ₫ối tượng thiết kế ₫ể yêu cầu thực hiện use-case. Mỗi class thiết kế trong lược ₫ồ class nên có ít nhất 1 ₫ối tượng tham gia vào lược ₫ồ trình tự. Các thông báo ₫ược vẽ từ ₫ường ₫ời sống ₫ối tượng gởi ₫ến ₫ường ₫ời sống ₫ối tượng nhận, có thể gán tên tạm, sau này nó trở thành tên tác vụ tượng ứng (của ₫ối tượng nhận). Lược ₫ồ trình tự nên xử lý tất cả các mối quan hệ của use-case cần hiện thực. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 35 8.6 Thiết kế từng use-case Xây dựng các lược ₫ồ trình tự : Database : People : LoginForm 1: submit(uname, psswd) 1.1: verify(uname, psswd) 1.2: welcome Lược ₫ồ trình tự thực hiện use-case Login Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 36 8.7 Thiết kế từng class Nhiệm vụ của việc thiết kế từng class là tạo ra ₫ược class thiết kế hoàn thành vai trò của nó trong dẫn xuất use-case và các yêu cầu phụ, tập trung các thông tin sau : Các tác vụ & vá các method kèm theo (thuật giải hiện thực). Các thuộc tính Các mối quan hệ với các phần tử khác. Các trạng thái quan trọng của ₫ối tượng thuộc class ₫ó. Các yêu cầu ₫ặc biệt có liên quan ₫ến hiện thực class ₫ó. Đảm bảo hiện thực ₫úng từng interface mà class phải hiện thực. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 37 8.7 Thiết kế từng class Từ 1 interface, ta nhận dạng ít nhất 1 class thiết kế hiện thực nó. Từ 1 class phân tích : Thiết kế class biên phụ thuộc công nghệ tạo giao diện : Form, ActiveX Để ý dùng các prototype giao diện trong nắm bắt yêu cầu. Thiết kế class thực thể thường phụ thuộc vào công nghệ database. Việc ánh xạ từ mô hình hướng ₫ối tượng sang mô hình dữ liệu quan hệ có thể cần worker, mô hình và công việc riêng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 38 8.7 Thiết kế từng class Khi thiết kế class ₫iều khiển nên chú ý các nhu cầu sau : à Phân tán : cần nhiều class thiết kế trên các nút khác nhau ₫ể thực hiện 1 class ₫iều khiển. à Hiệu quả : nên dùng chỉ 1 class thiết kế cho 1 class ₫iều khiển. à Giao tác : class thiết kế cần tích hợp công nghệ quản lý giao tác. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 39 8.7 Thiết kế từng class Nhận dạng các tác vụ cho class thiết kế Dựa vào các thông tin ₫ầu vào sau : Các trách nhiệm của bất kỳ class phân tích nào mà dẫn ₫ến việc phát sinh class thiết kế. Mỗi trách nhiệm tương ứng với 1 hay nhiều tác vụ cụ thể, nhưng ở ₫ây mới phát họa thông số hình thức các tham số. Các yêu cầu ₫ặc biệt của bất kỳ class phân tích nào mà dẫn ₫ến class thiết kế. Các interface mà class thiết kế phải cung cấp. Dẫn xuất use-case cấp thiết kế mà class tham gia. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 40 8.7 Thiết kế từng class Nhận dạng các thuộc tính cho class thiết kế Dựa vào các thông tin ₫ầu vào sau : Các thuộc tính của bất kỳ class phân tích nào mà dẫn ₫ến việc phát sinh class thiết kế. Mỗi thuộc tính cấp phân tích ám chỉ 1 hay nhiều thuộc tính cụ thể. Mỗi tác vụ thiết kế có thể cần 1 hay nhiều thuộc tính dữ liệu. Cố gắng dùng kiểu ₫ã có cho thuộc tính mới. Nếu không có ý ₫ịnh sinh mã tự ₫ộng thì hạn chế dùng kiểu cụ thể của ngôn ngữ lập trình. Còn nếu muốn sinh mã tự ₫ộng thì phải dùng kiểu cụ thể của ngôn ngữ dự ₫ịnh viết code. Nếu có quá nhiều thuộc tính, có thể tách riêng từng nhóm thành các class riêng và dùng lược ₫ồ class riêng ₫ể miêu t3 mối quan hệ giữa các class phát sinh này. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 41 8.7 Thiết kế từng class Nhận dạng các mối quan hệ của class thiết kế Dựa vào các hướng dẫn sau : Chú ý các mối quan hệ kết hợp và bao gộp của bất kỳ class phân tích nào dẫn tới class thiết kế này. Tinh chế số lượng phân tử tham gia ở mỗi ₫ầu, tên vai trò, tính chất của vai trò, class kết hợp, kết hợp n-ary. Tinh chế hướng của mối quan hệ kết hợp từ lược ₫ồ tương tác. Nhận dạng và miêu tả mối quan hệ tổng quát hóa. Nếu ngôn ngữ lập trình dự ₫ịnh dùng không hỗ trợ tính thừa kế, dùng mối quan hệ kết hợp hay bao gộp ₫ể thay thế. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 42 8.7 Thiết kế từng class Xác ₫ịnh method cho từng tác vụ Method ₫ặc tả cách tác vụ ₫ược hiện thực. Có thể dùng ngôn ngữ tự nhiên hay ngôn ngữ pseudo-code. Nếu kỹ sư linh kiện thực hiện cả 2 khâu thiết kế và hiện thực thì họ thường ít khi ₫ặc tả method cho tác vụ trong workflow thiết kế, họ chỉ làm tại thời ₫iểm viết code. Một vài ₫ối tượng thiết kế ₫ược ₫iều khiển hoạt ₫ộng bởi trạng thái : trạng thái hiện hành se xác ₫ịnh hành vi của ₫ối tượng khi xử lý thông báo từ ngoài gởi ₫ến. Trong trường hợp này ta nên miêu tả chi tiết các sự chuyển trạng thái của ₫ối tượng bằng lược ₫ồ chuyển trạng thái. Tiếp tục xử lý các yêu cầu ₫ặc biệt chưa ₫ược chú ý ở các bước trước. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 43 8.8 Thiết kế các hệ thống con Nhiệm vụ của việc thiết kế các hệ thống con là : Đảm bảo các hệ thống con ₫ộc lập với nhau nhiều như có thể có (tính phụ thuộc thấp nhất). Đảm bảo interface của hệ thống con ₫ộc lập nhiều như có thể có với chi tiết bên trong nó. Đảm bảo hệ thống con cung cấp chính xác interface theo yêu cầu. Đảm bảo hệ thống con hoàn thành mục ₫ích, hiện thực ₫úng cho các tác vụ. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương 8 : Thiết kế hướng ₫ối tượng Slide 44 8.9 Kết chương Chương này ₫ã giới thiệu các thông tin cơ bản về workflow thiết kế như nhiệm vụ, các artifact cần tạo ra, các worker tham gia, qui trình thực hiện. Chương này cũng ₫ã giới thiệu chi tiết về hoạt ₫ộng thiết kế kiến trúc phần mềm, thiết kế từng use-case, thiết kế từng class, thiết kế các hệ thống con.
File đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_8_thiet_ke_huon.pdf