Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 7: Thiết kế hướng đối tượng
?Vấn đề tồn tại trong h-ớng kiến trúc
?Khái niệm liên quan đến đối t-ợng
?Ngôn ngữ UML
?Phân tích h-ớng đối t-ợng
?Thiết kế h-ớng đối t-ợng
?Sử dụng mẫu thiết kế
mụn Cụng nghệ phần mềm – ĐHCN 23 NguyễnVănVỵ e. Ngôn ngữ mô hình hóa thống nhất Unified Modeling Language Là một ngụn ngữ mụ hỡnh để phỏt triển phần mềm hướmg đối tượng Cỏc đặc trưng: UML là ngụn ngữ: độ họa làm trực quan húa đặc tả xõy dựng mụ hỡnh làm tài liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 24 NguyễnVănVỵ Gồm 3 khối cơ bản: A. Các sự vật (things) 1. Các sự vật cấu trúc (structural) 2. Các sự vật hμnh vi (behavioral) 3. Các sự vật nhóm gộp(grouping) 4. Các sự vật giải thích (annotational) B. Các quan hệ (Relationships) C. Các biểu đồ (Diagrams) Ngôn ngữ mô hình hóa thống nhất Bộ mụn Cụng nghệ phần mềm – ĐHCN 25 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất Các sự vật cấu trúc (structural) Class –lớp use ase –ca sử dụng Collaboration sự cộng tác Node - nútActor Interface Component-thμnhfần Đặt hàng Window origin open() Đặt hàng orderform.java Server Bộ mụn Cụng nghệ phần mềm – ĐHCN 26 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất Các sự vật hμnh vi , nhóm gộp, giải thích interaction state machine package Note display đợi + OrderForm + Tracking FormOrde Client Class Tự tạo Bộ mụn Cụng nghệ phần mềm – ĐHCN 27 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất B. Các mối quan hệ dependence assosiation generalization compositerealization aggregation 0..1 1..* Bộ mụn Cụng nghệ phần mềm – ĐHCN 28 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. Các biểu đồ Gọiđiệnthoại đặt hội nghi Trảlời “use” “extend” Biểu đồ cửa sa sử dụng Bộ mụn Cụng nghệ phần mềm – ĐHCN 29 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. Các biểu đồ Biểu đồ cửa công tác phân tích Giaodiện rúttiền Giaodiệnnhậntiền tμi khoản lịch sử tμi khoản điều khiển rút tiền Bộ mụn Cụng nghệ phần mềm – ĐHCN 30 NguyễnVănVỵ TransportAgent Message IncomingQueue OutgoingQueue Queue c:company d1:Department name =“Sale” d2:Department name=“R&D” d3:Department name = “US Sales” p: Person name=“Exin” Biểu đồ lớp Biểu đồ đối t−ợng Ngôn ngữ mô hình hóa thống nhất Bộ mụn Cụng nghệ phần mềm – ĐHCN 31 NguyễnVănVỵ C. Các biểu đồ Biểu đồ tuần tự :message :OutgoingQueue create ad dMessage :TranAgent RemoveMessage Ngôn ngữ mô hình hóa thống nhất Bộ mụn Cụng nghệ phần mềm – ĐHCN 32 NguyễnVănVỵ C. Các biểu đồ waiting GettingToken GettingBody Biểu đồ trạng thái Ngôn ngữ mô hình hóa thống nhất Bộ mụn Cụng nghệ phần mềm – ĐHCN 33 NguyễnVănVỵ Phân tích/thiết kế h−ớng đối t−ợng Mô hình phân tích Mô hình nghiệp vụ yMô hình miền yBiểu đồ hoạt động Mô hình ca sử dụng Mô hình lớp phân tích Mô hình gói lớp Mô hình thiết kế Mô hình cấu trúc gói Mô hình cộng tác Mô hình lớp đặc tả lớp, giao diện Bộ mụn Cụng nghệ phần mềm – ĐHCN 34 NguyễnVănVỵ Tiến trình phân tích-thiết kế DT Tiến trình phân tích vμ thiết kế h−ớng đối t−ợng Mô tả nghiệp vụ Lập mô hình ca sử dụng Lập mô hình kiến trúc-gói ca sử dụng Phân tích 1 gói ca sử dụng Phân gói các lớp phân tích Thiết kế hệ thống Lập biểu đồ công tác 1 gói phân tích Xây dựng các giao diện Lập biểu đồ lớp thiết kế Thiết kế lớp Thiết kế CSDL Thiết kế giao diện sử dụng Nghiệp vụ Phân tích Thiết kế Bộ mụn Cụng nghệ phần mềm – ĐHCN 35 NguyễnVănVỵ Phân tích h−ớng đối t−ợng 1.Mô tả nghiệp vụ Bằng lời Bằng biểu đồ hoạt đông 2.Xây dựng mô hình nghiệp vụ Mô hình miền lĩnh vực Mô hình ca sử dụng 3.Phân tích xác định cấu trúc (khởi thảo) Lμm mịn mô hình ca sử dụng Xác định các gói ca sử dụng, giao diện Bộ mụn Cụng nghệ phần mềm – ĐHCN 36 NguyễnVănVỵ 1.Phân tích một ca sử dụng Tìm các lớp phân tích Xác định liên kết giữa các lớp 2.Phân gói lại các lớp phân tích (tăng c−ờng kiến trúc) Tách các lớp dịch vụ & ứng dụng Phân gói các lớp phân tích theo tầng 3.Xác định vμ mô tả các giao diện Xác đinh giao diện giữa các gói Xác định liên kết giữa các gói Phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 37 NguyễnVănVỵ Thiết kế h−ớng đối t−ợng 1.Thiết kế biểu đồ t−ơng tác mỗi gói Xác định lại các lớp Xây dựng biểu đồ t−ơng tác 2.Phát triển biểu đồ lớp thiết kế Chuyển biểu đồ công tác sang biểu đồ lớp Hoμn thiện các quan hệ công tác 3.Thiết kế các lớp Thiết kế các thuộc tính Thiết kế các ph−ơng thức Thiết kế CSDL 4.Thiết kế giao diện ng−ời dùng Bộ mụn Cụng nghệ phần mềm – ĐHCN 38 NguyễnVănVỵ Ví dụ: phân tích h−ớng đối t−ợng 1.Bμi toán: giao dịch tín dụng sử dụng máy ATM 2.Mô hình nghiệp vụ Giao dịch tín dụng gửi tiền rút tiền Chuyển tiền Biểu đồ ca sử dụng Mô hình miền ngân hàng tài khoảnkhách dịch vụ 1 1..*1..* 1 1..* 1 1 11 1..* Bộ mụn Cụng nghệ phần mềm – ĐHCN 39 NguyễnVănVỵ Xác định gói các ca sử dụng gửi tiền Biểu đồ gói ca sử dụng gửi tiềngửi tiền Giao dịch tín dụng Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 40 NguyễnVănVỵ Phân tích một gói các ca sử dụng Mô hinh ca sử dụng Mô hình phân tích rút tiền thực thi ca sử dụng rút tiền > Máy trả tiền giao diện thủ quỹ điều khiển rut tiền tài khoản Các lớp phân tích thực thi ca sử dụng rút tiền. Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 41 NguyễnVănVỵ Biểu đồ phân tích một gói ca sử dụng Các lớp phân tích vμ quan hệ giữa chúng Tài khoản giao diện thủ quỹ điều khiển rút tiền Máy trả tiền Khách hàng Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 42 NguyễnVănVỵ giao diện thủ quỹ điều khiển chuyển tiền Máy trả tiền Máy nhận tiền điều khiển nhận tiền điều khiển rút tiền chuyển đổi tμi khoản Tμi khoản Các gói của các lớp phân tích khách hμng Biểu đồ gói các lớp phân tích Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 43 NguyễnVănVỵ Thiết kế hệ thống Máy khách Máy dịch vụ ứng dụng Máy dịch vụ ngân hàng internet intranet Biểu đồ bố trí các nút của hệ thống khách hàng Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 44 NguyễnVănVỵ Biểu đồ các lớp thiết kế Màn hình hiển thị Bàn phím Máy đọc thẻ cảm ứng trả tiền Máy đẩy tiền Máy đếm tiền rút tiền quản lý giao dịch Tài khoản lịch sủ tài khoản quản lý tài khoản quản lý khách Các lớp thiết kế tham gia thực hiện ca sử dụng rút tiền Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 45 NguyễnVănVỵ : quản lý giao dịch đưa thẻ vμo Thông tin thẻ (ID) Yêu cầu hiển thi PIN hiện bảng yêu cầu nhập vμo mã PIN hiện bảng yêu cầu nhập vμo số tiền rút Yêu cầu số tiền rút số tiền (A) Yêu cầu số tiền mặt (A) Yêu cầu giảm số dư = (A) đề nghi xác nhận PIN mã PIN Biểu đồ tuần tự thực hiện ca sử dụng rút tiền : khỏch hàng : mỏy đếm tiền : quản lý khỏch : màn hỡnh hiển thi : mỏy đọc thẻ : bàn phớm Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 46 NguyễnVănVỵ Thiết kế lớp: tμi khoản a. Bảng các thuộc tính : Tên thuộc tính kiểu Nội dung IDtaikh string Định danh tμi khoản sotkh string Số tμi khoản dμnh cho một khách hμng gồm chữ, số, dấu sodu money Số d− có trong tμi khoản, đơn vị đo lμ tiền tệ Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 47 NguyễnVănVỵ Thiết kế lớp: Tμi khoản b. Bảng các thao tác (tác vụ) Tên thao tác ý nghĩa taolap() Tạo một tài khoản cho khách hàng mới gui() Bổ sung tiền gửi vào tài khoản chuyen() Chuyển một số tiền từ 1 tài khoản sang 1 tài khoản khác rut() Rút một số tiền từ tài khoản dong() Đóng tài khoản Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 48 NguyễnVănVỵ Thiết kế lớp Lớp tμi khoản với các thuộc tính vμ các thao tác taolap (sotkh:string, sotien;money) + gui(sotkh:string, soien:money) + chuyen(sotkh:stringk, sotien:money, sotkh2:string) + rut (sotk:h:string, sotien;money) dong() Taikhoan IDtaikh:string sotaikh: string sodu: money Ví dụ: Thiết kế h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 49 NguyễnVănVỵ Mẫu thiết kế - Pattern Mẫu thiết kế: Pattern khi thiết kế có nhiều tr−ờng hợp có sự t−ơng tự Mô tả giải pháp của một tr−ờng chung có thể áp cho tr−ờng hợp khác t−ơng tự gọi lμ mẫu thiết kế Mô tả một mẫu bao gồm: Vấn đề đặt ra (ngữ cảnh) Giải pháp: phát biểu nh− một châm ngôn Kết quả Các mẫu liên quan Mô hình mẫu Bộ mụn Cụng nghệ phần mềm – ĐHCN 50 NguyễnVănVỵ Ví dụ một số mẫu thiết kế Bản chất mẫu Mẫu thiết kế không phải lμ cái gì mới mẻ Mẫu thiết kế lμ một sự đúc kết từ kinh nghiệm 5 mẫu phần mềm gán trách nhiệm chung GRASP thường được sử dụng nhiều nhất lμ: Expert (chuyên gia) Creator (bộ tạo lập) Low Coupling (ghép nối thấp) HighCohension (kết dính cao) Controller (bộ điều khiển) Bộ mụn Cụng nghệ phần mềm – ĐHCN 51 NguyễnVănVỵ Ví dụ một số mẫu thiết kế Mô hình mẫu của mẫu chuyên gia Vấn đề: Nguyên tắc gán trách nhiệm cho 1 đối t−ơng lμ gì? Giải pháp: Hãy gán trách nhiệm cho đối t−ợng có đủ thông tin để thực hiện tráchnhiệm đó Kết quả: Giảm sự phụ thuộc vμo lớp khác Mẫu liên quan: kết dính cao, ghép nối lỏng Bộ mụn Cụng nghệ phần mềm – ĐHCN 52 NguyễnVănVỵ Ví dụ một số mẫu thiết kế Mô hình mẫu chuyên gia: bμi toán bán hμng Gán trách nhiệm cho mathangban tính tổng tiền bán 1 mặt hμng tienIterm(upc, soluong) vì nó có thông tin soluong vμ lấy giá từ danhmuc Gán trách nhiệm cho lanban tính tổng tiền một lần bán tongtien(sott) vì nó biết số tiền từng mặt hμng thuộc lần bán lanban sott: int ngay: date taoSale( ) tongtien(sott) mathangban upc: string sott: int soluong: int taoIterm( ) tienIterm(upc,soluong,p) danhmuc upc: string mota: string gia: int taoDM( ) layGia(upc) Bộ mụn Cụng nghệ phần mềm – ĐHCN 53 NguyễnVănVỵ Lợi ích sử dụng mẫu thiết kế Cho ta giải pháp của vấn đề không cần tìm kiếm Dùng lại cái đã có, đỡ tốn thời gian vμ công sức Cho thiết kế tốt vμ chất l−ợng hệ thống cao Bộ mụn Cụng nghệ phần mềm – ĐHCN 54 NguyễnVănVỵ Câu hỏi và thảo luận
File đính kèm:
- Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 7 Thiết kế hướng đối tượng.pdf