1. Trang chủ
  2. » Công Nghệ Thông Tin

Phân tích thiết kế hướng đối tượng: Bài 6. Biểu đồ lớp và gói - ThS. Lê Văn Hùng

40 30 0

Đ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

Nội dung

Đối tượng là cái gì đó tồn tại trong thế giới thực. Lớp là mô tả thuộc tính, hành vi, ngữ nghĩa của một nhóm đối tượng: 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ó.

PHÂN TÍCH THIẾT KẾ HƯỚNG ðỐI TƯỢNG Nội dung Tiến trình phát triển phần mềm theo hướng đối tượng Giới thiệu Ngơn ngữ mơ hình hóa thống UML Mơ hình hóa nghiệp vụ 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 gói Biểu đồ chuyển trạng thái biểu đồ hoạt động Biểu đồ kiến trúc vật lý phát sinh mã trình Mơ hình hóa liệu 10 Bài học thực nghiệm ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 2/40 Bài Biểu ñồ lớp gói Lớp gì? n n ðối tượng tồn giới thực Lớp mơ tả thuộc tính, hành vi, ngữ nghĩa nhóm đối tượng n n Thí dụ lớp: Lớp Employee n n n Lớp xác định thơng tin ñược lưu trữ ñối tượng hành vi ñối tượng có ðối tượng lớp có attribute: Name, Address, Salary Các operation: Thuê mướn, ðuổi việc ðề bạt nhân viên? Ký pháp ñồ họa lớp biểu đồ n n n Tên lớp Thuộc tính Thao tác - Private + Public ehamingway@gmail.com Class - Attribute +Operation() Phân tích thiết kế hướng đối tượng Bài - 4/40 Tìm kiếm lớp nào? n n Việc tìm kiếm đầy đủ lớp khó khăn Khuyến cáo n Tìm lớp từ danh từ luồng kiện n n Tìm lớp từ biểu đồ tương tác n n Chú ý danh từ tác nhân, lớp, thuộc tính biểu thức khơng phải loại Những chung ñối tượng tạo thành lớp Tìm lớp nơi khác n n Các báo cáo tìm pha phân tích u cầu hình thành lớp giao diện Các thiết bị phần cứng ñược biểu diễn lớp khác ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 5/40 Tìm kiếm lớp nào? n Cùng với chuyên gia lĩnh vực vấn ñề trả lời câu hỏi sau để tìm lớp n n n n n Có thơng tin cần lưu trữ hay phân tích? Nếu có, lớp Có hệ thống ngồi khơng? Nếu có xem lớp chứa hệ thống ta hay hệ thống ta tương tác với chúng Có mẫu, thư viện lớp, thành phần ? Nếu có, thơng thường chúng chứa ứng viên lớp Hệ thống cần quản lý thiết bị ngoại vi nào? Mọi thiết bị kỹ thuật nối với hệ thống ñều ứng viên lớp Tác nhân đóng vai trị tác nghiệp nào? Các nhiệm vụ 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/40 Lập biểu ñồ lớp n n n Biểu ñồ lớp cho biết hình ảnh tĩnh phận hệ thống Biểu ñồ lớp bao gồm lớp quan hệ chúng Thơng thường hệ thống có vài biểu đồ lớp n n n Xây dựng vài biểu ñồ lớp ñể mô tả ñầy ñủ hệ thống 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 viết mã trình Rose n Biểu đồ lớp hình thành Logical View ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 7/40 Stereotype lớp n n n Trong biểu ñồ lớp, stereotype chế để phân nhóm lớp UML có sẵn nhiều stereotype để sử dụng Ba stereotype lớp sở sử dụng pha phân tích n Boundary n n n Dành cho lớp nằm biên hệ thống với giới cịn lại Chúng form, report, giao diện với phần cứng máy in, scanner Khảo sát biểu đồ UC để tìm kiếm lớp biên Form Use Case Actor Actor2 Use Case Boundary class n n Actor1 Entity Control ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Boundary class Bài - 8/40 Stereotype lớp n Ba stereotype lớp sở sử dụng pha phân tích n n Boundary Entity n n n Lớp thực thể lớp lưu trữ thơng tin ghi vào nhớ ngồi Tìm chúng luồng kiện biểu ñồ tương tác Thông thường phải tạo bảng CSDL cho lớp loại n n EntityClass Control n n n n n Mỗi thuộc tính lớp thực thể trường bảng CSDL BoundaryClass Có trách nhiệm điều phối hoạt động lớp khác Thơng thường UC có lớp điều khiển Nó khơng thực chức nghiệp vụ Các lớp ñiều khiển khác: ñiều khiển kiện liên quan ñến an ninh liên quan ñến giao dịch CSDL ControlClass Người sử dụng tự tạo stereotype ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 9/40 Các loại lớp biểu ñồ n n Phân loại lớp theo khái niệm ngơn ngữ lập trình cụ thể: C++, Java, Web, Visual Basic, CORBA, Oracle Rose hỗ trợ nhiều stereotype cho nhóm lớp, thí dụ n n n n n n n n Lớp thông thường Lớp tham số (Parameterized class) Lớp thực (Instantiated class) Lớp tiện ích (Class utility) Lớp tiện ích tham số (Parameterized class utility) Lớp tiện ích thực (Instantiated class utility) Metaclass Giao diện (Interfaces) ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 10/40 Các loại thao tác n Thao tác cài ñặt (Implementor) n n n Cài ñặt vài chức nghiệp vụ Hầu thơng điệp biểu ñồ tương tác ánh xạ vào thao tác cài ñặt Thao tác quản lý (Manager) n Quản lý việc lập hủy bỏ ñối tượng n n Thao tác xâm nhập (Access) n Thao tác xâm nhập vào thuộc tính private protected n n Thí dụ: cấu tử, hủy tử lớp Thí dụ: thao tác Get Set cho thuộc tính lớp Thao tác trợ giúp (Helper) n n Là thao tác private protected lớp Các thơng điệp phản thân biểu ñồ tương tác ánh xạ ñến thao tác ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 26/40 Quan hệ lớp n Quan hệ kết nối ngữ nghĩa lớp n n Quan hệ cho lớp biết thuộc tính, thao tác quan hệ lớp khác Các loại quan hệ 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 kế hướng đối tượng Bài - 27/40 Tìm kiếm quan hệ n Khảo sát biểu đồ trình tự biểu ñồ cộng tác n Nếu lớp A gửi thơng điệp đến lớp B chúng có quan hệ n n Thông thường quan hệ kết hợp hay phụ thuộc Khảo sát lớp để tìm quan hệ n Quan hệ tổng thể - thành phần n n Bất kỳ lớp hình thành từ lớp khác chúng có quan hệ tập hợp Quan hệ khái quát hóa n Nếu nhiều lớp kế thừa từ lớp thứ ba chúng với lớp thứ ba có quan hệ khái quát hóa ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 28/40 Quan hệ kết hợp n Association kết nối ngữ nghĩa lớp n n n Kết hợp cho lớp biết thuộc tính thao tác public lớp khác Quan hệ kết hợp hai chiều, chiều Quan hệ kết hợp phản thân Person House class Person { public: Person(); ~Person(); private: House *the_House; }; ehamingway@gmail.com Person House class House { public: House(); ~House(); private: Person *the_Person; }; Person class Person { public: Person(); ~Person(); private: House *the_House; }; Phân tích thiết kế hướng đối tượng class House { public: House(); ~House(); private: }; Bài - 29/40 Quan hệ phụ thuộc n Dependency quan hệ lớp tham chiếu lớp khác n n n Khi thay ñổi ñặc tả lớp tham chiếu lớp sử dụng bị ảnh hưởng Rose khơng bổ sung thuộc tính cho hai lớp có quan hệ phụ thuộc Các lệnh ngơn ngữ phát sinh ñể hỗ trợ quan hệ phụ thuộc n Thí dụ: #include House ehamingway@gmail.com Person Phân tích thiết kế hướng đối tượng Bài - 30/40 Quan hệ phụ thuộc gói n n Có thể vẽ quan hệ phụ thuộc gói lớp Phụ thuộc gói từ gói A đến gói B có nghĩa vài gói lớp A có quan hệ chiều với lớp gói B Package A n Package B Tránh phụ thuộc vịng gói Package A ehamingway@gmail.com Package B Phân tích thiết kế hướng đối tượng Bài - 31/40 Phụ thuộc tụ hợp Door n Aggregation quan hệ tổng thể phận (WholeParts) n n Trong quan hệ này, lớp biểu diễn lớn lớp biểu diễn nhỏ Biểu diễn quan hệ has-a n n n Một ñối tượng lớp tổng thể có nhiều đối tượng lớp thành phần Tổng thể phận hủy bỏ vào thời ñiểm khác Tên khác: quan hệ tụ hợp tham chiếu (by reference) ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Car 1 Engine Tire #include "car.h" class Door { private: Car *the_car; }; #include "door.h" class Car { private: Door *the_Door; }; Bài - 32/40 Quan hệ gộp n Composition dạng ñặc biệt (mạnh hơn) quan hệ tụ hợp n n Tổng thể thành phần hình thành hay hủy bỏ vào thời ñiểm Tên khác: quan hệ tụ hợp giá trị (by value) Frame Window #include "Window.h" class Frame { private: } ehamingway@gmail.com n #include "Frame.h" class Window { private: Frame the_Frame; } Phân tích thiết kế hướng ñối tượng Bài - 33/40 Quan hệ khái quát hóa n Generalization quan hệ kế thừa hai phần tử mơ lớp, tác nhân, Use case gói n Cho phép lớp kế thừa thuộc tính, thao tác public protected lớp khác Employee Name Address SSN Hire() Fire() HourlyEmp Rate ehamingway@gmail.com SalariedEmp #include “Employee.h” class HourlyEmp: public Employee { private: float Rate; }; Salary Phân tích thiết kế hướng ñối tượng Bài - 34/40 ðặc tả quan hệ 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 - 35/40 ðặc tả quan hệ lớp n ðặc tả chi tiết quan hệ bao gồm n Multiplicity n Cho biết thực lớp liên kết với thực lớp khác vào thời ñiểm Course Student n Tên quan hệ n Tên quan hệ ñộng từ mô tả lại tồn 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 - 36/40 ðặc tả quan hệ lớp n ðặc tả chi tiết quan hệ bao gồm n n Tên nhiệm vụ n Sử dụng tên nhiệm vụ thay cho tên quan hệ quan hệ kết hợp hay tụ hợp ñể quan hệ tồn Company n +Employee Person Export control n n n +Employer Trong quan hệ kết hợp, thuộc tính phát sinh mã trình Phạm vi gán cho thuộc tính bao gồm: Public, Private, Protected, Package hay Implementation ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 37/40 ðặc tả quan hệ lớp n ðặc tả chi tiết quan hệ bao gồm n n Quan hệ tĩnh n n Rose phát sinh thuộc tính cho quan hệ kết hợp quan hệ tụ hợp Có thể gán tính static cho thuộc tính để chia sẻ cho thực lớp Company n +$Employee Person Quan hệ Friend n n n n +Employer Quan hệ lớp Client xâm nhập thuộc tính thao tác khơng phải public lớp Supplier Có thể gán Friend cho kết hợp, tụ hợp, phụ thuộc hay khái quát hóa Mã nguồn lớp Supplier bao gồm logíc để lớp Client có phạm vi Friend ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài - 38/40 ðặc tả quan hệ lớp n ðặc tả chi tiết quan hệ bao gồm n n Phạm vi kết hợp (Qualifier) n Sử dụng qualifier ñể giảm phạm vi kết hợp Company PersonID : Integer Person n Phần tử liên kết n Còn gọi lớp kết hợp, nơi lưu trữ thuộc tính liên quan đến kết hợp Student Course 10 20 Grade ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 39/40 Tóm tắt n Bài ñã xem xét vấn ñề sau n n n n n n Tìm kiếm lớp Tìm kiếm thuộc tính, thao tác lớp Tìm kiếm loại quan hệ lớp Biểu diễn biểu ñồ lớp gói Biểu diễn đồ họa thuộc tính thuộc tính, thao tác lớp Biểu diễn thuộc tính cho quan hệ lớp ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài - 40/40 ... Phân tích thiết kế hướng đối tượng Bài - 30/40 Quan hệ phụ thuộc gói n n Có thể vẽ quan hệ phụ thuộc gói lớp Phụ thuộc gói từ gói A đến gói B có nghĩa vài gói lớp A có quan hệ chiều với lớp gói. .. ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 6/40 Lập biểu ñồ lớp n n n Biểu ñồ lớp cho biết hình ảnh tĩnh phận hệ thống Biểu ñồ lớp bao gồm lớp quan hệ chúng Thơng thường hệ thống có vài biểu. .. ehamingway@gmail.com Phân tích thiết kế hướng đối tượng Bài - 39/40 Tóm tắt n Bài xem xét vấn ñề sau n n n n n n Tìm kiếm lớp Tìm kiếm thuộc tính, thao tác lớp Tìm kiếm loại quan hệ lớp Biểu diễn biểu đồ lớp gói

Ngày đăng: 11/05/2021, 04:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN