Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
432,76 KB
Nội dung
PHÂN T PHÂN T Í Í CH THI CH THI Ế Ế T K T K Ế Ế HƯ HƯ Ớ Ớ NG ð NG ð Ố Ố I TƯ I TƯ Ợ Ợ NG NG ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 2/40 Nội dung 1. Tiến trình phát triển phần mềm theo hướng đối tượng 2. Giới thiệu Ngôn ngữ mô hình hóa thống nhất UML 3. Mô hình hóa nghiệp vụ 4. Mô hình hóa trường hợp sử dụng 5. Mô hình hóa tương tác đối tượng Biểu đồ lớp và gói 7. Biểu đồ chuyển trạng thái và biểu đồ hoạt động 8. Biểu đồ kiến trúc vật lý và phát sinh mã trình 9. Mô hình hóa dữ liệu 10.Bài học thực nghiệm Bi Bi ể ể u ñ u ñ ồ ồ l l ớ ớ p v p v à à g g ó ó i i Bài 6 ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 4/40 Lớp là gì? n ðối tượng là cái gì ñó tồn tại trong thế giới thực n Lớp là mô tả thuộc tính, hành vi, ngữ nghĩa của một nhóm ñối tượng n Lớp xác ñịnh thông tin nào ñược lưu trữ trong ñối tượng và hành vi nào ñối tượng có n Thí dụ về lớp: Lớp Employee n ðối tượng của lớp có các attribute: Name, Address, Salary n Các operation: Thuê mướn, ðuổi việc và ðề bạt nhân viên? n Ký pháp ñồ họa của lớp trong biểu ñồ n Tên lớp n Thuộc tính n Thao tác - Private + Public Class - Attribute +Operation() ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 5/40 Tìm kiếm lớp như thế nào? n Việc tìm kiếm ñầy ñủ lớp là khó khăn n Khuyến cáo n Tìm lớp từ các danh từ trong luồng sự kiện n Chú ý rằng danh từ có thể là tác nhân, lớp, thuộc tính và biểu thức không phải loại trên n Tìm lớp từ biểu ñồ tương tác n Những cái chung của ñối tượng tạo thành lớp n Tìm lớp ở các nơi khác n Các báo cáo tìm ra trong pha phân tích yêu cầu hình thành lớp giao diện n Các thiết bị phần cứng ñược biểu diễn bởi lớp khác nhau ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 6/40 Tìm kiếm lớp như thế nào? n Cùng với chuyên gia lĩnh vực vấn ñề trả lời các câu hỏi sau ñây ñể tìm ra lớp n Có thông tin nào cần lưu trữ hay phân tích? Nếu có, nó là lớp n Có hệ thống ngoài không? Nếu có thì nó ñược xem như những lớp chứa trong hệ thống của ta hay hệ thống của ta tương tác với chúng n Có mẫu, thư viện lớp, thành phần ? Nếu có, thông thường chúng chứa các ứng viên lớp n Hệ thống cần quản lý các thiết bị ngoại vi nào? Mọi thiết bị kỹ thuật nối với hệ thống ñều là ứng viên lớp. n Tác nhân ñóng vai trò tác nghiệp nào? Các nhiệm vụ này có thể là lớp; thí dụ người sử dụng, thao tác viên hệ thống, khách hàng ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 7/40 Lập biểu ñồ lớp n Biểu ñồ lớp cho biết hình ảnh tĩnh của bộ phận hệ thống n Biểu ñồ lớp bao gồm các lớp và quan hệ giữa chúng n Thông thường mỗi hệ thống có vài biểu ñồ lớp n Xây dựng vài biểu ñồ lớp ñể mô tả ñầy ñủ hệ thống n Biểu ñồ lớp giúp người phát triển quan sát, lập kế hoạch cấu trúc hệ thống trước khi viết mã trình n Rose n Biểu ñồ lớp ñược hình thành trong Logical View ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 8/40 Stereotype của lớp n Trong biểu ñồ lớp, stereotype là cơ chế ñể phân nhóm lớp n UML có sẵn nhiều stereotype ñể sử dụng n Ba stereotype lớp cơ sở sử dụng trong pha phân tích là n Boundary n Dành cho lớp nằm trên biên hệ thống với thế giới còn lại n Chúng có thể là form, report, giao diện với phần cứng như máy in, scanner n Khảo sát biểu ñồ UC ñể tìm kiếm lớp biên n Entity n Control Form Actor Use Case Boundary class Actor1 Boundary class Actor2 Use Case ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 9/40 Stereotype của lớp n Ba stereotype lớp cơ sở sử dụng trong pha phân tích là n Boundary n Entity n Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộ nhớ ngoài n Tìm chúng trong luồng sự kiện và biểu ñồ tương tác n Thông thường phải tạo ra bảng CSDL cho lớp loại này n Mỗi thuộc tính của lớp thực thể sẽ là trường trong bảng CSDL n Control n Có trách nhiệm ñiều phối hoạt ñộng của các lớp khác n Thông thường mỗi UC có một lớp ñiều khiển n Nó không thực hiện chức năng nghiệp vụ nào n Các lớp ñiều khiển khác: ñiều khiển sự kiện liên quan ñến an ninh và liên quan ñến giao dịch CSDL n Người sử dụng tự tạo ra stereotype mới EntityClass ControlClass BoundaryClass ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 10/40 Các loại lớp trong biểu ñồ n Phân loại lớp theo các khái niệm của ngôn ngữ lập trình cụ thể: C++, Java, Web, Visual Basic, CORBA, Oracle n Rose hỗ trợ nhiều stereotype cho các nhóm lớp, thí dụ n Lớp thông thường n Lớp tham số (Parameterized class) n Lớp hiện thực (Instantiated class) n Lớp tiện ích (Class utility) n Lớp tiện ích tham số (Parameterized class utility) n Lớp tiện ích hiện thực (Instantiated class utility) n Metaclass n Giao diện (Interfaces) [...]... Interface ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 13/40 ð c t l p trong bi u ñ n Trong Rose: n n S d ng c a s ñ c t l p ñ gán các thu c tính cho l p như stereotype, persistent, visibility C a s ñ c t khác nhau v i các ngôn ng khác nhau khi ch n ñ cài ñ t mô hình sau này n Các l p c a Java, XML, CORBA ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 14/40 ð c t l p trong... ehamingway@gmail.com Person Phân tích thi t k hư ng ñ i tư ng Bài 6 - 30/40 Quan h ph thu c gói n n Có th v quan h ph thu c gi a các gói như gi a các l p Ph thu c gói t gói A ñ n gói B có nghĩa r ng vài gói trong l p A có quan h m t chi u v i các l p trong gói B Package A n Package B Tránh ph thu c vòng gi a các gói Package A ehamingway@gmail.com Package B Phân tích thi t k hư ng ñ i tư ng Bài 6 - 31/40 Ph thu... public Employee { private: float Rate; }; Salary Phân tích thi t k hư ng ñ i tư ng Bài 6 - 34/40 ð c t quan h gi a các l p n ð c t chi ti t quan h bao g m n n n n n n n n ehamingway@gmail.com Multiplicity Tên quan h Tên nhi m v Export control Quan h tĩnh Quan h Friend Ph m vi k t h p (Qualifier) Ph n t liên k t Phân tích thi t k hư ng ñ i tư ng Bài 6 - 35/40 ð c t quan h gi a các l p n ð c t chi ti... ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 26/ 40 Quan h gi a các l p n Quan h là k t n i ng nghĩa gi a các l p n n Quan h cho m t l p bi t thu c tính, thao tác và quan h c a l p khác Các lo i quan h chính n n n n n K t h p (Associations) Ph thu c (Dependencies) T h p (Aggregations) Hi n th c quan h (Realizes Relationships) Khái quát hóa (Generalizations) ehamingway@gmail.com Phân tích thi t... có th nhìn th y (#) Package và Implementation: Thu c tính là public ñ i v i các l p trong cùng gói Public + - Private Protected # Public Operations Public Private Private Attributes and Operations Protected Package (Implementation) n ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 23/40 ð c t thu c tính l p n V i m i thu c tính trong bi u ñ c n có n n Ki u lưu tr thu c tính n n n n Thu... Manager là 1 Multiplicity Ý nghĩa n (M c ñ nh) 0 0 Không ho c 1 0 n Không ho c nhi u 1 1 Chính xác 1 1 n n Không 0 1 n Nhi u M t ho c nhi u Yêu c u lưu tr cho l p ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 16/ 40 ð c t l p trong bi u ñ n ð c t l p bao g m n n Yêu c u lưu tr cho l p n n ð t kích thư c b nh mong ñ i ñ lưu tr ñ i tư ng c a l p Duy trì (Persistent) n n Rose: có kh năng sinh... các gói ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 19/40 Thu c tính l p n n n Thu c tính là nhóm thông tin liên k t v i l p Có th g n m t hay nhi u thu c tính vào l p Tìm ki m thu c tính? n n Tìm trong tài li u UC Tìm các danh t trong lu ng s ki n n n Tìm trong tài li u yêu c u h th ng n n Thí d : “Ngư i s d ng nh p tên, ñ a ch ngày sinh c a Nhân viên” -> Tên, ñ a ch , ngày sinh là... h has-a n n n M t ñ i tư ng c a l p t ng th có nhi u ñ i tư ng c a l p thành ph n T ng th và b ph n có th h y b vào th i ñi m khác nhau Tên khác: quan h t h p b i tham chi u (by reference) ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng 2 4 Car 1 1 1 4 Engine 1 Tire #include "car.h" class Door { private: Car *the_car; }; #include "door.h" class Car { private: Door *the_Door; }; Bài 6 - 32/40... ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 21/40 ð c t thu c tính l p n n Trong Rose: s d ng c a s ñ c t thu c tính ñ gán ñ c tính cho thu c tính V i m i thu c tính trong bi u ñ c n có n n Tên thu c tính Ki u d li u thu c tính lưu tr Ph thu c vào ngôn ng l p trình n n Giá tr kh i ñ u n n n n Thí d , Add : String Thí d , IDNumber: Interger=0 Stereotype Ph m vi (visibility) ehamingway@gmail.com Phân. .. n th c c a l p khác vào cùng th i ñi m Course Student 0 4 n Tên quan h n Tên quan h là ñ ng t mô t t i sao l i t n t i quan h Company n 10 20 Employs Person ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 6 - 36/ 40 . hóa dữ liệu 10 .Bài học thực nghiệm Bi Bi ể ể u ñ u ñ ồ ồ l l ớ ớ p v p v à à g g ó ó i i Bài 6 ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 4/40 Lớp là gì? n ðối tượng là cái. PHÂN T PHÂN T Í Í CH THI CH THI Ế Ế T K T K Ế Ế HƯ HƯ Ớ Ớ NG ð NG ð Ố Ố I TƯ I TƯ Ợ Ợ NG NG ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 2/40 Nội dung 1 biểu ñồ n Tên lớp n Thuộc tính n Thao tác - Private + Public Class - Attribute +Operation() ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 6 - 5/40 Tìm kiếm lớp như thế nào? n Việc