b10 pha thiet ke

21
 Công nghphn mm Pha thiết kế Ging viên:  TS. Nguyn Mnh Hùng  Hc vin Công nghBưu chính V in thông (PTIT)

Upload: bull-beo

Post on 18-Jul-2015

63 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 1/21

Công nghệ phần mềm

Pha thiết kế

Giảng viên: TS. Nguyễn Mạnh Hùng 

 Học viện Công nghệ Bưu chính Viễn thông (PTIT)

Page 2: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 2/212

Nội dung tham khảo từ 

Stephen R. Schach. Object-Oriented and Classical 

Software Engineering. Seventh Edition,WCB/McGraw-Hill, 2007

Page 3: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 3/213

Pha thiết kế (1)

Mục đích: Chuyển tài liệu phân tích dừ dạng đặc tả

nghiệp vụ hệ thống, sang dạng có thể cài đặtvà kiểm thử được

Page 4: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 4/214

Pha thiết kế (2)

Thực hiện: B1: Hoàn thiện sơ đồ lớp có được trong pha phân

tích → sơ đồ lớp chi tiết Thiết kế chi tiết hoạt động bên trong của các lớp, các

phương thức của lớp

Page 5: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 5/215

Hoàn thiện sơ đồ lớp (1)

Thực hiện: Định nghĩa kiểu thuộc tính cho lớp

Định nghĩa khuôn mẫu các phương thức cho lớp

Page 6: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 6/216

Hoàn thiện sơ đồ lớp (2)

Định nghĩa kiểu thuộc tính cho lớp: Tên thuộc tính đã xác định trong pha phân tích

Chọn kiểu dữ liệu cụ thể cho từng thuộc tính dựavào giới hạn lưu trữ của thuộc tính Điền thuộc tính (tên:kiểu) vào sơ đồ lớp

Page 7: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 7/217

Hoàn thiện sơ đồ lớp (3)

Ví dụ quỹ MSG:

Page 8: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 8/218

Hoàn thiện sơ đồ lớp (4)

Định nghĩa khuôn mẫu phương thức cho lớp: Dùng thẻ CRC để xác định phương thức nào nên

gán cho lớp nào Định nghĩa phuôn mẫu cho từng phương thức

Page 9: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 9/219

Hoàn thiện sơ đồ lớp (5)

Gán phương thức cho lớp: Nguyên lí A: Che giấu thông tin. Các thuộc tính của

lớp phải để dạng private → cần các phương thức

get/set tương ứng cho phép các đối tượng khác truynhập vào các thuộc tính này

 Áp dụng cho các lớp thực thể: các thuộc tính đểprivate, mỗi thuộc tính có một cặp phương thức

get/set tương ứng

Page 10: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 10/2110

Hoàn thiện sơ đồ lớp (6)

Gán phương thức cho lớp (tt): Nguyên lí B: Nếu có nhiều đối tượng X gọi đến một

hành động k của đối tượng Y, thì phương thức để

thực hiện hành động k nên gán cho lớp của đốitượng Y, mà không nên gán cho lớp của đối tượng X

 

Page 11: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 11/2111

Hoàn thiện sơ đồ lớp (7)

Gán phương thức cho lớp (tt): Nguyên lí C: Thiết kế hướng trách nhiệm. Nếu một

hành động mà không thể gán thành phương thức

cho lớp khác, thì lớp của đối tượng cần thực hiệnhành động đó phải chứa phương thức tương ứnghành động đó

 

Page 12: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 12/2112

Hoàn thiện sơ đồ lớp (8)

Ví dụ bài toánthang máy:

Thẻ CRC cholớp điều khiểnthang máy

 

Page 13: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 13/2113

Hoàn thiện sơ đồ lớp (9)

Ví dụ bài toán thang máy: Thao tác 1 và 2 → gán phương thức turnOn/turnOff 

cho lớp nút nhấn trong thang máy (nguyên lí B) Thao tác 3 và 4 → gán phương thức turnOn/turnOff 

cho lớp nút nhấn tại mỗi tầng (nguyên lí B) Thao tác 5 và 6 → gán phương thức

moveUp/moveDown cho lớp thang máy (nglí B)

Thao tác 7 và 9 → gán phương thức open/close cholớp cửa thang máy (nguyên lí B) Các thao tác 8, 10, 11 → gán phương thức cho

chính lớp điều khiển thang máy vì không gán được

cho lớp nào nữa (nguyên lí C) 

Page 14: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 14/2114

Hoàn thiện sơ đồ lớp (10)

Kết quả:

Page 15: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 15/2115

Hoàn thiện sơ đồ lớp (11)

Định nghĩa khuôn mẫu các phương thức: Kiểu dữ liệu trả về Số lượng, thứ tự và kiểu dữ liệu truyền vào

Ví dụ: Không nên định nghĩa phương thức lưu thông tin một

khoản đầu tư với các tham số là các thuộc tính:

public void saveInvestment(int id, string name...) Mà nên truyền vào là một kiểu đối tượng cửa lớp

khoản đầu tư đã đóng gói:

public void saveInvestment(Investment inv)

 

Page 16: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 16/2116

Thiết kế logic/thuật toán (1)

Thực hiện: Dùng sơ đồ trạng thái hữu hạn (statechart) biểu diễn

chi tiết thuật toán cho mỗi lớp/phương thức Mỗi ô chữ nhật là một trạng thái: định nghĩa các hành

động trong trạng thái đó theo cú pháp:

tên_phương_thức() Mỗi mũi tên chuyển trạng thái dự vào các sự kiện

gắn thành nhãn tương ứng của mũi tên

 

Page 17: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 17/2117

Thiết kế logic/thuật toán (2)

Ví dụ lớp điều khiển của thang máy:

Page 18: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 18/21

18

Thiết kế logic/thuật toán (3)

Ví dụ lớp nút nhấn của thang máy:

Page 19: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 19/21

19

Bài tập

Với mỗi modul cá nhân: Định nghĩa các thuộc tính và kiểu thuộc tính của mỗi

lớp Dùng kĩ thuật thẻ CRC và 3 nguyên lí thiết kế

phương thức để gán các phương thức cho các lớp Định nghĩa khuôn mẫu cho từng phương thức Điền tất cả vào sơ đồ lớp để thu được sơ đồ lớp chi

tiết Thiết kế thuật toán (dùng statechart) cho mỗi lớp của

sơ đồ lớp

Page 20: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 20/21

20

Bài tập nộp sau pha thiết kế

Với mỗi modul cá nhân: Vẽ lại sơ đồ UC chi tiết của hệ thống và của modul Vẽ lại sơ đồ các lớp sau pha phân tích

Định nghĩa các thuộc tính và kiểu thuộc tính của mỗilớp Dùng kĩ thuật thẻ CRC và 3 nguyên lí thiết kế

phương thức để gán các phương thức cho các lớp

Định nghĩa khuôn mẫu cho từng phương thức Điền tất cả vào sơ đồ lớp để thu được sơ đồ lớp chi

tiết Thiết kế thuật toán (dùng statechart) cho mỗi lớp của

sơ đồ lớp

Page 21: b10 Pha Thiet Ke

5/16/2018 b10 Pha Thiet Ke - slidepdf.com

http://slidepdf.com/reader/full/b10-pha-thiet-ke 21/21

Questions?