73
BÀI 6: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG BIỂU ĐỒ LỚP HỆ THỐNG 10/15/2012 Phân tích và thiết kế HDT – Biên son: Chu ThHường - BM HTTT 1 BIỂU ĐỒ LỚP HỆ THỐNG BIỂU ĐỒ LỚP HỆ THỐNG 1

BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

BÀI 6:BÀI 6:BIỂU ĐỒ LỚP HỆ THỐNGBIỂU ĐỒ LỚP HỆ THỐNG

10/15/2012

Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường - BM HTTT1

BIỂU ĐỒ LỚP HỆ THỐNGBIỂU ĐỒ LỚP HỆ THỐNG

1

Page 2: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

NNỘỘI DUNG I DUNG

� Giới thiệu

� Tìm kiếm lớp

� Tìm kiếm thuộc tính, thao tác lớp

� Tìm kiếm các loại quan hệ giữa các lớp

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 2

� Biểu diễn biểu đồ lớp và gói

� Biểu diễn đồ họa các thuộc tính của thuộc tính,thao tác trong lớp

� Biểu diễn các thuộc tính cho quan hệ giữa cáclớp

2

Page 3: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

GIỚI THIỆU BIỂU ĐỒ LỚP

� Đối tượng là cái gì đó tồn tại trong thế giới thực� Lớp là mô tả thuộc tính, hành vi, ngữ nghĩa của một nhóm đối

tượng◦ Lớp xác định thông tin nào được lưu trữ trong đối tượng và hành vi nào

đối tượng có

� Thí dụ về lớp: Lớp Employee◦ Đối tượng của lớp có các attribute: Name, Address, Salary

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 3

◦ Đối tượng của lớp có các attribute: Name, Address, Salary

◦ Các operation: Thuê mướn, Đuổi việc và Đề bạt nhân viên?

� Ký pháp đồ họa của lớp trong biểu đồ◦ Tên lớp

◦ Thuộc tính

◦ Thao tác- Private+ Public

Class

- Attribute

+Operation()

Class

Page 4: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Không có phương thức chung để xác định các lớp� Là một quá trình sáng tạo lặp qua nhiều vòng lặp và phốihợp với chuyên gia lĩnh vực vấn đề trả lời các câu hỏisau đây để tìm ra lớp:◦ Có thông tin nào cần lưu trữ hay phân tích? Nếu có, nó là lớp

◦ Có hệ thống ngoài không? Nếu có thì nó được xem như những lớp chứa trong hệ

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 4

◦ Có hệ thống ngoài không? Nếu có thì nó được xem như những lớp chứa trong hệ

thống của ta hay hệ thống của ta tương tác với chúng

◦ Có mẫu, thư viện lớp, thành phần...? Nếu có, thông thường chúng chứa các ứng

viên lớp

◦ Hệ thống cần quản lý các thiết bị ngoại vi nào? Mọi thiết bị kỹ thuật nối với hệ

thống đều là ứng viên lớp.

◦ Tác nhân đóng vai trò tác nghiệp nào? Các nhiệm vụ này có thể là lớp; thí dụ

người sử dụng, thao tác viên hệ thống, khách hàng...

Page 5: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Các cách tiếp cận xác định lớp:◦ Tiếp cận theo cụm danh từ

◦ Tiếp cận theo mẫu chung

◦ Tiếp cận theo Use case

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 5

Page 6: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo cụm danh từ◦ Là phương pháp được đề xuất bởi Rebecca Wirfs Brock, BrianWilkerson và Lauren Wiener.

◦ Xác đinhk lớp thông qua đọc văn bản mô tả use case và các vănbản yêu cầu để tìm kiếm và trích lọc các danh từ và cụm danh từ:

� Cụm danh từ được xem là ứng viên của lớp

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 6

� Cụm danh từ được xem là ứng viên của lớp

� Động từ là ứng viên của các phương thức (method) của lớp.

◦ Danh từ tìm được phân thành ba loại:

� Các lớp hiển nhiên,

� Các lớp mờ,

� Các lớp giả tạo

Page 7: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo cụm danh từ

Mô tả use

Xác định các danh từ, cụm danh từ

Danh từ, cụm danh từ

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 7

Mô tả use case, yêu cầu

Loại bỏ các class không có mục tiêu

Đồng nhất các class đồng nghĩa

Danh từ, cụm danh từ ứng viên

Loại bỏ các danh từ thuộc tính

Loại bỏ các danh từ mô tả class giả

Danh sách các class

Page 8: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo theo mẫu chung:◦ Dựa trên một cơ sở tri thức phân loại lớp theo những mẫu chung.

◦ Những mẫu chung có thể:� Lớp khái niệm (concept): Là quan niệm hoặc sự hiểu biết riêng biệtvề thế giới. Bao gồm các nguyên lý dùng để tổ chức hoặc lưu trữ cáchoạt động và các trao đổi về mặt quản lý.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 8

hoạt động và các trao đổi về mặt quản lý.� Ví dụ: Phương pháp, mô hình, tài khoản,…

� Lớp sự kiện (event): Là các điểm thời gian cần được lưu trữ. Các sựkiện xảy ra ở một thời điểm, hoặc một bước trong dãy các bước tuầntự. Lưu trữ các thuộc tính như: Ai? cái gì? Ơ đâu? Khi nào? Như thếnào? Tại sao?� Ví dụ: Đăng ký, kết quả, hóa đơn, đơn hàng,…

Page 9: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo theo mẫu chung:� Lớp tổ chức (organization): Là tập hợp con người, tàinguyên, phương tiện, hoặc những nhóm xác định chứcnăng người dùng.� Ví dụ: đơn vị, bộ phận, phòng ban, chức danh,…

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 9

� Lớp con người (people): Thể hiện vai trò khác nhau củacon người trong tương tác với ứng dụng, thường là:� Người dùng hệ thống,

� Đối tượng mà hệ thống trao đổi thông tin, hệ thống lưu trữthông tin về họ, nhưng không sử dụng hệ thống

� Ví dụ: Sinh viên, khách hàng, giáo viên, nhân viên,…

Page 10: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo theo mẫu chung:� Lớp vị trí (place): Các vị trí mà hệ thống cần mô tả thôngtin về nó.� Ví dụ: tòa nhà, kho, văn phòng, chi nhánh, đại lý,…

� Lớp sự vật hữu hình và lớp thiết bị: Các đối tượng hoặc

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 10

nhóm đối tượng vật lý có thể cảm nhận trực quan vànhóm thiết bị mà hệ thống tương tác.� Ví dụ:

� Các sự vật hữu hình: Xe máy, ô tô,…

� Các thiết bị: Thiết bị cảm ứng nhiệt,…

Page 11: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo use case:◦ Use case được sử dụng để mô hình hóa các kịch bảntrong hệ thống và xác định cách thức tác nhân tươngtác với kịch bản. Kịch bản được mô tả bằng văn bản⇒ xác định các đối tượng cần thiết để kịch bản được

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 11

⇒ xác định các đối tượng cần thiết để kịch bản đượcthực hiện.

◦ Có thể sử dụng biểu đồ tuần tự và biểu đồ cộng tác đểmô hình hóa kịch bản của use case ⇒ tương tác giữacác đối tượng trong hệ thống ⇒ xác định các đốitượng.

Page 12: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo use case:◦ Các bước xác định:

� Xác định dòng tương tác của tác nhân với hệ thống trong mộtuse case.

� Đặt câu hỏi: “đối tượng nào của hệ thống sẽ chịu trách nhiệmtiếp nhận sự tương tác này?” ⇒ được đối tượng đàu tiên của

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 12

tiếp nhận sự tương tác này?” ⇒ được đối tượng đàu tiên củause case.

� Nếu đối tượng chuyển giao toàn bộ hoặc một phần xử lý chođối tượng khác nào đó⇒ xác định đối tượng đó.

� Lặp cho đến khi tất cả các dòng tương tác đã được kiểm tra.

Page 13: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH LỚP

� Tiếp cận theo use case:◦ Chú ý:� Việc mô hình hóa kịch bản use case quá cụ thể dẫn đếnmô tả hoạt động phần mềm hệ thống ⇒ các đối tượngphần mềm có thể được xác định⇒ đúng ra các đối tượng

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 13

phần mềm có thể được xác định⇒ đúng ra các đối tượngnày phải xác định ở giai đoạn thiết kế.

� Do đó, nên kết hợp cách tiếp cận này với các tiếp cậnphân tích cụm danh từ, hoặc dùng mẫu chung ⇒ trongcác bài tập sử dụng các tiếp cận này kết hợp với phântích cụm danh từ.

Page 14: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BiỂU ĐỒ LỚP

� Biểu đồ lớp cho biết hình ảnh tĩnh của bộ phận hệ thống

� Biểu đồ lớp bao gồm các lớp và quan hệ giữa chúng

� Thông thường mỗi hệ thống có vài biểu đồ lớp◦ Xây dựng vài biểu đồ lớp để mô tả đầy đủ hệ thống

� Biểu đồ lớp giúp người phát triển quan sát, lập kế hoạch

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 14

� Biểu đồ lớp giúp người phát triển quan sát, lập kế hoạchcấu trúc hệ thống trước khi viết mã trình

� Rose◦ Biểu đồ lớp được hình thành trong Logical View

Page 15: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BIỂU ĐỒ LỚP

� Stereotype của lớp:Ba stereotype lớp cơ sởsử dụng trong pha phân tích là◦ Boundary◦ Entity

� Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộnhớ ngoài

� Tìm chúng trong luồng sự kiện và biểu đồ tương tác

BoundaryClass

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 15

� Tìm chúng trong luồng sự kiện và biểu đồ tương tác� Thông thường phải tạo ra bảng CSDL cho lớp loạinày� Mỗi thuộc tính của lớp thực thể sẽ là trường trongbảng CSDL

◦ Control� Có trách nhiệm điều phối hoạt động của các lớp khác� Thông thường mỗi UC có một lớp điều khiển� Nó không thực hiện chức năng nghiệp vụ nào� Các lớp điều khiển khác: điều khiển sự kiện liên quanđến an ninh và liên quan đến giao dịch CSDL

EntityClass

Page 16: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BIỂU ĐỒ LỚP

� Đặc tả lớp trong biểu đồ:◦ Trong Rose:

� Sử dụng cửa sổ đặc tả lớp để gán các thuộc tính cho lớp nhưstereotype, persistent, visibility...

� Cửa sổ đặc tả khác nhau với các ngôn ngữ khác nhau khi chọnđể cài đặt mô hình sau này

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 16

để cài đặt mô hình sau này� Các lớp của Java, XML, CORBA

◦ Đặc tả lớp bao gồm

� Tên lớp� Mỗi lớp trong mô hình có tên duy nhất

� Thông thường sử dụng danh từ đơn, không nên có dấu cách

� Thí dụ: Flight, Airplane

Page 17: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BiỂU ĐỒ LỚP

� Phạm vi (Visibility)� Xác định khả năng nhìn thấy lớp từ ngoài gói� Các loại� Public: mọi lớp trong hệ thống có thể nhìn thấy� Private hay Protected: có thể nhìn thấy từ bên trong lớp hay từlớp friend

� Package hay Implementation: chỉ các lớp trong cùng gói mới

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 17

� Package hay Implementation: chỉ các lớp trong cùng gói mớinhìn thấy

� Tính nhiều (Multiplicity)� Yêu cầu lưu trữ� Duy trì (Persistent)� Tương tranh (Concurrency)� Trừu tượng (Abstract)

Page 18: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BiỂU ĐỒ LỚP

� Tính nhiều của lớp (Multiplicity)� Là số hiện thực mong đợi của lớp� Thí dụ: tính nhiều của lớp Employee là n, của lớp điềukhiển và lớp Security Manager là 1...

Multiplicity Ý nghĩa

n (Mặc định) Nhiều

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 18

� Yêu cầu lưu trữ cho lớp

n (M c đ nh) Nhi u

0..0 Không

0..1 Không hoặc 1

0..n Không hoặc nhiều

1..1 Chính xác 1

1..n Một hoặc nhiều

Page 19: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BIỂU ĐỒ LỚP

� Yêu cầu lưu trữ cho lớp� Đặt kích thước bộ nhớ mong đợi để lưu trữ đối tượng của lớp

� Duy trì (Persistent)� Rose: có khả năng sinh ngôn ngữ định nghĩa dữ liệu (DataDefinition Language – DDL) để định nghĩa cấu trúc của CSDL

� Khi phát sinh DDL, Rose tìm kiếm các lớp có đánh dấu một tronghai loại đặc tính Persistence:� Persistent: Thông tin trong đối tượng của lớp sẽ lưu trữ vào

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 19

� Persistent: Thông tin trong đối tượng của lớp sẽ lưu trữ vàoCSDL hay tệp có khuôn mẫu khác

� Transient: Thông tin trong đối tượng của lớp sẽ không lưu trữ lâudài

� Không sử dụng tính chất persistence cho lớp công cụ, lớp công cụtham số và lớp công cụ hiện thực tham số.

� Tương tranh (Concurrency)

Page 20: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BiỂU ĐỒ LỚP

� Tương tranh (Concurrency)� Tương tranh mô tả ứng xử của lớp trong đa luồng điều khiển� Bốn loại tương tranh� Sequential: (trạng thái mặc định) lớp ứng xử như hoạt động chỉtrong một luồng điều khiển

� Guarded: Lớp ứng xử như trong đa luồng điều khiển, các lớptrong các luồng khác nhau cộng tác với nhau để không làm ảnhhưởng đến các lớp khác

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 20

hưởng đến các lớp khác� Active: Lớp có luồng điều khiển riêng� Synchronous: Lớp ứng xử như trong đa luồng điều khiển. Cáclớp không cộng tác với nhau vì chúng hoạt động loại trừ tươnghỗ.

� Trừu tượng (Abstract)� Là lớp không được hiện thực hóa� Sử dụng trong cấu trúc kế thừa� ...

AbstractClass

Page 21: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÂY DỰNG BIỂU ĐỒ LỚP

� Gói các lớp:◦ Gói (Packages) để nhóm các lớp có những

cái chung◦ Có nhiều quan điểm hình thành gói� Gói lớp theo prototype

� Thí dụ có gói Boundaries, gói Control vàgói Entities

� Gói lớp theo chức năng

Boundaries

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 21

� Gói lớp theo chức năng� Thí dụ gói Security, gói Reporting, góiError Handling...

� Sử dụng tổ hợp hai loại tiếp cận trênđể hình thành gói

◦ Có thể tổ chức gói bên trong gói khác◦ Quan hệ giữa các gói hình thành trên cơ sở

quan hệ giữa các lớp trong các gói.

Entities

Control

Page 22: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

� Thuộc tính là nhóm thông tin liên kết với lớp� Có thể gắn một hay nhiều thuộc tính vào lớp� Tìm kiếm thuộc tính?◦ Tìm trong tài liệu UC

◦ Tìm các danh từ trong luồng sự kiện� Thí dụ: “Người sử dụng nhập tên, địa chỉ ngày sinh của Nhân viên”

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 22

-> Tên, địa chỉ, ngày sinh là danh từ và là thuộc tính của lớp Nhân viên

◦ Tìm trong tài liệu yêu cầu hệ thống� Thí dụ tài liệu yêu cầu hệ thống mô tả các thông tin cần thu thập

◦ Tìm thuộc tính trong cấu trúc CSDL� Nếu đã xác định cấu trúc CSDL thì các trường trong bảng là thuộctính của lớp

Page 23: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

� Trong trường hợp khó khăn quyết định danh từ tìm ra là thuộc tínhhay là lớp

◦ Thí dụ: Tên công ty là thuộc tính hay lớp?

◦ Loại ứng dụng cụ thể quyết định việc này

◦ Mặt khác cần quan sát nhóm thông tin có hành vi hay không

Khi kết thúc tìm kiếm thuộc tính

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 23

� Khi kết thúc tìm kiếm thuộc tính

◦ Đảm bảo rằng các thuộc tính tìm ra phải có ích cho yêu cầu hệ thống

◦ Gán thận trọng thuộc tính cho các lớp

◦ Không nên hình thành lớp có quá nhiều hay quá ít thuộc tính (tốt nhấtnên có lớp ít hơn 10 thuộc tính)

Page 24: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

� Đặc tả thuộc tính:

[Phạm vi][/] <Tên thuộc tính>[:Kiểu][=<Giá trị khởi đầu>][<Xâu tính chất>]

◦ Trong Rose: sử dụng cửa sổ đặc tả thuộc tính để gán đặc tính chothuộc tính◦ Với mỗi thuộc tính trong biểu đồ cần có

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 24

◦ Với mỗi thuộc tính trong biểu đồ cần có� Tên thuộc tính� Kiểu dữ liệu thuộc tính lưu trữ. Phụ thuộc vào ngôn ngữ lậptrình� Thí dụ, Add : String

� Giá trị khởi đầu� Thí dụ, IDNumber: Interger=0

� Stereotype� Phạm vi (visibility):

Page 25: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

◦ Phạm vi (visibility)� Một tính chất quan trọng của lập trình hướng đối tượnglà tính gói

� Bốn lựa chọn phạm vi cho thuộc tính� Public: Mọi lớp đều nhìn thấy thuộc tính (+)

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 25

� Private: Lớp khác không nhìn thấy thuộc tính (-)

� Protected: Các lớp kế thừa có thể nhìn thấy (#)

� Package và Implementation: Thuộc tính là public đối với cáclớp trong cùng gói

Page 26: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

◦ Phạm vi (visibility)

Public Attributes

Public

Private

Protected

Package (Implementation)

Public

Private

Protected

+

-

#

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 26

Private Attributes and Operati

ons

Public Attributes

Public Operations

Package (Implementation)

Page 27: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THUỘC TÍNH LỚP

◦ Kiểu lưu trữ thuộc tính

� By value: Lớp chứa thuộc tính

� By reference: Thuộc tính đặt ngoài lớp, lớp có con trỏ đếnthuộc tính

� Unspecified: Không xác định

◦ Thuộc tính tĩnh

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 27

◦ Thuộc tính tĩnh

� Là thuộc tính chia sẻ cho mọi hiện thực lớp

� Ký hiệu trong lớp là tên thuộc tính có gạch chân (phiên bản cũ:$)

◦ Thuộc tính suy diễn (dẫn xuất)

� Là thuộc tính được tạo bởi 1 hay nhiều thuộc tính khác

� Ký hiệu: dấu / trước tên thuộc tính

Page 28: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THAO TÁC LỚP

� Thao tác là hành vi kết hợp với lớp, nó xác định trách nhiệm của lớp� Mô tả thao tác bao gồm◦ Tên thao tác◦ Tham số thao tác◦ Kiểu giá trị cho lại

[Phạm vi][/] <Tên thao tác>[(<DS các tham số>)][:<Kiểu trả về>][<Xâu tính chất>]

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 28

về>][<Xâu tính chất>]� Ký pháp trong UML

Operation Name (arg1: arg1 data type, arg2: arg2 data type...): return type

� Chú ý khi bổ sung thao tác trong lớp◦ Không nên để lớp chỉ có 1 hay 2 thao tác◦ Nếu lớp không có thao tác thì mô hình hóa nó như thuộc tính◦ Nếu lớp có quá nhiều thao tác thì khó quản lý, nên chia sẻ chúng ra các

lớp khác

Page 29: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

THAO TÁC LỚP

� Các loại thao tác:◦ Thao tác cài đặt (Implementor)

� Cài đặt một vài chức năng nghiệp vụ� Hầu như mọi thông điệp trong biểu đồ tương tác ánh xạ vào thao táccài đặt

◦ Thao tác quản lý (Manager)� Quản lý việc lập và hủy bỏ đối tượng

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 29

� Quản lý việc lập và hủy bỏ đối tượng� Thí dụ: các cấu tử, hủy tử của lớp

◦ Thao tác xâm nhập (Access)� Thao tác xâm nhập vào các thuộc tính private và protected

� Thí dụ: các thao tác Get và Set cho mỗi thuộc tính trong lớp

◦ Thao tác trợ giúp (Helper)� Là các thao tác private và protected của lớp� Các thông điệp phản thân trong biểu đồ tương tác ánh xạ đến thao tácnày

Page 30: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ là kết nối ngữ nghĩa giữa các lớp◦ Quan hệ cho một lớp biết thuộc tính, thao tác và quanhệ của lớp khác

� Các loại quan hệ chính◦ Kết hợp (Associations)

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 30

◦ Kết hợp (Associations)

◦ Phụ thuộc (Dependencies)

◦ Tụ hợp (Aggregations)

◦ Hiện thực quan hệ (Realizes Relationships)

◦ Khái quát hóa (Generalizations)

Page 31: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Tìm kiếm quan hệ:◦ Khảo sát biểu đồ trình tự và biểu đồ cộng tác� Nếu lớp A gửi thông điệp đến lớp B thì giữa chúng cóquan hệ� Thông thường là quan hệ kết hợp hay phụ thuộc

◦ Khảo sát các lớp để tìm ra các quan hệ

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 31

◦ Khảo sát các lớp để tìm ra các quan hệ� Quan hệ tổng thể - thành phần

� Bất kỳ lớp nào được hình thành từ lớp khác thì chúng cóquan hệ tập hợp

� Quan hệ khái quát hóa� Nếu nhiều lớp kế thừa từ lớp thứ ba thì giữa chúng với lớpthứ ba có quan hệ khái quát hóa

Page 32: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ kết hợp (Aggregation):

◦ Là quan hệ về ngữ nghĩa giữa hai hoặc nhiều lớp, chỉ rõ kết nối giữa cácthể hiện của chúng.

◦ Là một quan hề về cấu trúc, chỉ định các đối tượng của lớp này có thểkết nối đến các đối tượng của lớp kia.

Association Name

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 32

Professor UniversityWorks for

Class

Association

Name

Page 33: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ kết hợp:� Kết hợp cho một lớp biết về thuộc tính và thao tác public của lớpkhác

� Quan hệ kết hợp hai chiều, một chiều

� Quan hệ kết hợp phản thân

PersonHouse

Person

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 33

House Person PersonHouse

class Person{public:Person();~Person();private:House *the_House;};

class House{public:House();~House();private:Person *the_Person;};

class Person{public:Person();~Person();private:House *the_House;};

class House{public:House();~House();private:};

Page 34: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ kết hợp:

◦ Kết hợp là quan hệ cấu trúc để mô tả tập liên kết (một liên kết là kếtnối giữa các đối tượng). Khi đối tượng của lớp này gửi/nhận thông điệpđến/từ đối tượng của lớp kia thì ta gọi chúng là có quan hệ kết hợp.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 34

Page 35: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ phụ thuộc:Dependency� Là quan hệ giữa hai phần tử của mô hình mà sự thay đổicủa của phần tử này có thể là nguyên nhân của sự thayđổi của phần tử kia.

� Không cấu trúc (Non-structural), quan hệ “using”

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 35

Page 36: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ phụ thuộc:Dependency là quan hệ chỉ ra một lớptham chiếu lớp khác◦ Khi thay đổi đặc tả lớp tham chiếu thì lớp sử dụng nó bị ảnhhưởng

◦ Rose không bổ sung thuộc tính cho hai lớp có quan hệ phụ thuộc

◦ Các lệnh ngôn ngữ được phát sinh để hỗ trợ quan hệ phụ thuộc

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 36

◦ Các lệnh ngôn ngữ được phát sinh để hỗ trợ quan hệ phụ thuộc

� Thí dụ: #include

PersonHouse

Page 37: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ phụ thuộc:

◦ Phụ thuộc là mối quan hệ giữa hai lớp đối tượng: một lớpđối tượng A có tính độc lập và một lớp đối tượng B phụthuộc vào A; một sự thay đổi của A sẽ ảnh hưởng đến lớpphụ thuộc B.

◦ Ký pháp đồ họa của nó được thể hiện:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 37

◦ Ký pháp đồ họa của nó được thể hiện:

Hoá đơn Hàng giảm giá

Page 38: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ phụ thuộc gói:◦ Có thể vẽ quan hệ phụ thuộc giữa các gói như giữa các lớp

◦ Phụ thuộc gói từ gói A đến gói B có nghĩa rằng vài gói trong lớpA có quan hệ một chiều với các lớp trong gói B

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 38

◦ Tránh phụ thuộc vòng giữa các gói

Package A Package B

Package A Package B

Page 39: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Phụ thuộc tụ hợp :

◦ Aggregation là quan hệ giữa tổng thểvà bộ phận (Whole-Parts)� Trong quan hệ này, một lớp biểudiễn cái lớn hơn còn lớp kia biểudiễn cái nhỏ hơn

� Biểu diễn quan hệ has-a

Door

Engine

Car

2..4

1

1

1

Tire

4

1

4

1

1

1

2..4

1

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 39

� Biểu diễn quan hệ has-a� Một đối tượng của lớp tổng thể cónhiều đối tượng của lớp thành phần

� Tổng thể và bộ phận có thể hủy bỏvào thời điểm khác nhau

� Tên khác: quan hệ tụ hợp bởi thamchiếu (by reference)

#include "car.h"

class Door {

.....

private:

Car *the_car;

};

#include "door.h"

class Car {

...

private:

Door *the_Door;

};

Page 40: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Phụ thuộc tụ hợp :

◦ Là dạng đặc biệt của kết hợp, nó biểu diễn quanhệ cấu trúc giữa toàn thể và bộ phận (là dạngquan hệ mụ tả một lớp A là một phần của lớp B vàlớp A cú thể tồn tại độc lập). Ký hiệu:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 40

lớp A cú thể tồn tại độc lập). Ký hiệu:

◦ Ví dụ:

Page 41: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Phụ thuộc tụ hợp :

◦ Một dạng đặc biệt của tập hợp là quan hệ hợp thành(composition), trong đó nếu như đối tượng toàn thể bị huỷbỏ thì các đối tượng bộ phận của nó cũng bị huỷ theo.

◦ Ví dụ:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 41

Customer Order

Whole

Composition

Part

Page 42: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ hợp thành:

◦ Composition là dạng đặc biệt (mạnh hơn) của quan hệ tụhợp

� Tổng thể và thành phần được hình thành hay hủy bỏ vàocùng thời điểm

� Tên khác: quan hệ tụ hợp bởi giá trị (by value) Ví dụ:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 42

� Tên khác: quan hệ tụ hợp bởi giá trị (by value) Ví dụ:

Frame Window

n1

#include "Window.h"

class Frame

{

...

private:

}

#include "Frame.h"

class Window

{

...

private:

Frame the_Frame;

}

Page 43: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ khái quát hóa:� Là quan hệ giữa các lớp trong đó một lớp chia sẻ cấutrúc (structure) và/hoặc hành vi (behavior) của mộthoặc nhiều lớp.

� Định nghĩa một phân cấp trừu tượng hóa trong đósubclass kế thừa một hoặc nhiều superclasses

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 43

subclass kế thừa một hoặc nhiều superclasses� Single inheritance

� Multiple inheritance

� Generalization là quan hệ “is-a-kind-of”

Page 44: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ khái quát hóa:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 44

Page 45: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ khái quát hóa:� Chú ý: sử dụng đa kế thừa (multiple inheritance) chỉ khi cầnthiết và phâi luôn luôn thận trọng.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 45

Page 46: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ khái quát hóa :

� Subclass kế thừa các attributes, operations, vàrelationships của lớp cha.

� Cho phép một lớp kế thừa các thuộc tính, thao tácpublic và protected của lớp khác

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 46

public và protected của lớp khác

� Một subclass có thể :� Thêm các attributes, operations, relationships

� Định nghĩa lại operations (sử dụng thận trọng!)

� Các attributes, operations, and/or relationshipschung được hiển thị mức cao nhất trong phâncấp.

Page 47: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ khái quát hóa :

◦ Generalization là cũng là quan hệ kế thừa của hai phần tử mô hìnhnhư lớp, tác nhân, Use case và gói

EmployeeNameAddress

#include “Employee.h”

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 47

AddressSSN

Hire()Fire()

HourlyEmpRate

SalariedEmpSalary

class HourlyEmp: public Employee

{

private:

float Rate;

......

};

Page 48: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ thực hiện:

◦ Là quan hệ ngữ nghĩa giữa hai phân lớp (classifiers). Một phân lớp cungứng hợp đồng với một phân lớp phù hợp để thực hiện. Bên cung ứng hỗ trợcho bên sử dụng một số dịch vụ, hợp đồng này là không thay đổi kể cả khinội bộ mỗi bên có sự thay đổi.

◦ Là quan hệ giữa:

� Interfaces và các phân lớp thực hiện chúng

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 48

� Interfaces và các phân lớp thực hiện chúng

� Use cases và các cộng tác thực hiện chúng.

Page 49: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

QUAN HỆ GIỮA CÁC LỚP

� Quan hệ thực hiện:

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 49

Page 50: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Đặc tả chi tiết quan hệ bao gồm◦ Multiplicity

◦ Tên quan hệ

◦ Tên nhiệm vụ

◦ Export control

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 50

◦ Export control

◦ Quan hệ tĩnh

◦ Quan hệ Friend

◦ Phạm vi kết hợp (Qualifier)

◦ Phần tử liên kết

Page 51: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Multiplicity◦ Multiplicity định nghĩa bao nhiêu đối tượng thamgia vào quan hệ.� Số thể hiện của một lớp quan hộ với MỘT thểhiện của lớp khác cùng một thời điểm.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 51

hiện của lớp khác cùng một thời điểm.

Course Student

10..200..4

Page 52: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Multiplicity◦ Unspecified

◦ Exactly one

◦ Zero or more

(many, unlimited)

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 52

(many, unlimited)

◦ One or more

◦ Zero or one

◦ Specified range

◦ Multiple, disjoint ranges

Page 53: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Tên quan hệ◦ Tên quan hệ là động từ mô tả tại sao lại tồn tạiquan hệ

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 53

Company PersonEmploys

Page 54: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Tên nhiệm vụ◦ Sử dụng tên nhiệm vụ thay thế cho tên quan hệ trong quanhệ kết hợp hay tụ hợp để chỉ ra tại sao quan hệ tồn tại

Company Person+Employee+Employer

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 54

� Export control◦ Trong quan hệ kết hợp, thuộc tính được phát sinh trong mãtrình

◦ Phạm vi được gán cho thuộc tính bao gồm: Public, Private,Protected, Package hay Implementation

Page 55: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Quan hệ tĩnh◦ Rose phát sinh thuộc tính cho quan hệ kết hợp và quan hệ tụ hợp◦ Có thể gán tính static cho thuộc tính để chia sẻ cho mọi hiện thực

lớp

Company Person+$Employee+Employer

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 55

� Quan hệ Friend◦ Quan hệ này chỉ ra rằng lớp Client có thể xâm nhập các thuộc tính

và thao tác không phải public của lớp Supplier◦ Có thể gán Friend cho kết hợp, tụ hợp, phụ thuộc hay khái quát hóa◦ Mã nguồn của lớp Supplier sẽ bao gồm logíc để lớp Client có

phạm vi Friend

Page 56: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

ĐẶC TẢ QUAN HỆ GIỮA CÁC LỚP

� Phạm vi kết hợp (Qualifier)◦ Sử dụng qualifier để giảm phạm vi kết hợp

Company

PersonPersonID : Integer

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 56

� Phần tử liên kết◦ Còn gọi là lớp kết hợp, nơi lưu trữ thuộc tính liên quan đếnkết hợp

Student Course

0..410..20 0..410..20

Grade

Page 57: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Các ca sử dụng được đem ra để nghiên cứuđể phát hiện các đối tượng/lớp tham gia từngca sử dụng đó. Các lớp tham gia ca sử dụngđược gọi chung là các lớp phân tích.

� Để thực hiện được một kịch bản ca sử dụng

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 57

� Để thực hiện được một kịch bản ca sử dụngthì các lớp phân tích gồm ba loại:

� Các lớp biên (boundary)� Các lớp điều khiển (control),� Các lớp thực thể (Entity) hay các lớp lĩnh vực(domain)

Page 58: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

◦ Các lớp biên (boundary)� Là các lớp liên quan đến giao diện hệ thống, thựchiện nhận thông tin từ người dùng và gửi đến các đốitượng bên trong hệ thống.

� Lớp biên là lớp phân tách phần bên trong và bênngoài hệ thống,

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 58

ngoài hệ thống,

� Thông thường, mỗi form nhận thông tin sẽ trở thànhmột lớp biên. Tuy nhiên, các form tương tự nhaucũng có thể cùng được mô tả trong cùng một lớp.

Page 59: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬ DỤNG

◦ Vai trò các lớp biên (boundary): Mô hình hóa sựtương tác hệ thống với môi trường bên ngoài

<<boundary>>

<<control>>

<<boundary>>

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 59

Customer

<<boundary>>

<<boundary>>

<<entity>> <<entity>>

Page 60: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Các lớp điều khiển (control),◦ Control classes cung cấp sự điều hành hành vi trong hệ thống. Hệ thống có

thể thực thi vài ca sử dụng không có các lớp điều khiển (chỉ có các lớpentity và lớp boundary) classes) – đặc biệt các ca sử dụng chỉ bao gồm cácthao tác lưu trữ thông tin đơn giản. Các ca sử dụng phức tạp hơn thườngthường yêu cầu một hoặc nhiều lớp control để điều hành hành vi của cácđối tượng khác trong hệ thống.Ví dụ, các lớp control bao gồm quản trị cácgiao dịch, điều phối tài nguyên và lỗi.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 60

giao dịch, điều phối tài nguyên và lỗi.

◦ Control classes cung cấp các hành vi:� Là môi trường độc lập (Không thay đổi khi môi trường thay đổi)

� Định nghĩa điều khiển logic logic (thứ tự giữa các events) và các giao dịch trong một ca sử dụng.Thay đổi rất nhỏ nếu cấu trúc bên trong hoặc hành vi của các lớp thực thể thay đổi.

� Sử dụng hoặc thiết lập nội dung của vài lớp entity, do đó cần điều hành hành vi của những lớpthực thể này.

� Không thực thi cùng một cách trong mọi thời gian nó được kích hoạt.

Page 61: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

◦ Các lớp điều khiển (control),� Là các lớp chỉ làm nhiệm vụ điều khiển hệ thốngứng với một chức năng nhất định.

� Lớp điều khiển nhận thông tin từ các lớp biên (lớpgiao diện) gửi yêu cầu đến các lớp thực thể để thựcthi chức năng mà nó đảm nhiệm, rồi trả về kết quả

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 61

thi chức năng mà nó đảm nhiệm, rồi trả về kết quảcho các lớp biên.

� Mỗi use case phức tạp thường có một lớp điều khiểntương ứng.

Page 62: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

◦ Các lớp điều khiển (control),

Customer

<<boundary>>

<<control>>

<<boundary>>

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 62

Điều hành use-case behavior

Customer

<<boundary>>

<<entity>> <<entity>>

Page 63: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Các lớp thực thể (Entity) hay các lớp lĩnhvực (domain):◦ Entity classes biểu diễn lưu trữ thông thin trong thống.Chúng thường được sử dụng biểu diễn các khái niệm thenchốt trong hệ thống quản trị. Entity objects (thể hiện củaentity classes) thường được sử dụng để nắm giữ và cập nhật

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 63

entity classes) thường được sử dụng để nắm giữ và cập nhậtthông tin về sự vật, như là event, con người, hoặc somereal-life object. Chúng thường bền, có các thuộc tính vàquan hệ cần thiết trong khoảng thời gian, thường là vòng đờihệ thống.

◦ Trách nhiệm chính của các entity classes là lưu trữ và quảntrị thông tin trong system.

� .

Page 64: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

◦ Các lớp thực thể (Entity) hay các lớp lĩnh vực(domain):� Là các lớp nghiệp vụ, nói chung là các lớp bền,nghĩa là các lớp dữ liệu và các mối quan hệ củachúng được lưu trữ lại sau khi ca sử dụng của chúngđã kết thúc.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 64

đã kết thúc.

� Lớp thực thể được chọn tham gia ca sử dụng khithông tin chứa đựng trong nó được đề cập đến trongca sử dụng.

Page 65: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

◦ Vai trò các lớp thực thể (Entity) hay các lớp lĩnhvực (domain):� Lưu trữ và quản trị thông tin hệ thống.

<<boundary>>

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 65

Customer

<<boundary>>

<<control>>

<<boundary>>

<<entity>> <<entity>>

Page 66: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Phát hiện các lớp tham gia ca sử dụng: Tìm các lớpphân tích từ hành vi của ca sử dụng

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 66

Page 67: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Phát hiện các lớp tham gia ca sử dụng:� Các lớp biên

Course Catalog SystemRegister for CoursesStudent

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 67

Course Catalog SystemRegister for CoursesStudent

RegisterForCoursesForm CourseCatalogSystem

Page 68: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Phát hiện các lớp tham gia ca sử dụng:� Các lớp thực thể:

◦ Sử dụng luồng sự kiện của use-case flow như là đầu vào.

◦ Key abstractions của use case

◦ Truyền thống, tiếp cận lọc danh từ:� Gạch chân các danh từ trong luồng sự kiện của use case.

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 68

� Gạch chân các danh từ trong luồng sự kiện của use case.

� Loại bỏ các ứng viên dư thừa

� Loại bỏ các ứng viên không rõ ràng

� Loại bỏ các actors (ngoài phạm vi)

� Loại bỏ các cấu trúc bổ sung (implementation constructs)

� Loại bỏ các attributes (lưu trữ cho dùng sau)

� Loại bỏ các thao tác operations

Page 69: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Phát hiện các lớp tham gia ca sử dụng:� Các lớp điều khiển

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 69

Course Catalog SystemRegister for CoursesStudent

RegistrationController

Page 70: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Phát hiện và bổ sung các thuộc tính và thao tác chocác lớp tham gia ca sử dụng:◦ Các lớp thực thể tạm thời chỉ có các thuộc tính.◦ Các lớp điều khiển chỉ có các thao tác, các thao tác diễn tả:� Logic của ứng dụng,� Các quy tắc nghiệp vụ,

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 70

� Các quy tắc nghiệp vụ,� Các hành vi của hệ thống tin học,…◦ Các lớp biên có cả thuộc tính và thao tác:� Thuộc tính diễn tả các trương thu thập thông tin hay xuấtkết quả (thuộc tính dẫn xuất).

� Các thao tác biễu diễn hành động của người dùng thựchiện trên màn hình giao diện.

Page 71: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

� Thêm liên kết giữa các lớp phân tích:◦ Các lớp biên chỉ được nối các lớp điều khiển haycác lớp biên khác.Thường là liên kết một chiều từlớp biên đến lớp điều khiển.

◦ Các lớp thực thể chỉ được nối với các lớp điều

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 71

◦ Các lớp thực thể chỉ được nối với các lớp điềukhiển hay lớp thực thể khác.

◦ Các lớp điều khiển cho phép truy cập tới mọi mọilớp, bao gồm các lớp điều khiển khác.

Page 72: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

XÁC ĐỊNH CÁC LỚP THAM GIA CA SỬDỤNG

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 72

Page 73: BÀI 6: BIỂU ĐỒ LỚP HỆ THỐNG · XÂY D ỰNG BIỂU Đ ỒLỚP Stereoype của lớp :Ba stereotype lớp cơ sở sửdụngtrophaphântíchlà Boundary Entity Lớp

BÀI TẬP LỚN MÔN HỌC

� Chương 2. Phân tích hệ thống◦ Xây dựng mô hình lớp

10/15/2012 Phân tích và thiết kếHDT – Biên soạn: Chu ThịHường – BM HTTT 73