Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ
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ế
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ", để 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 Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ
Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCN Email: vynv@coltech.vnu.vn Kỹ nghệ phần mềm Software Engeneering Nguyễn Văn Vỵ Bộ mụn Cụng nghệ phần mềm – ĐHCN 2 NguyễnVănVỵ Nội dung 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ế Bộ mụn Cụng nghệ phần mềm – ĐHCN 3 NguyễnVănVỵ TÀI LiỆU THAM KHẢO 1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giỏo trỡnh kỹ nghệ phần mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyễn Văn Vỵ. Phõn tớch thiết kế hệ thống thụng tin hiện đại. Hướng cấu trỳc và hướng đối tượng, NXB Thống kờ, 2002, Hà Nội. Bộ mụn Cụng nghệ phần mềm – ĐHCN 4 NguyễnVănVỵ Kiến trúc phần mềm truyền thống Bộ mụn Cụng nghệ phần mềm – ĐHCN 5 NguyễnVănVỵ Vấn đề của thiết kế h−ớng thủ tục Dữ liệu lμ chung cho cả hệ thống Mọi thủ tục thao tác trên CSDL chung, đặc tr−ng cho trạng thái toμn hệ thống Thao tác sai của 1 thủ tục lên dữ liệu gây sai lan truyền sang phần khác sử dụng dụng dữ liệu nμy Sửa đổi 1 thủ tục có nguy cơ ảnh h−ởng tới phần khác liên quan Thay đổi cấu trúc dữ liệu dẫn đến thay đổi tổng thể hệ thống ặ dữ liệu cần tổ chức tốt Hệ thống lớn, phức tạp: bảo trì khó khăn Bộ mụn Cụng nghệ phần mềm – ĐHCN 6 NguyễnVănVỵ Thiết kế h−ớng đối t−ợng- OOD Hiện đang trở nên phổ biến Lμ một cách tiếp cận khác, nhìn nhận hệ thống theo các quan điểm: tập các đối t−ợng có t−ơng tác với nhau mỗi đối t−ợng bao gói cả dữ liệu vμ các xử lý trên chúng T−ơng tác giữa các đối t−ờng bằng truyền thông báo Các đối t−ợng có thể kế thừa nhau Bộ mụn Cụng nghệ phần mềm – ĐHCN 7 NguyễnVănVỵ Ví dụ kiến trúc h−ớng đối t−ợng issue () sendReminder () acceptPayment () sendReceipt () invoice# date amount customer Invoice invoice# date amount customer# Receipt invoice# date amount customer# Payment customer# name address credit period Customer Bộ mụn Cụng nghệ phần mềm – ĐHCN 8 NguyễnVănVỵ Ưu điểm của OOD Dễ bảo trì: các đối t−ợng đ−ợc hiểu nh− các thực thể hoạt động độc lập Bao gói thông tin liên kết lỏng lẻo (trao đổi bằng truyền thông báo) Dễ tái sử dụng: độ độc lập cao có khả năng kế thừa Dễ hiểu: một vμi hệ thống, có sự ánh xạ t−ờng minh giữa thực thể thực thế giới thực vμ đối t−ợng hệ thống Bộ mụn Cụng nghệ phần mềm – ĐHCN 9 NguyễnVănVỵ Nội dung của OOD Xác định các tập đối t−ợng (gọi lμ lớp) vμ các đặc tr−ng của chúng Phân định vai trò vμ trách nhiệm của chúng trong hệ thống Thiết lập đ−ợc sự t−ơng tác của chúng để thực hiện chức năng của hệ thống phần mềm đặt ra Bộ mụn Cụng nghệ phần mềm – ĐHCN 10 NguyễnVănVỵ Các khái niệm của OOD d1. Đối t−ơng Lμ các trừu t−ợng hóa thực thể của thế giới thực hoặc của một hệ thống Bao gồm: định danh, các thuộc tính vμ các ph−ơng thức thao tác trên các dữ liệu thuộc tính của nó Độc lập vμ đóng gói trạng thái thể hiện bằng giá trị các thuộc tính của nó ở một thời điểm Cung cấo dịch vụ cho đối t−ợng khác hay yêu cầu các đối t−ợng khác thực hiện một dịch vụ Bộ mụn Cụng nghệ phần mềm – ĐHCN 11 NguyễnVănVỵ Lớp đối t−ợng Lớp đối t−ợng lμ khuôn mẫu để tạo ra tập đối t−ợng có các đặc tr−ng chung Lớp đối t−ợng có thể kế thừa thuộc tính vμ dịch vụ từ lớp đối t−ợng khác Lớp đ−ợc xác định bằng: Tên Bộ các thuộc tính Các ph−ơng thúc Sinh vien maSV hotenSV diachi lop Tao( ) Capnhat( ) Xoa( ) Bộ mụn Cụng nghệ phần mềm – ĐHCN 12 NguyễnVănVỵ Trừu t−ợng hóa Trừu t−ợng hóa cung cấp cái nhìn đơn giản đối với thực thể cần xử lý chỉ mô tả các tính chất chúng ta quan tâm che giấu các thông tin không cần thiết Đ−ợc cμi đặt nh− lμ: kiểu dữ liệu trừu t−ợng, lớp đối t−ợng các kiểu dữ liệu cơ sở có sẵn: int, double Bộ mụn Cụng nghệ phần mềm – ĐHCN 13 NguyễnVănVỵ Bao gói vμ che giấu thông tin Lμ khái niệm cơ sở của thiết kế/lập trình h−ớng đối t−ợng Che giấu thông tin để đối t−ợng không cần thiết không thể sử dụng Chỉ cung cấp chức năng, dịch vụ cần Che giấu các yếu tố có khả năng thay đổi cấu trúc dữ liệu cách thức cμi đặt Bộ mụn Cụng nghệ phần mềm – ĐHCN 14 NguyễnVănVỵ Cấu trúc dữ liệu Mô tả mối quan hệ giữa các khoản mục dữ liệu Cấu trúc vật lý chỉ ra cách thức ch−ơng trình thao tác với dữ liệu Các cấu trúc cơ sở khoản mục vô h−ớng mảng (một chiều, nhiều chiều) danh sách móc nối cây phân cấp Bộ mụn Cụng nghệ phần mềm – ĐHCN 15 NguyễnVănVỵ Ví dụ struct Date { int year, mon, day; }; struct Date { int year; int mon_and_day; } Bộ mụn Cụng nghệ phần mềm – ĐHCN 16 NguyễnVănVỵ Tổng quát hóa vμ kế thừa Một lớp có thể lμ lớp con của 1 lớp các đối t−ợng tổng quá hơn, vμ gọi lμ kế thừa của lớp tổng quát trên cây kế thừa, lớp cha (super class) có thể lμ tổng quát hóa của 1 số các lớp con (sub-class) Lớp con kế thừa các thuộc tính vμ ph−ơng thức của lớp cha vμ có thể thêm/thay đổi ph−ơng thức, thuộc tính Sử dụng kế thừa giúp ta mô tả lớp con chỉ gồm các đặc trung khác lớp cha Bộ mụn Cụng nghệ phần mềm – ĐHCN 17 NguyễnVănVỵ Ví dụ cây kế thừa Employee Programmer project progLanguage Manager Project Manager budgetsControlled dateAppointed projects Dept. Manager Strategic Manager dept responsibilities Bộ mụn Cụng nghệ phần mềm – ĐHCN 18 NguyễnVănVỵ Ưu điểm của kế thừa Lμ cơ chế trừu t−ợng để phân loại các lớp (thực thể) Tái sử dụng cả ở mức thiết kế vμ mức lập trình tái sử dụng cấu trúc dữ liệu tái sử dụng ph−ơng thức: ygiao diện ycμi đặt (mã) Biểu đồ kế thừa lμ nguồn thông tin mang tính tổ chức về bμi toán Bộ mụn Cụng nghệ phần mềm – ĐHCN 19 NguyễnVănVỵ T−ơng tác giữa các đối t−ợng state o3 o3:C3 state o4 o4: C4 state o1 o1: C1 state o6 o6: C1 state o5 o5:C5 state o2 o2: C3 ops1() ops3 () ops4 () ops3 () ops1 () ops5 () Bộ mụn Cụng nghệ phần mềm – ĐHCN 20 NguyễnVănVỵ T−ơng tác giữa các đối t−ợng Các đối t−ợng giao tiếp bằng trao đổi thông báo Thông báo Tên dịch vụ đ−ợc yêu cầu Thông tin dùng để thực hiện dịch vụ Các loại đối t−ợng actor: chỉ gửi thông báo agent: gửi vμ nhận thông báo server: chỉ nhận thông báo Thực tế, thông báo đ−ợc cμi đặt bằng lời gọi hμm Tên = tên hμm Thông tin = danh sách tham số Bộ mụn Cụng nghệ phần mềm – ĐHCN 21 NguyễnVănVỵ Một số vấn đề dùng kế thừa Đối t−ợng không tự chứa, không thể hiểu nếu không tham chiếu đến lớp cha Lạm dụng các sơ đồ kế thừa trong b−ớc phân tích có thể dẫn đến sự kém hiệu quả Bộ mụn Cụng nghệ phần mềm – ĐHCN 22 NguyễnVănVỵ Kế thừa vμ OOD Có hai quan niệm 1. Kế thừa lμ yếu tố cơ bản của OOD vμ đ−ợc cμi đặt thông qua các ngôn ngữ h−ớng đối t−ợng 2. Kế thừa sử dụng cơ chế đặc biệt để tái sử dụng thuộc tính vμ ph−ơng thức. Thiết kế kế thừa sẽ tạo ra các rμng buộc cho cμi đặt Kế thừa không dễ hiểu vμ do đó nên tránh, nhất lμ đối với các hệ thống đặc biệt quan trọng. Bộ 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:
- bai_giang_ky_nghe_phan_mem_bai_7_thiet_ke_huong_doi_tuong_ng.pdf