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
350 KB
Nội dung
VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM VIỆN CÔNG NGHỆ THÔNG TIN PHÂNTÍCHTHIẾTKẾHƯỚNGĐỐITƯỢNG PGS.TS Đặng Văn Đức Email: dvduc@ioit.ac.vn Nội dung Tiến trình phát triển phần mềm theo hướngđốitượ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 đốitượ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 Bài - 2/40 Bài Biểu đồ lớp gói Lớp gì? Đốitượng tồn giới thực Lớp mô tả thuộc tính, hành vi, ngữ nghĩa nhóm đốitượng Thí dụ lớp: Lớp Employee Lớp xác định thông tin lưu trữ đốitượng hành vi đốitượng có Đốitượ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 đồ Tên lớp Thuộc tính Thao tác - Private + Public Class - Attribute +Operation( ) Bài - 4/40 Tìm kiếm lớp nào? Việc tìm kiếm đầy đủ lớp khó khăn Khuyến cáo Tìm lớp từ danh từ luồng kiện Chú ý danh từ tác nhân, lớp, thuộc tính biểu thức loại Tìm lớp từ biểu đồ tương tác Những chung đốitượng tạo thành lớp Tìm lớp nơi khác Các báo cáo tìm pha phântích yêu cầu hình thành lớp giao diện Các thiết bị phần cứng biểu diễn lớp khác Bài - 5/40 Tìm kiếm lớp nào? 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 Có thông tin cần lưu trữ hay phân tích? Nếu có, lớp Có hệ thống 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 ứ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 Bài - 6/40 Lập biểu đồ lớp 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 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 Biểu đồ lớp hình thành Logical View Bài - 7/40 Stereotype lớp 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ântích Boundary Dành cho lớp nằm biên hệ thống với giới 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 Entity Control Use Case Actor Actor2 Use Case Boundary class Actor1 Boundary class Bài - 8/40 Stereotype lớp Ba stereotype lớp sở sử dụng pha phântích Boundary Entity Lớp thực thể lớp lưu trữ thông tin ghi vào nhớ 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 BoundaryClass Mỗi thuộc tính lớp thực thể trường bảng CSDL Control 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 EntityClass ControlClass Người sử dụng tự tạo stereotype Bài - 9/40 Các loại lớp biểu đồ 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ụ 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) Bài - 10 Các loại thao tác Thao tác cài đặt (Implementor) Thao tác quản lý (Manager) Quản lý việc lập hủy bỏ đốitượng Thí dụ: cấu tử, hủy tử lớp Thao tác xâm nhập (Access) 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 xâm nhập vào thuộc tính private protected Thí dụ: thao tác Get Set cho thuộc tính lớp Thao tác trợ giúp (Helper) 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 Bài - 26 Quan hệ lớp Quan hệ kết nối ngữ nghĩa lớp 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ệ 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) Bài - 27 Tìm kiếm quan hệ Khảo sát biểu đồ trình tự biểu đồ cộng tác Nếu lớp A gửi thông điệp đến lớp B chúng có quan hệ Thông thường quan hệ kết hợp hay phụ thuộc Khảo sát lớp để tìm quan hệ Quan hệ tổng thể - thành phầ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ế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 Bài - 28 Quan hệ kết hợp Association kết nối ngữ nghĩa lớp 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; }; Person House class House { public: House(); ~House(); private: Person *the_Person; }; Person class Person { public: Person(); ~Person(); private: House *the_House; }; class House { public: House(); ~House(); private: }; Bài - 29 Quan hệ phụ thuộc Dependency quan hệ lớp tham chiếu lớp khác 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 Thí dụ: #include House Person Bài - 30 Quan hệ phụ thuộc gói 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 Package B Tránh phụ thuộc vòng gói Package A Package B Bài - 31 Phụ thuộc tụ hợp Door Aggregation quan hệ tổng thể phận (WholeParts) 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 Một đốitượng lớp tổng thể có nhiều đốitượ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) Car 11 Engine Tire #include "car.h" class Door { private: Car *the_car; }; #include "door.h" class Car { private: Door *the_Door; }; Bài - 32 Quan hệ gộp Composition dạng đặc biệt (mạnh hơn) quan hệ tụ hợp 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: } n #include "Frame.h" class Window { private: Frame the_Frame; } Bài - 33 Quan hệ khái quát hóa Generalization quan hệ kế thừa hai phần tử mô lớp, tác nhân, Use case gói 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 SalariedEmp Salary #include “Employee.h” class HourlyEmp: public Employee { private: float Rate; }; Bài - 34 Đặc tả quan hệ lớp Đặc tả chi tiết quan hệ bao gồm 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 Bài - 35 Đặc tả quan hệ lớp Đặc tả chi tiết quan hệ bao gồm Multiplicity 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 Tên quan hệ Tên quan hệ động từ mô tả lại tồn quan hệ Company 10 20 Employs Person Bài - 36 Đặc tả quan hệ lớp Đặc tả chi tiết quan hệ bao gồm Tên nhiệm vụ 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 +Employer +Employee Person Export control 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 Bài - 37 Đặc tả quan hệ lớp Đặc tả chi tiết quan hệ bao gồm Quan hệ tĩnh 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 +Employer +$Employee Person Quan hệ Friend Quan hệ lớp Client xâm nhập thuộc tính thao tác 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 Bài - 38 Đặc tả quan hệ lớp Đặc tả chi tiết quan hệ bao gồm Phạm vi kết hợp (Qualifier) Sử dụng qualifier để giảm phạm vi kết hợp Company PersonID : Integer Person Phần tử liên kết 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 Bài - 39 Tóm tắt Bài xem xét vấn đề sau 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 Bài - 40 ...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... nhóm đối tượng Thí dụ lớp: Lớp Employee Lớp xác định thông tin 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... lý phát sinh mã trình Mô hình hóa liệu 10 Bài học thực nghiệm Bài - 2/40 Bài Biểu đồ lớp gói Lớp gì? Đố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 Thí