Phân tích thiết kế hướng đối tượng

234 285 0
Phân tích thiết kế hướng đối tượng

Đ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

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 NGUYÊN 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 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, 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 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 yê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 quí 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 toá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 hoàn toàn, 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à 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 khinh phí dự kiến ban đầu Ngoà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 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 vuông 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 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ó 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 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 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ự đoá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 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 unboundedSetByReferencethe_C; }; 9.1.3 - Quan hệ phụ thuộc tập hợp 9.1.3.1 - Phụ thuộc tập hợp (aggregation)1-1 Mô hình Ra B A Mã trình #include “B.h” class A { … const B* get_the_B () const; void set_the_B (B* const value); private: B* the_B; }; #include “A.h” class B { … const A* get_Ra () const; void set_Ra (A* const value); private: A* Ra; }; 9.1.3.2 - Phụ thuộc tập hợp với khả dẫn đường hạn chế Mô hình Ra B A Mã trình class A { … private: Phát triển phần mềm UML trang | 220 }; #include “A.h” class B { … const A* get_Ra () const; void set_Ra (A* const value); private: A*Ra; }; 9.1.3.3 - Quan hệ gộp (composition) 1-1 Mô hình Ra B A Mã trình #include “B.h” class A { … const B* get_the_B() const; void set_the_B (B* Const value); private: B* THE_b; }; #include “A.h” class B { … const A get_Ra () const; void set_Ra (const Avalue); private: A Ra; }; 9.1.3.4 - Phụ thuộc tập hợp 1-N Mô hình Phát triển phần mềm UML trang | 221 Ra B A n Mã trình #include “A.h” class B { … const UnboundedSetByReferenceget_Ra () const; void set_Ra (const UnboundedSetByReferencevalue); private: unboundedSetByReference Ra; }; 9.1.4 - Quan hệ kế thừa 9.1.4.1 - Kết thừa đơn Mô hình Mã trình #include “A.h” class B:public A { … }; 9.1.4.2 - Kế thừa bội Mô hình Mã trình #include “A1.h” #include “A2.h” class B:public A2,public A1 { … }; 9.2 PHÁT SINH MÃ TRÌNH JAVA Các đoạn mã trình mẫu Rose phát sinh từ mô hình UML.Phần không mô tả toàn khả Rose mà mô tả tương ứng vài biểu đồ UMLvới ngôn ngữ Java Phát triển phần mềm UML trang | 222 9.2.1 - Các lớp 9.2.1.1 - Lớp rỗng Rose phát sinh cấu tử,hủy tử.Chú ý dễ đọc mã trình thao tác không viết lặp lại thí dụ sau Mô hình Mã trình public final class A { public A () { super (); … } protected void finalize () throws Throwable { super.finalize (); … } … } 9.2.1.2 - Lớp có thuộc tính thao tác Mô hình Mã trình public final class A { private String m_A1; private String m_A2; public void Op 1() { … } public void Op () { … } … } 9.2.1.3 - Lớp trừu tượng Mô hình Mã trình Insert Figure: 08710D01 public abstract class A { … } Phát triển phần mềm UML trang | 223 9.2.1.4 - Giao diện Mô hình Mã trình Insert Figure: 08710D01 public interface I_A { … } 9.2.2 - Quan hệ kết hợp 9.2.2.1 - Kết hợp 1-1 Mô hình A Ra Rb 1 B Mã trình public class A { public B m_Rb; … }; public class B { public A m_Ra; … }; 9.2.2.2 - Kết hợp 1-N Mô hình A Ra Rb n B Mã trình public class B { public A m_Ra; … } Mô hình Phát triển phần mềm UML trang | 224 A -Ra Rb n B Mã trình public class B { public Vector m_Ra = new Vector (); … } Mô hình A Ra Rb B Khi tính nhiều có hạn chế kết hợp cài đặt mảng Mã trình public class B { private A[] m_Ra = new A[5]; … } 9.2.3 - Quan hệ phụ thuộc tập hợp 9.2.3.1 - Phụ thuộc tập hợp (aggregation) 1-1 Mô hình B 1 A Ra Mã trình public class A { public B m_B; … } public class B { public A m_Ra; … } Phụ thuộc tập hợp với khả dẫn đường hạn chế Mô hình Phát triển phần mềm UML trang | 225 B 1 Rb Ra A Mã trình public class A { … } public class B { public A m_Ra; … } 9.2.4 - Quan hệ kế thừa 9.2.4.1 - Kế thừa đơn Mô hình Mã trình public class B extends A { … } 9.2.4.2 - Kế thừa giao diện Mô hình Mã trình public interface I_C extends I_A { … } public interface I_C extends I_A, I_B { … } 9.2.4.3 - Cài đặt giao diện lớp trừu tượng Mô hình Mã trình Phát triển phần mềm UML trang | 226 public abstract class A implements I_A { … } 9.2.4.4 - Cài đặt giao diện lớp Mô hình Mã trình public class A implements I_A { … } 9.2.4.5 - Cài đặt vài giao diện lớp Mô hình Mã trình public class A implements I_A,I_B { … } 9.3 PHÁT SINH MÃ TRÌNH VISUAL BASIC Các đoạn mã trình mẫu đậy Rose phát sinh từ mô hình UML Phần không mô tả toàn khả Rose mà mô tả tương ứng vài biểu đồ UML với ngôn ngữ Visual Basic 9.3.1 - Các lớp 9.3.1.1 - Lớp rỗng Mô hình Mã trình Phát triển phần mềm UML trang | 227 Option Base Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub 9.3.1.2 - Lớp có thuộc tính thao tác Mô hình Mã trình Option Base Public A1 As String Public A2 As String Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub Public Sub Op1() On Error GoTo Op1Err … End Sub Op1Err: Call RaiseError (MyUnhandleError, “A:Op1 Method”) End Sub Public Property Get Op2() As Boolean On Error GoTo Op1Err … Exit Property Op2Err: Call RaiseError (MyUnhandleError, “A:Op2 Method”) End Property 9.3.1.3 - Lớp có thuộc tính thao tác Mô hình Mã trình Phát triển phần mềm UML trang | 228 Option Base Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub Public Sub Op2() End Sub Public Property Get Op2() As Boolean End Property 9.3.2 - Quan hệ kết hợp 9.3.2.1 - Kết hợp 1-1 Mô hình A Ra Rb 1 B Mã trình Option Base Public Rb As B Private Sub Class_Terminate () End Sub Private Sub Class_Initialize () End Sub Option Base Public Ra As A Private Sub Class_Terminate () End Sub Private Sub Class_Initialize () End Sub Phát triển phần mềm UML trang | 229 9.3.2.2 - Kết hợp 1-N Mô hình A Ra Rb n B Mã trình Option Base Public Rb As B Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub Option Base Public Ra As Collection Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub 9.3.3 - Quan hệ kế thừa đơn Mô hình Mã trình Option Base Implements A Local superclass object (generated) Private mAObject As New A Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub Public Sub Op 2() End Sub Private Sub A_Op1 () Phát triển phần mềm UML trang | 230 mAObject.Op1 End Sub 9.4 PHÁT SINH MÃ TRÌNH SQL Các đoạn mã trình mẫu Rose phát sinh từ mô hìnhUML Phần không mô tả toàn khả Rose mà mô tả tướng ứng vài biểu đồ UML với ngôn ngữ ANSI SQL 9.4.1 - Các lớp 9.4.1.1 - Lớp rỗng Mô hình Mã trình CREATE TABLE T_A( A_Id NUMBER (5), PRIMARY KEY (A_Id) ) 9.4.1.2 - Lớp có thuộc tính thao tác Mô hình Mã trình CREATE TABLE T_A ( A_ IdNUMBER (5) A1 VARCHAR (), A2 VARCHAR (), PRIMARY KEY (A_Id) ) 9.4.2 - Quan hệ kết hợp 9.4.2.1 - Kết hợp 1-1 Mô hình Phát triển phần mềm UML trang | 231 A Ra Rb B Mã trình CREATE TABLE T_B ( B_Id NUMBER (5), PRIMARY KEY (B_Id) ) CREATE TABLE T_A ( A_Id NUMBER (5) B_Id NUMBER (5) REFERENCE T_B (B_Id), PRIMARY KEY (A_Id) ) 9.4.2.2 - Kết hợp N-1 Mô hình A Ra Rb n B Mã trình CREATE TABLE T_B( B_Id NUMBER (5), PRIMARY KEY (B_Id) ) CREATE TABLE T-A( B_Id NUMBER (5) REFERENCES T_B (B_Id), A_Id NUMBER (5), PRIMARY KEY (A_Id) ) 9.4.2.3 - Lớp kết hợp N-N Mô hình Phát triển phần mềm UML trang | 232 A B n n C Mã trình CREATE TABLE T_A( A_Id NUMBER (5), PRIMARY KEY (A_Id) ) CREATE TABLE T_B( B_Id NUMBER (5), PRIMARY KEY (B_Id) ) CREATE TABLE T_C ( A_Id NUMBER (5) REFERENCES T_A(A_Id)ON DELETE CASCADE, B_Id NUMBER (5) REFERENCES T-B (B_Id)ON DELETE CASCADE, PRIMARY KEY (A_Id,B_Id) ) 9.4.3 - Quan hệ kế thừa Trong thí dụ sau đây, lớp cài đặt bảng 9.4.3.1 - Kế thừa đơn Mô hình Mã trình CREATE TABLE T_A ( A_Id NUMBER (5), PRIMARY KEY (A_Id) ) CREATE TABLE T_B ( A_Id NUMBER(5) REFERENCES T_A (A_Id), PRIMARY KEY (A_Id) ) Phát triển phần mềm UML trang | 233 9.4.3.2 - Kế thừa bội Mô hình Mã trình CREATE TABLE T_A1 ( A1_Id NUMBER (5), PRIMARY KEY (A1_Id) ) CREATE TABLE T_A2 ( A2_Id NUMBER (5), PRIMARY KEY (A2_Id) ) CREATE TABLE T_B ( A1_Id NUMBER (5) REFERENCES T_A1 (A1_Id), A2_Id NUMBER (5) REFERENCES T_A2 (A2_Id), PRIMARY KEY (A1_Id, A2_Id) ) Phát triển phần mềm UML trang | 234 [...]... mẫu khi thiết kế hệ thống theo quan điểm hướng đối tượng Mẫu là tổ hợp đối tượng và lớp Lợi thế của thiết kế theo mẫu cho phép xử lý các quan niệm về kiến trúc ở mức cao hơn đối tượng vì chúng là cụ thể trong lĩnh vực ứng dụng Có thể xem mối tương ứng giữa mẫu và các đối tượng như mối tương ứng giữa chương trình con và các dòng lệnh chương trình Mẫu là đơn vị sử dụng lại trong thiết kế hướng đối tượng. .. Phân tích Phân tích là tách, chia nhỏ tổng thể thành các phần để tìm ra đặc tính, chức năng, quan hệ… của chúng (từ điển Webster’s) Khái niệm phân tích trong tiếp cận hướng đối tượng là thực hiện nghiên cứu lĩnh vực vấn đề, dẫn tới đặc tả hành vi quan sát từ ngồi và các thơng báo nhất qn, hồn chỉnh, khả thi của những cái cần [COAD91] Phân tích hướng đối tượng tập trung vào tìm kiếm, mơ tả các đối tượng. .. quản lý dữ liệu [COAD91] Thiết kế hướng đối tượng tập trung vào xác định đối tượng phần mềm logic sẽ được cài đặt bằng ngơn ngữ hướng đối tượng Xây dựng (lập trình) hướng đối tượng: là thiết kết các modun sẽ được cài đặt Thí dụ lớp Book sẽ được cài đặt bằng C++, Java … như thế nào Mơ hình hóa (modeling) Khái niệm mơ hình hóa thường được sử dụng đồng nghĩa với phân tích, đó là việc thực hiện tách hệ thống... nhỏ để tổ chức thiết kế là khá tùy tiện và khơng ổn định Trừu tượng thủ tục khơng phải là hình thức trừu tượng của phương pháp hướng đối tượng Trừu tượng dữ liệu là cơ chế mạnh, dựa trên cơ sở tổ chức suy nghĩ và đặc tả về các nhiệm vụ của hệ thống Trừu tượng dữ liệu là ngun tắc xác định kiểu dữ liệu cho các thao tác áp dụng cho đối tượng, với ràng buộc là các giá trị lưu trữ trong đối tượng chỉ được... bản thiết kế nào có thể bộc lộ tồn bộ chi tiết của nó Ít nhất thì ta phải có thiết kế các tầng, thiết kế cầu thang, thiết kế hệ thơng điện, nước, thiết kế hệ thống cứu hỏa,… Khái niệm gần như độc lập nhau ở đây có nghĩa rằng các mơ hình này được hình thành và nghiên cứu tách biệt nhưng nó vẫn có quan hệ với nhau Thí dụ, ta có thể thiết kế hệ thơng điện, nước một cách độc lập, nhưng trong q trình thiết. .. sư kiểm tra chất lượng và kiến trúc sư hệ thống thấy được việc phân bổ tiến trình giữa các đối tượng thơng qua biểu đồ loại này Thí dụ, nếu biểu đồ cộng tác có hình dạng như ngơi sao, với nhiều đối tượng giao tiếp với đối tượng trung tâm thì kiến trúc sư có thể kết luận rằng hệ thống q phục thuộc vào một đối tượng và họ sẽ đi thiết kế lại phân bổ tiến trình để nâng cao hiệu suất hệ thống 2.2.4.4 - Biểu... … Thiết kế Là tập tài liệu kỹ thuật tồn bộ, gồm có bản tính tốn, bản vẽ… để có thể theo đó mà xây dựng cơng trình, sản xuất thiết bị, làm sản phẩm… [PHE96] Khái niệm phân tích trong tiếp cận hướng đối tượng là thực hiện đặc tả các hành vi bên ngồi, bổ sung chi tiết nếu cần thiết để cài đặt hệ thống trên máy tính, bao gồm tương tác người - máy, quản lý nhiệm vụ, quản lý dữ liệu [COAD91] Thiết kế hướng. .. hợp là quan hệ cấu trúc để mơ tả tập liên kết (một liên kết là kết nối giữa các đối tượng) Khi đối tượng của lớp này gửi/nhận thơng điệp đến/từ đối tượng của lớp kia thì ta gọi chúng là có quan hệ kết hợp Ký pháp đồ họa của kết hợp được mơ tả trên hình 2.11 chúng có thể chứa tên nhiệm vụ và tính nhiều (multiplicity) Tụ hợp (aggregation) là dạng đặc biệt của kết hợp, nó biểu diễn quan hệ cấu trúc giữa... để hướng đẫn trong việc xây dựng hệ thống Mơ hình giúp ta làm tài liệu cho các quyết định khi phân tích thiết kế hệ thống 1.3 NGUN TẮC QUẢN LÝ ĐỘ PHỨC TẠP Như đã trình bày trên thì nhiệm vụ quan trọng nhất của người xậy dựng hệ thống phần mềm ngày nay là quản lý được độ phức tạp Theo Coad và Yourdon [COAD91] thì các ngun tắc quản lý độ phức tạp của hệ thống trong phân tích và thiết kế hướng đối tượng. .. với các đối tượng khác (2) Phân biệt giữa tồn bộ đối tượng với thành phần của nó; thí dụ, phân biệt cây với cành cây.(3) Phân biệt giữa các lớp đối tượng với nhau; thí dụ, phân biệt lớp cây với lớp đất đá Cả ba phương pháp tổ chức này được áp dụng và chúng cho cái nhìn rõ ràng hơn trong lĩnh vực vấn đề và trách nhiệm của hệ thống khi tiếp cận hướng đối tượng Quy mơ (scale) Ngun tắc áp dụng qui tắc tổng ... quản lý liệu [COAD91] Thiết kế hướng đối tượng tập trung vào xác định đối tượng phần mềm logic cài đặt ngơn ngữ hướng đối tượng Xây dựng (lập trình) hướng đối tượng: thiết kết modun cài đặt Thí... 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... case Kết hợp (association) Kết hợp quan hệ cấu trúc để mơ tả tập liên kết (một liên kết kết nối đối tượng) Khi đối tượng lớp gửi/nhận thơng điệp đến/từ đối tượng lớp ta gọi chúng có quan hệ kết

Ngày đăng: 26/02/2016, 10:43

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

Tài liệu liên quan