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
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", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_8_thiet_ke_huon.pdf
Nội dung text: 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
- Chương 8 Thiếtkế hướng ₫ốitượng 8.1 Nhiệmvụ củathiếtkế 8.2 Các artifacts cầntạora 8.3 Các worker tham gia thiếtkế 8.4 Qui trình thiếtkế 8.5 Thiếtkế kiếntrúc 8.6 Thiếtkế từng use-case 8.7 Thiếtkế từng class 8.8 Thiếtkế các hệ thống con 8.9 Kếtchương Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 1 8.1 Nhiệmvụ củathiếtkế Cụ thể hóa, chi tiết hóa các bản phát họacáchthứcgiảiquyết chứcnăng tương ứng. Nếu dùng kỹ thuậtthiếtkế hướng ₫ốitượng, bảnthiếtkế cách giải quyếtchứcnăng là các class ₫ốitượng cụ thể, mốiquanhệ giữa chúng và các thông tin cụ thể, chi tiếtkèm theo. Thí dụ mỗi class ₫ều có tên, có các thuộc tính chi tiếtvàcác tác vụ chứcnăng (có thể kèm theo giảithuậtcủatácvụ₫ó) Workflow thiếtkế sẽ cụ thể hóa, chi tiết hóa tấtcả các bản phát họacáchgiải quyếtmọiyêucầuchứcnăng củahệ thống phần mềm. Workflow thiếtkế cũng sẽ₫ặctả ₫ượckiếntrúccụ thể, chi tiếtcủa hệ thống phầnmềm. Toàn bộ các artifacts ₫ượctạo ra và duy trì trong workflow thiếtkế ₫ượcgọilàmôhìnhthiếtkế và mô hình triển khai. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 2
- 8.1 Nhiệmvụ củathiếtkế Mục ₫ích của các artifacts ₫ượctạo ra trong workflow thiếtkế là : Giúp nắmbắtcáchệ thống con, các class thiếtkế, interface giữa chúng (interface ↔ interface, interface ↔ class class ↔ class). Giúp ta xem xét dễ dàng bảng thiếtkế bằng cách dùng các ký hiệucủa ngôn ngữ₫ặctả₫ểmiêu tả, hiểnthị artifacts. Giúp người nghiên cứuhệ thống ₫ạt ₫ượcsự hiểubiếtsâusắc các ràng buộc, các yêu cầukhôngchứcnăng liên quan ₫ến ngôn ngữ lậptrình₫ược dùng ₫ể hiệnthực, việcdùnglạilinh kiệncósẵn, HĐH, công nghệ phân tán, xử lý ₫ồng thời, database, giao diện, quảnlýgiaotác Tạoramứctrừutượng ₫ể làm ₫ầuvàotrựctiếp cho hoạt ₫ộng hiệnthựchệ thống phầnmềm. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 3 8.2 Các artifacts cầntạora Mô hình thiếtkế = hệ thống các kếtquả thiếtkế, nó chứa: các hệ thống con, nếucó, mỗihệ thống con chứa: o các dẫnxuất use-case ở cấpthiếtkế, mỗidẫnxuấtchứa: à các lược ₫ồ class ở cấpthiếtkế. à các lược ₫ồ tương tác giữacác₫ốitượng cấpthiếtkế. à 'flow of events' ở cấpthiếtkế. à các yêu cầu ₫ặcbiệtcủatừng use-case, hay của toàn bộ các use-case cho workflow hiệnthực. Đặctả kiếntrúchệ thống phầnmềm theo góc nhìn thiếtkế (view of design model) Mô hình triểnkhai: Sẽ là ₫ặctả kiếntrúcphầnmềm theo góc nhìn triểnkhai. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 4
- 8.2 Các artifacts cầntạora * 1 * Design Desgin Design Model System Subsystem * * * * * * Interface Use-Case Realization - Desgin Class Design Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 5 8.3 Các worker tham gia thiếtkế Architect Use-Case Component Engineer Engineer Chịu trách nhiệmvề Chịu trách nhiệmvề Chịu trách nhiệmvề Desgin Deployment Architecture Use-Case Design Design Interface Model Model Description Realization - class Subsystem Desgin Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 6
- 8.4 Qui trình thiếtkế Architect Architectural Design Use-Case Design a Engineer Use-Case Design a Component Design a Engineer Class Subsystem Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 7 8.5 Thiếtkế kiếntrúc Nhiệmvụ củahoạt ₫ộng thiếtkế kiếntrúclàxâydựng mô hình thiếtkế, mô hình triển khai và kiếntrúccủahệ thống phầnmềm theo 2 góc nhìn tương ứng. Để xây dựng mô hình triển khai, ta nhậndạng các thông tin sau : Các nút tính toán và các cấuhìnhmạng của chúng. Để phụcvụ xây dựng mô hình thiếtkế, ta nhậndạng các thông tin sau : Các hệ thống con và interface của chúng. Các class thiếtkế có ý nghĩakiếntrúc(như class chủ₫ộng). Các cơ chế thiếtkế tổng quát ₫ể xử lý các yêu cầu chung như tính bềnvững, tính hiệuquả màta₫ãnắmbắt ₫ược trong workflow phân tích. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 8
- 8.5 Thiếtkế kiếntrúc Nhậndạng các nút và cấuhìnhmạng nốikết Cấuhìnhmạng vậtlýsẽảnh hưởng ₫ếnkiếntrúcphầnmề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ấttính toán củatừng nút. Kiểukếtnốivàgiaothứcgiữa các nút. Các tính chấtcủakếtnốivàgiaothứcnhư băng thông, ₫ộ sẵn sàng, chấtlượng, Mức ₫ộ cầnthiếtcủatínhdư thừa, ₫ề kháng lỗi, di cư process, sao lưudữ liệu Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 9 8.5 Thiếtkế kiếntrúc Nhậndạng các hệ thống con và interface của chúng Đượcthựchiệntừ₫ầu hay khi mô hình thiếtkế phát triểnlên₫ộ phứctạp cao nên cầnphảichianhỏ. Mộtsố hệ thống con có thể ₫ược dùng lạitừ các project khác. Các hoạt ₫ộng cụ thể : Nhậndạng các hệ thống con ở cấp ứng dụng. Nhậndạng các hệ thống con cấpgiữa (middleware) và cấphệ thống. Định nghĩasự phụ thuộcgiữacáchệ thống con. Nhậndạng interface giao tiếpcủatừng hệ thống con Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 10
- 8.5 Thiếtkế kiếntrúc Nhậndạ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ựcthường có kiếntrúcgiống nhau, do ₫ótacóthể chọn 1 trong các mẫukiếntrúcphổ biếncósẵn ₫ể làm kiếntrúccủa1 hệ thống phầnmềmcầnthiếtkế. Mẫulàphương tiệnmiêutả, dùng chung và dùng lạikiếnthứccủa nhiềungười. Mộtmẫukiếntrúclà₫ặctả kiếntrúccórồi, ₫ược thiếtkế tốt, ₫ã ₫ược dùng và kiểmchứng trong nhiều ứng dụng khác nhau. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 11 8.5 Thiếtkế kiếntrúc Kiến trúc MVC (Model-View-Controller) Đặctả : Hệ thống gồm 3 thành phầnluậnlýtương tác lẫn nhau : Model quảnlýdữ liệuvàcáctácvụ liên quan ₫ếndữ liệu này. View ₫ịnh nghĩavàquảnlýcáchthứcdữ liệu ₫ược trình bày cho user. Controller quảnlýcáctương tác vớiuser nhưấn phím, click chuột và gởi thông tin tương tác này tới View và/hoặcModel. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 12
- 8.5 Thiếtkế kiếntrúc Kiến trúc MVC (Model-View-Controller) Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 13 8.5 Thiếtkế kiếntrúc Kiến trúc MVC (Model-View-Controller) Thí dụ : Hệ thống web dùng kiếntrúcMVC : Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 14
- 8.5 Thiếtkế kiếntrúc Kiến trúc MVC (Model-View-Controller) Tình huống nên dùng : Hệ thống có nhiềucách₫ể view và tương tác vớidữ liệu, hoặctachưabiếttrướccácyêucầutương lai về sự tương tác và biểudiễndữ liệucủachương trình. Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộclậpvớicáchthứcthể hiện nó và ngượclại. Khuyết ₫iểm : có thể cầnnhiều code hơn và code có thể phức tạphơn khi mô hình dữ liệuvàsự tương tác chỉởmức ₫ộ ₫ơn giản. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 15 8.5 Thiếtkế kiếntrúc Kiến trúc nhiềucấp (Layered architecture) Đặctả : Hệ thống gồm nhiềucấpdạng chồng lên nhau, mỗilayer có chứcnăng cụ thể, rõ ràng và cung cấpcácdịch vụ cho layer ngay trên mình. Các layer cấpthấpnhấtchứacácdịch vụ cơ bản nhấtvà₫ược dùng cho toàn hệ thống. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 16
- 8.5 Thiếtkế kiếntrúc Kiến trúc nhiềucấp (Layered architecture) Thí dụ : Hệ thống dùng chung các tài liệucopy ở các thư viện khác nhau. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 17 8.5 Thiếtkế kiếntrúc Kiến trúc nhiềucấp (Layered architecture) Tình huống nên dùng : xây dựng các khả năng mớitrênhệ 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ệmvề 1 layer chứcnăng cụ thể, hay khi có yêu cầu bảomật nhiềucấp. Ưu ₫iểm : cho phép thay ₫ổi toàn bộ layer bấtkỳ sao cho interface không ₫ổi. Có thể giải quyết1 chứcnăng nào ₫ó (xác nhận user) ở nhiềucấp theo cách thứctăng dần. Khuyết ₫iểm : khó tách bạch chứcnăng củatừng cấp, layer trên khó tương tác với layer phía dướinónhưng không liềnkề. Hiệu quả giảm sút khi nhiều layer phảitương tác nhau ₫ể giải quyết1 chứcnăng nào ₫ó. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 18
- 8.5 Thiếtkế kiếntrúc Kiến trúc kho (Repository Architecture) Đặctả : Tấtcả dữ liệucủahệ thống ₫ượcquản lý trong 1 kho chứatập trung, mọi thành phầnchứcnăng củahệ thống ₫ềucó thể truy xuấtkhochứa này. Các thành phần không tương tác trực tiếpvới nhau, chỉ thông qua kho chứatập trung. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 19 8.5 Thiếtkế kiếntrúc Kiến trúc kho (Repository Architecture) Thí dụ : Môi trường IDE gồmnhiều thành phầndùngchungkho 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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 20
- 8.5 Thiếtkế kiếntrúc Kiến trúc kho (Repository Architecture) Tình huống nên dùng : khi hệ thống tạovàchứa1 lượng rấtlớn thông tin trong thời gian dài, hay trong các hệ thống dựavàodữ liệu, ở₫óviệcchứa thông tin vào kho sẽ kích hoạt 1 tool hay 1 chứcnăng hoạt ₫ộng. Ưu ₫iểm : các thành phần ₫ộclập nhau, không ai biếtgìvề ai khác. Khuyết ₫iểm : kho là ₫iểmyếunhất, nếucólỗisẽảnh hưởng toàn bộ các thành phầnchứcnăng. Có vấn ₫ề về truy xuất ₫ồng thời kho, phân tán kho trên nhiềumáycũng khó khăn. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 21 8.5 Thiếtkế kiếntrúc Kiến trúc client-server (client-server Architecture) Đặctả : Hệ thống gồm2 loạiphầntử chứcnăng : server cung cấp 1 số dịch vụ, client là phầntử 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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 22
- 8.5 Thiếtkế kiếntrú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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 23 8.5 Thiếtkế kiếntrú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ềuvị trí khác nhau hay khi tảihệ thống thay ₫ổi ₫ộng (nhân bảnserver thành nhiềuphầntử). Ưu ₫iểm : server có thể phân tán tự do trên mạng. Khuyết ₫iểm : ₫ộ hiệuquả phụ thuộcvàomạng và hệ thống nên khó lường trước. Nếu các server ₫ượcquảnlýbởicáctổ 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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 24
- 8.5 Thiếtkế kiếntrúc Kiếntrúc₫ường ống và lọc (Pipe and filter Architecture) Đặctả : Xử lý dữ liệu thông qua 1 ống gồm nhiều thành phầnxử lý (filter) rờirạcvànốitiếp nhau, mỗi filter thựchiện1 hoạt ₫ộng chuyển ₫ổidữ liệutừ dạng ₫ầu vào thành dạng ₫ầura₫ể thành phầnsauxử lý tiếp. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 25 8.5 Thiếtkế kiếntrúc Kiếntrú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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 26
- 8.5 Thiếtkế kiếntrúc Kiếntrú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ệumàdữ liệunhậpcần ₫ượcxử lý bởinhiều công ₫oạn khác nhau trướckhi tạorakếtquả cuối cùng (compiler). Ưu ₫iểm : dễ dàngdùnglạitừng filter củahệ thống cũ, phù hợp vớinhiềuhoạt ₫ộng nghiệpvụ, dễ dàng nâng cấpbằng cách thêm filter mới. Khuyết ₫iểm : ₫ịnh dạng dữ liệuphảithỏamãn₫ồng thờibởi2 filter liềnkề : filter tạokếtquả và filter dùng kếtquả₫ó. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 27 8.5 Thiếtkế kiếntrúc Nhậndạng các class quan trọng về mặtkiếntrúc Cầnnhậndạng các class thiếtkế quan trọng về mặtkiếntrúc₫ể làm tiền ₫ề cho hoạt ₫ộng thiếtkế chi tiết, các class khác sẽ₫ược nhậndạng trong khi thiếtkế từng use-case : Nhậndạng các class thiếtkế từ các class phân tích tương ứng. Nhậndạng các class chủ₫ộng khi chú ý yêu cầu ₫ồng thời củahệ thống : à Các yêu cầuvề₫ộhiệuquả, ₫ộ sẵn sàng, công suấthệ thống à Sự phân tán hệ thống phầnmề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ấuhìnhlại các nút, khả năng nốikết Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 28
- 8.5 Thiếtkế kiếntrúc Nhậndạng các cơ chế thiếtkế tổng quát Từ các yêu cầu chung và ₫ặcbiệt ₫ã ₫ượcnhậndạng trong workflow phân tích, ta quyết ₫ịnh xử lý chúng dựa trên công nghệ thiếtkế và hiệnthựcsẵncó. Kếtquả là 1 tậpcáccơ chế thiếtkế tổng quát. Các yêu cầucầnxử lý thường liên quan ₫ến: Tính bềnvữ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ớilỗi. Quảnlýgiaotác. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 29 8.6 Thiếtkế từng use-case Nhiệmvụ thiếtkế use-case là ₫ể : Nhậndạng các hệ thống con và các class thiếtkế có ₫ốitượng của mình tham gia vào việcthựchiệncáchoạt ₫ộng tồntại trong “flow of events ở cấpthiếtkế”của use-case tương ứng. Thể hiệnsự tương tác giữacáchệ thống con, giữahệ thống con với ₫ốitượng thiếtkế, giữacác₫ốitượng thiếtkế trong việc thựchiệ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ậndạng thêm 1 số yêu cầu ₫ặcbiệt và phi chứcnăng cho việcthựchiệntừ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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 30
- 8.6 Thiếtkế từng use-case Nhậndạng các class thiếtkế thựchiện 1 use-case Ở bước này, ta sẽ : Nghiên cứu các class biên, thựcthể, ₫iềukhiển trong dẫnxuất use-case cấpphântíchtương ứng ₫ể nhậndạng các class thiếtkế ₫ượcdẫnxuấttừ class phân tích này. Nghiên cứucácyêucầu ₫ặcbiệt trong dẫnxuất use-case cấp phân tích tương ứng ₫ể nhậndạng các class thiếtkế hiệnthực ₫ượccácyêucầu ₫ặcbiệt này. Có thể liên hệ vớikiếntrúcsư và kỹ sư linh kiện ₫ể bàn bạc hầunhậndạng thêm các class khác. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 31 8.6 Thiếtkế từng use-case Nhậndạng các class thiếtkế thựchiện 1 use-case Ở bước này, ta sẽ (tt) : Gán nghĩavụ cho từng class thiếtkế tìm ₫ược. Xác ₫ịnh cụ thể các mối quan hệ giữa các class thiếtkế tìm ₫ược. Tậphợp các class tìm ₫ược, mối quan hệ giữa chúng thành 1 hay nhiềulược ₫ồ class. Các lược ₫ồ class này sẽ là nội dung thiếtyếu ₫ể xây dựng dẫnxuất use-case tương ứng. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 32
- 8.6 Thiếtkế 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ầntử actor, ₫ốitượng thiếtkế và các thông báo ₫ượcgởigiữa chúng theo thứ tự thời gian. Nếu use-case có nhiềuluồng ₫iềukhiển khác nhau, ta nên tạo lược ₫ồ trình tự cho từng luồng. Nên chuyểnlượ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ấpthiếtkế”, duyệtcácbước trong nó ₫ể xác ₫ịnh các thông báo cầnthiếtgiữa actor và ₫ốitượng thiếtkế, hay giữa2 ₫ốitượng thiếtkế. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 33 8.6 Thiếtkế 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ệcxâydựng các lược ₫ồ trình tự : Nên tập trung thông tin thiếtyếulàtrìnhtự các thông báo. Thường lúc ₫ầu, actor sẽ gởi thông báo ₫ến ₫ốitượng thiếtkế ₫ể yêu cầuthựchiện use-case. Mỗi class thiếtkế trong lược ₫ồ class nên có ít nhất1 ₫ốitượng tham gia vào lược ₫ồ trình tự. Các thông báo ₫ượcvẽ từ ₫ường ₫ờisống ₫ốitượng gởi ₫ến ₫ường ₫ờisống ₫ốitượ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 ₫ốitượng nhận). Lược ₫ồ trình tự nên xử lý tấtcả các mối quan hệ của use-case cầnhiệnthực. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 34
- 8.6 Thiếtkế từng use-case Xây dựng các lược ₫ồ trình tự Lược ₫ồ trình tự thựchiện use-case Login : LoginForm : Database : People 1: submit(uname, psswd) 1.1: verify(uname, psswd) 1.2: welcome Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 35 8.7 Thiếtkế từng class Nhiệmvụ củaviệcthiếtkế từng class là tạora₫ượcclass thiếtkế hoàn thành vai trò củanótrongdẫnxuấ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ậtgiảihiệnthực). Các thuộctính Các mốiquanhệ với các phầntử khác. Các trạng thái quan trọng của ₫ốitượng thuộc class ₫ó. Các yêu cầu ₫ặcbiệtcóliênquan₫ếnhiệnthực class ₫ó. Đảmbảohiệnthực ₫úng từng interface mà class phảihiện thực. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 36
- 8.7 Thiếtkế từng class Từ 1 interface, ta nhậndạng ít nhất 1 class thiếtkế hiệnthực nó. Từ 1 class phân tích : Thiếtkế class biên phụ thuộc công nghệ tạogiaodiện: Form, ActiveX Để ý dùng các prototype giao diện trong nắmbắt yêu cầu. Thiếtkế class thựcthể thường phụ thuộc vào công nghệ database. Việc ánh xạ từ mô hình hướng ₫ốitượ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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 37 8.7 Thiếtkế từng class Khi thiếtkế class ₫iềukhiển nên chú ý các nhu cầusau: à Phân tán : cầnnhiều class thiếtkế trên các nút khác nhau ₫ể thựchiện 1 class ₫iềukhiển. à Hiệuquả : nên dùng chỉ 1 class thiếtkế cho 1 class ₫iều khiển. à Giao tác : class thiếtkế cầntíchhợpcôngnghệ quảnlýgiao tác. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 38
- 8.7 Thiếtkế từng class Nhậndạng các tác vụ cho class thiếtkế Dựa vào các thông tin ₫ầuvàosau: Các trách nhiệmcủabấtkỳ class phân tích nào mà dẫn ₫ến việc phát sinh class thiếtkế. Mỗi trách nhiệmtương ứng với1 hay nhiềutácvụ cụ thể, nhưng ở₫ây mớipháthọa thông số hình thức các tham số. Các yêu cầu ₫ặcbiệtcủabấtkỳ class phân tích nào mà dẫn ₫ến class thiếtkế. Các interface mà class thiếtkế phải cung cấp. Dẫnxuất use-case cấpthiếtkế mà class tham gia. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 39 8.7 Thiếtkế từng class Nhậndạng các thuộc tính cho class thiếtkế Dựa vào các thông tin ₫ầuvàosau: Các thuộctínhcủabấtkỳ class phân tích nào mà dẫn ₫ếnviệc phát sinh class thiếtkế. Mỗithuộc tính cấp phân tích ám chỉ 1 hay nhiềuthuộc tính cụ thể. Mỗitácvụ thiếtkế có thể cần 1 hay nhiềuthuộc tính dữ liệu. Cố gắng dùng kiểu ₫ãcóchothuộc tính mới. Nếu không có ý ₫ịnh sinh mã tự₫ộng thì hạnchế dùng kiểucụ thể của ngôn ngữ lậptrình. Cònnếumuốnsinhmãtự₫ộng thì phảidùng kiểucụ thể của ngôn ngữ dự₫ịnh viết code. Nếu có quá nhiềuthuộ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 Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 40
- 8.7 Thiếtkế từng class Nhậndạng các mối quan hệ của class thiếtkế Dựavàocáchướng dẫnsau: Chú ý các mối quan hệ kếthợpvàbaogộpcủabấtkỳ class phân tích nào dẫntới class thiếtkế này. Tinh chế số lượng phân tử tham gia ở mỗi ₫ầu, tên vai trò, tính chấtcủa vai trò, class kếthợp, kếthợp n-ary. Tinh chế hướng củamối quan hệ kếthợptừ lược ₫ồ tương tác. Nhậndạng và miêu tả mối quan hệ tổng quát hóa. Nếu ngôn ngữ lậptrìnhdự₫ịnh dùng không hỗ trợ tính thừakế, dùng mối quan hệ kếthợp hay bao gộp ₫ể thay thế. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 41 8.7 Thiếtkế từng class Xác ₫ịnh method cho từng tác vụ Method ₫ặctả cách tác vụ ₫ượchiệnthực. Có thể dùng ngôn ngữ tự nhiên hay ngôn ngữ pseudo-code. Nếukỹ sư linh kiệnthựchiện cả 2 khâu thiếtkế và hiệnthựcthìhọ thường ít khi ₫ặctả method cho tác vụ trong workflow thiếtkế, họ chỉ làm tạithời ₫iểmviết code. Mộtvài₫ốitượng thiếtkế ₫ược ₫iềukhiểnhoạt ₫ộng bởitrạng thái : trạng thái hiệnhànhse xác₫ịnh hành vi của ₫ốitượ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ếtcácsự chuyểntrạng thái của ₫ốitượng bằng lược ₫ồ chuyểntrạng thái. Tiếptụcxử lý các yêu cầu ₫ặcbiệtchưa ₫ượcchúý ở các bước trước. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 42
- 8.8 Thiếtkế các hệ thống con Nhiệmvụ củaviệcthiếtkế các hệ thống con là : Đảmbảocáchệ thống con ₫ộclậpvới nhau nhiềunhư có thể có (tính phụ thuộcthấpnhất). Đảmbảo interface củahệ thống con ₫ộclậpnhiềunhư có thể có với chi tiết bên trong nó. Đảmbảohệ thống con cung cấp chính xác interface theo yêu cầu. Đảmbảohệ thống con hoàn thành mục ₫ích, hiệnthực ₫úng cho các tác vụ. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 43 8.9 Kếtchương Chương này ₫ãgiớithiệu các thông tin cơ bảnvề workflow thiết kế như nhiệmvụ, các artifact cầntạo ra, các worker tham gia, qui trình thựchiện. Chương này cũng ₫ãgiớithiệuchi tiếtvề hoạt ₫ộng thiếtkế kiếntrúcphầnmềm, thiếtkế từng use-case, thiếtkế từng class, thiếtkế các hệ thống con. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 8 : Thiếtkế hướng ₫ốitượng © 2010 Slide 44