Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 232 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
232
Dung lượng
6,29 MB
Nội dung
TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH PHÂN TÍCH THIẾT KẾ HỆ THỐNG LƯU HÀNH NỘI BỘ 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 | 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 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 cịn cho khả hồn thành phần mềm kỳ hạn khơng vượt q 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 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 cịn 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ó 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 Hình 1.4 Mơ hình giời thực Phương pháp luận (methodology) Phương pháp luận mô tả cách thức suy nghĩ phần mềm phát triển phần mềm Nó bao gồm ngơn ngữ mơ hình hóa metamodel (mơ hình mơ hình) tiến trình Phương pháp luận khác với phương pháp Phương pháp luận nghiên cứu phương pháp Metamodel mơ tả hình thức phần tử mơ hình, cú pháp ngữ nghĩa ký pháp mơ hình Lĩnh vực vấn đề (domain problem) Mục tiêu tiếp cận hướng đối tượng mơ hình hóa đặc tính tĩnh động mơi trường, nơi xác định yêu cầu phần mềm Môi trường gọi lĩnh vực vấn đề Vấn đề câu hỏi đặt để giải xem xét Lĩnh vực không gian (vùng) hoạt động ảnh hưởng Nó vùng tác nghiệp hay kinh nghiệm người phần mềm sử dụng Vậy, lĩnh vực vấn đề vùng mà ta cố gắng xem xét Thí dụ lĩnh vực vấn đề tài chính, giáo dục,… Phân tích Phân tích tách, chia nhỏ tổng thể thành phần để tìm đặc tính, chức năng, quan hệ… chúng (từ điển Webster’s) Khái niệm phân tích tiếp cận hướng đối tượng thực 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 thơng báo qn, hoàn chỉnh, khả thi cần [COAD91] Phân tích hướng đối tượng tập trung vào tìm kiếm, mơ tả đối tượng (khái niệm) lĩnh vực vấn đề Thí dụ hệ thống thư viện có khái niệm Sách, Thư viện … Thiết kế Là tập tài liệu kỹ thuật tồn bộ, gồm có tính tốn, vẽ… để 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 tiếp cận hướng đối tượng thực đặc tả hành vi bên ngoài, bổ sung chi tiết cần thiết để cài đặt hệ thống máy tính, bao gồm tương tác người - máy, quản lý nhiệm vụ, 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í dụ lớp Book cài đặt C++, Java … Mơ hình hóa (modeling) Khái niệm mơ hình hóa thường sử dụng đồng nghĩa với phân tích, việc thực tách hệ thống thành phần tử đơn giản để dễ hiểu Trong khoa học máy tính, mơ hình hóa mơ tả vấn đề, sau mơ tả giải pháp vấn đề Các hoạt động gọi phân tích thiết kế Khi thu thập u cầu cho hệ thơng, ta phải tìm nhu cầu tác nghiệp người dùng ánh xạ chúng thành yêu cầu phần mềm cho đội ngũ phát triển phần mềm hiểu sử dụng chúng Tiếp theo khả phát sinh mã trình từ yêu cầu này, đồng thời đảm bảo yêu cầu phải phù hợp với mã trình vừa phát sinh dễ dàng chuyển đổi mã trình ngược lại thành u cầu Tiến trình gọi mơ hình hóa Phát triển phần mềm UML trang | 11 Mơ hình hóa trực quan Mơ hình hóa trực quan tiến trình lấy thơng tin từ mơ hình hiển thị đồ họa tập phần từ đồ họa chuẩn Tiêu chuẩn cốt lõi để thực lợi mộ hình trực quan, vấn đề giao tiếp Giao tiếp người dùng, người phát triển, phân tích viên, kiểm tra viên, người quản lý người khác tham gia dự án mục tiêu quan trọng mô hình hóa trực quan Tương tác thực văn Nhờ mơ hình trực quan mà ta tầng mà hệ thống làm việc, bao gồm tương tác người dùng với hệ thống, tương tác đối tượng hệ thống hay hệ thông với Sau tạo mơ hình, ta phần quan tâm Thí dụ, người dùng quan sát tương tác họ với hệ thông từ mô hình, phân tích viên quan sát tương tác đối tượng từ mơ hình, người phát triển quan sát đối tượng mà họ phát triển… Các nhà tin học cố gắng để hình thành ký pháp mơ hình hóa trực quan Một số ký pháp quen thuộc Booch, OMT UML Phần mềm công cụ Rational Rose 2000 trợ giúp ký pháp Tóm lại, lý để mơ hình hóa là: xây dựng mơ hình để hiểu sâu sắc hệ thống xây dựng Chúng ta xây dưng mơ hình cho hệ thống phức tạp vi ta khơng thể hiểu tổng thể Nhờ mơ hình hóa ta đạt mục tiêu sau: Mơ hình giúp ta hiển thị hệ thống hay cách mà ta muốn hiển thị Mơ hình cho phép ta đặc tả cấu trúc hay hành vi hệ thống Mơ hình cho ta mấu để hướng đẫn việc xây dựng hệ thống Mô hình giúp ta làm tài liệu cho định phân tích thiết kế hệ thống 1.3 NGUYÊN TẮC QUẢN LÝ ĐỘ PHỨC TẠP Như trình bày nhiệm vụ quan trọng người xậy dựng hệ thống phần mềm ngày quản lý độ phức tạp Theo Coad Yourdon [COAD91] nguyên tắc quản lý độ phức tạp hệ thống phân tích thiết kế hướng đối tượng bao gồm vấn đề mô tả Trừu tượng hóa Sử dụng nguyên tắc trừu tượng hóa có nghĩa thừa nhận giới thực phức tạp; thay cố gắng hiểu biết tồn lựa chọn phần vấn đề Trừu tượng bao gồm hai loại chính: trừu tượng thủ tục (procedural) trừu tượng liệu (data) Trừu tượng thủ tục thường đặc trưng trừu tượng chức năng/chức Chia nhỏ tiến trình xử lý thành bước phương pháp để quản lý độ phức tạp Tuy nhiên việc chia nhỏ để tổ chức thiết kế tùy tiện không ổn định Trừu tượng thủ tục khơng phải hình thức trừu tượng phương pháp hướng đối tượng Trừu tượng liệu chế mạnh, dựa sở tổ chức suy nghĩ đặc tả nhiệm vụ hệ thống Trừu tượng liệu nguyên tắc xác định kiểu liệu cho thao tác áp dụng cho đối tượng, với ràng buộc giá trị lưu trữ đối tượng sửa đổi hay quan sát thông qua thao tác Người thiết kế áp dụng trừu tượng liệu đễ xác định thuộc tính phương thức xử lý thuộc tính xâm nhập thuộc tính thơng qua phương thức Bao bọc (encapsulation) Cịn gọi dấu thông tin Nguyên tắc dựa tảng thành phần chương trình bao bọc hay dấu định thiết kế đơn lẻ Giao diện tời mođun hình thành cho nhìn thấy công việc bên Bao bọc làm tăng tính sử dụng lại phát triển hệ thống Bao bọc nội dung liên quan với làm giảm lưu lượng phần hệ thông hoạt đơng Kế thừa (inheritance) Cơ chế biểu diễn tính tương tự lớp, đơn giản hóa định nghĩa lớp tương tự từ lớp khác định nghĩa trước Nó miêu tả tổng quát hóa đặc biệt hóa, tạo thuộc tính phương thức chung cho lớp phân cấp Nguyên tắc hình thành tảng kỹ thuật biển diễn chung lớp Phát triển phần mềm UML trang | 12 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ả tồ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ả tồ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ả tồ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 ... hình 3.6 mơ tả tác nhân trừu tượng quan hệ với tác nhân NhanVien NhanVienHuongLuongTheoGio NhanVienHuongLuongTheoThang NhanVienHopDong hình 3.6 Tác nhân trừu tượng Các kiểu quan hệ UC tác nhân... hiểu UC nhân viên kiểm tra chất lượng kiểm tra UC NguoiSuDung Hieu Dien dat PhanTichVien Kiem tra Cai dat UseCase Thiet k e ThuNghiem LapTrinhVien KienTrucSu Hình 3.2 Ai quan tâm đến UC? 3.1.3... tự lịch sử tiến hóa (thay đổi theo thời gian) (c) tương tự chức Mẫu (pattern) Năm 1977 Christopher Alexander [MULL97] đề xuất khái niệm mẫu thiết kế hệ thống theo quan điểm hướng đối tượng Mẫu