Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
1,06 MB
Nội dung
Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Chương 17 Mơ hình đối tượng 17.1 Lớp, đối tượng quan hệ – thành phần mơ hình Trong mơ hình hóa hướng đối tượng, phần tử cấu thành mơ hình lớp, đối tượng mối quan hệ chúng với Lớp đối tượng mơ hình hóa có hệ thống mà muốn miêu tả, mối quan hệ biểu thị cấu trúc Động tác phân lớp (classification) sử dụng từ hàng ngàn năm để đơn giản hóa việc miêu tả hệ thống phức tạp Khi lồi người biết đến việc lập trình hướng đối tượng để xây dựng hệ thống phần mềm lớp mối quan hệ chúng chuyển thành dòng code cụ thể 17.1.1 Đối tượng (Object) Một đối tượng tượng trưng cho thực thể, thực thể tồn giới đời thực thực thể mang tính khái niệm Một đối tượng tượng trưng cho cụ thể, ví dụ xe ô tô chở hàng bạn máy tính tơi, tượng trưng cho khái niệm ví dụ quy trình hóa học, giao dịch nhà băng, lời đặt hàng, thông tin q trình sử dụng tín dụng khách hàng hay tỷ lệ tiền lời Cũng có đối tượng (ví dụ đối tượng thực thi hệ thống phần mềm) không thật tồn giới thực, kết dẫn xuất từ trình nghiên cứu cấu trúc ứng xử đối tượng giới thực Những đối tượng đó, dù cách hay cách khác, liên quan đến quan niệm giới thực Một đối tượng khái niệm, trừu tượng hóa, đồ vật với ranh giới ý nghĩa định nghĩa rõ ràng cho ứng dụng Mỗi đối tượng hệ thống có ba đặc tính: trạng thái, ứng xử nhận diện 17.1.2- Trạng thái, ứng xử nhận diện đối tượng Trạng thái (state) đối tượng hồn cảnh nơi đối tượng tồn Trạng thái đối tượng thường thay đổi theo thời gian, định nghĩa qua tổ hợp thuộc tính, với giá trị thuộc tính mối quan hệ mà đối tượng có với đối tượng khác Ví dụ danh sách ghi danh cho lớp học hệ thống trường học có hai trạng thái: trạng thái đóng trạng thái mở Nếu danh sách sinh viên ghi danh cho lớp học nhỏ số tối đa cho phép (ví dụ 10), trạng thái bảng ghi danh mở Một đủ 10 sinh viên ghi danh cho lớp, danh sách chuyển sang trạng thái đóng Ứng xử (Behaviour) xác định đối tượng phản ứng trước yêu cầu từ đối tượng khác, tiêu biểu cho mà đối tượng làm Ứng xử thực thi qua loạt Phương thức (operation) đối tượng Trong ví dụ trường đại học, đối tượng bảng ghi danh lớp học có ứng xử bổ sung thêm sinh viên hay xóa tên sinh viên sinh viên đăng ký học hay bãi bỏ đăng ký Sự nhận diện (Identity) đảm bảo đối tượng – dù trạng thái giống với trạng thái đối tượng khác Ví dụ, khóa học đại số 101 chương Trang 151 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G khóa học đại số 101 chương hai đối tượng hệ thống ghi danh trường học Mặc dù hai thuộc loại bảng ghi danh, khóa học có nhận dạng 17.1.3 Lớp (Class) Một lớp lời miêu tả nhóm đối tượng có chung thuộc tính, chung phương thức (ứng xử), chung mối quan hệ với đối tượng khác chung ngữ nghĩa (semantic) Nói có nghĩa lớp khn mẫu để tạo đối tượng Mỗi đối tượng thực thể lớp đối tượng khơng thể kết thực thể hóa nhiều lớp Chúng ta sử dụng khái niệm lớp để bàn luận hệ thống để phân loại đối tượng mà nhận dạng giới thực Một lớp tốt nắm bắt trừu tượng hóa - phải có chủ đề Ví dụ, lớp vừa có khả giữ tất thông tin sinh viên thông tin tất lớp học mà người sinh viên trải qua nhiều năm trước lớp tốt, khơng có chủ đề Lớp cần phải chia làm hai lớp liên quan đến nhau: lớp sinh viên lớp lịch sử sinh viên Hình 17.1- Mỗi thực thể mơ hình lớp Khi tạo dựng mơ thật xây dựng hệ thống doanh nghiệp, hệ thống thơng tin, máy móc lọai hệ thống khác, cần sử dụng khái niệm phạm vi vấn đề để khiến cho mơ hình dễ hiểu dễ giao tiếp Nếu xây dựng hệ thống cho cơng ty bảo hiểm, mơ hình cần phải dựa khái niệm ngành bảo hiểm Nếu xây dựng hệ thống cho quân đội, khái niệm giới quân cần phải sử dụng mơ hình hóa hệ thống Một hệ thống dựa khái niệm ngành doanh nghiệp dễ thiết kế lại cho phù hợp với qui chế, chiến lược qui định mới, cần cân khắc phục chênh lệch công việc cũ cơng việc Khi mơ hình xây dựng dựa khái niệm lấy từ đời thực dựa khái niệm thuộc phạm vi vấn đề, hướng đối tượng phương pháp thích hợp tảng phương pháp hướng đối tượng lớp, đối tượng mối quan hệ chúng Một lớp lời miêu tả cho dạng đối tượng hệ thống – hệ thống thơng tin, hệ thống kỹ thuật, hệ thống nhúng thời gian thực, hệ thống phân tán, hệ thống phần mềm hệ thống doanh thương Các vật dụng (artifact) doanh nghiệp, thơng tin cần lưu trữ, phân tích vai trò mà tác nhân đảm nhận doanh nghiệp thường trở thành lớp hệ thống doanh nghiệp hệ thống thông tin Ví dụ lớp doanh nghiệp hệ thống thơng tin: Khách hàng, Bản thương thuyết, Hóa đơn, Món nợ, Tài sản, Bản cơng bố giá cổ phiếu Các lớp hệ thống kỹ thuật thường bao gồm đối tượng kỹ thuật, ví dụ máy móc sử dụng hệ thống: Sensor, Màn hình, I/O card, Động cơ, Nút bấm, Lớp điều khiển Các hệ thống phần Trang 152 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G mềm thường có lớp đại diện cho thực thể phần mềm hệ điều hành: File, Chương trình chạy được, Trang thiết bị, Icon, Cửa sổ, Thanh kéo 17.1.4- Biểu đồ lớp (Class diagram): Một biểu đồ lớp dạng mơ hình tĩnh Một biểu đồ lớp miêu tả hướng nhìn tĩnh hệ thống khái niệm lớp mối quan hệ chúng với Mặc dù có nét tương tự với mơ hình liệu, nên nhớ lớp thể cấu trúc thơng tin mà cịn miêu tả hình vi Một mục đích biểu đồ lớp tạo tảng cho biểu đồ khác, thể khía cạnh khác hệ thống (ví dụ trạng thái đối tượng hay cộng tác động đối tượng, biểu đồ động) Một lớp biểu đồ lớp thực thi trực tiếp ngôn ngữ hướng đối tượng có hỗ trợ trực tiếp khái niệm lớp Một biểu đồ lớp chỉ lớp, bên cạnh cịn có biến tấu khác chút đối tượng thật thực thể lớp (biểu đồ đối tượng) Hình 17.2-Mơ hình lớp UML Hình 5.3- Một lớp cụ thể với thuộc tính Để tạo biểu đồ lớp, ta phải nhận diện miêu tả lớp Một có số lượng lớp, ta xét đến quan hệ lớp với 17.2 Tìm lớp Hầu khơng có cơng thức chung cho việc phát lớp Đi tìm lớp cơng việc địi hỏi trí sáng tạo cần phải thực thi với trợ giúp chuyên gia ứng dụng Vì qui trình phân tích thiết kế mang tính vịng lặp, nên danh sách lớp thay đổi theo thời gian Tập hợp ban đầu lớp tìm chưa tập hợp cuối lớp sau thực thi biến đổi thành code Vì thế, thường người ta hay sử dụng đến khái niệm lớp ứng cử viên (Candidate Class) để miêu tả tập hợp lớp tìm cho hệ thống Có nhiều phương pháp khác để thực công việc Có phương pháp đề nghị tiến hành phân tích phạm vi toán, tất lớp thực thể (thuộc phạm vi toán) với mối quan hệ chúng với Sau nhà phát triển phân tích trường hợp sử dụng phân bổ trách nhiệm cho lớp mơ hình phân tích (analysis model), nhiều thay đổi chúng bổ sung thêm lớp Có phương pháp đề nghị nên lấy trường hợp sử dụng làm tảng để tìm lớp, trình phân bổ trách nhiệm mơ hình phân tích phạm vi toán bước bước thiết lập 17.2.1- Phân tích phạm vi tốn để tìm lớp: Q trình phân tích phạm vi tốn thường bắt đầu với khái niệm then chốt (Key Abstraction), công cụ thường sử dụng để nhận diện lọc lớp ứng cử viên (Candidate class) 17.2.1.1- Khái niệm then chốt Trang 153 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Hãy lấy ví dụ nhà băng ABC, điều ta nghĩ tới gì? Tiền! Bên cạnh đó, ABC cịn phải có thực thể liên quan tới tiền sau: Khách hàng, Sản phẩm (các tài khoản coi sản phẩm nhà băng), Lực lượng nhân viên, Ban quản trị nhà băng, Phịng máy tính nhà băng Những thực thể gọi khái niệm then chốt cho mà nhà băng có Khái niệm then chốt mang tính cấu trúc (structural) mang tính chức (functional) Thực thể mang tính cấu trúc thực thể vật lý tương tác với nhà băng, ví dụ khách hàng Thực thể mang tính chức chức mà nhà băng phải thực hiện, ví dụ trì tài khoản chuyển tiền từ tài khoản sang tài khoản khác Khái niệm then chốt thực thể ta để ý đến Chúng quan trọng giúp ta: Định nghĩa ranh giới vấn đề Nhấn mạnh đến thực thể có liên quan đến thiết kế hệ thống Loại bỏ thực thể nằm phạm vi hệ thống Các khái niệm then chốt thường trở thành lớp mô hình phân tích Một khái niệm then chốt tóm lại lớp hay đối tượng thuộc chuyên ngành phạm vi tốn Khi trình bày với người sử dụng, chúng có ánh xạ 1-1 với thực thể liên quan tới người sử dụng hóa đơn, sec, giấy đề nghị rút tiền, sổ tiết kiệm, thẻ rút tiền tự động, nhân viên thu ngân, nhân viên nhà băng, phòng ban,… Mức độ trừu tượng: Khi phân tích phạm vi tốn, cần ý mức độ trừu tượng khái niệm then chốt quan trọng, mức độ trừu tượng cao hay thấp dễ gây nhầm lẫn Mức trừu tượng cao dẫn tới định nghĩa khái quát thực thể, tạo nên nhìn vĩ mơ thường khơng nhắm vào mục tiêu cụ thể Ví dụ nhà băng, ta chọn khái niệm then chốt "người", dẫn đến lời miêu tả: "Một người đến nhà băng để gửi tiền vào, số tiền người khác tiếp nhận." – yêu cầu quan trọng phải phân biệt nhân viên với khách hàng chức họ khác hẳn Tương tự vậy, mức trừu tượng thấp dễ gây hiểu lầm, thơng tin q vụn vặt chưa thích hợp với thời điểm Ví dụ định dạng: Form mở tài khoản đòi hỏi tất 15 Entry Những liệu Form phải phải Khơng có nhiều chỗ để ghi địa khách hàng Form nên để dành cho giai đoạn sau Vài điểm cần ý khái niệm then chốt: Những thực thể xuất óc não thực thể dễ có khả trở thành khái niệm then chốt cho vấn đề định trước Mỗi lần tìm thấy khái niệm then chốt mới, cần xem xét theo cách nhìn vấn đề, hỏi câu hỏi sau: Những chức thực thực thể này? Điều khiến thực thể loại tạo ra? Nếu khơng có câu trả lời thích hợp, cần phải suy nghĩ lại thực thể Mỗi khái niệm then chốt cần phải đặt tên cho thích hợp, miêu tả chức khái niệm 17.2.1.2- Nhận dạng lớp đối tượng Nắm vững khái niệm lớp, tương đối dễ dàng tìm thấy lớp đối tượng phạm vi vấn đề Một nguyên tắc thô sơ thường áp dụng danh từ lời phát biểu toán thường ứng cử viên để chuyển thành lớp đối tượng Trang 154 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường Một số gợi ý thực tế cho việc tìm lớp phạm vi vấn đề: G Thứ nhất: Cần phải tập trung nghiên cứu kỹ: Các danh từ lời phát biểu toán, kiến thức chuyên ngành thuộc phạm vi toán, Trường hợp sử dụng Ví dụ lời phát biểu "Có số tài khoản mang lại tiền lãi", ta thấy có hai danh từ tài khoản tiền lãi Chúng lớp tiềm cho mơ hình nhà băng lẻ Thứ hai: cần ý đến nhóm vật thể hệ thống thời như: Các thực thể vật lý hệ thống: vật thể tương tác với hệ thống, ví dụ khách hàng Các vật thể hữu hình: vật thể vật lý mà ta nhìn sờ thấy Ví dụ cơng cụ giao thơng, sách vở, người, nhà,….Trong nhà băng ABC, tập sec, phiếu đề nghị rút tiền, sổ tiết kiệm, loại Form cần thiết Các kiện (Events): Một xe bị hỏng, cửa mở Trong nhà băng đáo hạn tài khoản đầu tư, tượng rút nhiều tiền mặt tài khoản bình thường Các vai trị (Role): Ví dụ mẹ, khách hàng, người bán hàng, … Trong nhà băng, vai trò nhân viên, nhà quản trị, khách hàng, Các tương tác (Interactions): Ví dụ việc bán hàng chuỗi tương tác bao gồm khách hàng, người bán hàng sản phẩm Trong nhà băng, việc mở tài khoản yêu cầu chuỗi tương tác nhân viên khách hàng Vị trí (Location): Một đồ vật người gán cho vị trí Ví dụ: Ơtơ nhà để xe Trong nhà băng ta thấy nhân viên thu ngân ln đứng cửa sổ Đơn vị tổ chức (Organisation Unit): Ví dụ phịng ban, phịng trưng bày sản phẩm, phận Trong nhà băng có phận tài khoản bình thường, phận tài khoản tiết kiệm, phận tài khoản đầu tư Bên cạnh đó, cịn nhiều câu hỏi khác giúp ta nhận dạng lớp Ví dụ : Ta có thơng tin cần lưu trữ cần phân tích khơng? Nếu có thơng tin cần phải lưu trữ, biến đổi, phân tích xử lý phương thức chắn ứng cử viên cho lớp Những thơng tin khái niệm cần phải ghi hệ thống kiện, giao dịch xảy thời điểm cụ thể Ta có hệ thống ngoại vi khơng? Nếu có, thường chúng đáng quan tâm tới tạo dựng mô hình Các hệ thống bên ngồi coi lớp chứa hệ thống tương tác với hệ thống Chúng ta có mẫu, thư viện lớp , thành phần thứ khác khơng? Nếu có mẫu, thư viện, thành phần từ dự án trước (xin bạn đồng nghiệp, mua từ nhà cung cấp) chúng thường chứa ứng cử viên lớp Có thiết bị ngoại vi mà hệ thống cần xử lý không? Mỗi thiết bị kỹ thuật nối với hệ thống thường trở thành ứng cử viên cho lớp xử lý loại thiết bị ngoại vi Chúng ta có phần cơng việc tổ chức khơng? Miêu tả đơn vị tổ chức công việc thực với lớp, đặc biệt mơ hình doanh nghiệp 17.2.1.3 Tổng kết nguồn thông tin cho việc tìm lớp: Nhìn chung, nguồn thơng tin cần đặc biệt ý tìm lớp : Các lời phát biểu yêu cầu,các Trường hợp sử dụng, trợ giúp chuyên gia ứng dụng, nghiên cứu hệ thống thời Loạt lớp nhận dạng qua thường gọi lớp ứng cử viên (Candidate Class) Ngoài ra, nghiên cứu hệ thống tương tự mang lại cho ta lớp ứng cử viên khác: Trang 155 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Khi nghiên cứu hệ thống thời, để ý đến danh từ khái niệm then chốt để nhận lớp ứng cử viên Không nên đưa lớp nhận diện lần vào mơ hình chúng nhắc lại theo tên gọi khác Ví dụ, hệ thống nhà băng coi khách hàng với nhiều vị trí khác nhiều khách hàng khác Cần ý phân tích lời miêu tả để tránh dẫn đến trùng lặp trình nhận diện lớp Có nhiều nguồn thơng tin mà nhà thiết kế cần phải ý tới thiết kế lớp làm vậy, ta tin khả tạo dựng mơ hình tốt Hình sau tổng kết nguồn thơng tin kể Hình 17.4 - Nguồn thơng tin hỗ trợ tìm lớp Các trường hợp sử dụng nguồn tốt cho việc nhận diện lớp đối tượng Cần nghiên cứu kỹ Trường hợp sử dụng để tìm thuộc tính (attribute) báo trước tồn đối tượng lớp tiềm Ví dụ Trường hợp sử dụng yêu cầu phải đưa vào số tài khoản (account-number) điều trỏ tới tồn đối tượng tài khoản Một nguồn khác để nhận lớp/đối tượng Input Output hệ thống Nếu Input bao gồm tên khách hàng tín hiệu cho biết tồn đối tượng khách hàng, attribute khách hàng Nói chuyện với người sử dụng gợi mở đến khái niệm then chốt Thường người sử dụng miêu tả hệ thống theo lối cần phải đưa vào mong chờ kết Thơng tin đưa vào kết theo lối miêu tả người sử dụng cần phải tập hợp lại với để nhận dạng khái niệm then chốt 17.2.2- Các lớp ứng cử viên: Theo bước kể phần đầu giai đoạn phân tích, ta miêu tả số lớp khác Những lớp gọi lớp ứng cử viên, chúng thể lớp có khả tồn hệ thống cho trước Mặc dù vậy, chưa phải kết chung cuộc, số lớp ứng cử viên bị loại bỏ bước sau khơng thích hợp Giai đoạn đầu định nghĩa lớp ứng cử viên, ta chưa nên cố gắng lọc lớp, tập trung cáo mục tiêu nghiên cứu bao qt tồn diện từ nhiều nguồn thơng tin khác để khơng bỏ sót nhiều khía cạnh cần xử lý Ví dụ nhà băng lẻ, lớp ứng cử viên là: Khách hàng, loại tài khoản khác nhau, Sec, sổ tiết kiệm, đơn, …., phiếu yêu cầu mở tài khoản mới, thẻ ATM, in thông tin tài khoản, giấy chứng nhận tài khoản đầu tư, thẻ xếp hàng (Token), số thứ tự, Nhân viên, Nhân viên thu ngân 17.2.3- Loại bỏ lớp ứng cử viên khơng thích hợp: Có nhiều loại lớp ứng cử viên khơng thích hợp cần phải loại bỏ: Trang 156 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Lớp dư, thừa: Khi có lớp định nghĩa thực thể, nên giữ lại lớp tốt loại bỏ lớp khác Ví dụ, nhà băng có hai lớp chủ tài khoản khách hàng Cả hai lớp biểu thực thể cần giữ lại Lớp khơng thích hợp: Lớp định nghĩa thực thể khơng liên quan đến vấn đề thực Mọi lớp không xuất phát từ phạm vi ứng dụng cần phải loại bỏ Ví dụ, lớp máy đếm tiền bên casse nhà băng ứng cử viên cho khái niệm lớp khơng thích hợp Lớp khơng rõ ràng: Lớp khơng có chức cụ thể gọi lớp không rõ ràng Lớp tồn có giá trị sử dụng hệ thống lớp có chức nhận diện xác định rõ ràng Các lớp không rõ ràng cần phải định nghĩa lại loại bỏ Ví dụ quan sát nhiều phận khác nhà băng ABC Một phận nhận diện phận hành Vì phạm vi cho q trình vi tính hóa nhà băng thời chưa bao gồm mảng hành nên lớp coi lớp khơng rõ ràng (vì khơng có chức rõ ràng hệ thống cần xây dựng trước mắt) Tương tự, thuộc tính phương thức khơng rõ ràng cần phải loại khỏi danh sách lớp ứng cử viên Chúng khơng cần phải bị xố hẳn, cần đưa ngồi để ta nhìn rõ lớp cần thiết nhận diện Các ứng xử sau gán cho lớp thích hợp Các lớp vai trò (Role) lớp khác: Hãy loại bỏ tất vai trò giữ lại lớp Ví dụ nhà quản trị, nhân viên thu ngân, người chạy giấy vai trị lớp nhân viên Hãy giữ lại lớp nhân viên loại bỏ tất lớp khác vai trị Một lớp khơng cung cấp ứng xử cần thiết thuộc tính cần thiết lớp khơng cần thiết Nhiều khi, có lớp chẳng cung cấp thuộc tính ứng xử mà định nghĩa tập hợp mối quan hệ Những lớp cần phải nghiên cứu kỹ để xác định liên quan với hệ thống Ví dụ khách hàng định nghĩa khách hàng quan trọng hay khách hàng bình thường tùy theo mối quan hệ mà có với nhà băng tư cách chủ nhân tài khoản Tất cơng cụ xây dựng (Implementation constructs) ví dụ stack, arrays, link lists,…cần phải đưa khỏi mơ hình phân tích Chúng dùng tới giai đoạn xây dựng phần mềm Một lớp có tên mang tính động từ đơn giản hàm khơng phải lớp Ví dụ "rút tiền" không cần phải coi lớp, chức lớp Lớp có hàm miêu tả việc thực chức đơn giản hàm, trình trừu tượng hóa liệu (data abstraction) chưa thực đầy đủ Lớp khơng có hàm thiếu sót mơ hình Vấn đề hàm thành phần (phương thức) lớp chưa suy nghĩ thấu đáo 17.3- Lớp đối tượng UML UML thể lớp hình chữ nhật có phần Phần thứ chứa tên lớp Trong phần thứ hai thuộc tính liệu thành phần lớp phần thứ ba phương thức hay hàm thành phần lớp 17.3.1- Tên lớp (class name) Tên lớp in đậm (bold) Tên lớp phải dẫn xuất từ phạm vi vấn đề rõ ràng Vì danh từ, ví dụ tài khoản, nhân viên, Trang 157 Giáo trình: Phân tích thiết kế hệ thống 17.3.2- Thuộc tính (attribute): Giảng viên: Lê Đắc Nhường G Lớp có thuộc tính miêu tả đặc điểm đối tượng Giá trị thuộc tính thường dạng liệu đơn giản đa phần ngôn ngữ lập trình hỗ trợ Integer, Boolean, Floats, Char, … Thuộc tính có nhiều mức độ trơng thấy (visibility) khác nhau, miêu tả liệu thuộc tính truy xuất từ lớp khác, khác với lớp định nghĩa Nếu thuộc tính có tính trơng thấy cơng cộng (public), nhìn thấy sử dụng ngồi lớp Nếu thuộc tính có tính trơng thấy riêng (private), bạn khơng thể truy cập từ bên ngồi lớp Một tính trơng thấy khác bảo vệ (protected), sử dụng chung với công cụ khái quát hóa chuyên biệt hóa Nó giống thuộc tính riêng thừz kế lớp dẫn xuất Trong UML, thuộc tính cơng cộng mang kí hiệu "+" thuộc tính riêng mang dấu "-" Giá trị gán cho thuộc tính cách để miêu tả trạng thái đối tượng Mỗi lần giá trị thay đổi biểu cho thấy xảy thay đổi trạng thái đối tượng Lưu ý: Mọi đặc điểm thực thể thông tin cần lưu trữ chuyển thành thuộc tính lớp miêu tả loại thực thể 17.3.3- Phương thức (methods) Phương thức định nghĩa hoạt động mà lớp thực Tất đối tượng tạo từ lớp có chung thuộc tính phương thức Phương thức sử dụng để xử lý thay đổi thuộc tính thực công việc khác Phương thức thường gọi hàm (function), chúng nằm lớp áp dụng cho đối tượng lớp Một phương thức miêu tả qua tên, giá trị trả danh sách nhiều tham số Lúc thi hành, phương thức gọi kèm theo đối tượng lớp Vì nhóm phương thức miêu tả dịch vụ mà lớp cung cấp nên chúng coi giao diện lớp Giống thuộc tính, phương thức có tính trơng thấy cơng cộng, riêng bảo vệ Hình 17.5 Một lớp với thuộc tính tiêu biểu Hình 17.7- Một lớp với thuộc tính gía trị Hình 17.6- Một lớp với thuộc tính chung riêng Hình 17.8- Một lớp gồm thuộc tính với gía trị thuộc tính phạm vi lớp Trang 158 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Hình 17.9- Một thuộc tính với liệt kê gía trị (status) 17.3.4- Kí hiệu đối tượng Đối tượng thực thể lớp nên kí hiệu dùng cho đối tượng kí hiệu dùng cho lớp Hình 17.10-Ký hiệu đối tượng Hình đọc sau: CAH đối tượng lớp AccountHolder Các thuộc tính gán giá trị, giá trị lớp thực thể hóa Chú ý kí hiệu đối tượng khơng chứa phần phương thức Hình 17.11- Các dấu hiệu hành động Hình 17.12- Các giá trị tham số 17.4- Quan hệ lớp Biểu đồ lớp thể lớp mối quan hệ chúng Quan hệ lớp gồm có bốn loại: Liên hệ (Association) Trang 159 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường Khái quát hóa (Generalization) G Phụ thuộc (Dependency) Nâng cấp (Refinement) Một liên hệ nối kết lớp, có nghĩa nối kết đối tượng lớp Trong UML, liên hệ định nghĩa mối quan hệ miêu tả tập hợp nối kết (links), nối kết định nghĩa liên quan ngữ nghĩa (semantic connection) nhóm đối tượng Khái quát hóa mối quan hệ yếu tố mang tính khái quát cao yếu tố mang tính chuyên biệt Yếu tố mang tính chun biệt chứa thơng tin bổ sung Một thực thể (một đối tượng thực thể lớp) yếu tố mang tính chuyên biệt sử dụng nơi mà đối tượng mang tính khái quát hóa phép Sự phụ thuộc mối quan hệ yếu tố, gồm yếu mang tính độc lập yếu tố mang tính phụ thuộc Một thay đổi yếu tố độc lập ảnh hưởng đến yếu tố phụ thuộc Một nâng cấp mối quan hệ hai lời miêu tả vật, mức độ trừu tượng hóa khác 17.5 Liên hệ (Association) Một liên hệ nối kết lớp, liên quan ngữ nghĩa đối tượng lớp tham gia Liên hệ thường thường mang tính hai chiều, có nghĩa đối tượng có liên hệ với đối tượng khác hai đối tượng nhận thấy Một mối liên hệ biểu thị đối tượng hai lớp có nối kết với nhau, ví dụ "chúng biết nhau", "được nối với nhau", "cứ X lại có Y", Lớp liên hệ lớp công cụ mạnh mẽ cho việc mơ hình hóa hệ thống phức tạp, ví dụ cấu trúc sản phẩm, cấu trúc văn tất cấu trúc thông tin khác Mối liên kết thể biểu đồ UML đường thẳng nối hai lớp Hình 17.13-Một lớp Author kết hợp với lớp Computer 17.5.1- Vai trò liên hệ Một liên hệ có vai trị (Roles) Các vai trò nối với lớp bao chứa quan hệ Vai trò lớp chức mà đảm nhận nhìn từ góc nhìn lớp Tên vai trò viết kèm với mũi tên từ hướng lớp chủ nhân ra, thể lớp đóng vai trị lớp mà mũi tên đến Hình 17.14- Vai trị liên hệ Customer Account Trong ví dụ trên: khách hàng chủ nhân tài khoản tài khoản chiếm giữ khách hàng Đường thẳng thể liên hệ hai lớp Trang 160 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường Một số điểm cần ý đặt tên vai trò : G Tên vai trị bỏ trùng với tên lớp Tên vai trò phải Tên vai trò phải khác với thuộc tính lớp Tên vai trị phải miêu tả chức mà lớp đảm nhận quan hệ, tức cần phải khái niệm lấy từ phạm vi vấn đề, giống tên lớp 17.5.2- Liên hệ chiều (Uni-Directional Association) Ta sử dụng mối liên hệ chiều cách thêm mũi tên đầu đường thẳng nối kết Mũi tên nối kết sử dụng theo chiều mũi tên Hình 17.15- Liên hệ chiều Interest Account Biểu đồ phần 17.15 thể hai lớp có liên hệ, khơng có thông tin số lượng đối tượng quan hệ Ta khơng thể biết khách hàng có tài khoản tài khoản chung cho khách hàng Trong UML, loại thông tin gọi số lượng phần tử (Cardinality) quan hệ 17.5.3- Số lượng (Cardinality) liên hệ Hình 17.16- Số lượng liên hệ Customer Account Biểu đồ nói rõ khách hàng mở nhiều tài khoản tài khoản thuộc ba khách hàng Số lượng ghi phía đầu đường thẳng thể liên hệ, sát vào lớp miền áp dụng Phạm vi số lượng phần tử liên hệ từ 0-tới-1 (0 1), 0-tới-nhiều (0 * hay ), một-tới-nhiều (1 ), hai (2), năm-tới-mười (5 11) Cũng miêu tả dãy số ví dụ (1,4,6, 12) Giá trị mặc định Hình 17.17- Một sơ đồ lớp tiêu biểu Hình ví dụ cho biểu đồ lớp tiêu biểu Biểu đồ giải thích phận dịch vụ tài khoản tiết kiệm nhà băng có nhiều tài khoản tiết kiệm tất tài Trang 161 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G khoản thuộc phận Một tài khoản tiết kiệm phần lại có nhiều tài liệu, tài liệu thuộc tài khoản tiết kiệm mà Một tài khoản tiết kiệm thuộc từ nhiều khách hàng Mỗi khách hàng có nhiều tài khoản 17.5.4 Phát liên hệ Thường có nhiều mối liên hệ đối tượng hệ thống Quyết định liên hệ cần phải thực thi cơng việc thụơc giai đoạn thiết kế Có thể tìm mối liên hệ qua việc nghiên cứu lời phát biểu vấn đề, yêu cầu Giống danh từ giúp tìm lớp, động từ giúp ta tìm mối quan hệ Một vài lời mách bảo tìm liên hệ : Vị trí mặt vật lý thay thế, đại diện: Mỗi cụm động từ xác định hay biểu lộ vị trí biểu chắn cho liên hệ Ví dụ: địa điểm, ngồi trong, Sự bao chứa: Cụm động từ biểu lộ bao chứa, ví dụ : thành phần Giao tiếp: Có nhiều cụm động từ biểu lộ giao tiếp, ví dụ truyền thơng điệp, nói chuyện với, … Quyền sở hữu: Ví dụ : thuộc về, của,…Thoả mãn điều kiện: Những cụm từ như: làm việc cho, chồng/vợ của, quản trị, 17.5.5 Xử lý liên hệ khơng cần thiết Sau tìm mối liên hệ, bước phân biệc liên hệ cần thiết khỏi liên hệ khơng cần thiết Liên hệ khơng cần thiết bao gồm liên hệ bao chứa lớp ứng cử viên bị loại trừ liên hệ khơng liên quan đến hệ thống Có liên hệ tạo nhằm mục đích tăng hiệu Những liên hệ ví dụ tiêu tiểu chi tiết thực thi không liên quan tới giai đoạn Cần ý phân biệt hành động mối liên hệ Người ta thường có xu hướng miêu tả hành động liên hệ, liên hệ lẫn hành động dẫn xuất từ cụm từ mang tính động từ miêu tả yêu cầu Các hành động thể sai thành liên hệ cần phải loại bỏ Khi làm việc này, áp dụng nguyên tắc: liên hệ nối kết mang tính tĩnh đối tượng, hành động thao tác xảy lần Hành động nên coi Phương thức đối tượng quan hệ lớp Ví dụ với "Ban quản trị nhà băng đuổi việc nhân viên", động từ “đuổi việc” thể hành động Trong với “Một nhân viên làm việc cho hãng" động từ “làm việc" miêu tả liên hệ hai lớp nhân viên hãng Trong cố gắng loại bỏ liên hệ dư thừa, bạn thấy có số liên hệ dư thừa "lẻn vào" mơ hình giai đoạn thiết kế Hình sau số loại liên hệ dư thừa cần đặc biệt trọng Hình 17.18- Loại bỏ liên hệ không cần thiết Trang 162 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường 17.5.6 Nâng cấp mối liên hệ G Một mối liên hệ cần thiết nhận dạng, bước ngiên cứu kỹ mơ hình nâng cấp mối liên hệ Động tác nâng cấp xem xét lại tên liên hệ, tên vai trò, đặt lại cho với chất quan hệ mà chúng thể Mỗi liên hệ cần phải suy xét kỹ phương diện số lượng thành phần tham gia (Cardinality) Sự hạn định (Qualification) cho liên hệ đóng vai trị quan trọng đây, bổ sung yếu tố hạn định giúp làm giảm số lượng Nếu cần thiết, bổ sung liên hệ thiếu Nghiên cứu kỹ thuộc tính, xem liệu số chúng có thuộc tính thật thể liên hệ Nếu có, chuyển chúng thành liên hệ Bổ sung thông tin điều kiện cần thiết xem xét mối liên hệ mơ hình tổng thể để xác định dạng quan hệ chúng với 17.5.6.1- Liên hệ yếu tố hạn định (Qualifier) Một liên hệ hạn định liên hệ hai lớp yếu tố hạn định với Yếu tố hạn định thuộc tính hạn chế số lượng thành phần tham gia mối liên hệ Có thể hạn định mối liên hệ một-tới nhiều nhiều-tới-nhiều Yếu tố hạn định giúp phân biệt nhóm đối tượng đầu nhiều liên hệ Ví dụ thự mục có nhiều tập tin.Một tập tin thuộc thư mục mà Trong thư mục xác định, tên tập tin xác định tập tin mang tên Thư mục Tập tin hai lớp, tên tậptin đóng vai trò yếu tố hạn định Một thư mục tên tập tin xác định tập tin Yếu tố hạn định chuyển mối liên hệ một-tới-nhiều thành liên hệ một-tới-một Hình 17.19- Liên hệ hạn định 17.5.6.2 Liên hệ VÀ (AND Association) Nhà băng đưa quy định: khách hàng muốn mở tài khoản ATM phải chủ nhân tài khoản đầu tư Trong trường hợp thế, mối liên hệ VÀ (AND) thể sau: Hình 17.20- Liên hệ VÀ (AND Association) Biểu đồ cho thấy khách hàng có nhiều tài khoản đầu tư có thời hạn tài khoản ATM Trong biểu đồ có mối liên hệ VÀ ngầm áp dụng nhóm tài khoản đầu tư tài khoản ATM mà khách hàng có Trang 163 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G 17.5.6.3 Liên hệ HOẶC (OR Association) Ví dụ hãng bảo hiểm nọ, cá nhân cơng ty ký hợp đồng bảo hiểm, cá nhân công ty không phép có loại hợp đồng bảo hiểm Trong trường hợp thế, giải pháp sử dụng liên hệ HOẶC Một liên hệ HOẶC hạn chế nhóm hai hay nhiều liên hệ, xác định đối tượng lớp thời điểm tham gia vào nhiều mối liên hệ Hình 17.21- Một liên hệ OR mà biểu thị liên hệ hợp lệ thời điểm 17.5.6.4- Liên hệ xếp (Ordered Association) Các mối nối kết (link) đối tượng có trật tự ngầm định Giá trị mặc định trật tự ngẫu nhiên Một liên hệ có trật tự rõ ràng hiểu liên hệ với trật tự xếp (sort order) nhóm nối kết, thể sau: Hình 17.22- Tài khoản tiết kiệm xếp theo khách hàng Nhãn {ordered} ghi gần lớp có đối tượng xếp Biểu đồ đọc tài khoản tiết kiệm xếp theo khách hàng 17.5.6.5- Liên hệ tam nguyên (Ternary Association) Có thể có nhiều hai lớp nối kết với liên hệ tam nguyên Hình 17.23- Liên hệ Tam nguyên Biểu đồ đọc sau: Một khách hàng quan hệ với phận đầu tư phận đầu tư có nhiều khách hàng Một giấy chứng nhận tài khoản đầu tư xuất qua quan hệ khách hàng phận đầu tư Trang 164 Giảng viên: Lê Đắc Nhường Giáo trình: Phân tích thiết kế hệ thống 17.5.6.6- Lớp liên hệ (Association Class) G Một lớp đính kèm theo liên hệ, trường hợp gọi lớp liên hệ Một lớp liên hệ không nối tới lớp mối liên hệ, mà tới thân mối liên hệ Cũng giống lớp bình thường, lớp liên hệ có thuộc tính, Phương thức quan hệ khác Lớp liên hệ sử dụng để bổ sung thêm thông tin cho nối kết (link), ví dụ thời điểm nối kết thiết lập Mỗi nối kết liên hệ gắn liền với đối tượng lớp liên hệ Ví dụ sau miêu tả hệ thống thang máy Bộ phận điều khiển huy bốn thang máy Cho nối kết nhóm thang máy phận điều khiển có hàng xếp (queue) Mỗi hàng lưu trữ yều cầu kể từ phía phận điều khiển lẫn từ phía thang máy (những nút bấm bên thang) Khi phận điều khiển chọn thang máy để thực lời yêu cầu đến từ hành khách đứng thang máy (một hành khách hành lang), đọc hàng chọn thang máy có hàng u cầu ngắn Hình 17.24- Lớp liên hệ (Association class) 17.5.6.7- Liên hệ đệ quy (Recursive Association) Có thể liên kết lớp với thân mối liên hệ Mối liên hệ thể liên quan ngữ nghĩa, đối tượng nối kết thuộc chung lớp Một liên hệ lớp với thân gọi liên hệ đệ quy, tảng cho nhiều mơ hình phức tạp, sử dụng ví dụ để miêu tả cấu trúc sản phẩm Hình 17.25 ví dụ liên hệ đệ quy hình 5.26 biểu đồ đối tượng cho biểu đồ lớp hình Hình 17.25- Một mạng gồm nhiều nút nối với Hình 17.26- Một biểu đồ đối tượng hình 17.25, với tên đối tượng Trang 165 Giáo trình: Phân tích thiết kế hệ thống 17.6- Quan hệ kết tập (Aggregation) Giảng viên: Lê Đắc Nhường G 17.6.1- Khái niệm kết tập Kết tập trường hợp đặc biệt liên hệ Kết tập biểu thị quan hệ lớp dựa tảng nguyên tắc "một tổng thể tạo thành phận" Nó sử dụng muốn tạo nên thực thể cách tập hợp thực thể tồn với Một ví dụ tiêu biểu kết tập xe ô tô gồm có bốn bánh xe, động cơ, khung gầm, hộp số, v.v Quá trình ghép phận lại với để tạo nên thực thể cần thiết gọi kết tập Trong trình tìm lớp, kết tập ý tới gặp loại động từ “được tạo bởi", "gồm có", ….Quan hệ kết tập khơng có tên riêng Tên ngầm chứa "bao gồm thành phần" 17.6.2- Kí hiệu kết tập Kí hiệu UML cho kết tập đường thẳng với hình thoi (diamond) đặt sát lớp biểu thị kết tập (tổng thể) Một lớp tài khoản tạo lớp chi tiết khách hàng, lệnh giao dịch tài khoản quy định nhà băng Quan hệ trình bày sau: Hình 17.27- Quan hệ kết tập (1) Mỗi thành phần tạo nên kết tập (tổng thể) gọi phận (aggregates) Mỗi phận phần lại tạo phận khác Hình 17.28- Quan hệ kết tập (2) Trong trường hợp tài khoản kể trên, phận chi tiết khách hàng Các chi tiết khách hàng lại bao gồm danh sách chủ tài khoản, danh sách địa chỉ, quy định kỳ hạn chi tiết khác mở tài khoản 17.6.3- Kết tập liên hệ Khái niệm kết tập nảy sinh tình thực thể bao gồm nhiều thành phần khác Liên hệ lớp mặt khác mối quan hệ thực thể Trang 166 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Quan sát hình sau: Hình 17.29- Kết tập liên hệ Một tài khoản tạo chi tiết khách hàng, lệnh giao dịch tài khoản quy định nhà băng Khách hàng là phận tài khoản, có quan hệ với tài khoản Nhìn chung, lớp nối kết với cách chặt chẽ qua quan hệ "tồn thể – phận" người ta coi quan hệ kết tập Khơng có lời hướng dẫn chắn rõ ràng cho việc nên dùng kết tập nên dùng liên hệ Một lối tiệm cận quán kèm với kiến thức sâu sắc phạm vi vấn đề giúp nhà phân tích chọn giải pháp đắn 17.7 Khái quát hóa chuyên biệt hóa (Generalization & Specialization) Hãy quan sát cấu trúc lớp biểu đồ sau: Hình 17.30- Chun biệt hố (Specialization) Trong hình trên, tài khoản khái niệm chung loại tài khoản khác chứa đặc tả cần thiết cho tất loại tài khoản Ví dụ chứa số tài khoản tên chủ tài khoản Ta có hai loại tài khoản đặc biệt suy từ dạng tài khoản chung này, loại mang tính kỳ hạn loại mang tính giao dịch Yếu tố chia cách hai lớp với quy định chuyên ngành hay phương thức hoạt động hai loại tài khoản Tương tự vậy, tài khoản đầu tư trung hạn dài hạn lại khái niệm chuyên biệt khái niệm tài khoản có kỳ hạn Mặt khác, tài khoản bình thường tài khoản tiết kiệm trường hợp đặc biệt loại tài khoản giao dịch Loại cấu trúc lớp gọi cấu trúc hình cấu trúc phân cấp Khi dịch chuyển từ điểm xuất phát xuống dưới, gặp khái niệm ngày chuyên biệt hóa nhiều Theo đường từ tài khoản đến tài Trang 167 Giảng viên: Lê Đắc Nhường Giáo trình: Phân tích thiết kế hệ thống G khoản tiết kiệm, ta phải qua lớp tài khoản giao dịch Lớp tiếp tục phân loại lớp chuyên biệt hóa cao hơn, tùy thuộc vào chức chúng 17.7.1- Kí hiệu khái quát hóa chuyên biệt hóa Trong biểu đồ trên, lớp cấu trúc nối với mũi tên rỗng , từ lớp chuyên biệt tới lớp khái quát Hình 17.31- Khái qt hóa Q trình bắt đầu với lớp khái quát để sản xuất lớp mang tính chuyên biệt cao gọi trình chun biệt hố (Specialization) Chun biệt hóa: q trình tinh chế lớp thành lớp chuyên biệt Chuyên biệt hóa bổ sung thêm chi tiết đặc tả cho lớp kết Lớp mang tính khái quát gọi lớp cha (superclass), kết chuyên biệt hóa việc tạo lớp (Subclass) Mặt khác, dọc cấu trúc từ lên, ta gặp lớp ngày mang tính khái quát cao - Ví dụ từ lớp tài khoản tiết kiệm lên tới lớp tài khoản Con đường lớp chuyên biệt khiến ngày mang tính khái qt cao gọi q trình khái qt hóa (Generalization) Lớp chuyên biệt gọi lớp con, ví dụ tài khoản tiết kiệm, lớp khái quát kết gọi lớp cha Chuyên biệt hóa khái quát hóa hai đường khác để xem xét mối quan hệ Một lớp lớp lớp đóng vài trị lớp cha lớp khác 17.7.2- Yếu tố phân biệt (Discriminatior) Để tạo cấu trúc phân cấp, cần phải có số thuộc tính làm tảng cho q trình chun biệt hóa Thuộc tính gọi yếu tố phân biệt (Discriminator) Với giá trị gán cho yếu tố phân biệt lớp cha, ta có lớp tương ứng Hình 17.32- Yếu tố phân biệt Trong hình trên, yếu tố phân biệt lớp tài khoản "loại tài khoản" Chúng ta giả thiết có hai loại tài khoản, mang tính kỳ hạn mang tính giao dịch Theo đó, ta Trang 168 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G phải tạo hai lớp con, cho tài khoản mang tính kỳ hạn cho tài khoản mang tính giao dịch Trong mơ hình đối tượng, khơng thiết phải nêu bật yếu tố phân biệt Yếu tố phân biệt ln có mặt cấu trúc phân cấp lớp cha/ con, dù có nhấn mạnh mơ hình đối tượng hay khơng Mặc dầu vậy, để đảm bảo cho mơ hình định nghĩa rõ ràng, trình bày yếu tố phân biệt ln cơng việc nên thực 17.7.2.1- Lớp trừu tượng Quan sát cấu trúc hình trên, ta thấy lớp tài khoản khơng thực thể hóa, có nghĩa hệ thống không tạo đối tượng thuộc lớp Nguyên nhân lớp tài khoản mang tính khái quát cao đến mức độ việc khởi tạo lớp khơng có ý nghĩa đáng kể Lớp tài khoản đóng vai trị quan trọng việc khái qt hóa thuộc tính cần đến lớp dẫn xuất từ Những loại lớp dùng để cung cấp cấu trúc lớp khơng có tồn đầy đủ ý nghĩa mơ hình thật ngồi đời, chúng gọi lớp trừu trượng (abstract class) 17.7.2.2 Tạo lớp trừu tượng Các lớp trừu trượng kết q trình khái qt hóa Hãy quan sát ví dụ cấu trúc lớp sau Lớp tài khoản đứng đầu cấu trúc gọi lớp Lớp cấu trúc chứa thuộc tính khái qt hóa áp dụng cho lớp dẫn xuất từ Trong q trình khái qt hóa, thuộc tính dùng chung lớp chuyên biệt đưa lên lớp cha Lớp cha cuối tạo thuộc tính chung tất lớp dẫn xuất từ Những lớp cha dạng nhiều trường hợp mang tính khái quát tuyệt đối khơng theo đuổi mục đích khởi tạo, chúng có lối ứng xử giống thùng chứa (container) cho tất thuộc tính chung lớp dẫn xuất Những lớp trường hợp chung thường kết ánh xạ danh từ trừu tượng, hệ phương pháp sử dụng danh từ để nhận diện lớp Hình 17.33- Tạo lớp trừu tượng Biểu đồ cho ta ví dụ khái qt hóa thuộc tính chung, nhiều lớp chun biệt Chú ý theo mức chuyên biệt hóa lại có thêm thuộc tính bổ sung thêm cho lớp, khiến chúng mang tính chuyên biệt cao so với lớp cha mức trừu tượng bên Ví dụ lớp tài khoản có thuộc tính số tài khoản tên khách hàng Đây thuộc tính chung chung Tất lớp dẫn xuất từ nó, dù trực tiếp hay gián tiếp (ở mức độ trừu tượng thấp nữa), có quyền sử dụng thuộc tính lớp tài khoản Các lớp tài khoản có kỳ hạn tài khoản giao dịch hai lớp chuyên Trang 169 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G biệt dẫn xuất từ lớp tài khoản Chúng có thuộc tính chun biệt riêng chúng - ví dụ mức thời gian (duration) lớp tài khoản có kỳ hạn mức tiền tối thiểu lớp tài khoản giao dịch – bên cạnh hai thuộc tính số tài khoản tên khách hàng mà chúng thừa kế từ lớp tài khoản Cũng tương tự với tài khoản đầu tư ngắn hạn tài khoản đầu tư trung hạn loại lớp thuộc tài khoản có kỳ hạn, tài khoản tiết kiệm tài khoản bình thường loại lớp thuộc lớp tài khoản giao dịch 17.7.2.3 Lớp cụ thể (concrete class) Lớp cụ thể lớp thực thể hóa Như nói từ trước, lớp cụ thể thực thể hóa gọi đối tượng Trong ví dụ trên, lớp tài khoản đầu tư ngắn hạn tài khoản đầu tư dài hạn thực thể hóa thành đối tượng Tương tự tài khoản tiết kiệm tài khoản bình thường 17.7.2.4 Tổng kết phát triển cấu trúc Cơ chế dùng chung thuộc tính thủ tục sử dụng nguyên tắc khái quát hóa gọi tính thừa kế (inheritance) Sử dụng tính thừa kế để tinh chế (refine) lớp dẫn tới việc phát triển cấu trúc Nên phát ứng xử (behaviour) chung loạt lớp thể thành lớp cha Sự khác biệt ứng xử lớp dẫn tới việc tạo lớp Khi phát triển cấu trúc, quan sát ứng xử lớp Trong trường hợp có liên hệ tồn từ lớp cụ thể đến tất lớp lớp cha, nên dịch chuyển liên hệ lên lớp cha Nếu tồn liên hệ lớp lớp cha, chuyên biệt hóa nâng cao cấu trúc để xác định xem liệu liên hệ có áp dụng cho tất lớp lớp cha hay khơng Nếu có gán vào lớp cha, khơng dịch xuống cho lớp phù hợp Trong tiến hành khái quát hóa, trọng tâm công việc xác định ứng xử chung nhóm nhiều lớp chuyên biệt bậc trung Khi xây dựng thủ tục thuộc tính chung, nên kiểm tra lại xem chúng có thật yếu tố chung tất lớp chuyên biệt phạm vi Khái quát hóa áp dụng có tập hợp lớp định nghĩa loại đối tượng riêng biệt có số lượng lớn ứng xử chung Trọng tâm tạo nên lớp cha chứa ứng xử chung Khi chuyên biệt hóa, ta tìm khác biệt ứng xử để tạo lớp thích ứng Có nghĩa ta xem xét lớp tồn tại, kiểm tra xem có phải tất ứng xử có khả áp dụng cho đối tượng Nếu không, ta lọc ứng xử lúc cần thiết chia trường hợp thành lớp Trọng tâm chuyên biệt hóa tạo lớp Với chế thừa kế, lớp kế thừa thuộc tính thủ tục tất lớp cha Hình sau làm rõ việc tạo cấu trúc lớp sử dụng tính khái qt Trang 170 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường Hình 17.34- Phát triển hệ thống lớp (1) G Thường xảy trường hợp tất lớp tham gia vào liên hệ kết tập Trong trường hợp nên tạo lớp cha định nghĩa liên hệ /kết tập Hình sau giải thích thêm điểm này: Hình 17.35- Phát triển hệ thống lớp (2) 17.8 Quan hệ phụ thuộc nâng cấp (Dependency & Refinement) Bên cạnh liên hệ khái qt hóa, UML cịn định nghĩa hai loại quan hệ khác Quan hệ phụ thuộc (Dependency) liên quan ngữ nghĩa hai phần tử mô hình, mang tính độc lập mang tính phụ thuộc Mọi thay đổi phần tử độc lập ảnh hưởng đến phần tử phụ thuộc Phần tử mơ hình lớp, gói, trường hợp sử dụng, v.v Có thể nêu vài cí dụ cho phụ thuộc như: lớp lấy tham số đối tượng lớp khác, lớp truy nhập đối tượng toàn cục lớp khác, lớp gọi thủ tục thuộc thuộc lớp khác Trong tất trường hợp có phụ thuộc lớp vào lớp kia, chúng khơng có liên hệ rõ ràng với Quan hệ phụ thuộc thể đường thẳng gạch rời (dashed line) với mũi tên (và thêm nhãn) phần tử mơ hình Nếu sử dụng nhãn khn mẫu (stereotype), xác định loại phụ thuộc Hình sau phụ thuộc dạng "friend", có nghĩa phần tử mơ hình nhận quyền truy cập đặc biệt tới cấu trúc nội phần tử thứ hai (thậm chí tới phần mang tính nhìn thấy private) Hình 17.36- Một quan hệ phụ thuộc lớp Nâng cấp (Refinement) quan hệ hai lời miêu tả vật, mức độ trừu tượng hóa khác Nâng cấp mối quan hệ loại đối tượng lớp thực Các nâng cấp thường gặp khác quan hệ lớp phân tích (trong mơ hình phân tích) lớp thiết kế (trong mơ hình thiết kế) mơ hình hóa thứ, quan hệ lời miêu tả có mức trừu tượng hóa cao lời miêu tả có mức trừu tượng hóa thấp (ví dụ tranh khái quát cộng tác động biểu đồ chi tiết cộng tác đó) Quan hệ nâng cấp cịn sử dụng để mơ hình hóa nhiều mức thực thi thứ (một thực thi đơn giản thực thi phức tạp hơn, hiệu hơn) Quan hệ nâng cấp thể đường thẳng gạch rời (dashed line) với mũi tên rỗng Trang 171 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G Hình 17.37- Quan hệ nâng cấp Quan hệ nâng cấp sử dụng việc phối hợp mơ hình Trong dự án lớn, mơ hình cần phải phối hợp với nhằm mục đích: Chỉ mối liên quan mơ hình nhiều mức độ trừu tượng khác Chỉ mối liên quan mơ hình nhiều giai đoạn khác (phân tích yêu cầu, phân tích, thiết kế, thực thi, ) Hỗ trợ việc quản trị cấu hình Hỗ trợ việc theo dõi mơ hình 17.9 Nâng cấp mơ hình qua vịng lặp Cho tới thời điểm này, qua bước cơng việc phân tích tạo nên phiên mơ hình đối tượng Mơ hình cần phải lấy làm mục tiêu cho vịng lặp nâng cấp Cơng việc nâng cấp thực cách đưa mơ hình qua tất giai đoạn phát triển mơ hình đối tượng lần Lần này, kiến thức thu vòng phát triển đầu tỏ hữu dụng Khi nâng cấp mơ hình cần ý đến bước sau: a) Nghiên cứu lớp để tìm thuộc tính thủ tục khơng đồng dạng (dissimilar) Nếu có, xẻ lớp thành thành phần để tạo tính đồng (harmony) lớp Ví dụ với lớp đảm nhận hai vai trò khác nhau, xẻ lớp thành lớp kết với thủ tục xác định rõ ràng b) Nếu phát thấy chức không hướng tới lớp đích triệu chứng thiếu lớp Hãy bổ sung lớp thiếu đưa thủ tục kể vào lớp c) Khái quát hóa cịn chưa đủ độ có liên hệ trùng lặp (nhiều liên hệ định nghĩa quan hệ) Trong trường hợp này, cần tạo lớp cha để kết hợp mối liên hệ d) Nếu vai trò mang ý nghĩa đặc biệt quan trọng hệ thống thường cần lớp riêng Một lựa chọn khác biến liên hệ định nghĩa vai trò thành lớp liên hệ e) Nếu lớp thiếu thuộc tính lẫn thủ tục và/ liên hệ lớp khơng cần thiết Hãy loại bỏ lớp f) Hãy rà sát tồn hệ thống để tìm vai trị lớp cịn chưa thể Nếu có, triệu chứng thiếu liên hệ g) Nếu có liên hệ đối tượng lại chẳng thủ tục sử dụng tới liên hệ khơng cần thiết Ví dụ ta xác định liên hệ nhân viên thu ngân khách hàng lại khơng có thủ tục định nghĩa hai người Trong trường hợp này, liên hệ khơng cần thiết Một số mách bảo thực tế: + Nghiên cứu để hiểu thấu đáo vấn đề cần giải quyết: Khi xây dựng mơ hình đối tượng, khơng nên bắt đầu cách viết cấu trúc lớp, mối liên hệ mối quan hệ thừa kế lộ rõ bề mặt đập thẳng vào mắt Hãy dành thời gian nghiên Trang 172 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G cứu kỹ chất vấn đề Mơ hình đối tượng phải thiết kế để phù hợp với giải pháp cho vấn đề mà nhắm tới + Cẩn thận chọn tên: Tên cần chọn cách cẩn thận chứng nhận tồn thực thể Tên cần phải xác, ngắn gọn, tránh gây bàn cãi Tên phải thể tổng thể đối tượng khơng nhắm tới khía cạnh đối tượng Bất nơi có thể, chọn tên bao chứa danh từ chuyên ngành quen thuộc người sử dụng Những tên tạo hình xa vời người sử dụng, thực thể đặt tên cách tồi tệ dễ gây nhầm lẫn + Cần giữ cho mơ hình đối tượng đơn giản: Hãy kháng cự lại xu hướng tạo mơ hình phức tạp, chúng mang lại nhầm lẫn, bối rối Trong vịng đầu quy trình mơ hình hóa đối tượng, xác định mối liên hệ gạt chi tiết, việc xem xét tới số lượng thành phần tham gia (Cardinality) quan hệ để dành cho giai đoạn sau; vịng thứ hai Tốt chi tiết phản ánh số lượng thành phần tham gian quan hệ bổ sung thêm vào vòng thứ hai vòng thứ ba cơng việc mơ hình hóa đối tượng Thường thường, người ta thấy phiên mơ hình thường chứa mối liên hệ với số lượng từ 0-tới-0; 0tới-1, 1- tới-1; 1-tới-nhiều + Nên sử dụng mối liên hệ hạn định Tránh khái quát hóa nhiều Thường nên hạn chế ba tầng khái quát Hãy nghiên cứu thật kỹ mối liên hệ 1-tới-nhiều Chúng thường chuyển thành quan hệ 1-tới-0 1-tới-1 Tất mơ hình cần phải lấy làm đối tượng cho việc tiếp tục nâng cấp Nếu khơng thực vịng nâng cấp sau đó, mơ hình thiếu hoàn chỉnh + Động tác người khác xem xét lại mơ hình quan trọng Thường liên quan cận kề với mơ hình khiến mù lịa, khơng nhận khiếm khuyết Một nhìn vơ tư trường hợp cần thiết Không nên mơ hình hóa mối liên hệ thành thuộc tính Nếu điều xảy ra, ta thường nhận thấy qua triệu chứng mơ hình thiếu liên hệ Thêm vào đó, có lúc ta bỏ qua cần thiết yếu tố hạn định Việc viết tài liệu cho mơ hình vơ quan trọng Các tài liệu cần phải nắm bắt thấu đáo ngun nhân nằm đằng sau mơ hình trình bày chúng xác 17.10- Chất lượng mơ hình Làm để biết mơ hình tốt hay chưa tốt? Một ngơn ngữ mơ hình hóa cung cấp ngữ pháp ngữ nghĩa cho ta làm việc, khơng cho ta biết liệu mơ hình vừa tạo dựng nên tốt hay không Yếu tố mở vấn đề quan trọng việc xác định chất lượng mơ hình Điều chủ chốt thiết kế mơ hình thứ muốn nói thực Mơ hình mang lại diễn giải cho mà nghiên cứu (hiện thực, viễn cảnh ) Trong mơ hình, yếu tố quan trọng bật phải nắm bắt chất vấn đề Trong hệ thống tài chính, thường mơ hình hóa hóa đơn khơng phải nợ Trong đa phần doanh nghiệp, thân hóa đơn khơng thật có tầm quan trọng đến vậy, yếu tố quan trọng nợ Một hóa đơn thể nợ, ta cần phải mơ hình hóa để phản ánh điều Một khái niệm khác tài khoản nhà băng Trong năm 70 80 có nhiều mơ hình thể tài khoản nhà băng Khách hàng (chủ nhân tài khoản nhà băng) coi Trang 173 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G thành phần tài khoản (một tài khoản nhà băng mơ hình hóa lớp thực thể khách hàng thuộc tính) Khó khăn xảy nhà băng xử lý tài khoản có nhiều chủ Vấn đề thứ hai nhà băng tạo chiến lược maketing nhắm tới khách hàng khơng có tài khoản nhà băng họ khơng có địa Vì vậy, khía cạnh chất lượng mơ hình tính thích hợp mơ hình Một mơ hình thích hợp phải nắm bắt khía cạnh quan trọng đối tượng nghiên cứu Những khía cạnh khác việc đánh giá chất lượng mơ hình phải dễ giao tiếp, phải có mục tiêu cụ thể, dễ bảo quản, mang tính vững bền có khả tích hợp Nhiều mơ hình hệ thống có mục đích khác (hoặc hướng nhìn khác nhau) phải có khả tích hợp với Dù sử dụng phương pháp ngơn ngữ mơ hình hóa nào, ta phải đối mặt với vấn đề khác Khi tạo dựng mơ hình, trở thành phần doanh nghịêp, có nghĩa cần phải quan sát hiệu ứng can thiệp vào doanh nghiệp Yếu tố quan trọng cần phải xử lý tất khía cạnh can thiệp ví dụ sách, văn hóa, cấu trúc xã hội suất Nếu khơng làm điều này, ta khơng có khả phát nắm bắt tất địi hỏi cần thiết từ phía khách hàng (cần ý phát biểu yêu cầu đưa khơng phải xác khách hàng thực cần) Hãy đặc biệt ý đến vấn đề với sách nội bộ, mẫu hình xã hội, cấu trúc khơng thức lực bao quanh khách hàng 17.10.1 Thế mơ hình tốt? Một mơ hình mơ hình tốt ta có khả giao tiếp với nó, phù hợp với mục đích nắm bắt điểm cốt yếu vấn đề Một mơ hình tốt địi hỏi thời gian xây dựng; bình thường tạo nhóm phát triển, thành lập với mục đích cụ thể Một mục đích huy động toàn lực lượng để phát yêu cầu quan Một mục đích khác mơ hình hóa đặc tả yêu cầu, thực giai đoạn phân tích, hay vẽ thiết kế kỹ thuật cho hệ thống thông tin Khi cá nhân khác tập hợp thành nhóm, động tác cần phải thực tập trung vào mục tiêu định trước Các nhóm để mơ hình hóa doanh nghịêp hệ thống thơng tin tạo khách hàng, chun gia mơ hình hóa chun gia ứng dụng 17.10.2 Ta giao tiếp với mơ hình? Tại mơ hình lại phải thứ dễ giao tiếp? Tất dự án, dù lớn hay nhỏ, cần phải giao tiếp Con người ta nói chuyện với Họ đọc tài liệu thảo luận nội dung chúng Sáng kiến khởi thủy nằm đằng sau mơ hình để tạo khả giao tiếp với chúng Nếu tạo mơ hình mà khơng đọc nổi, hiểu nổi, việc làm vơ ý nghĩa Mơ hình tạo người dẫn đầu phương pháp người dẫn đầu dự án lệnh Mơ hình tạo để phục vụ cho việc giao tiếp tập hợp cố gắng để đạt đến suất, hiệu chất lượng cao 17.10.3 Mơ hình có phù hợp với mục đích khơng? Một mơ hình hình cần phải có mục đích rõ ràng, cho dùng nhận Tất mơ hình có mục đích, thường mục đích ngầm ẩn, điều Trang 174 Giáo trình: Phân tích thiết kế hệ thống Giảng viên: Lê Đắc Nhường G khiến cho việc sử dụng hiểu trở nên khó khăn Các mơ hình phân tích mơ hình thiết kế mơ hình hệ thống, chúng mơ hình khác tập trung vào chủ đề khác (hay chi tiết khác nhau) Cần phải xác định rõ ràng mục đích cho mơ hình để kiểm tra phê duyệt Nếu khơng có mục đích rõ ràng, ví dụ thẩm tra mơ hình hình phân tích thể mơ hình thiết kế 17.10.4 Nắm bắt điểm trọng yếu Nhiều mơ hình bao gồm tài liệu doanh nghiệp – ví dụ hóa đơn, thông tin nhận được, hợp đồng bảo hiểm Nếu mơ hình bao gồm tài liệu điều xảy doanh nghiệp thay đổi? Đây vấn đề quan trọng thực tế Chúng ta cần thiết phải nắm bắt chất doanh nghiệp (tạo nên phần nhân) mô hình xoay quanh khái niệm thiết yếu để có khả xử lý thay đổi cách thích hợp Hãy mơ hình hóa phần nhân doanh nghiệp sau đến mơ hình diễn giải phần nhân Một phần nhân mơ hình hóa, thay đổi nho nhỏ doanh nghiệp xử lý qua việc sửa đổi lớp diễn giải loại đối tượng thuộc phần nhân (ví dụ hóa đơn diễn giải nợ) 17.10.5 Phối hợp mơ hình Các mơ hình khác hệ thống phải có khả kết hợp liên quan đến Một khía cạnh phối hợp mơ hình tích hợp Tích hợp có nghĩa nhóm mơ hình chung mục đích thể thứ (mặc dù chúng có nhiều hướng nhìn khác nhau, ví dụ mơ hình động, mơ hình chức năng, mơ hình tĩnh), chúng phải có khả ráp lại với mà không làm nảy sinh mâu thuẫn Quan hệ mơ hình mức độ trừu tượng khác khía cạnh quan trọng khác Nó chìa khóa dẫn đến khả theo dõi bước phát triển phần tử khác nhau, phục vụ cho công nghệ lập trình Quan hệ mức độ trừu tượng khác thể quan hệ nâng cấp UML Điều có nghĩa mơ hình phối hợp mức độ trừu tượng phối hợp mức độ trừu tượng khác 17.10.6- Độ phức tạp mơ hình Ngay mơ hình dễ dàng giao tiếp, có mục đích rõ ràng, nắm bắt điểm trọng yếu phạm vi vấn đề phối hợp với nhau, ta gặp khó khăn mơ hình q phức tạp Những mơ hình phức tạp khó nghiên cứu, khó thẩm tra, khó phê duyệt khó bảo trì Sáng kiến tốt bắt đầu với mơ hình đơn giản, sau chi tiết hóa nhiều cách sử dụng việc phối hợp mơ hình Nếu chất phạm vi vấn đề phức tạp, xẻ mơ hình thành nhiều mơ hình khác (sử dụng tiểu mơ hình – tức gói) cố gắng để qui trình kiểm sốt tình Trang 175 ... Nhường G Hình 17.9- Một thuộc tính với liệt kê gía trị (status) 17.3.4- Kí hiệu đối tượng Đối tượng thực thể lớp nên kí hiệu dùng cho đối tượng kí hiệu dùng cho lớp Hình 17.10-Ký hiệu đối tượng Hình. .. thức (ứng xử), chung mối quan hệ với đối tượng khác chung ngữ nghĩa (semantic) Nói có nghĩa lớp khuôn mẫu để tạo đối tượng Mỗi đối tượng thực thể lớp đối tượng khơng thể kết thực thể hóa nhiều... nhiều mơ hình phức tạp, sử dụng ví dụ để miêu tả cấu trúc sản phẩm Hình 17.25 ví dụ liên hệ đệ quy hình 5.26 biểu đồ đối tượng cho biểu đồ lớp hình Hình 17.25- Một mạng gồm nhiều nút nối với Hình