Giáo trình Phân tích thiết kế hướng đối tượng: Phần 1 - PGS.TS. Đặng Văn Đức

136 13 0
Giáo trình Phân tích thiết kế hướng đối tượng: Phần 1 - PGS.TS. Đặng Văn Đức

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Phân tích thiết kế hướng đối tượng: Phần 1 - PGS.TS. Đặng Văn Đức gồm 5 chương với các nội dung chương mở đầu; khái quát về UML; mô hình hóa trường hợp sử dụng; mô hình hóa tương tác đối tượng; biểu đồ lớp và gói.

Xuất năm 2002 Chuyển sang ebook Sinh viên lớp DHTH4LT – Trường ĐH Công Nghiệp 10/2009 Phát triển phần mềm UML trang | Mục lục CHƯƠNG MỞ ĐẦU 1.1 LỊCH SỬ HƯỚNG ĐỐI TƯỢNG 1.2 MỘT SỐ KHÁI NIỆM CƠ BẢN 10 1.3 NGUYÊN TẮC QUẢN LÝ ĐỘ PHỨC TẠP 12 1.4 NGUN TẮC MƠ HÌNH HĨA 13 1.5 KHÁI QUÁT VỀ TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM 15 1.5.1 - Các phương pháp mơ hình hóa hệ thống 15 1.5.2 - Các pha phát triển phần mềm 17 CHƯƠNG KHÁI QUÁT VỀ UML 24 2.1 GIỚI THIỆU UML 24 2.2 MƠ HÌNH KHÁI NIỆM CỦA UML 26 2.2.1 - Phần tử mơ hình UML 26 2.2.2 - Các quan hệ UML 28 2.2.3 - Kiểu liệu 29 2.2.4 - Biểu đồ UML 29 2.3 KIẾN TRÚC HỆ THỐNG 38 2.3.1 - Khung nhìn UC 38 2.3.2 - Khung nhìn thiết kế 39 2.3.3 - Khung nhìn cài đặt 39 2.3.4 - Khung nhìn triển khai 39 2.3.5 - Khung nhìn tiến trình 40 2.3.6 - Cần khung nhìn 40 2.4 RATIONAL ROSE LÀ GÌ? 40 2.5 KHẢ NĂNG SỬ DỤNG UML 41 2.6 THỰC HÀNH 41 CHƯƠNG MƠ HÌNH HĨA TRƯỜNG HỢP SỬ DỤNG 44 3.1 PHÂN TÍCH TRƯỜNG HỢP SỬ DỤNG (USE CASE – UC) 44 3.1.1 - UC gì? 44 3.1.2 - Xây dựng UC để làm gì? 44 3.1.3 - Tìm kiếm UC ? 45 3.1.4 - Luồng kiện UC 48 3.2 BIỂU ĐỒ TRƯỜNG HỢP SỬ DỤNG 50 3.3 THỰC HÀNH 54 3.3.1 - Sử dụng Rational Rose 54 3.3.2 - Thí dụ: hệ thống bán hàng 60 CHƯƠNG MƠ HÌNH HĨA TƯƠNG TÁC ĐỐI TƯỢNG 63 4.1 ĐỐI TƯỢNG VÀ TÌM KIẾM ĐỐI TƯỢNG 63 4.2 BIỂU ĐỒ TƯƠNG TÁC 63 4.2.1 - Biểu đồ trình tự 64 4.2.2 - Biểu đồ cộng tác 70 4.3 KỸ THUẬT XÂY DỰNG BIỂU ĐỒ TƯƠNG TÁC 72 4.4 THỰC HÀNH 75 4.4.1 - Sử dụng Rational Rose 75 4.4.2 - Thí dụ: hệ thống bán hàng (tiếp theo) 83 CHƯƠNG BIỂU ĐỒ LỚP VÀ GÓI 92 5.1 LỚP VÀ TIỀM KIẾM LỚP 92 5.2 BIỂU ĐỒ LỚP 94 5.2.1 - Các loại lớp biểu đồ 94 5.2.2 - Stereotype lớp 95 5.3 GÓI 96 5.4 THUỘC TÍNH LỚP 97 5.4.1 - Tìm kiếm thuộc tính 97 5.4.2 - Đặc tả thuộc tính 98 5.5 THAO TÁC CỦA LỚP 100 Phát triển phần mềm UML trang | 5.6 QUAN HỆ 101 5.6.1 - Quan hệ kết hợp 101 5.6.2 - Quan hệ phụ thuộc 104 5.6.3 - Phụ thuộc tụ hợp 105 5.6.4 - Quan hệ khái quát hóa 106 5.6.5 - Gán đặc tính cho quan hệ 107 5.7 CƠ CHẾ DUY TRÌ ĐỐI TƯỢNG 112 5.8 THỰC HÀNH 115 5.8.1 - Sử dụng Rational Rose 115 5.8.2 - Thí dụ: Hệ thống bán hàng (tiếp theo) 125 CHƯƠNG BIỂU ĐỒ CHUYỂN TRẠNG THÁI VÀ BIỂU ĐỒ HOẠT ĐỘNG 137 6.1 BIỂU ĐỒ CHUYỂN TRẠNG THÁI 137 6.1.1 - Trạng thái 139 6.1.2 - Quá độ 141 6.1.3 - Trạng thái ẩn 142 6.1.4 - Lớp biểu đồ trạng thái 144 6.2 BIỂU ĐỒ HOẠT ĐỘNG 144 6.2.1 - Trạng thái hành động trạng thái hoạt động 145 6.2.2 - Quá độ 145 6.2.3 - Rẽ nhánh 145 6.2.4 - Đường dẫn tương tranh 146 6.2.5 - Đường bơi 147 6.2.6 - Luồng đối tượng 147 6.2.7 - Gửi nhận tín hiệu 148 6.3 THỰC HÀNH 149 6.3.1 - Sử dụng Rational Rose 149 6.3.2 - Thí dụ: Hệ thống bán hàng (tiếp theo) 152 CHƯƠNG BIỂU ĐỒ KIẾN TRÚC VẬT LÝ VÀ PHÁT SINH MÃ TRÌNH 155 7.1 BIỂU ĐỒ THÀNH PHẦN 155 7.1.1 - Thành phần gì? 155 7.1.2 - Biểu tượng thành phần Rational Rose 156 7.1.3 - Phụ thuộc thành phần 157 7.1.4 - Biểu đồ thành phần 158 7.2 BIỂU ĐỒ TRIỂN KHAI 159 7.2.1 - Phần tử mơ hình biểu đồ 159 7.2.2 - Tiến trình 160 7.3 THỰC HÀNH 160 7.3.1 - Sử dụng Rational Rose 160 7.3.2 - Phát sinh mã trình Rose 164 7.3.3 - Rational Rose Visual C++ 170 7.3.4 - Thí dụ: Hệ thống bán hàng (tiếp theo) 171 CHƯƠNG VÍ DỤ ÁP DỤNG 184 8.1 KHẢO SÁT TIẾN TRÌNH TÁC NGHIỆP 184 8.2 PHÂN TÍCH LĨNH VỰC 190 8.3 PHÂN TÍCH HỆ THỐNG 194 8.3.1 - Xây dựng biểu đồ trường hợp sử dụng (Use Case-UC) 194 8.4 BIỂU ĐỒ TƯƠNG TÁC 204 8.4.1 - Tiến trình đặt trước sách để mượn 204 8.4.2 - Tiến trình mượn sách , tạp chí 206 8.5 BIỂU ĐỒ LỚP 208 8.6 BIỂU ĐỒ TRIỂN KHAI 209 8.7 THIẾT KẾ GIAO DIỆN 211 CHƯƠNG MÃ TRÌNH PHÁT SINH TRONG ROSE 214 9.1 PHÁT SINH MÃ TRÌNH C++ 214 9.1.1 - Các lớp 214 9.1.2 - Quan hệ kết hợp 216 9.1.3 - Quan hệ phụ thuộc tập hợp 220 Phát triển phần mềm UML trang | 9.1.4 - Quan hệ kế thừa 222 9.2 PHÁT SINH MÃ TRÌNH JAVA 222 9.2.1 - Các lớp 223 9.2.2 - Quan hệ kết hợp 224 9.2.3 - Quan hệ phụ thuộc tập hợp 225 9.2.4 - Quan hệ kế thừa 226 9.3 PHÁT SINH MÃ TRÌNH VISUAL BASIC 227 9.3.1 - Các lớp 227 9.3.2 - Quan hệ kết hợp 229 9.3.3 - Quan hệ kế thừa đơn 230 9.4 PHÁT SINH MÃ TRÌNH SQL 231 9.4.1 - Các lớp 231 9.4.2 - Quan hệ kết hợp 231 9.4.3 - Quan hệ kế thừa 233 Phát triển phần mềm UML trang | LỜI NÓI ĐẦU Hệ thống tin học ngày phức tạp Xu áp dụng phương pháp hướng đối tượng (phương pháp mới) thay cho phương pháp cấu trúc (phương pháp truyền thống) ngày phổ biến xây dựng hệ thống phần mềm lớn phức tạp Hơn nữa, từ Ngơn ngữ mơ hình hóa thống (Unified Modeling Language – UML) tổ chức OMG (Object Management Group) công nhận chuẩn công nghiệp trở thành cơng cụ phổ dụng hữu hiệu cho phương pháp Mục tiêu tài liệu nhằm giới thiệu khái niềm tiếp cận hướng đối tượng mơ hình hóa hệ thống phần mềm theo phương pháp hướng đối tượng Các khái niệm mô tả, hướng dẫn thực hành thông qua ngôn ngữ chuẩn UML phần mềm cơng cụ mơ hình hóa tiếng Rational Rose Raitonal Software Corporation Phương pháp phân tích thiết kế hướng đối tượng sử dụng rộng rãi nước phát triển bắt đầu sử dụng số đơn vị tin học Việt Nam Tuy nhiên tài liệu tiếng Việt lĩnh vực cịn hoi, khơng đáp ứng nhu cầu Hơn nữa, nhận thức tầm quan trọng phương pháp này, số trường đại học hình thành mơn học liên quan đến vấn đề nói cho sinh viên, số trường khác có kế hoạch đưa chủ đề vào chương trình đào tạo khóa Chủ điểm tài liệu thể góc nhìn người phát triển hệ thống phần mềm, khơng thể góc độ quan sát nhà phương pháp luận Lựa chọn xuất phát từ thực tế từ phương pháp luận hướng đối tượng dẫn đến việc ứng dụng vào xây dựng phần mềm cụ thể khoảng cách xa vời đầy khó khăn, đặc biệt với trình độ tin học nói chung cịn chưa cao Việt Nam Với quan điểm này, tài liệu cấu trúc sau: Chương mở đầu trình bày khái quát mơ hình mơ hình hóa; bước xây dưng hệ thống phần mềm tầm quan trọng phương pháp hướng đối tượng Chương giời thiệu ngôn ngữ chuẩn công nghiệp UML, công cụ hữu hiệu mơ hình hóa hệ thống phần mềm Trong phần trình bày kỹ thuật mơ hình hóa, từ phân tích u cầu đến thiết kế hệ thống, kiến trúc hệ thống cài đặt ngôn ngữ lập trình Chương cuối học thực nghiệm kỹ thuật trình bày chương trước vào toán cụ thể Đặc biệt, chương tài liệu có phần thực hành phần mềm Rational Rose để độc giả áp dụng ngày công cụ mới, kỹ thuật vào giải vấn đề riêng họ Phần phụ lục trình bày số mã trình vài ngơn ngữ thơng dụng tương ứng với nhóm phần tử biểu đồ UML… Hiện phần lớn bạn sinh viên đại học năm cuối kỹ sư tin học trường gặp khó khăn nhận nhiệm vụ xây dựng hệ thống phần mềm hay nâng cấp phần mềm có sẵn Các bạn thường khơng làm để có phần mềm phần mềm tốt, nói cách khác thiếu phương pháp Do vậy, sách tài liệu tham khảo tốt cho bạn sinh viên kỹ sư tin học Quyển sách hình thành từ nội dung giảng tác giả chủ đề Phát triển phần mềm hướng đối tượng băng UML cho số lớp sinh viên đại học Trong trình biên soạn tác giả nhận nhiều ý kiến đóng góp q báu chuyên gia lĩnh vực Trước hết tác giả xin chân thành cảm ơn PGS TSKH Nguyễn Xuân Huy, CN Ngô Trung Việt, TS Đặng Thành Phu, TS Đoàn Văn Ban, ThS Nguyễn Sơn Hải đồng nghiệp khác công tác Viện Công nghệ Thông tin, Trung tâm Khoa học Tự nhiên Công nghệ Quốc gia đọc cho ý kiến sửa chữa thảo Mặc dù cố gắng tài liệu khơng tránh khỏi sai sót Tác giả xin chân thành cám ơn ý kiến đóng góp bạn đọc Phát triển phần mềm UML trang | Địa liên lạc: Viện Công nghệ Thông tin, Trung tâm Khoa học Tự nhiên Công nghệ Quốc gia Email: dvduc@ioit.ncst.ac.vn Hà nội, tháng 02 năm 2002 TÁC GIẢ Phát triển phần mềm UML trang | CHƯƠNG MỞ ĐẦU Phát triển phần mềm ngày trở nên phức tạp Thay đổi giao diện từ xâu ký tự sang giao diện đồ họa xu kiện; kiến trúc hệ thống đa tầng khách/chủ; sở liệu (CSDL) phân tán; Internet … làm tăng độ phức tạp hệ thống phần mềm Thách thức hai mươi năm tới xây dựng hệ thống phần mềm tốc độ thực chương trình, kinh phí hay sức mạnh mà vấn đề độ phức tạp (Sun Microsystem) Kẻ thù độ phức tạp, ta phải loại bỏ chúng (Jan Bean) Vậy, loại bỏ độ phức tạp cách nào? Các phương pháp tiếp cận hướng cấu trúc, tiệm cận hướng logic, tiếp cận hướng hướng đối tượng tiếp cận hướng tác tử để giải vấn đề mức độ khác Tổng quát việc xây dựng phần mềm phải quan tâm đến tổ chức, quan hệ cấu trúc để hình thành hành vi phức tạp hệ thống Mọi việc khảo sát hệ thống phải thực với mức độ trừu tượng khác nhau, từ chi tiết đến tổ chức tổng thể Do vậy, xây dựng phần mềm thực dãy tương tác chia nhỏ hợp Chia nhỏ để hiểu rõ vấn đề hợp để xây dựng hệ thống Tiến trình chia nhỏ (tách) có truyền thống tuân thủ tiêu chí chức Các chức hệ thống nhận diện, sau chúng tách thành chức Tiến trình thực lặp lặp lại có thành phần đơn giản đến mức chúng biểu diễn trực tiếp hàm hay thủ tục ngơn ngữ lập trình (hình 1.1) Cách tiếp cận gọi tiếp cận hướng chức (hay gọi thủ tục, truyền thống) Người phát triển phần mềm tập trung vào nhiệm vụ điều khiển tách thuật toán lớn thành thuật tốn nhỏ Khối để hình thành phần mềm hàm hay thủ tục Chức Chức Chức 1.1 Chức 1.2 Chức Chức 2.1 Chức 2.2 Hình 1.1 Tiếp cận hướng chức Kiến trúc phần mềm cài đặt theo cách tiếp cận vừa mô tả phản ảnh chức hệ thống Tiếp cận sở chức chế phân cấp cho lại kết mong muốn chức nhận biết đầy đủ khơng thay đổi theo thời gian Thực tế lại không nhiều trường hợp, phát triển phần mềm khơng kết thúc hồn tồn, ln có phải sửa đổi, nâng cấp Sửa đổi hay mở rộng hệ thống nhiều làm cho chương trình khác xa quan niệm ban đầu Do cần phải có phương pháp cho khả làm chủ độ phức tạp, giúp quản lý chất lượng, độ tin cậy phần mềm ngày cấu trúc bị tách hay tiến hóa Phát triển phần mềm UML trang | Mở Cửa Phòng thang máy Lên tầng Bật đèn Đèn Cơng tắc Hình 1.2 Tiếp cận hướng đối tượng Quan điểm hướng đối tượng hình thành sở tiếp cận hướng hệ thống, coi hệ thống thực thể tổ chức từ thành phần mà xác định thừa nhận có quan hệ với thành phần khác Phương pháp tách vần đề giải để hiểu chúng không dựa sở hệ thống làm mà cịn dựa việc tích hợp hệ thống với hệ thống làm Thí dụ hình 1.2 mơ tả đối tượng quan hệ đối tượng hệ thống thang máy Theo cách tiếp cận chức hệ thống biểu diễn thông qua cộng tác đối tượng; việc thay đổi, tiến hóa chức khơng ảnh hưởng đến cấu trúc tĩnh phần mềm Sức mạnh tiếp cận hướng đối tượng việc tách (chia) nhập (thống nhất) thực nhờ tập phong phú chế tích hợp chúng; khả thống cao tách để xây dựng thực thể phức tạp từ thực thể đơn giản Tiếp cận hướng đối tượng tỏ rõ lợi lập trình hệ thống phức tạp Những người phát triển phần mềm nhận thấy phát triển phần mềm hướng đối tượng cho lại phần mềm thương mại chất lượng cao: tin cậy, dễ mở rộng dễ sử dụng lại, chạy trơn tru, phù hợp với yêu cầu người dùng mong đợi Chúng cho khả hoàn thành phần mềm kỳ hạn khơng vượt q khinh phí dự kiến ban đầu Ngồi phương pháp cấu trúc phương pháp hướng đối tượng vừa đề cập đây, người ta thấy số phương pháp khác nhà tin học đề xuất cho công nghệ phần mềm tiếp cận hướng logic, tiếp cận hướng tác tử (agent)… Phương pháp tiếp cận hướng logic mơ tả quan hệ “logic” tính chất thuộc tính kiện nhờ sở lập luận luật suy diễn biểu diễn gợi ý trước Tiếp cận hình thành sở ngơn ngữ lập trình Prolog Phương pháp tiếp cận tác tử kiểu mở rộng tiếp cận hướng đối tượng Gần giới cơng nghiệp quan tâm Các đơn vị sở để phát triển hệ thống tác tử, modun phần mềm Đối tượng khởi động nhận thơng điệp từ bên ngồi tác tử tích cực làm việc hay khơng phụ thuộc vào mơi trường chứa Tuy nhiên, phương pháp hướng đối tượng ngày cành nhiều người sử dụng 1.1 LỊCH SỬ HƯỚNG ĐỐI TƯỢNG Khái niệm hướng đối tượng hình thành từ ngơn ngữ lập trình Simula, trở nên quen thuộc xuất ngơn ngữ C++ SmallTalk vào cuối năm 80 kỳ XX Sơ đồ hình 1.3 thời gian xuất quan hện ngôn ngữ lập trình [OES00] Trong hình vng với góc trịn tên ngơn ngữ lập trình hướng đối tượng Phát triển phần mềm UML trang | Fortran LISP Algol 1960 Cobol PL/1 Simula Smalltalk-72 1970 Prolog Smalltalk-74 Smalltalk-76 Pascal C Smalltalk-78 Loops Smalltalk-80 1980 Objective C Ada C++ ObjectPascal CLOS Eiffel 1990 Ada ObjectCobol Java Hướng đối tượng Khơng hướng đối tượng Hình 1.3 Các ngơn ngữ lập trình Khi ngơn ngữ hướng đối tượng sử dụng rộng rãi nhu cầu có phương pháp phát triển phần mềm hướng đối tượng trở nên cấp bách Vào đầu năm 90 kỷ XX xuất phương pháp hướng đối tượng sau đây: Phương pháp Booch, OMT (Object Modeling Technique), OOSE (Object Oriented Software Engineering)/Objectory, Fusion Coad/Yourdon Mỗi phương pháp có ký pháp, tiến trình cơng cụ hỗ trợ riêng Chúng có ưu điểm nhược điểm riêng Người sử dụng khó khăn để chọn cho phương pháp phù hợp Do nhận biết đươc vấn đề này, vào năm 1994 tác giả phương pháp hợp tác nhằm tạo phương pháp Bắt đầu thống phương pháp Booch với OMT-2 Rumbagh để hình thành Unified Method 0.8 Rational Rose Corporation Tháng năm 1995, Ivar Jacobson (tác giả OOSE/Objectory) gia nhập với họ Từ thời điểm này, nhóm phát triển phương pháp hướng đối tượng nói cho nhiệm vụ họ tạo ngơn ngữ mơ hình hóa thống cho cộng đồng hướng đối tượng Do vậy, họ đổi tên cơng việc thành Unified Modeling Language – UML (Ngơn ngữ mơ hình hóa thơng nhất) Booch, Rumbaugh Jacobson đưa nhiều phiên UML, phiên UML 0.9 xuất năm 1995, UML xuất vào năm 1997 Phần lớn UML xây dựng tảng phương pháp Booch, OMT OOSE, UML bao gồm khái niệm có nguồn gốc từ phương pháp khác David Harel, Gamma – Helm – Johnson – Vlissides Fusion UML cịn kết đóng góp từ hãng lớn Digital Equipment Corporation (DEC), Hewlett – Phát triển phần mềm UML trang | Packard (HP), I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software Corporation, Texas Instrument, Taskon, ObjectTime Unisys Phiên UML 1.1 đệ trình lên OMG (Object Management tháng 11-1997 Phiên UML 1.3 xuất vào năm 1999 Phiên UML 1.4 xuất vào tháng 2-2000 1.2 MỘT SỐ KHÁI NIỆM CƠ BẢN Phần trình bày số khái niệm áp dụng phân tích thiết kế hướng đối tượng Phương pháp (method) Phương pháp (hay phương thức) cách thức cấu trúc suy nghĩ hành động người Nó cho biết phải làm gì, làm nào, làm phải làm để hình thành hệ thông phần mềm Đối thương (object) Theo nghĩa thông thường đối tượng người, vật hay tượng mà người nhằm vào suy nghĩ, hành động [PHE96]; nhìn thầy sờ mó Trong phương pháp hướng đối tượng đối tượng trừu tượng lĩnh vực vấn đề hay cài đặt nó; phản ảnh khả hệ thống lưu giữ thơng tin tương tác với nó; gói giá trị thuộc tính dịch vụ (phương thức, phương pháp) [OCAD91] Lớp (class) Theo nghĩa thơng thường lớp nhóm nhiều người hay vật có tính tương tự định hay đặc điểm chung (từ điển Webster’s) Trong phương pháp hướng đối tượng lớp mơ tả hay nhiều đối tượng, mô tả tập thống thuộc tính phương thức Nó cịn mơ tả cách tạo đối tượng lớp [COAD91] Trừu tượng (abstract) Trừu tượng nguyên lý bỏ qua khía cạnh chủ thể (subject) khơng liên quan đến mục đích để tập trung đầy đủ vào khía cạnh cịn lại Như nói trừu tượng đơn giản hóa giới thực cách thơng minh Trừu tượng cho khả tổng quát hóa ý tưởng hóa vấn đề xem xét Chúng loại bỏ chi tiết dư thừa mà tập chung điểm chính, [LIBE98] Mơ hình (model) Nếu phải xây ngơi nhà chắn khơng làm đơn giản mua gạch, sắt thép lắp dần đến hình thành nhà ở, mà phải có kế hoạch chi tiết thiết kế trước Nói cách khác phải xây dựng mơ hình Tương tự vậy, lĩnh vực phần mềm, mơ hình kế hoạch chi tiết hệ thống, giúp ta lập kế hoạch trước xây dựng hệ thống Mơ hình giúp ta khẳng định tính đắn thiết kế, phù hợp yêu cầu, hệ thống giữ vững yêu cầu người dùng thay đổi Phương pháp hướng đối tượng xem phần giới thực đối tượng Máy điện thoại, xe ô tô, người … đối tượng Các đối tượng lại bao gồm nhiều đối tượng khác xe tơ có tay lái, bánh xe, … người có tay, chân, mắt, mũi … Đối tượng giới thực có cấu trúc phức tạp, làm cho người khó nhận thức chúng Trong sống hàng ngày ta đơn giản hóa đối tượng suy nghĩ, hay nói cách khác ta làm việc với mơ hình Thí dụ, địa cầu mơ hình trái đất Mơ hình lựa chọn vài khía cạnh có ý nghĩa cho việc thực công việc cụ thể Chúng cho phép dự đốn, hiểu khía cạnh vấn đề quan tâm Thí dụ làm việc với đối tượng người: sổ lương có tên, số bảo hiểm xã hội tiền lương Nhưng sổ điện thoại lại có tên, số điện thoại địa Vậy, mơ hình tranh hay mô tả vấn đề cố gắng giải hay biểu diễn Mơ hình cịn mơ tả giải pháp Trong phát triển phần mềm, thay cho đối tượng thực, ta làm việc với biểu tượng (hình 1.4) Tiến trình phát triển phần mềm làm giảm số đặc trưng đối tượng để hình thành mơ hình: làm giảm độ phức tạp mơ hình trừu tượng Phát triển phần mềm UML trang | 10 Nhấn phím phải lớp biểu đồ lớp Chọn New>Operation Nhập tên lớp theo khuôn mẫu sau: Name(arg1:arg1 data type): Operation Return Type Thí dụ: Add(X:Integer, Y:Integer): Integer Print(EmployeeID:Long): Boolean Delete():Long Nhấn Enter để tiếp tục nhập trực tiếp thao tác khác vào biểu đồ lớp Trình tự thực bãi bỏ thao tác sau: Nhấn phím phải thuộc tính browser Chọn thực đơn Delete 5.8.1.15 - Đặc tả thao tác Trong đặc tả thao tác ta gán tham số thao tác, kiểu cho lại phạm vi thao tác Để thực việc trước hết ta phải mở cửa sổ đặc tả, trình tự thực sau: Nhấn phím phải thuộc tính browser Chọn thực đơn Open Specification Gán lớp trả lại cho thao tác Lớp trả lại cho thao tác kiểu kết thao tác Thực việc theo bước sau: Nhấn phím phải thuộc tính browser Chọn thực đơn Open Specification Chọn lớp trả lại từ hộp danh sách hay nhập kiểu trả lại Gán stereotype cho thao tác Bốn loại stereotype hay sử dụng cho thao tác là: Implemetor, Manager, Access Helper Trình tự đặt stereotype cho thao tác tương tự sau đây: Nhấn phím phải thuộc tính browser Chọn thực đơn Open Specification Chọn stereotype từ hộp danh sách hay nhập kiểu stereotype Gán phạm vi cho thao tác Bốn tùy chọn cho phạm vi thao tác là: Public, Private, Protected Pakage (Implementation) Đặt phạm vi cho thao tác theo trình tự sau: Nhấn phím phải thuộc tính browser Chọn phạm vi thao tác cửa sổ Export Control Mặc định, phạm vi thao tác Public 5.8.1.16 - Bổ sung đối số vào thao tác Đối số thao tác (hay tham số) liệu vào thao tác Hai loại thông tin cho đối số tên đối kiểu cho lại Trong biểu đồ lớp, đối kiểu thao tác đặt dấu() Nếu gán giá trị mặc định cho đối ký pháp UML sau: Operation Name(arg1:arg1 data type=arg1 default value):operation return type Phát triển phần mềm UML trang | 122 Trình tự thực bổ sung đối cho thao tác sau: Mở cửa sổ đặc tả thao tác Chọn bảng Detail Nhấn phím phải hộp argument, chọn thực đơn insert Nhập tên đối số Nhấn chuột cột Type nhập kiểu đối Nhấn cột Default nhập giá trị mặc định muốn 5.8.1.17 - Ánh xạ thao tác thành thông điệp Trong biểu đồ tương tác, thông điệp ánh xạ vào thao at1c bên lớp Trình tự ánh xạ thông điệp thành thao tác theo thứ tự sau: Đảm bảo đối tượng nhận thông điệp ánh xạ đến lớp Nhấn phím phải thơng điệp biểu đồ tương tác Danh sách thao tác xuất Chọn thao tác danh sách cho thông điệp Loại bỏ ánh xạ thao tác thông điệp sau; Nhấn đúp thông điệp biểu đồ tương tác Trong cửa sổ Name: xóa tên thao tác nhập tên thơng điệp Tạo lập thao tác cho thông điệp sau; Đảm bảo đối tượng nhận thông điệp ánh xạ đến lớp Nhấn phím phải thông điệp biểu đồ tương tác Chọn Nhập tên chi tiết khác thao tác Nhấn phím OK Nhấn phím phải thông điệp Chọn thao tác danh sách 5.8.1.18 - Tính nhiều lớp Để đặt tính nhiều (multiplicity) cho lớp ta làm sau: Nhấn phím phải đầu cuối quan hệ Chọn thực đơn Multiplicity Chọn multiplicity mong muốn Lặp lại bước 1-3 cho đầu cuối lại quan hệ Cách khác là: Mở cửa sổ đặc tả quan hệ (Nhấn phím phải quan hệ, chọn Specification) Chọn bảng Role Detail cho đầu cuối quan hệ Phát triển phần mềm UML trang | 123 Thay đổi multiplicity thông qua trường cardinality Lặp lại từ 1-3 cho đầu quan hệ 5.8.1.19 - Đặt tên hướng quan hệ Đặt tên quan hệ theo bước sau: Chọn quan hệ, mở cữa sổ đặt tả quan hệ Chọn bảng General Nhập tên quan hệ vào cửa sổ name Đặt hướng tên quan hệ sau: Mở cửa sổ đặc tả quan hệ mong muốn Chọn bảng Detail Chọn hướng tên quan hệ cửa sổ hướng tên quan hệ 5.8.1.20 - Gán stereotype cho quan hệ Đặt stereotype cho quan hệ theo bước sau đây: Mở cửa sổ đặc tả cho quan hệ Chọn bảng General Nhập stereotype cho quan hệ 5.8.1.21 - Gán nhiệm vụ cho quan hệ Đặc tên nhiệm vụ theo thứ tự sau: Nhấn phím phải đầu cuối quan hệ kết hợp Chọn thực đơn Role Name Nhập tên nhiệm vụ 5.8.1.22 - Phạm vi quan hệ Trong quan hệ kết hợp, Rose tạo thuộc tính phát sinh mã tình Sử dụng cử sổ Export Control Rose để phát sinh phạm vi thuộc tính Phạm vi Public, Private, Protected hay Pakage (Inplementation) Trong quan hệ hai chiều có thê đặt phạm vi cho hai thuộc tính, chúng đầu quan hệ Trong quan hệ chiều cần đặt mộ đầu cho quan hệ Phạm vi đặc chọn bảng Role A General hay Role B General cửa sổ đặc tả cửa quan hệ Đặt phạm vi quan hệ sau: Nhấn phím phải tên nhiệm vụ Chọn Export Control thích ứng Phát triển phần mềm UML trang | 124 5.8.1.23 - Đặt quan hệ tĩnh Để đặt quan hệ kết hợp tĩnh ta làm sau: Nhấn phím phải tên nhiệm vụ Chọn thực đơn Static 5.8.1.24 - Đặt quan hệ friend Đặt quan hệ friend sau: Nhấn phím phải quan hệ Chọn thực đơn Friend 5.8.1.25 - Đặt Containment Đặt tính cho biết cách lưu trữ thuộc tính lớp Đặt tính chất chứa sau: Nhấn phím phải chuột quan hệ Chọn Contaiment Chọn By Reference, By Value hay Unspecified 5.8.1.26 - Đặt thành phần liên kết Trình tự đặt phần tử liên kết cho quan hệ: Mở cửa sổ đặc tính quan hệ Chọn bảng Detail Đặt phần tử liên kết nhờ trường Link Element 5.8.1.27 - Đặt giới hạn phạm vi quan hệ Trình tự đặc giới hạn phạm vi cho quan hệ sau: Nhấn phím phải đầu cuối quan hệ kết hợp Chọn thực đơn Key/Qualifier Nhập tên kiểu qualifier 5.8.2 - Thí dụ: Hệ thống bán hàng (tiếp theo) Sau khách hàng người phát triển phần mềm thống cho biểu đồ tương tác phù hợp với yêu cầu tác nghiệp, người thiết kế định nhóm lớp thành nhóm theo stereotype Vậy gói sau tạo lập: Entities, Boundaries Control Sau chuyển lớp vào nhóm tương ứng Tiếp theo biểu đồ lớp lập gói: biểu đồ lớp Main hiển thị gói, biểu đồ lớp Enter New Order lớp cho UC Phát triển phần mềm UML trang | 125 5.8.2.1 - Đặt cấu hình Rose Chọn thực đơn Topols>Options Chọn bảng Diagram Đảm bảo hộp đánh dấu sau chọn: Show Stereotype, Show all Attributes, Show all Operations Đảm bảo hộp đán dấu sau không chọn: Suppress Attributes, Suppress Operations 5.8.2.2 - Tạo lập gói Nhấn phím phải Logical View Browse Chọn thực đơn New>Pakage Đặt tên Entities ặp lại để tạo gói Boundaries Control 5.8.2.3 - Tạo lập biểu đồ lớp Main Nhấn đúp Main class diagram Logical View để mở Di gói Entities từ browser vào biểu đồ Di gói Boundaries Control vào biểu đồ Hình 5.39 biểu đồ lớp Main kết Boundaries Entities Control Hình 5.39 Các gói Phát triển phần mềm UML trang | 126 OrderOption Create() OrderDtail Open() SubmitInfor() Save() OrderMgr SaveOrder() TransactionMgr SaveOrder() Commit() Order Create() SetInfor() GetInfor() Hình 5.40 Biểu đồ lớp Uc Entry New Order 5.8.2.4 - Tạo lập biểu đồ lớp cho lớp UC Enter New Order Nhấn phím phải Logical View Browse Chọn thực đơn New>Class Diagram Đặt tên cho biểu đồ lớp: Add New Order Nhấn đúp biểu đồ lớp Add New Order để mở Di lớp OrderOptions, OrderDetail, OrderMgr, Order TransactionMgr từ browser vào biểu đồ Biểu đồ kết hình 5.40 5.8.2.5 - Bổ sung Stereotype vào lớp Nhấn phím phải lớp OrderOptions biểu đồ Chọn Open Specification Nhập Boundaries vào vùng stereotype Nhấn phím OK Nhấn phím phải lớp OrderDetail biểu đồ Chọn Open Specification Chọn Boundaries từ hộp danh sách Nhấn OK Lặp lại để gán lớp OrderMgr, TransactionMgr cho stereotype Control lớp Order cho stereotype Entity Kết thể hình 5.41 Phát triển phần mềm UML trang | 127 OrderOptions > OrderMgr Create() > TransactionMgr SaveOrder() OrderDetail > Order Open() SubmitInfor() Save() Create() SetInfor() GetInfor() SaveOrder() Commit() Hình 5.41 Stereotype lớp Hình 5.42 Các gói browser 5.8.2.6 - Nhóm lớp vào gói Di lớp OrderOptions OrderDetail browser vào gói Boundaries Di lớp OrderMgr, TransactionMgr vào gói Control Di lớp Order vào gói Entities 5.8.2.7 - Bổ sung lớp vào gói Nhấn phím phải vào gói Boundaries browser Phát triển phần mềm UML trang | 128 Chọn thực đơn New>Class Diagram Đặt tên biểu đồ mới: Main Nhấn đúp Main để mở Di lớp OrderOptions OrderDetail từ browser vào biểu đồ Đóng biểu đồ Biểu đồ kết hình 5.43 Nhấn phím phải gói Entities browser Chọn thực đơn New>Class Diagram Đặt tên biểu đồ mới: Main OrderOptions OrderDetail Create() Open() SubmitInfor() Save() Hình 5.43 Lớp gói Boundaries 10 Nhấn đúp Main để mở 11 Di lớp Order từ browser vào biểu đồ 12 Đóng biểu đồ Biểu đồ kết hình 5.44 13 Nhấn phím phải gói Control browser 14 Chọn thực đơn New>Class Diagram 15 Đặt tên biểu đồ mới: Main 16 Nhấn đúp Main để mở 17 Di lớp OrderMgr TransactionMgr từ browser vào biểu đồ 18 Đóng biểu đồ Biểu đồ kết hình 5.45 > Order > OrderMgr Create() SetInfor() GetInfor() SaveOrder() Hình 5.44 Lớp gói Entity > TransactionMgr SaveOrder() Commit() Hình 5.45 Lớp gói Control Ta có biểu đồ lớp cho UC Enter New Order Bây cần bổ sung tham số, kiểu liệu kiểu giá trị cho lại vào lớp Ta phải trở lại luồng kiện để tìm ac1c thuộc tính Các thuộc tính Order Number Customer Name bổ sung vào lớp Order biểu đồ lớp Vì có nhiều chi tiết đơn hàng (order items) đơn hàng lại có thơng tin hành vi riêng, mục đơn hàng mơ hình hóa thành lớp, thay cho thuộc tính Order Biểu đồ trình tự cập nhật hình 5.46 Phát triển phần mềm UML trang | 129 : Salesperson Order Options Form : OrderOptions 1: Create() Order Detail Form : OrderDetail 2: Open( ) 3: SubmitInfor() 4: Save() Order Manager : OrderMgr 5: SaveOrder() Order #1234 : Order 6: Create() 7: SetInfor() Order Cabinet : OrderItem 8: Create() 9: SetInfor() 10: Create() 11: SetInfor() 12: SaveOrder() Large Cabinet : OrderItem 13: GetInfor() Transaction Manager : TransactionMgr trang | 130 Phát triển phần mềm UML 14: GetInfor() 15: GetInfor() 16: Commit() Hình 5.46 Biểu đồ trình tự 5.8.2.8 - Bổ sung thuộc tính thao tác Khách hàng có nhu cầu thay đổi yêu cầu như: hệ thống có khả yêu cầu thay đổi đặt hàng thời gian cung cấp hàng; bổ sung thêm nguồn hàng; thay đổi cút thủ tục nhập hàng vào kho Tài liệu yêu cầu hay thay đổi phải cập nhật Nhận thấy yêu cầu ngày tháng ảnh hưởng đến UC thiết kế Enter New Order Do chúng quan tâm cách bổ sung hai thuộc tính cho lớp Order 5.8.2.9 - Đặt cấu hình Rose Chọn thực đơn Tools>Options Chọn bảng Diagram Đảm bảo hộp đánh dấu sau chọn: Show Visibility, Show Stereotype, Show Operation Signatures, Show all Attributes Show all Operarions Đảm bảo hộp đánh dấu sau không chọn: Suppress Attributes, Suppress Operations Chọn bảng Notation Đảm bảo hộp đánh dấu sau không chọn: Visibility as Icons 5.8.2.10 - Bổ sung lớp Tìm biểu đồ lớp Add New Order browser Nhấp đúp để mở biểu đồ Chọn phím cơng cụ Class cơng cụ Nhấn đâu biểu đồ để vẽ lớp Nhập tên OrderItem cho lớp Gán Entity cho stereotype lớp OrderItem Di lớp OrderItem từ browser vào gói Entities 5.8.2.11 - Bổ sung thuộc tính Nhấn phím phải lớp Order Chọn New Attribute Nhập thuộc tính mới: OrderNumber: Integer Nhấn phím Enter Nhập tiếp thuộc tính mới: CustomerName: String Lặp để nhập thuộc tính sau: OrderDate: Date, OrderFillDate: Date Nhấn phím phải lớp OrderItem Chọn New Attribute Phát triển phần mềm UML trang | 131 Nhập thuộc tính mới: ItemID: Integer 10 Nhấn phím Enter 11 Nhập tiếp thuộc tính mới: ItemDescription: String 5.8.2.12 - Bổ sung thao tác vào lớp OrderItem Nhấn phím phải lớp OrderItem Chọn New Operation Nhập thao tác mới: Create Nhấn phím Enter Nhập thao tác mới: SetInfo Nhấn phím Enter Nhập thao tác mới: GetInfo 5.8.2.13 - Bổ sung chi tiết thao tác biểu đồ lớp Nhấn phím chuột lớp Order để mở Nhấn chuột lớp Order Cập nhật thao tác Create() thành Create(): Boolean Cập nhật thao tác SetInfo() thành Setinfo(OrderNum: Integer, Customer: String, OrderDate: Date, OrderFillDate: Date): Boolean Cập nhật thao tác GetInfo() thành GetInfo():Boolean 5.8.2.14 - Bổ sung chi tiết thao tác browser Tìm lớp OrderItem browser Nhấn ký tự + cạnh OrderItem để mở Nhấn đúp GetInfo() để mở Operation Specification (hình 5.47) Phát triển phần mềm UML trang | 132 Hình 5.47 Cửa sổ thao tác đặc biệt Chọn String hộp danh sách Return type Nhấn OK Thực tương tự để chọn Boolean cho kiểu gái trị cho lại thao tác SetInfo() Chọn bảng Detail Nhấn phím phải khoảng trắng vùng đối số để bổ sung tham số hình 5.48 Phát triển phần mềm UML trang | 133 Hình 5.48 Bổ sung thao tác Chọn Select Rose tự gán đối số có tên argname Đổi tên từ argname thành ID 10 Nhấn cột Type để mở hộp danh sách kiểu Chọn Integer 11 Nhấn cột Default để bổ sung giá trị mặc định Nhập giá trị 12 Nhấn OK 13 Nhấn đúp thao tác Create() lớp OrderItem để mở cửa sổ đặc tả thao tác 14 Chọn Boolean cho combobox kiểu cho lại (Return type) 15 Nhấn OK 5.8.2.15 - Bổ sung quan hệ Sau bổ sung thuộc tính thao tác vào lớp, ta tiến gần đến phát sinh mã trình Nhưng trước hết phải quan tâm đến quan hệ lớp Hãy quan s1t việc bổ sung thực đơn biểu đồ trình tự để tìm quan hệ Bất kỳ lớp biểu đồ trình tự cần quan hệ biểu đồ lớp Một tìm quan hệ bổ sung vào biểu đồ Thí dụ sau thực bổ sung quan hệ vào lớp UC Enter New Order 5.8.2.16 - Đặt cấu hình Rose Định vị biểu đồ lớp Add New Order browser Nhấp đúp để mở biểu đồ Phát triển phần mềm UML trang | 134 Tìm phím cơng cụ Unidirectional Association, khơng tìm thấy tiếp tục tiếp bước sau Nhấn phím phải cơng cụ Dagram để chọn Customize Bổ sung phím tên Creates A Unidirectional Asscoiation 5.8.2.17 - Bổ sung kết hợp Chọn phím cơng cụ Unidirectional Association Vẽ kết hợp từ lớp OrderOptions đến lớp OrderDetail Lặp lại để vẽ kết hộp sau: a Từ OrderDetail đến OrderMgr b Từ OrderMgr đến Order c Từ OrderMgr đến TransactionMgr d Từ TransactionMgr đến Order e Từ TransactionMgr đến OrderItem f Từ Order đến OrderItem Nhấn phím phải kết hợp chiều OrderOptions lớp OrderDetail, gần phía lớp OrderOptions Chọn Multiplicity>Zero or One Nhấn phím phải phía quan hệ chiều Chọn Multiplicity>Zero or One Lặp lại bổ sung Multiplicity Sơ đồ kết hình 5.49 Phát triển phần mềm UML trang | 135 OrderOptions > OrderMgr (from Boundaries) (from Control) Create(OrderID : Integer) : Boolean SaveOrder() : Boolean 1 OrderDetail (from Boundaries) Open() : Boolean SubmitInfor() : Boolean Save() : Boolean 1 1 n > Order > TransactionMgr (from Entities) (from Control) Create() n SetInfor() GetInfor() 1 n SaveOrder() Commit() n > OrderItem (from Entities) Create() : Boolean SetInfor(ID : int=0) : Boolean GetInfor() : Boolean Hình 5.49 Quan hệ kết hợp Add New Order Phát triển phần mềm UML trang | 136 ... 8.7 THIẾT KẾ GIAO DIỆN 211 CHƯƠNG MÃ TRÌNH PHÁT SINH TRONG ROSE 214 9 .1 PHÁT SINH MÃ TRÌNH C++ 214 9 .1. 1 - Các lớp 214 9 .1. 2 - Quan hệ kết... 13 7 6 .1. 1 - Trạng thái 13 9 6 .1. 2 - Quá độ 14 1 6 .1. 3 - Trạng thái ẩn 14 2 6 .1. 4 - Lớp biểu đồ trạng thái 14 4 6.2 BIỂU... UML 1. 1 đệ trình lên OMG (Object Management tháng 11 -1 9 97 Phiên UML 1. 3 xuất vào năm 19 99 Phiên UML 1. 4 xuất vào tháng 2-2 000 1. 2 MỘT SỐ KHÁI NIỆM CƠ BẢN Phần trình bày số khái niệm áp dụng phân

Ngày đăng: 07/05/2021, 14:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan