(NB) Giáo trình môn học/mô đun: Phân tích và thiết kế hướng đối tượng (Ngành/nghề: Thiết kế trang web) - Phần 2 gồm có những nội dung chính sau: Biểu đồ chuyển trạng thái và biểu đồ hoạt động, biểu đồ kiến trúc vật lý và phát sinh mã trình, ví dụ áp dụng, mã trình phát sinh trong rose. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
CHƢƠNG 6: BIỂU ĐỒ CHUYỂN TRẠNG THÁI VÀ BIỂU ĐỒ HOẠT ĐỘNG Biểu đồ chuyển trạng thái mô tả chu kỳ tồn đối tƣợng, phân hệ hệ thống Biểu đồ hoạt động mở rộng biểu đồ trạng thái Cả hai loại biểu đồ điều mơ tả khía cạnh động hệ thống Chƣơng trình bày phần tử biểu đồ, biểu đồ chuyển trạng thái biểu đồ hoạt động Cuối chƣơng thực hành sử dụng UML để vẽ biểu đồ trạng thái cho lớp thí dụ quản lý bán hàng 6.1 BIỂU ĐỒ CHUYỂN TRẠNG THÁI Biểu đồ chuyển trạng thái bao gồm thông tin trạng thái khác đối tƣợng, thể đối tƣợng chuyển đổi từ trạng thái sang trạng thái khác nào, hành vi đối tƣợng trạng thái Biểu đồ trạng thái chu kỳ sống đối tƣợng, từ đƣợc tạo đến bị phá hủy Nó cịn cho biết kiện ( thông điệp nhận đƣợc, kết thúc khoảng thời gian, điều kiện thành true ) tác động lên trạng thái nhƣ nào.Biểu đồ giải pháp tốt để mô hình hóa hành vi động lớp Thơng thƣờng dự án tạo biểu đồ trạng thái cho lớp Nhiều dự án không sử dụng loại biểu đồ Nếu có lớp với nhiều hành vi động (lớp nhiều trạng thái khác nhau) biểu đồ có ích lợi Mọi đối tƣợng có trạng thái; trạng thái kết hoạt động đối tƣợng thực trƣớc Đối tƣợng ln ln trạng thái xác định vào thời điểm Thông thƣờng trạng thái đƣợc xác định giá trị thuộc tính liên kết đến đối tƣợng khác Thí dụ hai đối tƣợng lớp Person Company có quan hệ ngƣời cụ thể lớp Person khơng phải lúc có việc làm mà ba trạng thái Employed (ngƣời lao động), Retired (ngƣời hƣu) hay Unemployed (thất nghiệp) Thí dụ trạng thái đối tƣợng nhƣ sau: • Hóa đơn ( đối tƣợng ) đƣợc tốn ( trạng thái ) • Xê ô tô ( đối tƣợng ) đứng ( trạng thái ) • Chị B ( đối tƣợng ) làm nhiệm vụ bán hàng ( trạng thái ) Đối tƣợng thay đổi trạng thái xảy (gọi kiện); thí dụ, tốn hóa đơn bán hàng, bắt đầu lái xe… Biểu đồ trạng thái đƣợc sử dụng để đối tƣợng phản ứng với kiện nhƣ trạng thái bên chúng thay đổi Khi quan sát đối tƣợng động ta phải quan tâm đến tƣơng tác thay đổi bên Tƣơng tác mơ tả hành vi bên ngồi đối tựơng tƣơng tác với đối tƣợng khác nhƣ (bằng gửi thơng điệp) Giả sử tốn hóa đơn hàng hóa đơn thay đổi trạng thái từ chƣa toán (Unpaid) sang toán (Paid) Khi hóa đơn đƣợc lập trạng thái chƣa tốn nhƣ mơ tả hình 6.1 Phát triển phần mềm UML trang | 139 Unpaid Paying Invoice Paid Invoce destroyed Hình 6.1 Trạng thái đơn hàng Biểu đồ trạng thái có điểm khởi đầu (hình trịn đen) vài điểm kết thúc (hình trịn đen có đƣờng bao); hoạt động biểu đồ đƣợc đặt chữ nhật góc trịn Trong chữ nhật có dịng văn để hành động Giữa trạng thái độ trạng thái (thể mũi tên) Quá độ có tên kiện gây biến đổi trạng thái Khi kiện xảy có biến đổi từ trạng thái sang trạng thái (đôi cịn gọi cháy) Trên hình 6.1, trả tiền (Paying), lập hóa đơn (Invoice creaded) hủy hóa đơn (Invoice destroyed) kiện làm chuyển trạng thái Hình 6.2 thí dụ biểu đồ chuyển trạng thái lớp Đăng ký mơn học (Course) Trong thí dụ này, lớp Course trạng thái nhƣ mở môn học (Open), kết thúc đăng ký môn học (Closed), bãi bỏ mơn học (Cancelled) hồn thành môn học (Completed) Open Registration ended Closed Course Cancelled Course Cancelled Cancelled End of Semester Completed Hình 6.2 Biểu đồ chuyển trạng thái lớp Course Hình 6.3 thí dụ biểu đồ trạng thái thang máy Thang máy tầng một, có nghĩa đạng trạng thái On first floor, lên (Moving up) hay xuống (Moving down) Nếu thang máy dừng tầng (Idle) sau khoảng thời gian định lên tầng (Moving to first floor) Biểu đồ trạng thái thí dụ khơng có điểm cuối Phát triển phần mềm UML trang | 140 On first floor Moving up go up arrived arrived Moving to first floor Moving down arrived Idle go down time out Hình 6.3 Biểu đồ trạng thái thang máy Biểu đồ trạng thái cần thiết giúp phân tích viên, ngƣời thiết kế ngƣời phát triển hiểu hành vi đối tƣợng hệ thống Đặc biệt, ngƣời phát triển phải hiểu rõ hành vi đối tƣợng họ phải cài đặt hành vi phần mêm Họ không cài đặt đối tƣợng mà cịn làm đối tƣợng thực 6.1.1 - Trạng thái Trạng thái điều kiện để đối tƣợng tồn Trạng thái đƣợc xãc định từ hai vùng: thuộc tính quan hệ lớp Tƣơng tự thành phần khác biểu đồ UML, ta bổ sung tài liệu vào trạng thái Tuy nhiên, tài liệu không chuyển thành mã nguồn sau Ký pháp trạng thái UML nhƣ sau: Tên trạng thái Khi đối tƣợng trạng thái đó, thực nhiều hoạt động Thí dụ, phát sinh báo cáo, thực vài tính tốn hay gởi kiện tới đối tƣợng khác Có thể gộp năm loại thông tin để mô tả trạng thái; chúng bao gồm hoạt động, hành động vào, hành động ra, kiện, lịch sử trạng thái Lần đối tƣợng đƣợc tạo trạng thái khởi động Trong biểu đồ UML trạng thái khởi động đƣợc vẽ hình trịn đen Chỉ có trạng thái bắt đầu biểu đồ Trạng thái dừng trạng thái đối tƣợng bị phá hủy Số lƣợng trạng thái dừng biểu đồ tùy ý, có trạng thái dừng cho biểu đồ đƣợc 6.1.1.1 - Hoạt động Hoạt động (activity) hành vi mà đối tƣợng thực thi trạng thái cụ thể Thí dụ, tài khoản trạng thái đóng máy đọc thẻ khơng chấp nhập thể tín dụng khách hàng, mở tài khoản trạng thái gửi thơng điệp, chờ hay tính tốn Hoạt động hành vi ngắt đƣợc, đƣợc hồn thành đối tƣợng trạng thái hay bị ngắt đối tƣợng chuyển sang trạng thái khác Hoạt động đƣợc biểu diễn phần tử biểu đồ trạng thái (hình 6.4a), trƣớc có từ dấu : (hoặc dấu /) Phát triển phần mềm UML trang | 141 6.1.1.2 - Hành động vào Hành động vào (Entry action ) hành vi xảy đối tƣợng chuyển đổi trạng thái Thí dụ tài khoản chuyển vào trạng thái rút tiền mức “hành động vào” đóng băng tạm thời tài khoản (Temporarily freeze account ) xảy (hình 6.4) Tuy nhiên hành động náy không xảy đối tƣợng vào trạng thái rút qui định Nó xảy nhƣ phận biến đổi vào trạng thái Không giống nhƣ hoạt động, hành vi vào không ngắt đƣợc Ký pháp hành động vào UML nhƣ hình 6.4b Hình Thơng tin trạng thái 6.1.1.3 - Hành động Hành động (exit action) tƣơng tự nhƣ hành động vào Tuy nhiên, hành động phận chuyển đổi khỏi trạng thái Thí dụ, tài khoản rời bỏ trạng thái rút quy định hành động xảy hủy trạng thái đóng băng tạm thời (Remove Temporary Freeze) xảy nhƣ phần biến đổi (hinh 6.5) Hành động không bị ngắt Ký pháp hành động UML nhƣ hình 6.4c Hình 6.5 Biểu đồ biến đổi trạng thái lớp Tài khoản Tóm lại, cú pháp hình thức cho hoạt động trạng thái đƣợc thể nhƣ sau: event_name argument_list „/‟ action_expression Phát triển phần mềm UML trang | 142 đó, event_name kiện nào, kể kiện chuẩn nhƣ entry, exit hay do; action_expression cho biết hành động đƣợc thực hiện, thay ký tự : cho ký tự / Các kiện có đối Hình 6.5 thí dụ biểu đồ biến đổi trạng thái lớp Tài khoản hệ thống rút tiền tự động ATM Hành vi hoạt đông (do), hành động vào (entry), hành động (exit) gửi kiện đến vài đối tƣợng khác Khi nhận đƣợc kiện hành động xảy Thí dụ đối tƣợng lớp Tài khoản gửi kiện đến đối tƣợng đọc thẻ tín dụng Trong trƣờng hợp phải đặt dấu ^ vào trƣớc hành động, hành động vào, hành động Trên biểu đồ UML là: Do:^Target.Event(Arguments) đó, Target đối tƣợng nhận kiện, Event thông điệp gửi Arguments tham số thông điệp 6.1.2 - Quá độ Quá độ (transition) chuyển động từ trạng thái sang trạng thái khác Ký pháp độ biểu đồ UML nhƣ hình 6.6a Quá độ phản thân, xảy tƣợng đối tƣợng chuyển tiếp trở lại trạng thái củ Ký pháp độ phản thân UML nhƣ hình 6.6b Trang thai Qua phan than Qua Trang thai a) Trang thai b) Hình 6.6 Chuyển tiếp trạng thái UML cho khả gộp nhiều đặc tả vào độ Chúng kiện, đối, điều kiện bảo vệ, hành động gửi kiện Sự kiện kiện làm ngun nhân chuyển tiếp từ trạng thái sang trạng thái khác Thí dụ kiện Khách hàng yêu cầu đóng tài khoản gây tài khoản chuyển từ trạng thái mở sang trạng thái đóng (hình 6.5) Sự kiện Gửi tiền vào chuyển Tài khoản từ trạng thái Rút sang trạng thái Mở có đối số Tổng số, chứa số tiền gửi vào Hầu hết chuyển tiếp có kiện Với chuyển tiếp tự động (khơng có kiện) đối tƣợng tự động chuyển tiếp từ trạng thái sang trạng thái khác Phát triển phần mềm UML trang | 143 Điều kiện canh (guard) Điều kiện canh điều khiển chuyển tiếp để hay khơng xảy (hình 6.7a) Thí dụ, kiện gửi tiền chuyển tài khoản từ trạng thái Rút sang trạng thái Mở, nhƣng Số dư tài khoản lớn Mo State Event[guard condition] Su kien/ Luu tru dong tai khoan State Dong b) a) Hình 6.7 Điều kiện canh Hành động (action) Hành động hành vi không ngắt đƣợc, xảy nhƣ phần chuyển tiếp Hành động vào hành động đƣợc thể trạng thái Phần lớn hành động đƣợc vẽ theo mũi tên chuyển tiếp Thí dụ, chuyển từ trạng thái mở sang trạng thái đóng, hành động Lưu thời điểm yêu cầu đóng tài khoản xảy Đó hành vi không ngắt đƣợc, xảy tài khoản chuyển tiếp từ trạng thái mở sang trạng thái đóng Hành động biểu thị mũi tên chuyển tiếp đƣợc đặt sau tên kiện dấu / (hình 6.7b) 6.1.3 - Trạng thái ẩn Để giảm thiểu số lƣợng trạng thái biểu đồ, ta ẩn số trạng thái trạng thái khác Các trạng thái ẩn (nested) đƣợc xem nhƣ tiểu trạng thái (substates), trạng thái lớn gọi siêu trạng thái (superstates) Nếu hai hay nhiều trạng thái có chuyển tiếp, nhóm chúng vào siêu trạng thái Sau thay quản lý hai chuyển tiếp nhƣ nhau, ta quản lý chuyển tiếp siêu trạng thái Biểu đồ trạng thái hình 6.8 biểu đồ trạng thái ẩn xây dựng từ biểu đồ hình 6.2 Hình 6.8 Trạng thái ẩn Phát triển phần mềm UML trang | 144 Hình 6.9 Lịch sử siêu trạng thái Trong biểu đồ loại này, hệ thống cần phải nhớ trạng thái bên cuối Giả sử ta có ba trạng thái siêu trạng thái, rời khỏi siêu trạng thái ta muốn hệ thống nhớ lại nơi vừa khỏi từ siêu trạng thái để trở lại sau Để giải vấn đề ta cần làm hai việc sau: Thứ bổ sung trạng thái khởi đầu siêu trạng thái để điểm khởi đầu mặc định siêu trạng thái; thứ hai sử dụng báo lịch sử trạng thái để nhớ nơi đối tƣợng vừa qua Nếu báo lịch sử đƣợc đặt đối tƣợng rời khỏi siêu trạng thái, trở lại đến nơi rời bỏ trƣớc Chỉ báo lịch sử đƣợc ký hiệu chữ “H” vịng trịn góc biểu đồ (hình 6.9) Hình 6.10 Lớp biểu đồ trạng thái tương ứng Phát triển phần mềm UML trang | 145 6.1.4 - Lớp biểu đồ trạng thái Quan hệ lớp biểu đồ trạng thái tƣơng ứng đƣợc mô tả thơng qua thí dụ hình 6.10 Trên hình có lớp Digital_watch biểu đồ trạng thái tƣơng ứng Hình cho thấy kiện biểu đồ trạng thái liên quan đến thao tác lớp nhƣ Trong thí dụ đồng hồ có ba trạng thái sau: trạng thái hiển thị thông thƣờng hai trạng thái tăng tăng phút 6.2 BIỂU ĐỒ HOẠT ĐỘNG Chắc chắn khái niệm biểu đồ tiến trình (flowchart) quen thuộc với ngƣời lập trình viên Biểu đồ trình tự bƣớc, tiến trình, điểm định nhánh Các lập trình viên thƣờng sử dụng khái niệm để khái quát vấn đề đề xuất giải pháp Biểu đồ hoạt động UML tƣơng tự nhƣ biểu đồ tiến trình Nó bƣớc (các hoạt động), điểm định nhánh Biểu đồ hoạt động biểu đồ UML khơng phải kết Booch, Jacobson hay Rumbagh Nó đƣợc hình thành biểu đồ kiện Odell đƣợc cập nhật vào phiên cuối UML Biểu đồ hoạt động đƣợc sử dụng để mơ hình hóa khía cạnh động hệ thống, mơ hình hóa bƣớc trình tự hay tƣơng tranh q trình tính tốn Biểu đồ hoạt động cịn đƣợc sử dụng để mơ hình hóa luồng đối tƣợng từ trạng thái sạng trạng thái khác vị trí luồng điều khiển Trong biểu đồ tƣơng tác tập trung vào luồng điều khiển từ đối tƣợng đến đối tƣợng biểu đồ hoạt động tập trung vào luồng điều khiển từ hoạt động đến hoạt động Biểu đồ hoạt động bao gồm trạng thái hoạt động trạng thái hành động, độ đối tƣợng Tƣơng tự nhƣ biểu đồ khác, biểu đồ loại có ghi ràng buộc 6.2.1 - Trạng thái hành động trạng thái hoạt động Trong luồng điều khiển mơ hình hóa biểu đồ hoạt động ta thực vài biểu thức lại giá trị hay thiết lập giá trị thuộc tính, ta gọi thao tác đối tƣợng, gửi tín hiệu đến đối tƣợng hay kiện lập hủy bỏ đối tƣợng Các tính toán đƣợc gọi trạng hành động (action state) trạng thái hệ thống Trạng thái hành động không chia nhỏ đƣợc, công việc trạng thái hành động không ngắt đƣợc chiếm khoảng thời gian ngắn để thực Ngƣợc lại, trạng thái hoạt động (activity state) tách đƣợc, bị ngắt cần khoảng thời gian đáng kể để hồn thành cơng việc Có thể xem trạng thái hành động trƣờng hợp đặc biệt trạng thái hoạt động Ngƣợc lại, trạng thái hoạt động đƣợc xem nhƣ tổ hợp mà luồng điều khiển đƣợc lập từ trạng thái hoạt động khác từ trạng thái hành động Trong trạng thái hoạt động ta tìm biểu đồ hoạt động khác Ký pháp đồ họa trạng thái hoạt động giống nhƣ ký pháp trạng thái hành động, điểm khác trạng thái hoạt động có phận khác nhƣ hành động vào, hành động hay đặc tả submachine Ký pháp đồ họa trạng thái hoạt động hình 6.11 Trạng thái khởi đầu trạng thái kết thúc đƣợc biểu diễn tƣơng tự nhƣ biểu đồ trạng thái 6.2.2 - Quá độ Khi hành động hay hoạt động trạng thái hoàn thành, luồng điều khiển chuyển sang trạng thái hành động hay hoạt động khác Luồng đƣợc mô tả độ Phát triển phần mềm UML trang | 146 (transition), cho thấy đƣờng từ trạng thái hành động hay hoạt động đến trạng thái hành động hay hoạt động khac Việc chuyển tiếp từ trạng thái sang trạng thái khác đƣợc thực tức hệ thống phải ln trạng thái biết trƣớc Trong UML, độ đƣợc biểu diễn mũi tên đơn (hình 6.11a) Hình 6.11 Quá độ rẽ nhánh 6.2.3 - Rẽ nhánh Thơng thƣờng q độ trình tự Nhƣng cần phải có kiểu đƣờng khác để mơ hình hóa luồng điều khiển Trong biểu đồ tiến trình, rẽ nhánh xác định đƣờng phụ sở biểu thức Bool Trên biểu đồ UML, rẽ nhánh đƣợc biểu diễn viên kim cƣơng trắng Rẽ nhánh có độ vào hai hay nhiều độ Quá độ thƣờng đƣợc gán điều kiện viết ngoặc vuông nhƣ hình 6.11b hay đƣợc gắn biểu thức Bool, đựơc đánh giá đầu vào nhánh Thí dụ, ơng A hàng ngày làm việc xe máy Ông A lên xe, cắm chìa khóa khởi động xe Hai trƣờng hợp hình thành hai hoạt động: ơng A lái xe ông A xe bus, taxi, xe đạp hay Kịch thể hình 6.12 Khởi động xe Lái xe Đi xe bus, taxi, xe đạp hay Hình 6.12 Biểu đồ hoạt động hai nhánh 6.2.4 - Đƣờng dẫn tƣơng tranh Đƣờng dẫn hay gặp biểu đồ hoạt động có q độ trình tự rẽ nhánh Tuy nhiên mơ hình hóa luồng cơng việc nhiều tiến trình ta gặp Phát triển phần mềm UML trang | 147 phải luồng tƣơng tranh Trong UML, đồng đƣợc sử dụng để kết hợp (hình 6.13a) chia nhánh (hình 6.13b) luồng điều khiển song song Hình 6.13 Đồng rẽ nhánh Thanh đồng đƣợc vẽ đƣờng đậm Đồng có nghĩa độ vào phải có mặt đầy đủ trƣớc q độ “cháy” (hình 6.13a) Quá độ đƣợc gọi đồng AND Tuy nhiên, để mô tả độ đồng OR (chỉ độ vào đủ cho “cháy”) hay vẽ độ đồng XOR, B Oesterich đề nghị ký pháp đồ họa nhƣ hình vẽ 6.13c [OEST001] Thí dụ hình 6.14 mơ tả chia luồng điều khiển đơn thành hai luồng điều khiển tƣơng tranh Thanh đồng chia nhánh có độ đến hai độ Hai hoạt động Ăn sáng Uống cà phê song song tiếp tục Thanh kết hợp có hai độ vào độ Thanh thực đồng luồng tƣơng tranh, có nghĩa luồng phải chờ đến luồng đến kết hợp (Ăn sáng Uống cà phê xong) để sau có luồng điều khiển tiếp tục (Đi làm việc) Nhƣ vậy, đồng cho khả “mở” hay “đóng” nhánh song song luồng thực thao tác hay UC Ngủ dậy Ăn sáng Uống cà phê Đi làm việc Hình 6.14 Các hoạt động tương tranh Phát triển phần mềm UML trang | 148 }; #inclu de “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 #inclu de “B.h” class A{ … const B* get_the_B() const; void set_the_B (B* Const value); private: B* THE_b; }; #inclu de “A.h” class B{ … Phát triển phần mềm UML trang | 222 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 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 { … }; Phát triển phần mềm UML trang | 223 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 dƣới đƣợc 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 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 đƣợc 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 Phát triển phần mềm UML trang | 224 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 { … } 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 Phát triển phần mềm UML B trang | 225 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 -Ra Rb n B Mã trình public class B { public A m_Ra; … } Mơ hình A B Mã trình public class B { public Vector m_Ra = new Vector (); … Phát triển phần mềm UML trang | 226 } Mơ hình A Ra Rb B Khi tính nhiều có hạn chế kết hợp đƣợc 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 B 1 Rb Ra Phát triển phần mềm UML A trang | 227 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 public abstract class A implements I_A { … } Phát triển phần mềm UML trang | 228 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 dƣới đậy đƣợc 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 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 Phát triển phần mềm UML trang | 229 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 Option Base Private Sub Class_Initialize () End Sub Private Sub Class_Terminate () End Sub Public Sub Op2() End Sub Phát triển phần mềm UML trang | 230 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 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 9.3.2.2 - Kết hợp 1-N Mơ hình A Ra n Phát triển phần mềm UML Rb B trang | 231 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 Phát triển phần mềm UML trang | 232 Private Sub A_Op1 () mAObjec t.Op1 End Sub 9.4 PHÁT SINH MÃ TRÌNH SQL Các đoạn mã trình mẫu dƣới đƣợc 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 A Ra Phát triển phần mềm UML Rb B trang | 233 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 | 234 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 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 | 235 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 | 236 ... Start 22 Đặt chúng biểu đồ 23 Làm tƣơng tự cho trạng thái Stop 6.3 .2. 3 - Bổ sung siêu trạng thái 24 Chọn phím State từ cơng cụ Đặt trạng thái vào biểu đồ 6.3 .2. 4 - Bổ sung trạng thái khác 25 Chọn... Order Phát triển phần mềm UML trang | 153 6.3 .2. 1 - Lập biểu đồ 19 Tìm lớp Order browser 20 Nhấn phím phải chuột lớp, chọn Open State Diagram 6.3 .2. 2 - Bổ sung trạng thái Start, Stop 21 Chọn công... thành phần khác (hình 7.1) Hình 7.1 Biểu đồ thành phần UML Phát triển phần mềm UML trang | 156 Dƣới mô tả vắn tắt vài kiểu thành phần UML Thành phần mã nguồn Thành phần mã nguồn có ý nghĩa vào