Bài giảng Phân tích thiết kế hệ thông - Chương 6: Thiết kế hướng đối tượng - Từ Thị Xuân Hiền

Giới thiệu

Có hai loại sơ đồ dùng để biểu diễn sự tương tác giữa các đối tượng bằng các thông điệp (messages):

Collaboration diagrams

Sequence diagrams

 

pptx 43 trang yennguyen 2920
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích thiết kế hệ thông - Chương 6: Thiết kế hướng đối tượng - Từ Thị Xuân Hiền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phân tích thiết kế hệ thông - Chương 6: Thiết kế hướng đối tượng - Từ Thị Xuân Hiền

Bài giảng Phân tích thiết kế hệ thông - Chương 6: Thiết kế hướng đối tượng - Từ Thị Xuân Hiền
Chương 6 Thiết kế hướng đối tượng 
Các sơ đồ tương tác trong UML 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
2 
Giới thiệu 
Có hai loại sơ đồ dùng để biểu diễn sự tương tác giữa các đối tượng bằng các thông điệp (messages): 
Collaboration diagrams 
Sequence diagrams 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
3 
Collaboration Diagrams 
Sơ đồ hợp tác - Collaboration diagrams 
Biểu diễn sự tương tác giữa các đối tượng mà trong đó các đối tượng có thể đặt tại bất kỳ vị trí nào. 
Thông điệp tương tác được đánh số thứ tự thể hiện trình tự tương tác. 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
4 
Collaboration Diagrams 
Ư u điểm 
Tiết kiệm không gian, dễ dàng thêm đối tượng mới vào sơ đồ 
Nhược điểm 
Khó khăn trong việc biểu diễn các thông điệp phức tạp 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
5 
Sequence Diagrams 
Sơ đồ tuần tự - Sequence diagrams 
Sơ đồ tuần tự được dùng phổ biến trong biểu diện sự tương tác giữa các đối tượng , trung vào việc trao đổi thông báo theo trình tự thời gian. 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
6 
Sequence Diagrams 
Ư u điểm 
Biểu diễn rõ ràng trình tự các thông điệp tương tác giữa các đối tượng, trong các trường hợp phức tạp 
Nhược điểm 
Chiếm không gian theo chiều ngang khi thêm đối tượng mới 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
7 
Các ký hiệu trong sơ đồ tương tác 
 Lớp (Classes) và thể hiện (Instances) 
Trong UML, một thể hiện ( instances) của một lớp (class) có ký hiệu giống như Lớp , nhưng tên của thể hiện (instances) được gạch chân . 
Ví dụ: 
Tên của một Instance là duy nhất trong sơ đồ, nếu không đặt tên thì đặt dấu : trước tên Lớp và gạch chân 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
8 
Class 
Instance 
Tên của Instance 
Các ký hiệu trong sơ đồ tương tác 
Ký hiệu biểu thức thông báo (Message) 
Cú pháp chuẩn cho các biểu thức thông báo trong UML: 
Ví dụ: 
spec := getProductSpect ( id) 
spec := getProductSpect ( id:ItemID) 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
9 
return := message ( parameter : parameterType) : returnType 
Các ký hiệu trong collaboration diagram 
Link : 
Là một liên kết có hướng giữa hai đối tượng , là một thể hiện của một quan hệ kết hợp. 
Có thể có nhiều thông báo trên cùng một Link và theo cả hai chiều 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
10 
Các ký hiệu trong collaboration diagram 
Messages to "self" or "this" 
Một thông báo được gửi từ một đối tượng để chính nó 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
11 
Các ký hiệu trong collaboration diagram 
Tạo một Instance 
Trong UML, quy ước thông báo tên create được dùng để tạo instance. 
Thông báo create có thể bao gồm các tham số , chỉ ra giá trị khởi tạo của instance. 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
12 
Các ký hiệu trong collaboration diagram 
Thông báo có điều kiện (Conditional Messages) 
Thông báo có điều kiện được biểu diễn theo định dạng: S ố thứ tự [ điều kiện ] . 
Thông báo này được chỉ gửi nếu biểu thức điều kiện có giá trị đúng. 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
13 
Các ký hiệu trong Sequence diagram 
Link : 
Khác với collaboration diagrams, trong sequence diagram không hiển thị Link giữa các đối tượng 
Thông báo (Message) 
Được biểu diễn bằng một biểu thức thông báo đặt trên đường thẳng có hướng chỉ chiều truyền thông báo. 
Các thông báo được tuần tự theo thời gian từ trên xuống 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
14 
Các ký hiệu trong Sequence diagram 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
15 
Các ký hiệu trong Sequence diagram 
Giá trị trả về của thông báo : có 2 cách để biểu diễn giá trị trả về của thông báo 
Dùng ký hiệu 
Dùng biến chứa giá trị trả về: returnValue=message() 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
16 
Các ký hiệu trong Sequence diagram 
Thông báo "self" hoặc "this“: 
Thông báo được gửi từ một đối tượng đến chính nó được biểu diễn bằng cách sử dụng một hộp kích hoạt (activation box) lồng nhau 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
17 
Các ký hiệu trong Sequence diagram 
Thông báo có điều kiện: 
Thông báo chỉ được gửi khi biểu thức điều kiện có giá trị đúng 
Cú pháp: 
[ Conditional expression] Message() 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
18 
Ví dụ 
Sơ đồ tuần tự của hành vi Kiểm tra tài khoản 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
19 
Thiết kế hướng đối tượng 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
20 
Nguyên tắc thiết kế hướng đối tượng 
Trong giai đoạn phân tích , yêu cầu của bài toán được mô hình hóa bằng domain model . 
Trong giai đoạn thiết kế , mục tiêu là xác định các lớp phần mềm và gán trách nhiệm cho các đối tượng sao cho đáp ứng được các yêu cầu của bài toán. 
GRASP là một phương pháp sử dụng các nguyên tắc thiết kế dựa trên mô hình (patterns) gán trách nhiệm. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
21 
Trách nhiệm - Responsibilities 
Trách nhiệm liên quan đến nghĩa vụ của một đối tượng về hành vi của nó . 
Trách nhiệm được gán vào lớp các đối tượng trong suốt giai đoạn thiết kế đối tượng. 
Có 2 loại trách nhiệm 
Doing 
Knowing 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
22 
Trách nhiệm - Responsibilities 
Doing 
Thực hiện một công việc, ví dụ, tạo đối tượng, thực hiện phép tính,  
Bắt đầu một hoạt động trong các đối tượng khác. 
Kiểm soát và điều phối các hoạt động trong các đối tượng khác. 
Knowing 
Biết về dữ liệu được đóng gói riêng 
Biết về những đối tượng liên quan 
Biết biết về những thông tin có thể lấy được và tính toán 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
23 
Phương thức - Methods 
P hương thức được thực hiện để hoàn thành trách nhiệm . 
Trách nhiệm được thực hiện bằng các phương thức . Phương thức có thể kết hợp với phương thức khác để thực hiện trách nhiệm 
Ví dụ 
Lớp Sale có thể dùng nhiều phương thức và hợp tác với các đối tượng khác để tính total, như gửi thông báo agetSubtotal lớp SalesLineltem yêu cầu tính Subtotal . 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
24 
Mô hình - Patterns 
N guyên tắc chung và các giải pháp đặc trưng được hệ thống hóa trong một định dạng cấu trúc mô tả các vấn đề và giải pháp được dùng để hướng dẫn thiết kế phần mềm , được gọi là Mô hình (Pattern) 
Tên của mô hình thường gồm 2 phần: Vấn đề và giải pháp 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
25 
GRASP là gì? 
GRASP (General Responsibility Assignment Software Patterns) 
Mô tả nguyên tắc cơ bản trong thiết kế hướng đối tượng, được biểu diễn dưới dạng các mô hình (Patterns) 
Các mẫu Grasp 
Information Expert 
Creator 
High Cohesion 
Low Coupling 
Controller 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
26 
Information Expert 
Giải pháp : Gán một trách nhiệm cho lớp mà chứa các thông tin cần thiết để thực hiện trách nhiệm. 
Ví dụ: trong domain model của hệ thống máy tính tiền, những lớp nào cần thiết để tính GrandTotal 
Lớp Sale có thể tính tổng của tất cả 
các instance của lớp SalesLineItem 
 Gán trách nhiệm tính GrandTotal 
Cho lớp Sale 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
27 
Information Expert 
Ví dụ (tt): 
Thông tin thiết để tính Subtotal là quantitytrong lớp SalesLineltem. và price trong lớp ProductSpecification. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
28 
Information Expert 
Ví dụ (tt): 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
29 
Creator 
Giải pháp : gán lớp B có trách nhiệm tạo ra một thể hiện của lớp A nếu một hoặc nhiều điều sau đây là đúng: 
B gộp các đối tượng A 
B chứa đối tượng A . 
B ghi một thể hiện của các đối tượng A 
B có các dữ liệu khởi tạo được thông qua A khi nó được tạo ra . 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
30 
Creator 
Vấn đề : Ai phải chịu trách nhiệm cho việc tạo ra một thể hiện mới của một số lớp? 
Ví dụ: ai sẽ chịu trách nhiệm cho việc tạo ra một thể hiện của SalesLineltem ? 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
31 
Creator 
Vd(tt): vậy việc gán trách nhiệm yêu cầu phương thức makeLineltem được định nghĩa trong lớp Sale . 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
32 
 Low Coupling 
Low coupling : là liên kết có độ phụ thuộc thấp, các phần tử có low coupling bao gồm: classes , subsystems, systems 
Vấn đề: Làm thế nào để hỗ trợ độ phụ thuộc thấp, tác động thay đổi thấp, và tăng tái sử dụng ? 
Ví dụ: các lớp trong hệ thống máy tính tiền 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
33 
Payment 
Register 
Sale 
Low Coupling 
Ví dụ(tt): lớp nào thực hiện trách nhiệm tạo một thể hiện của lớp Payment? 
Lớp Register có thể thực hiện tạo (creating) một Payment và gửi một thông báo addPayment(p) đến lớp Sale 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
34 
Low Coupling 
Ví dụ(tt): một giải pháp khác cho việc tạo các thể hiện mới của Payment là kết hợp lớp Payment và Sale 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
35 
Low Coupling 
Mẫu thiết kế 1: 
Register tạo (create) một thể hiện của Payment , thêm kết ghép (coupling) với Payment 
Mẫu thiết kế 2: 
Sale tạo (create) một thể hiện của Payment , không làm tăng coupling. 
 Mẫu t hiết kế 2 là thích hợp hơn vì lower coupling đ ược duy trì 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
36 
High Cohesion 
Cohesion : trong thiết kế hướng đối tượng, cohesion (chức năng gắn kết) là một biện pháp làm thế nào để các phần tử liên quan chặt ch ẽ với nhau. 
Giải pháp : Gán một trách nhiệm để duy trì sự kết dính cao 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
37 
High Cohesion 
Ví dụ : giả sử cần tạo một thể hiện của Payment và kết hợp với lớp Sale . Lớp nào thực hiện trách nhiệm này? 
Theo mẫu create: lớp Register tạo Payment và gửi thông báo AddPayment(p) đến lớp Sale 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
38 
Lớp Register tham gia vào một phần trách nhiệm để hoàn thành các hoạt động của hệ thống makePayment 
High Cohesion 
Ví dụ (tt): giải pháp 2, ủy quyền trách nhiệm tạo thể hiện của Payment cho lớp Sale . 
Thiết kế thứ hai hỗ trợ high cohesion và low coupling 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
39 
Controller 
Controller: là một điều phối, nó không thực hiện công việc của chính nó mà ủy thác cho các đối tượng khác. 
Vấn đề: Ai chịu trách nhiệm xử lý sự kiện đầu vào? 
Giải pháp : Gán trách nhiệm cho đối tượng đại diện cho: 
Hệ thống hoặc hệ thống con (subsystem) 
Một kịch bản của Use mà trong đó xãy ra sự kiện của hệ thống ( use case controller) 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
40 
Controller 
Ví dụ: ai điều khiển các sự kiện của hệ thống như enterltem và endSalel 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
41 
Controller 
Ví dụ (tt): theo mẫu Controller thì có 2 lựa chọn 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
42 
Controller 
Hệ thống nhận sự kiện từ bên ngoài, thường liên quan đến một giao diện điều khiển bởi con người , hoặc một hệ thống khác. 
T rong thiết kế đối tượng, controller pattern hướng dẫn việc lựa chọn điều khiển sự kiện phù hợp . 
Controller nhận các yêu cầu dịch vụ từ các lớp giao diện và phối hợp thực hiệ n , bằng cách điều phối cho các đối tượng khác. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
43 

File đính kèm:

  • pptxbai_giang_phan_tich_thiet_ke_he_thong_chuong_6_thiet_ke_huon.pptx